我有一份使用发布者类文件 ( agutex
) 准备的 LaTeX 手稿,其中我使用了四个软件包 ( 、、、) booktabs
。我特别使用词汇表来表示首字母缩略词。提交后,编辑办公室回复说他们所有软件包都有问题,不允许我使用任何自定义命令。是否有任何工具可以“降级”LaTeX 文档,例如自动用适当的文本(带或不带扩展的首字母缩略词)替换每次出现的 ,对 也类似?glossaries
siunitx
graphicx
\gls
siunitx
如果手工做的话会有点痛苦。
答案1
我使用这个脚本删除了手稿中的所有\gls
和\glspl
出现的单词,并使用非常简单的算法用首字母缩略词替换它们。之后仍需要进行一些编辑。这个脚本既快又粗略。
#!/usr/bin/env python3.2
f_in = "manuscript.tex"
f_out = "manuscript_mod.tex"
lines = open(f_in).readlines()
acros = dict([(w[1][:-1], w[3].strip()[:-1]) for w in [line.split('{') for line in
lines if line.startswith(r"\newacronym")]])
had = dict.fromkeys(acros, False)
with open(f_out, 'w') as fp:
for line in lines:
if r"\glsresetall" in line:
had = dict.fromkeys(acros, False)
if line.startswith("%"):
fp.write(line)
continue
for m in ("gls", "glspl"):
pl = ("s" if "pl" in m else "")
ln = 7 if "pl" in m else 5
while "\\" + m + "{" in line:
print("Working on: " + line)
strt = line.find("\\" + m + "{")
end = line.find("}", strt)
acr = line[strt+ln:end]
if had[acr]:
line = line[:strt] + acr + pl + line[end+1:]
else:
line = line[:strt] + acros[acr] + pl + " (" + acr + pl + ")" + line[end+1:]
had[acr] = True
fp.write(line)