通过从Git获取已更改的tex文件,自动化Bash中的LaTeX编译?

通过从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文件

我想将更改后的Tex文件从Git变量获取到Bash变量,这样就可以自动编译更改后的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进行编译。然后,下面显示了如何将脚本与生成文件一起使用

    生成文件

    进一步信息

  • latex项目的Makefile

  • 晚点再来


  • 我相信这就是
    make
    的目的。。。还是有要求
    make
    无法满足?@dedObed我不知道。这是众所周知的难以使用的基本使这一点,根据这一点,因此它看起来有一个东西叫latexmk更多。我还不知道该信任哪些信息。你用过基本的make吗?
    git diff--name only
    @hhh我用vanilla
    make
    @dedObed
    make
    编写会议论文(约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.