通过从Git获取已更改的tex文件,自动化Bash中的LaTeX编译?
我想将更改后的Tex文件从Git变量获取到Bash变量,这样就可以自动编译更改后的Tex文件 范例通过从Git获取已更改的tex文件,自动化Bash中的LaTeX编译?,bash,git,latex,pdflatex,Bash,Git,Latex,Pdflatex,我想将更改后的Tex文件从Git变量获取到Bash变量,这样就可以自动编译更改后的Tex文件 范例 $git状态 论分行行长 您的分支比“原始/主分支”早1个提交。 (使用“git push”发布本地提交) 未为提交而暂存的更改: (使用“git add…”更新将提交的内容) (使用“git签出--…”放弃工作目录中的更改) 修改:Article/main.tex 在这里,我想在从git获取路径后,使用命令pdflatex-Article/main.tex运行一个脚本 如何将更改后的Tex文件
$git状态
论分行行长
您的分支比“原始/主分支”早1个提交。
(使用“git push”发布本地提交)
未为提交而暂存的更改:
(使用“git add…”更新将提交的内容)
(使用“git签出--…”放弃工作目录中的更改)
修改:Article/main.tex
在这里,我想在从git获取路径后,使用命令pdflatex-Article/main.tex
运行一个脚本
如何将更改后的Tex文件从Git获取到Bash变量,以便使用pdflatex编译它们?
建议
git diff——在Lea Gris的评论中仅列出名称
这方面有很多选择。我感谢Lea Gris在这里研究解决方案 备选方案 一,。对于单个已更改的Tex文件,这样就可以了 二,。对于许多已更改的Tex文件目录,它们必须具有不同的名称,其中已编译的PDF文件将出现在当前目录中 三,。对于同一个命名、更改过的Tex文件,Lea评论道(我解释说,还没有让它工作,试图理解它) 固溶体 四,。试试Latexmk,一个make的特殊版本,它只为LaTeX做所有的重新编译和重建工作。我发现Python比bash更容易在不同的系统上使用,例如 在这里,我们使用latexmk进行编译。然后,下面显示了如何将脚本与生成文件一起使用 生成文件 进一步信息
我相信这就是
make
的目的。。。还是有要求make
无法满足?@dedObed我不知道。这是众所周知的难以使用的基本使这一点,根据这一点,因此它看起来有一个东西叫latexmk更多。我还不知道该信任哪些信息。你用过基本的make吗?git diff--name only
@hhh我用vanillamake
@dedObedmake
编写会议论文(约4页;约5个独立数字)有很好的经验,假设规则执行一次,就完成了。但是,当运行一个latex
版本时,必须多次运行它以修复未解析的引用并不少见。如果你有参考书目,你需要在两者之间运行bibtex
或biber
。还有像makeindex
这样的东西。它不太适合make
。因此,像latexmk
git diff--name only'*.tex'| xargs-l1 pdflatex
@LéaGris是的,它在您尚未提交文件时就起作用,因此如果忘记编译,则不一定要获得编译文件的最后更新。谢谢你的提示!我的意思是不需要grep。@LéaGris当您这样做时,它会将所有内容编译到当前目录,如果其他文件夹中所有同名的tex文件都存在问题,有没有办法让它们编译到自己的目录?git diff--name only'*.tex'| xargs-l1-I{}sh-c'cd“${1%/*}”;pdflatex“$1”{}
$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: Article/main.tex
pdflatex `git diff --name-only | grep *.tex`
git diff --name-only '*.tex' | xargs -l1 pdflatex
git diff --name-only '*.tex' | xargs -l1 -I{} sh -c 'cd "${1%/*}"; pdflatex "$1"' _ {}
import os
Articles =["A","B","C"]
for article in Articles:
#Compiling
os.system("latexmk -pdf -auxdir=tmp "+article)
all:
python runAboveScript.py
clean:
os.system("rm *.snm")
os.system("rm *.nav")
#Add here everything you want to clean.