找不到解决 TEXINPUTS 环境问题的方法。
在我的文档中,我使用个人 .sty 模板。每个文档都是一个新的git
存储库。
通常我将模板放入文件中并通过命令texlive\texmf-dist\tex\latex\mytemp
使用它。\usepackage{mytemp}
doc.tex
现在我决定为我的包创建存储库mytemp
并将其用作新文档中的子模块。
因此文档的工作目录是:
- mytemp\mytemp.sty
- mytemp\mytemp1.sty (mytemp.sty 的依赖项)
- 文档
- .gitmodules
在 Windows 7 上使用 Sublime Text 3 构建时出现错误:LaTeX Error: File mytemp.sty not found
我想使用我的包的相对路径并尝试编辑 LaTeXTools 设置:
"builder_settings" : {
"windows" : {
"env" : {
"TEXINPUTS" : ".:$TEXINPUTS"
}
}
}
但错误仍然没有修复。
有什么想法可以解决它吗?
我尝试了很多种方法,但仍然没有结果。
PS. 在 MacOS 上,即使没有TEXINPUTS
在 LaTeXTools 设置中重新定义,一切也能正常构建。
答案1
对于 posix/unix/mac 上的路径变量,您会看到 :(冒号)在 Windows 上是的;(分号)
对于这种差异,您需要回溯到历史的很长一段时间,并指责系统制造商未能找到一致的方法,即回到 CP/M,使用 : 作为驱动器到路径分隔符,通过 IBM/MS DOS 进入 Windows。因此,Windows 会接受 / 代替 \,但不会接受 : 代替 ;
因此尝试以下变体,但可能并非全部正确,请注意 Texinputs 后的第一个 ENV 分隔符“仍然是:
"TEXINPUTS": ".//;q:/hard coded/location/;./my sub dirs/;$TEXINPUTS;"
注意:Windows 路径内不应有完整的冒号 :,除非它是驱动器的绝对地址,例如“D:/mydata”,而 .:/whatever 是无效的。
.// 应该转换为当前目录以及从那里开始的各个子目录
A:/whatever/ 是绝对路径,应该终止/
./my sub/ 是空间中的相对子目录,不推荐使用
$TEXINPUTS 大致 = ; 并且不太可能工作,因为结尾现在转换为 ;;;
所以对于这个变量避免使用 $TEXINPUTS 或 %TEXINPUTS% 只需确保行中最后一个“内的最后一个字符是;因此以 ;”结束该行