TexLive 2012 Ubuntu 13.04 - 设置 TEXMFHOME 的正确方法

TexLive 2012 Ubuntu 13.04 - 设置 TEXMFHOME 的正确方法

我发现了许多关于如何做到这一点的指南(这里有几个):

但是我有一个不同的目录结构,并且答案中出现的任何位置都不存在于我的系统中。

使用locate我找到了现有“texmf.conf”文件的这些位置:

ben@ben-OptiPlex-9010:~$ locate texmf.cnf
/etc/texmf/web2c/texmf.cnf
/usr/share/doc/texlive-doc/latex/pgfplots/texmf.cnf
/usr/share/doc/texlive-pictures-doc/latex/pgfplots/texmf.cnf
/usr/share/texlive/texmf/web2c/texmf.cnf
/usr/share/texmf/web2c/texmf.cnf

所有texmf.conf文件(我忽略了嵌入在/usr/share/doc包含类似内容的文件do not edit this file directly)。提供的选项包括:

  • /usr/share/texmf/web2c/texmf.cnf & /usr/share/texlive/texmf/web2c/texmf.cnf:去修改其中texmf.cnf显然../../不存在的。那么创建它吗?在哪个位置,texmf或者texlive/texmf

  • /etc/texmf/web2c/texmf.cnfPLEASE DO NOT EDIT THIS FILE DIRECTLY. It is meant to be generated from files in /etc/texmf/texmf.d/仅包含00debian.cnf& 80tex4ht.cnff。我要添加一个新的吗?名称重要吗?

  • 按照一些答案中的建议去做,然后TEXMFHOME像我对 Ubuntu 中的任何其他变量(~/.pam_environment现在的文件)所做的那样更改变量?

答案1

在写这个问题的时候,我在Debian 上的 TEX (Live)拖船引导。

本部分解释了最佳选择及其原因:

中央配置文件 /etc/texmf/texmf.cnf 比较特殊,因为它定义了 TEX 世界中(几乎)所有程序的所有搜索路径。上面提到的所有路径都定义在其中,但其他行为(如各种大小和安全设置)也通过此文件控制。由于许多不同的软件包都会对最终的 texmf.cnf 有所贡献,因此我们采用了 Debian 中经常使用的方法:我们将配置文件的各个部分安装到特殊目录 /etc/texmf/texmf.d 中,并从这些代码片段生成最终文件。因此,如果系统管理员想要更改某些设置,他应该更改 /etc/texmf/texmf.d 中的相应文件并调用 update-texmf。以 TEXMFHOME 的设置为例:在 /etc/texmf/texmf.d/05TeXMF.cnf 中可以找到 TEXMFHOME = $HOME/texmf。但是,在我所在机构的安装中,输入文件始终位于 $HOME/texlib 中,我想保留它。因此,我更改了 /etc/texmf/texmf.d/05TeXMF.cnf 中的给定行,并调用(以 root 身份)update-texmf。这种方法的问题在于,在升级时,我要么必须拒绝对文件 05TeXMF.cnf 的更改,要么必须在 Debian 软件包中每次更改 05TeXMF.cnf 后更改设置。这里 KPSE 的一点魔法会有所帮助:由于 texmf.cnf 中较早的设置会覆盖较晚的设置,我可以将文件 03local.cnf 添加到 /etc/texmf/texmf.d,并将更改后的 TEXMFHOME 变量放在那里。 texmf.cnf 中的所有其他设置都可以进行类似的更改。如果您确实必须以用户身份更改 texmf.cnf 中的某些设置,则必须创建自己的 texmf.cnf 并覆盖 TEXMFCNF 变量

因此,要回答我的问题,Debian 版 TexLive 2012 中最好的方法似乎是:

  1. 创建一个03local.cnf文件/etc/texmf/texmf.d/并将我的作业添加TEXMFHOME到其中

  2. 通过调用应用更改sudo update-texmf

相关内容