访问 bash 以 TeX 宏中获取 git 信息

访问 bash 以 TeX 宏中获取 git 信息

我不确定这是否可行,但我的目标是在我的文件的 PDF 输出中的 git 源历史记录中包含一些有关我的 LaTex 文件当前点的信息。

我希望能够访问以下 shell 命令的结果信息git describe --tags

所以我想编写一个在pdftex运行时触发的宏。然后该宏将运行git describe --tags,然后该命令的值将放置在输出文档中的指定位置(即页眉)。

我真的不确定是否可以编写一个可以运行 shell 命令的 LaTeX 宏,但如果有人能提出任何建议我将不胜感激。

答案1

正如评论中所建议的,有一些gitinfo软件包提供了广泛的功能。如果您正在寻找一种快速而粗略的解决方案,您可以使用 Heiko 的软件包catchfile将文件的内容读入宏。语法"| <cmd>"允许将stdoutof<cmd>作为文件输入。

% arara: pdflatex: { shell: on }
\documentclass{article}
\usepackage{catchfile}
\begin{document}
\CatchFileDef\gitdescribe{"| git describe --tags"}{}

The output of \texttt{git describe --tags} is ``\gitdescribe''.
\end{document}

在运行 TeX 文件(我将其命名为test.tex)之前,我做了

$ git init
$ git add test.tex
$ git commit -m "Some commit"
$ git tag 0.0.1 master

重要的:pdflatex使用该选项运行--shell-escape

在此处输入图片描述

相关内容