我通常使用 Unix 系统,但一段时间以来,我不得不使用 Windows7 设置。我安装了 MikTex 和 texmaker 4.0.4。一切都正常,只是 texmaker 似乎不尊重变量TEXINPUTS
。
MWE:进入一个目录并创建目录TeXinputs
和subdir
。在subdir
文件中testinput.tex
:
\documentclass[10pt]{article}
\usepackage{null}
\begin{document}
Nothing
\end{document}
在目录中TeXinputs
创建文件null.sty
:
\NeedsTeXFormat{LaTeX2e}[1996/06/01]
\ProvidesPackage{null}[2013/11/12 null package.]
\def\called{\relax}
\endinput
然后将环境变量添加为用户, TEXINPUTS
值为.:../TeXinputs//
。
要在 Windows 中添加它,请打开“开始”菜单,然后在搜索框中开始输入“环境”(我认为非英语安装会有所不同 --- 西班牙语应该是“variables de entorno”)。然后选择“为您的帐户设置环境变量”,在打开的窗口中,您可以添加所需的所有变量。这是我的示例:
我已经定义并检查了它(这是来自 git 安装的 bash shell):
$echo $TEXINPUTS
./:../TeXinpus//
我的想法是,我可以在我的工作目录中使用这样的结构:
$ls
TeXinputs subdir1 subdir2
这非常适合 MikTeX,以便将公共文件放在同一个位置。我可以从 bash 正确编译我的文件:
$ pdflatex testinput
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (MiKTeX 2.9 64-bit)
entering extended mode
("z:\adit\My Documents\test\subdir\testinput.tex"
LaTeX2e <2011/06/27>
Babel <v3.8m> and hyphenation patterns for english, afrikaans, ancientgreek, ar
abic, armenian, assamese, basque, bengali, bokmal, bulgarian, catalan, coptic,
croatian, czech, danish, dutch, esperanto, estonian, farsi, finnish, french, ga
lician, german, german-x-2013-05-26, greek, gujarati, hindi, hungarian, iceland
ic, indonesian, interlingua, irish, italian, kannada, kurmanji, latin, latvian,
lithuanian, malayalam, marathi, mongolian, mongolianlmc, monogreek, ngerman, n
german-x-2013-05-26, nynorsk, oriya, panjabi, pinyin, polish, portuguese, roman
ian, russian, sanskrit, serbian, slovak, slovenian, spanish, swedish, swissgerm
an, tamil, telugu, turkish, turkmen, ukenglish, ukrainian, uppersorbian, usengl
ishmax, welsh, loaded.
("C:\Program Files\MiKTeX 2.9\tex\latex\base\article.cls"
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
("C:\Program Files\MiKTeX 2.9\tex\latex\base\size10.clo"))
("z:\adit\My Documents\test\subdir\..\TeXinputs\\null.sty")
("z:\adit\My Documents\test\subdir\testinput.aux") [1{C:/ProgramData/MiKTeX/2.9
/pdftex/config/pdftex.map}] ("z:\adit\My Documents\test\subdir\testinput.aux")
)<C:/Program Files/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmr10.pfb>
Output written on testinput.pdf (1 page, 12304 bytes).
Transcript written on testinput.log.
如您所见,文件z:\adit\My Documents\test\subdir\..\TeXinputs\\null.sty
已找到并且一切正常。
问题与疑问:在 texmaker 中打开该文件并尝试编译时出现错误 --- 找不到 ../TeXinputs/null.sty 文件。
我也检查过了:
将 TEXINPUTS 设置为“系统”环境变量(不起作用)
使用绝对路径而不是相对路径(路径中带有或不带有空格都不起作用)
有什么提示可以解释为什么相对 TEXINPUTS 路径在 texmaker 中不起作用吗?
答案1
我找到解决方案了!
问题在于路径:
中的冒号TEXINPUTS
,在 Unix 中它用于分隔不同的路径,而这会让 Windows 非常困惑。要分隔路径中的元素,您应该使用分号,而不是冒号;
。
因此设置:
TEXINPUTS=../TeXinputs
如下图所示:
然后它做在 texmaker 中有效。如果您需要多个路径,可以使用
TEXINPUTS=../TeXinputs;C:/Users/MYUSER/Desktop/TeXinputsGlobal
...并且运行正常。
令人困惑的是,bash
shell 理解该符号/c/
,但是C:\
却不CMD.exe
理解。