Как создать комментарий с помощью \pgfversion

Как создать комментарий с помощью \pgfversion

Я хотел бы создать комментарий в моем файле Latex (.tex) следующим образом:

% My pgf version is: 3.1.9a

за исключением того, что номер версии («3.1.9a» в примере выше) берется из \pgfversionкоманды.

Есть ли способ сделать это?

Примечание: По моему мнению, версию PGF лучше спрятать в файле .tex в качестве комментария, а не печатать в документе, который я создаю. Моя проблема в том, что весь текст после инициатора строки комментария '%' воспринимается буквально как текст комментария. Я использую MiKTeX в Windows и TeX Live в Ubuntu. Ответ должен быть совместим с обоими.

решение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()

Связанный контент