当通过 apt 安装其他 texlive-* 时,texdoc 会失败

当通过 apt 安装其他 texlive-* 时,texdoc 会失败

我在 Ubuntu 20.04 中正确安装了“texlive2020-20200406.iso”中的 TexLive,并且我用它写了一段时间的报告。最近,我通过终端命令找到了一些软件包,apt search texlive并安装了其中一些。从那时起,该命令texdoc就无法再搜索文档了。我确信该命令以前运行良好。

例如:该命令texdoc beamer之前打开的是‘beameruserguide.pdf’,但现在它在另一路径下打开一个 beamer 示例。

看起来通过安装的软件包apt覆盖了从“iso”文件安装的软件包的路径。

apt list --installed | grep texlive给出以下列表:

texlive-base/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-binaries/focal,now 2019.20190605.51237-3build2 amd64 [installed,automatic]
texlive-font-utils/focal,focal,now 2019.202000218-1 all [installed,automatic]
texlive-fonts-extra-links/focal,focal,now 2019.202000218-1 all [installed,automatic]
texlive-fonts-extra/focal,focal,now 2019.202000218-1 all [installed]
texlive-fonts-recommended/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-lang-chinese/focal,focal,now 2019.20200218-1 all [installed]
texlive-lang-cjk/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-lang-japanese/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-lang-korean/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-lang-other/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-latex-base/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-latex-extra/focal,focal,now 2019.202000218-1 all [installed,automatic]
texlive-latex-recommended/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-pictures/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-plain-generic/focal,focal,now 2019.202000218-1 all [installed,automatic]

如果您能帮助我解决这个问题我将非常感激。


补充:路径是通过编辑‘~/.bashrc’设置的,如下所示(从‘.iso’安装后)

export MANPATH=${MANPATH}:/usr/local/texlive/2020/texmf-dist/doc/man
export INFOPATH=${INFOPATH}:/usr/local/texlive/2020/texmf-dist/doc/info
export PATH=${PATH}:/usr/local/texlive/2020/bin/x86_64-linux

加法:命令which texdocecho $PATH输出:

# which texdoc
/usr/bin/texdoc

为了更容易阅读我会换行

# echo $PATH
/home/xiaocy/.local/bin:
/usr/local/sbin:
/usr/local/bin:
/usr/sbin:/usr/bin:
/sbin:
/bin:
/usr/games:
/usr/local/games:
/snap/bin:
/usr/local/texlive/2020/bin/x86_64-linux:
/usr/local/texlive/2020/bin/x86_64-linux:
/usr/local/texlive/2020/bin/x86_64-linux

结论

该问题是由于路径覆盖引起的。修改~/.bashrc如下~/.profile内容可以解决这个问题。

export MANPATH=/usr/local/texlive/2020/texmf-dist/doc/man:${MANPATH}
export INFOPATH=/usr/local/texlive/2020/texmf-dist/doc/info:${INFOPATH}
export PATH=/usr/local/texlive/2020/bin/x86_64-linux:${PATH}

我不知道是否可以自己得出这个结论。这个结论是在@daleif(见评论)的帮助下得出的。非常感谢!

答案1

这是一个常见的错误。首先,操作系统从左到右搜索 PATH。(此处路径用冒号分隔)。然后它将每个路径部分附加到函数调用,直到找到第一个。这里有两个 latex 安装:apt 安装和一个通过 ISO 的 TL2020。由于 apt 安装以通过 找到的方式添加了 texlive 内容/usr/bin/,因此我们需要将 TL2020 部分放在 之前/usr/bin/。标准方法是确保前置TL2020 路径。

因此使用

export MANPATH=/usr/local/texlive/2020/texmf-dist/doc/man:${MANPATH}
export INFOPATH=/usr/local/texlive/2020/texmf-dist/doc/info:${INFOPATH}
export PATH=/usr/local/texlive/2020/bin/x86_64-linux:${PATH}

不是

export MANPATH=${MANPATH}:/usr/local/texlive/2020/texmf-dist/doc/man
export INFOPATH=${INFOPATH}:/usr/local/texlive/2020/texmf-dist/doc/info
export PATH=${PATH}:/usr/local/texlive/2020/bin/x86_64-linux

此外,请确保还将其添加到.profile(您需要注销并再次登录以使.profile编辑生效)。这是因为通过菜单或双击文件启动的任何编辑器都看不到任何与 Bash 相关的内容,因此永远不会看到更改。

相关内容