排版缩略词时没有明确标记

排版缩略词时没有明确标记

“对于普通文本中的缩写和首字母缩略词,请使用间隔小写字母。”——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}

姆韦

相关内容