
Ich möchte in meiner Latex-Datei (.tex) einen Kommentar wie folgt erstellen:
% My pgf version is: 3.1.9a
außer dass die Versionsnummer (im obigen Beispiel „3.1.9a“) aus dem \pgfversion
Befehl stammt.
Gibt es eine Möglichkeit, dies zu tun?
Hinweis: Meiner Meinung nach ist es besser, die PGF-Version als Kommentar in der .tex-Datei zu verstauen, als sie in dem von mir erstellten Dokument auszudrucken. Mein Problem ist, dass der gesamte Text nach dem Kommentarzeileninitiator „%“ wörtlich als Kommentartext behandelt wird. Ich verwende MiKTeX unter Windows und TeX Live unter Ubuntu. Die Antwort sollte mit beiden kompatibel sein.
Antwort1
wenn Sie das Lua-Skript unten speichern alspgfv.lua
und lassen Sie eine Datei sagen myfile.tex
, die einen Kommentar hat
% My pgf version is: anything
dann laufen
texlua pgfv.lua myfile.tex
wird aktualisiert myfile.tex
, sodass der Kommentar Ihre aktuelle PGF-Version enthält
% My pgf version is: 3.1.9a
NOTIZDieses Skript schreibt die Datei mit minimalen Fehlerprüfungen neu. Sichern Sie sie, bevor Sie es ausführen.
Lua-Skript;
-- 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()