我正在尝试安装一个新样式文件,该文件不是 LaTeX 默认自带的。我在一台 Linux Mint 电脑上,用一个简单的命令安装了 LaTeX
sudo apt install texlive
或者类似的东西,如果我没记错的话。现在,当我搜索我的 texmf 目录时,我找到了两个(我按照互联网上各个页面上的一些说明找到的)。一个是 ,/var/lib/texmf
另一个是/usr/local/share/texmf/
。前者有以下文件夹:
dvipdfmx/
dvips/
fonts/
luatex-cache/
tex/
web2c/
xdvi/
...
以及七个文件,其中例如之一是fmtutil.cnf-DEBIAN
。
.sty
经过一番盲目探索,我在任何子文件夹中都找不到任何文件。在另一个目录中,/usr/local/share/texmf/
目录完全是空的。
因此,除非我还没有充分探索第一个目录的子文件夹,否则我认为这两个都不是 LaTeX 寻找其.sty
文件的地方。那么我如何找到正确的目录?当我输入时,which tex
它会给出提示usr/bin/tex
,但在那个目录中,我看不到任何其他似乎与 LaTeX 相关的文件。
当我运行时texhash
它返回
texhash: /usr/local/share/texmf: directory not writable. Skipping...
texhash: /var/lib/texmf: directory not writable. Skipping...
texhash: /var/lib/texmf: directory not writable. Skipping...
texhash: /var/lib/texmf: directory not writable. Skipping...
texhash: Done.
由于我真的不知道自己在做什么,所以我不想texhash
以 root 身份运行,但这让我认为 texmf 树必须位于其中一个目录中......所以我现在感到很困惑。
[编辑:我看到有人建议主目录中可能有一个 texmf 树,但我没有。也就是说,texmf
我的目录中没有目录~/
。]
[进一步编辑:此外,当我输入时echo $TEXMFHOME
它会返回一个空白行。]
[进一步编辑:我根据 egreg 的评论输入了kpsewhich -var-value TEXMFHOME
返回结果/home/myname/texmf
,但该目录不存在。]
答案1
本地添加的内容不应放入系统texmf
目录,即 ,/usr/local/share/texmf
而应放入您的主texmf
文件夹。此文件夹不会自动创建,因此您需要自行创建。
texmf
可以使用以下命令找到本地的位置:
kpsewhich -var-value TEXMFHOME
在 Linux 系统上,这通常是~/texmf
( /home/<username>/texmf
)。您可以自己创建文件夹,但它必须符合 TeX 目录结构。请参阅:
一旦完成此操作,您不需要执行任何其他操作来找到包;TeX 首先在此目录中查找。
答案2
texconfig conf
也可以给出所有 kpathsea 变量:
=========================== kpathsea variables ===========================
TEXMFMAIN=/usr/texmf-dist
TEXMFDIST=/usr/texmf-dist
TEXMFLOCAL=//texmf-local
TEXMFSYSVAR=/usr/texmf-var
TEXMFSYSCONFIG=/usr/texmf-config
TEXMFVAR=/home/firestar/.texlive2022/texmf-var
TEXMFCONFIG=/home/firestar/.texlive2022/texmf-config
TEXMFHOME=/home/firestar/texmf
VARTEXFONTS=/home/firestar/.texlive2022/texmf-var/fonts
TEXMF={{}/home/firestar/.texlive2022/texmf-config,/home/firestar/.texlive2022/texmf-var,/home/firestar/texmf,!!//texmf-local,!!/usr/texmf-config,!!/usr/texmf-var,!!/usr/texmf-dist}
SYSTEXMF=/usr/texmf-var://texmf-local:/usr/texmf-dist
TEXMFDBS={!!//texmf-local,!!/usr/texmf-config,!!/usr/texmf-var,!!/usr/texmf-dist}
WEB2C={{}/home/firestar/.texlive2022/texmf-config,/home/firestar/.texlive2022/texmf-var,/home/firestar/texmf,!!//texmf-local,!!/usr/texmf-config,!!/usr/texmf-var,!!/usr/texmf-dist}/web2c
TEXPSHEADERS=.:{{}/home/firestar/.texlive2022/texmf-config,/home/firestar/.texlive2022/texmf-var,/home/firestar/texmf,!!//texmf-local,!!/usr/texmf-config,!!/usr/texmf-var,!!/usr/texmf-dist}/{dvips,fonts/{enc,type1,type42,type3}}//
TEXCONFIG={{}/home/firestar/.texlive2022/texmf-config,/home/firestar/.texlive2022/texmf-var,/home/firestar/texmf,!!//texmf-local,!!/usr/texmf-config,!!/usr/texmf-var,!!/usr/texmf-dist}/dvips//
ENCFONTS=.:{{}/home/firestar/.texlive2022/texmf-config,/home/firestar/.texlive2022/texmf-var,/home/firestar/texmf,!!//texmf-local,!!/usr/texmf-config,!!/usr/texmf-var,!!/usr/texmf-dist}/fonts/enc//
TEXFONTMAPS=.:{{}/home/firestar/.texlive2022/texmf-config,/home/firestar/.texlive2022/texmf-var,/home/firestar/texmf,!!//texmf-local,!!/usr/texmf-config,!!/usr/texmf-var,!!/usr/texmf-dist}/fonts/map/{kpsewhich,pdftex,dvips,}//
kpathsea
这比一次只执行一个命令要好。