查找 .sty 文件的目录路径

查找 .sty 文件的目录路径

我正在尝试将subfloat.sty文件添加到我的 LaTeX 搜索路径。为了找到该路径,我执行了:

kpsewhich -var-value=TEXMFHOME

正如预期的那样,

/主页/最大/texmf

但是,没有与该(看似空的)路径关联的子目录,我甚至无法 cd~/texmf或将文件复制到此目录(因此,我无法将文件移动.sty到任何子目录中)。但是,我可以成功运行 LaTeX,包括各种其他软件包而不会出现错误,因此显然它在某个目录路径中寻找并找到它们,只是不是指示的那个。

有人对如何解决这个问题有什么建议吗?

答案1

该包subfloat.sty应该添加到 LaTeX 搜索路径中,例如,如果您有一台 openSUSE Linux 机器,通常会在以下位置找到它:

/usr/share/texmf/tex/latex/subfloat/

和/或

$HOME/texmf/tex/latex/subfloat/

如果您从未手动将仅用户 max 的软件包添加到 LaTeX 发行版中,则该目录~/texmf不应存在。此外,如果您没有将任何其他路径添加到TEXMFHOME,则包含 LaTeX 软件包的所有文件夹都应分组到 中/usr/share/texmf/tex/latex

变量TEXMFHOME和你的TEXMFDIST定义在:

max@hostname ~: $ echo `kpsewhich texmf.cnf`

其结果应为/etc/texmf/web2c/texmf.cnf

现在,如果以下 bash 脚本的结果是一条显示单词 Yes 或单词 Nes 的消息(要执行 bash 脚本:将其保存到名为 的文件中compare.sh,通过 授予其适当的权限chmod +x compare.sh并通过 执行它./compare.sh):

if grep -q "TEXMFDIST = /usr/share/texmf" `kpsewhich texmf.cnf`; then
    if grep -q "TEXMFHOME = {~/texmf" `kpsewhich texmf.cnf`; then
        echo "Yes"
    else
        echo "Nes"
    fi
else 
    echo "No"
fi

那么您可以尝试按照以下步骤操作:

  1. 从以下网址下载 subfloat 软件包CTAN:目录 macros/latex/contrib/subfloat(需要 wget)
  2. 打开包装subfloat.zip
  3. 运行脚本subfloat.ins
  4. 复制subfloat.sty到你的 LaTeX 搜索路径;
  5. 或者,复制文档目录中的文档;
  6. 更新你的 LaTeX 发行版。
max@hostname ~: $ wget mirrors.ctan.org/macros/latex/contrib/subfloat.zip # download link for subfloat, if you don't trust this, you can download it manually
max@hostname ~: $ unzip subfloat.zip
max@hostname ~: $ cd subfloat
max@hostname ~/subfloat: $ latex subfloat.ins
max@hostname ~/subfloat: $ sudo mkdir /usr/share/texmf/tex/latex/subfloat
max@hostname ~/subfloat: $ sudo mkdir -p /usr/share/texmf/doc/subfloat
max@hostname ~/subfloat: $ sudo cp subfloat.sty /usr/share/texmf/tex/latex/subfloat/
max@hostname ~/subfloat: $ sudo cp subfloat.pdf /usr/share/texmf/doc/subfloat
max@hostname ~/subfloat: $ sudo texhash # update your LaTeX distribution

相关内容