
Gostaria de criar um comentário em meu arquivo Latex (.tex) da seguinte maneira:
% My pgf version is: 3.1.9a
exceto que o número da versão ("3.1.9a" no exemplo acima) vem do \pgfversion
comando.
Existe uma maneira de fazer isso?
Nota: Na minha opinião, a versão PGF fica melhor guardada no arquivo .tex como um comentário do que impressa no documento que eu crio. Meu problema é que todo o texto que segue o iniciador da linha de comentários '%' é tratado literalmente como texto de comentário. Eu uso MiKTeX no Windows e TeX Live no Ubuntu. A resposta deve ser compatível com ambos.
Responder1
se você salvar o script Lua abaixo comopgfv.lua
e faça com que um arquivo diga myfile.tex
que tem um comentário
% My pgf version is: anything
então correndo
texlua pgfv.lua myfile.tex
será atualizado myfile.tex
para que o comentário tenha sua versão atual do pgf
% My pgf version is: 3.1.9a
OBSERVAÇÃOeste script reescreve o arquivo com verificações mínimas de erros, faça backup dele antes de executá-lo.
roteiro 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()