styファイルが mktexlsrで登録されない

styファイルが mktexlsrで登録されない

- 中尾 の投稿
返信数: 9
PCが新しくなったので、TeXを入れて
手持ちのstyファイルを、TEXMFLOCALに配置し、mktexlsr したのですが、
TeXworks でコンパイル時に、styファイルが読み込めず
! LaTeX Error: File `***.sty' not found. となってしまい困っています。


やった事は、
TeXLive 2019を windows 10 ProのPCにインストール。

kpsewhich -var-value TEXMFLOCAL を見ると
C:/texlive/texmf-local となるので
この配下に、styファイルを入れる。
管理者モードで立ち上げたターミナルより、mktexlsr
C:/texlive/texmf-local/ls-R の中身を見ると、
一覧表は更新され、入れたstyファイルはリストに入っている。
ところが、kpsewhichでは、入れたstyファイルは見えない。
という症状です。


何かしらの設定がおかしくなっているのかと
思い、何回か、クリーンにしてインストールしてみているのですが
何か、パスのようなものが、クリーンになっていないのかもしれません。


ちなみに、最初は、前のPCで問題のなかった
TeXインストーラ3でインストールし、同じ症状となり、
なんとかしようと思い、新しそうなTeXLive 2019を入れてみた
という状況です。


何か、お気づきのことを指摘いただければ、ありがたいです。



中尾 への返信

Re: styファイルが mktexlsrで登録されない

- 和田 勇 の投稿
設定・確認はされていると思いますがおそらく環境変数 PATH 問題かしら?
以下のコマンドの結果はどのようになりますか(*1)

   echo %PATH:;=&echo.%

unix 系だと which を使うのですが windows だと where があるらしいので (*2)

  where kpsewhich
とか
  where platex
の出力結果は?

(*1)https://nikunimame.com/check-path/
(*2)https://superuser.com/questions/207707/what-is-windows-equivalent-of-the-which-command-in-unix-is-there-an-equivale

Note: Windows 環境がないので検索情報からの類推であることをお断りしておきます
和田 勇 への返信

Re: styファイルが mktexlsrで登録されない

- 中尾 の投稿
早速のコメント、ありがとうございます。

まず、
>echo %PATH:;=&echo.%
C:\Program Files (x86)\Common Files\Oracle\Java\javapath
C:\WINDOWS\system32
C:\WINDOWS
C:\WINDOWS\System32\Wbem
C:\WINDOWS\System32\WindowsPowerShell\v1.0\
C:\WINDOWS\System32\OpenSSH\
C:\w32tex\bin
C:\Program Files (x86)\gs\gs9.50\bin
C:\Program Files (x86)\gs\gs9.50\lib
C:\texlive\2019\bin\win32
C:\Users\USER\AppData\Local\Microsoft\WindowsApps

w32texが残ってますね。
ただ、フォルダーは消去済みなので、問題ないように思います。


>where kpsewhich
C:\Windows\System32\kpsewhich
C:\texlive\2019\bin\win32\kpsewhich.exe

こちらは試してみて、びっくり。system32になぜ?
ひとまず、renameして、texliveの方だけ動くようにして
mktexlsrをしてみましたが、
相変わらず、kpsewhichでは、入れたstyファイルは見えないようです。

>where platex
C:\texlive\2019\bin\win32\platex.exe


うーん。



中尾 への返信

Re: styファイルが mktexlsrで登録されない

- 和田 勇 の投稿
kpsewhich が思わぬところにあったようですので
 where mktexlsr
とか
 mktexlsr
の出力は?特に後者は、実際にlsr データベースを作成した情報が表示されると思いますが、どうなっていますか?

まあ手取り早くやるなら C:\texlive\2019\bin\win32 を C:\Windows\System32 よりも先に宣言するように変更すればよいかと思いますが。
和田 勇 への返信

Re: styファイルが mktexlsrで登録されない

- 中尾 の投稿
はい。それも、報告すべき情報でした。

>where mktexlsr
C:\texlive\2019\bin\win32\mktexlsr.exe

>mktexlsr
mktexlsr: Updating C:/texlive/texmf-local/ls-R...
mktexlsr: Updated C:/texlive/texmf-local/ls-R.
mktexlsr: Updating C:/texlive/2019/texmf-config/ls-R...
mktexlsr: Updated C:/texlive/2019/texmf-config/ls-R.
mktexlsr: Updating C:/texlive/2019/texmf-var/ls-R...
mktexlsr: Updated C:/texlive/2019/texmf-var/ls-R.
mktexlsr: Updating C:/texlive/2019/texmf-dist/ls-R...
mktexlsr: Updated C:/texlive/2019/texmf-dist/ls-R.
mktexlsr: Done.


です。
ちゃんと、動いているように、見えるのです。

中尾
中尾 への返信

Re: styファイルが mktexlsrで登録されない

- 和田 勇 の投稿
ううむ、絶対入っているであろう
  kpsewhich -all array.sty
で実際に見ている場所はどうなってるのかな

お試しになったソースとそのログをみた方が早いかな。公開したくない情報のものであれば以下のを参考に見つからなかったスタイルファイルを追加して実行した結果をアップして下さい。

■サンプルのソース

\documentclass{book}
\usepackage{array} % みつからなかったスタイルファイルを追加してね
\begin{document}
test
\end{document}


■上記のログの一部

platex sample.tex
This is e-pTeX, Version 3.14159265-p3.8.2-190131-2.6 (utf8.euc) (TeX Live 2019) (preloaded format=platex)
restricted \write18 enabled.
entering extended mode
(./sample.tex
pLaTeX2e <2020-02-02>+2 (based on LaTeX2e <2020-02-02> patch level 3)
L3 programming layer <2020-02-21>
(/usr/local/texlive/2019/texmf-dist/tex/latex/base/book.cls
Document Class: book 2019/12/20 v1.4l Standard LaTeX document class
(/usr/local/texlive/2019/texmf-dist/tex/latex/base/bk10.clo))
(/usr/local/texlive/2019/texmf-dist/tex/latex/tools/array.sty) ※ここを見たい
和田 勇 への返信

Re: styファイルが mktexlsrで登録されない

- 中尾 の投稿
問題に、お付き合いありがとうございます。

> kpsewhich -all array.sty
c:/texlive/2019/texmf-dist/tex/latex/tools/array.sty
c:/texlive/2019/texmf-dist/tex/latex-dev/tools/array.sty

-------------------------------

\documentclass{book}

\usepackage{array}

\usepackage{udline}

\begin{document}

test

\end{document}

-------------------------------

でやってみました。


#------------------------------------------------------------------

This is ptex2pdf[.lua] version 20200119.0.

Processing test.tex

This is e-pTeX, Version 3.14159265-p3.8.2-190131-2.6 (utf8.sjis) (TeX Live 2019/W32TeX) (preloaded format=platex)

restricted \write18 enabled.

entering extended mode

(./test.tex

pLaTeX2e <2020-02-02>+2 (based on LaTeX2e <2020-02-02> patch level 4)

L3 programming layer <2020-02-25>

(c:/texlive/2019/texmf-dist/tex/latex/base/book.cls

Document Class: book 2019/12/20 v1.4l Standard LaTeX document class

(c:/texlive/2019/texmf-dist/tex/latex/base/bk10.clo))

(c:/texlive/2019/texmf-dist/tex/latex/tools/array.sty)


! LaTeX Error: File `udline.sty' not found.


