我不确定这是否可行,但我的目标是在我的文件的 PDF 输出中的 git 源历史记录中包含一些有关我的 LaTex 文件当前点的信息。
我希望能够访问以下 shell 命令的结果信息git describe --tags
所以我想编写一个在pdftex
运行时触发的宏。然后该宏将运行git describe --tags
,然后该命令的值将放置在输出文档中的指定位置(即页眉)。
我真的不确定是否可以编写一个可以运行 shell 命令的 LaTeX 宏,但如果有人能提出任何建议我将不胜感激。
答案1
正如评论中所建议的,有一些gitinfo
软件包提供了广泛的功能。如果您正在寻找一种快速而粗略的解决方案,您可以使用 Heiko 的软件包catchfile
将文件的内容读入宏。语法"| <cmd>"
允许将stdout
of<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
!