LaTeXTools + Sublime + Windows + TEXINPUTS

LaTeXTools + Sublime + Windows + TEXINPUTS

找不到解决 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% 只需确保行中最后一个“内的最后一个字符是;因此以 ;”结束该行

相关内容