尝试性解决方案:软链接(或者mklink在Windows中)

尝试性解决方案:软链接(或者mklink在Windows中)

问题:在nonstopmode共享文件夹中进行编译==>如何避免冲突文件?

我习惯于同时运行 latexmk,nonstopmode每次换机器的时候都会忘记停止,而我经常编辑的文档托管在 Nutstore(Dropbox 的中文版)上,所以两个 latexmk 进程同时运行nonstopmode会产生很多冲突文件。

有没有latexmk 的设置可以“检测”是否有另一个 latexmk 进程也在运行nonstopmode?目前,我正在使用以下参数编译我的 tex 文档:

latexmk.pl -pvc -pdf --synctex=-1 -src-specials -silent -time -interaction=nonstopmode filename.tex 我正在寻找一组可以在 中编译的规范nonstopmode,但只有在没有正在进行的编译过程写入同一目录时才会开始编译。我可以想象project.latexmain.lock故意将文件放入工作目录中就可以达到目的。

我的设置的详细信息:

我使用两台具有相同用户名的 Windows 计算机。并且,我latexmk通过 Git-Bash 运行,通过欧洲货币联盟(控制台模拟器)。目前,我已经定义了“启动任务”,这样每当我启动 ConEMU 时,我的活动文档列表(正在进行的项目、研究日志和笔记)都会被“加载”(编译在 中nonstopmode)。

就编译器而言,我使用的是 MikTex。

答案1

尝试性解决方案:软链接(或者mklink在Windows中)

作为@土拨鼠建议,人们可以选择任何他/她想要的本地文件夹,并将所有编译都放在这个本地文件夹中。以下是一些帮助我理解这种情况的说明:

  • 首先,软链接可以构造为文件:因此,通过在 Windows 中发出以下命令,目标和原点之间就会发生双向“同步”。

    mklink address_for_target.txt address_for_Origin.txt

  • 在我看来,软链接创建 Origin 文件的“物理副本”,我的意思是:我可以在目标位置“看到”相同的文件。并且,根据其“真实位置”编辑任一文件都将更新另一个位置的内容。

  • 为了处理图片导入,可以创建软链接也适用于文件夹(目录)。

  • 最后,为了实现向前和向后的搜索/跳转,创建一个软链接对于project_main.tex.latexmain。(我的 Tex 编辑环境:Windows OS + GVim + latexmk(通过 ConEMU)+ MikTeX 发行版)

具体步骤(Windows系统):

  1. 找到一个本地文件夹(就我而言:D:\build用于测试目的);
  2. 使用 创建“软链接” mklink D:\build\main_project.tex C:\project\main_projeect.tex。(并且,重复mklink对于*.tex通过函数获取的所有文件\input{},以及对于,这样的命令project.latexmain可能会有所帮助(这是我的演示:建立链接)。
  3. 一旦构建了所有“软链接”,就可以编辑目标目录中的文件;并且编译也可以运​​行。

注意更新

然而,为文件创建这样的镜像对我来说是全新的,而且似乎需要花费我更多的时间才能将其融入到我的工作流程中。

約翰·柯林斯,我们敬爱的 Latexmk 维护者,已将问题作为功能请求接受。他在评论中说,在latexmk同一台计算机上运行两个进程也会生成冲突文件。通过 Dropbox 进行文件同步只是此类冲突的一个特例。等待更新 :)

相关内容