如何从 tex 文件中直接访问版本号?

如何从 tex 文件中直接访问版本号?

是否有可能(即是否有任何命令)直接从 tex 文件中访问 LaTeX/XeTeX 的版本号?

到目前为止,我只是使用一个小脚本来执行latex --versionxetex --version,只获取输出的第一行并将\newcommand{\LaTeXVersion}{...}或插入\newcommand{\XeTeXVersion}{...}到 tex 文件中的给定位置。

答案1

XeTeX 支持原语\XeTeXversion\XeTeXrevision以获取 XeTeX 的使用版本。XeTeX 还实现了 eTeX 扩展,因此\eTeXversion\eTeXrevision原语也可用于获取 eTeX 版本。

这些是横幅中打印版本的中间部分,例如,如果您有XeTeX 3.14159265-2.6-0.99992 (TeX Live 2015/Debian),则可以使用

\documentclass{scrartcl}
\begin{document}
\the\eTeXversion\eTeXrevision-\the\XeTeXversion\XeTeXrevision
\end{document}

要得到

2.6-0.99992

这足以识别引擎。仅3.14159265说明您的 XeTeX 基于哪个 TeX 版本。

您还要求提供“LaTeX”版本。LaTeX 格式的版本可用作\fmtversion,但这不是您调用 时显示的内容latex --version,因为此命令显示 使用的 TeX 引擎的版本latex,通常是pdfTeX。如果您的文档使用 pdfLaTeX 并且您想要获取版本,您可以使用类似于 XeTeX 的原语:

\documentclass{scrartcl}
\begin{document}
\the\eTeXversion\eTeXrevision-\the\pdftexversion.\pdftexrevision
\end{document}

结果:

2.6-140.19

但 pdfTeX 还允许您访问完整的横幅:

\documentclass{article}
\begin{document}
\pdftexbanner
\end{document}

例如在我的系统上这给出

This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018) kpathsea version 6.3.0

相关内容