Type X to quit or <RETURN> to proceed,

or enter new name. (Default extension: sty)


Enter file name:


でエラーでストップです。


#------------------------------

また、c:\texlive\texmf-local にある ls-Rには、

udline.styは入ってます。



中尾 への返信

Re: styファイルが mktexlsrで登録されない

- Yamamoto Munehiro "munepi" の投稿
> 手持ちのstyファイルを、TEXMFLOCALに配置し、mktexlsr したのですが、

具体的に TEXMFLOCAL 以下のどこのディレクトリに手持ちのstyファイルを置きましたでしょうか?

各プログラムに対して然るべき場所にstyファイルを置かないと、libkpathsea 対応な該当プログラムがそのファイルを認識しません。

例えば、 C:\texlive\texmf-local\bokugakanngaeta.sty を置いたとしても、pdflatex, platex, lualatex などのどの組版エンジンのlatexプログラムも bokugakanngaeta.sty を見つけられません。
Yamamoto Munehiro "munepi" への返信

Re: styファイルが mktexlsrで登録されない

- 和田 勇 の投稿

ポストしようとしたら munpei さんが答えていたもの追い討ちをかけてしまいそうですが、...

udline.sty に関してはこのフォーラムでも過去にありましたね。
https://okumuralab.org/tex/mod/forum/discuss.php?d=2491


さてudline.sty は C:/texlive/texmf-local 以下に置かれて mktexlsr されて kpsewhich -all udline.sty しても何も表示されない ということですな。

置かれた場所は C:/texlive/texmf-local/udline.sty ですか

この過程の元、以下の実験をして見ましたので参考にしてください。

■置き場所

  % find /usr/local/texlive/texmf-local -iname udline.sty
  /usr/local/texlive/texmf-local/tex/latex/local/udline.sty    <-- ここに分類して入れておく
  /usr/local/texlive/texmf-local/udline.sty           <-- 実験のため

■mktexlsr で ls-R に登録されているかな
  % rg -B10 udline /usr/local/texlive/texmf-local/ls-R
  2-./:
   ...snip..
  12:udline.sty      <-- /usr/local/texlive/texmf-local/udline.sty
  --
   ...snip...
  78-./tex/latex/local:
  79:udline.sty

 ■ kpsewhich で検索できるのは?

  % kpsewhich -all udline.sty
  /usr/local/texlive/texmf-local/tex/latex/local/udline.sty
和田 勇 への返信

Re: styファイルが mktexlsrで登録されない

- 中尾 の投稿
関係者各位

ご指摘ありがとうございます。
C:/texlive/texmf-local/tex/latex/の下に入っていなかったsty群を
そちらに入れ、無事動きました。


本件、蛇足ですが、
前と同じところに入れれば動くと思っていたのですが
いつから(?)か、別のところに、入れてしまっていたことと、
症状を確かめるために、動作している標準で入っているstyファイルを
一度取り除き、再び、同じ場所に戻したところ、
2度と使えなくなる。という症例が出て、
ファイルを入れている場所の問題ではないと思い込んでました。

なお、後者の問題は、現在のシステムでは、再現できないことと、
今となっては、前のシステムで試したときに、
何かしら操作に問題があったことは否定できないです。


改めて、ご指摘ありがとうございました。
問題がわかり、スッキリしました。