显然Miktex 有时无法正确设置 TEXMFHOME 变量,或者将其留空,即使您手动将文件夹添加到“根”列表并刷新文件名数据库也是如此。那么如何设置 TEXMFHOME 变量?换一种说法:Miktex 的版本是什么tlmgr conf texmf TEXMFHOME ~/path/to/texmf
?
答案1
首先要说一句:
我自己没有使用过 MikTeX portable,而且说实话我也不完全了解它。所以让我根据我找到的内容给出一些提示。也许其他人可以提供更多信息。
MiKTeX 显然不使用 kpse 机制。在 MikTeX 中添加本地 TeXMF 树的推荐方法是使用 MiKTeX 选项对话框:
- 通过执行所包含的来启动 MiKTeX 便携版
miktex-portable.cmd
。 - 右键单击出现托盘栏图标并选择“MiKTeX 选项”。
- 选择“Roots”选项卡并添加您的本地 TEXMF 树。它将被保存为相对路径
<miktex-portable>\miktex\config\miktexstartup.ini
。您的本地 TEXMF 树一定不是 的子文件夹<miktex-portable>
。 我现在想做的似乎不起作用,我认为这是 MiKTeX 2.9 中的一个错误:激活“显示 MiKTeX 维护的根目录”后,应该能够更改文件夹的顺序,但我无法做到这一点。- 单击“确定”后,所有内容将保存在 ini 中,如上所述。
根据<miktex-portable>\doc\miktex\miktex.pdf
第 4.6 节,(或参见<miktex-portable>\doc\miktex\localadditions.html
网页链接:http://docs.miktex.org/manual/localadditions.html)还有另外2种方法:
- 使用命令行选项
--include-directory=dir
,例如latex --include-directory=C:\path\to\my\style\files thesis.tex
。我不知道这是否适用于完整的本地 TEXMF 树,但我担心它不适用。 - 设置环境变量,这在脚本别名批处理文件中很有用。给定的示例是
set TEXINPUTS=C:\path\to\my\style\files
latex thesis.tex
我更倾向于使用相对路径和命令行参数,而不是绝对路径,例如,如果你latex.cmd
直接在中保存批处理脚本X:\miktex-portable
,并且你的本地 TEXMF 树在X:\localtexmf
@echo off
setlocal
set LOCALDRIVE=%~d0
set LOCALPATH=%~dp0
:: %~d0 enhances to X: here, %~dp0 to X:\miktex-portable\
set PATH=%LOCALPATH%miktex\bin;%PATH%
set TEXINPUTS=%LOCALDRIVE%\localtexmf
:: I fear, this does not work in the wanted manner
:: There are some other possible environment variables
latex %*
:: %* pipes all command line options, given to to batch file, to the call of latex.exe
然后你就可以这样做了latex.cmd <command line options> file_to_compile.tex
。
另一方面,您可以考虑使用便携式 texlive 版本。