非常遗憾,各位。这个项目已经随着我短暂学术生涯的告一段落而太监了。
LaTeX是论文撰写时常用的排版系统,但是其配套的开发环境的选择却不丰富。我于近期开始尝试在在宇宙第一IDE Visual Studio中编写LaTeX文档,这样做的优点有:
- 源代码管理。与TeXworks等编辑器相比,Visual Studio中集成了Git,可以在服务器上备份代码、方便多人同时编写、提供版本控制等功能。
- 多文件管理。大型的LaTeX文档通常会分为多个文件进行编写,对应全文的不同章节之类的。传统编辑器,VSCode、Atom通常是面对单个文件而设计的,使用Visual Studio则可以自然而然地通过“解决方案资源管理器”来管理文件。
要实现这个目标,这次要解决的问题是在VS中自动使用pdfLaTeX编译tex文件以生成pdf文档。
一、创建一个Visual C++空项目。
同时可以可选地新建一个GIT存储库(右下角选项)。项目名称建议起TEX根文件地名称,这样方便我们之后的处理。
二、删除解决方案自动生成的筛选器“头文件”“源文件”“资源文件”,提升视觉体验。
三、右键项目->属性。
在“所有配置”及“所有平台”下,修改项目配置类型为生成文件。应用。
四、接下来在这个页面可以可选地配置输出目录和中间目录。
例如我是这样配置的:
五、切换到“NMake”。
生成命令行填入pdfLaTeX的生成四连:
pdflatex -synctex=1 -interaction=nonstopmode -file-line-error $(ProjectName)
bibtex $(ProjectName)
pdflatex -synctex=1 -interaction=nonstopmode -file-line-error $(ProjectName)
pdflatex -synctex=1 -interaction=nonstopmode -file-line-error $(ProjectName)
在“清除”命令行清理生成的临时文件:
del /F /Q "$(OutDir)*.pdf"
del /F /Q "$(OutDir)*.aux"
del /F /Q "$(OutDir)*.bbl"
del /F /Q "$(OutDir)*.blg"
del /F /Q "$(OutDir)*.brf"
del /F /Q "$(OutDir)*.lbl"
del /F /Q "$(OutDir)*.log"
del /F /Q "$(OutDir)*.synctex.gz"
del /F /Q "$(OutDir)*.fdb_latexmk"
del /F /Q "$(OutDir)*.fls"
在输出里填入
$(ProjectName).pdf
如图所示
这样,在生成该项目时,VS将自动编译与项目名称同名的TEX文件和BIB文件,然后生成与项目名称同名的PDF文件。
六、切换到“调试”。
在命令中填写:explorer.exe。
在命令参数中填写:"$(TargetPath)"
如图所示
这样,在启动项目时将启动资源管理器,调用pdf关联的默认程序打开生成的pdf文档。
七、将TEX文件和BIB文件复制到项目目录下后,再添加到解决方案中。
同时,可以根据文件本身的逻辑关系建立筛选器,使得整体结构清晰。
此外,需要注意的是,根据我们前面的配置,要保持TEX的根文件和BIB文件与项目同名。
如图所示。
八、编辑.gitignore。
下面是我的配置,除了包含我们再清理时要清除的文件外,还包含了vs的临时文件。
.vs/
/[Tt]emp
*.tlog
*.pdf
*.aux
*.bbl
*.blg
*.brf
*.lbl
*.log
*.synctex.gz
*.fdb_latexmk
*.fls
至此项目的基本设置就完成了,在Visual Studio中,点击F5就可以自动编译TEX文档并查看结果。
然而,目前这个简单的方案还伴随着下面的缺点:
- 没有代码高亮。
- 没有代码提示。
- 每一次都是重新生成操作。
这些缺点只能通过Visual Studio插件进一步实现;作为替代方案,我建议可以在暂时在VS中启动其它编辑器来进行编辑TEX文件和BIB文件。
自定义VS插件的具体细节我仍在探索之中,目前实现的效果暂时如下:
待功能基本稳定时,我会将插件开源后及时更新到这里。