![如何获取插入文件中的元信息(TeXLive-Version、Compiler、-version)?](https://linux22.com/image/354327/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E6%8F%92%E5%85%A5%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E5%85%83%E4%BF%A1%E6%81%AF%EF%BC%88TeXLive-Version%E3%80%81Compiler%E3%80%81-version%EF%BC%89%EF%BC%9F.png)
如同LuaTex 中的版权页我想将 -version 的信息TeX Live
、我使用的编译器 ( LuaLaTeX
) 及其版本放入版权页中。此外,还要获取文件中使用的字体和 的版本等biblatex
。
这不是为了调试问题而是为了显示 pdf 中的信息。
答案1
LuaTeX 版本可通过内部变量\luatexversion
和获得\luatexrevision
。这些变量也可在 Lua 级别访问。主版本和次版本均编码在 中\luatexversion
,主版本是 的结果\luatexversion/100
,次版本是mod(\luatexversion,100)
。
TeXlive 版本在 LuaTeX 横幅中,因此您可以使用正则表达式提取它。
This is LuaTeX, Version 0.95.0 (TeX Live 2016)
因为它是括号中的唯一内容,所以我们匹配括号内的所有内容。对于 Biber 版本,我们需要调用biber -v
并读取其输出。在这里,我们匹配括号后的所有内容:
。但是,我们需要 shell 转义才能实现这一点。
\documentclass{article}
\usepackage{luacode}
\begin{document}
\begin{luacode*}
tex.sprint("Lua\\TeX{} version "
.. math.floor(tex.luatexversion / 100) .. "."
.. math.floor(tex.luatexversion % 100) .. "."
.. math.floor(tex.luatexrevision))
local tlversion = string.match(tex.luatexbanner, "%((.*)%)")
tex.sprint(tlversion)
local fh = io.popen("biber -v")
local biberversion = string.match(fh:read(), ":(.*)$")
tex.sprint(biberversion)
\end{luacode*}
\end{document}