Texmaker(Windows 7)不使用TEXINPUTS 环境变量?

Texmaker(Windows 7)不使用TEXINPUTS 环境变量?

我通常使用 Unix 系统,但一段时间以来,我不得不使用 Windows7 设置。我安装了 MikTex 和 texmaker 4.0.4。一切都正常,只是 texmaker 似乎不尊重变量TEXINPUTS

MWE:进入一个目录并创建目录TeXinputssubdir。在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

如下图所示:

设置 texinputs

然后它在 texmaker 中有效。如果您需要多个路径,可以使用

TEXINPUTS=../TeXinputs;C:/Users/MYUSER/Desktop/TeXinputsGlobal

...并且运行正常。

令人困惑的是,bashshell 理解该符号/c/,但是C:\却不CMD.exe理解。

相关内容