“对于普通文本中的缩写和首字母缩略词,请使用间隔小写字母。”——Bringhurst
我通常看到的是人们将首字母缩略词包装成类似的形式\acro
,例如 TUGboat:
https://www.tug.org/tugboat/sampleart.ltx
我在自己的文档中使用了类似以下内容:
\usepackage{relsize}
\newcommand{\acro}[1]{{\textsmaller[0.5]{#1}}}
当然还有其他方法可以做到这一点。
问:有没有什么好的解决方案可以自动完成这个任务?比如,(La)TeX 能否识别出一个单词全部大写并自动排版?我很乐意给它一个单词列表。我知道我可以编写一个脚本(例如 Python)用 替换所有字符串实例\acro{string}
,也许这是唯一的方法,但如果能在 LaTeX 中做到这一点,而不是求助于外部脚本,那就太好了。
编辑:强烈推荐 pdflatex 解决方案;我不想只为了解决这个小问题而切换 LaTeX 引擎。
答案1
请注意,\acro
至少在首字母缩略词包中已经存在,因此最好对用户宏使用另一个名称。
在尝试任何处理缩略词的策略之前,请先检查一下加拿大运输安全局为此目的设计的套餐,否则您以后可能会后悔开始这次旅程。
话虽如此,除了使用宏之外,没有简单的方法可以替换某些单词的格式,但有 xelatex/lualatex 解决方案可以自动搜索单词列表来更改格式。例如,请参阅突出显示单词列表中的每个出现?,宏:替换所有出现的单词和强调文档中出现的所有单词。例如,使用xelated
,一个可能的解决方案是使用xesearch
。示例:
\documentclass[twocolumn]{article}
\usepackage{xesearch,graphicx,xcolor}
\UndoBoundary{-} % hyphens in acronyms !!
\SearchList{acro}{\resizebox{!}{1.25ex}{\color{red!50!black}%
\uppercase{#1}}}{covid?,rna,DNA,elisa,*WHO,?pcr}
\SearchList{acrocase}{\resizebox{!}{1.25ex}{\color{red!50!black}%
#1}}{SARS-CoV-2}
\SearchList{countries}{\textsc{\color{blue!50!black}\lowercase{#1}}}{CZ,USA}
\begin{document}
Mr. So and So, from the WHO, % case-sensitive acronym
who % not an acronym !!
has announced yesterday in the UK % oops, not in the list!!
and the UsA that the eLiSa % case-insensitive acronyms
test to detect antibodies against
SARS-CoV-2 % acronym with lower case
in covid-19 patients with % acronym with wild suffix
with first signs of the disease is useless,
said now that even pcr % wild case-insensitive acronym
test like the RT-pcr % prefix accepted as part of the acronym
Multiplex-{}pcr % prefix rejected an part of the acronym
used too early in the course of infection
might produce false negative results.
\end{document}