我想在我的 Latex (.tex) 文件中创建如下注释:
% My pgf version is: 3.1.9a
除了版本号(上例中的“3.1.9a”)来自命令之外\pgfversion
。
有没有办法做到这一点?
注意:我认为 PGF 版本最好作为注释隐藏在 .tex 文件中,而不是打印在我创建的文档中。我的问题是,所有跟在“%”注释行启动符后面的文本都被视为注释文本。我在 Windows 中使用 MiKTeX,在 Ubuntu 中使用 TeX Live。答案应该与两者兼容。
答案1
如果你将下面的 Lua 脚本保存为pgfv.lua
并有一个文件说myfile.tex
有一个评论
% My pgf version is: anything
然后运行
texlua pgfv.lua myfile.tex
将更新myfile.tex
,以便评论具有您当前的 pgf 版本
% My pgf version is: 3.1.9a
笔记该脚本使用最少的错误检查重写文件,运行之前请先备份。
Lua脚本;
-- get pgf version file
kpse.set_program_name("kpsewhich")
local pgfr=kpse.lookup("pgf.revision.tex")
local f = assert(io.open(pgfr, "r"))
local content = f:read("*all")
f:close()
-- extract version string
local v,v2,pgfversion = string.find(content,"pgfversion{([^}]*)")
local myfile = io.open(arg[1], "r")
local content = myfile:read("*all")
myfile:close()
print ("% My pgf version is: " .. pgfversion)
-- edit comment
content = string.gsub(content,
"%% My pgf version is: %S*",
"%% My pgf version is: " .. pgfversion)
-- update file BEWARE WRITES FILE
local myfile = io.open(arg[1], "w")
myfile:write(content)
myfile:close()