
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
메모이 스크립트는 최소한의 오류 검사를 통해 파일을 다시 작성하므로 이를 실행하기 전에 백업하십시오.
루아 스크립트;
-- 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()