![处理仅用于扩展首字母缩略词的“the”需求的最佳实践](https://linux22.com/image/413239/%E5%A4%84%E7%90%86%E4%BB%85%E7%94%A8%E4%BA%8E%E6%89%A9%E5%B1%95%E9%A6%96%E5%AD%97%E6%AF%8D%E7%BC%A9%E7%95%A5%E8%AF%8D%E7%9A%84%E2%80%9Cthe%E2%80%9D%E9%9C%80%E6%B1%82%E7%9A%84%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5.png)
LaTeX 的缩写包非常非常方便。但是,它似乎无法解决书写要求。
首先,我想说明我认为缩写包的用处,然后描述它的实用性如何因常见用例而受到影响。我使用这个acro
包,如果可能的话,我想继续使用它,但我怀疑大多数缩写包都会遇到这个问题。
缩写包允许我使用缩写词,而无需跟踪它们在文档中的首次出现位置或其中的重要部分。该包将找到第一次出现的位置并提供缩写和完整格式,然后使用缩写格式。
问题是,长格式通常需要在前面加定冠词“the”,而短格式则不需要。例如:
Bob hails from *the* Centre for Spaghetti Studies (CSS).
Bob hails from CSS.
*The* Centre for Spaghetti Studies's (CSS's) mandate is broad.
CSS's mandate is broad.
因此,我做必须跟踪第一次出现的情况,这很好地否定了我使用任何首字母缩略词包的主要原因。
在编写 LaTeX 文档时,是否有任何做法可以挽救首字母缩略词包的优势?
将长格式定义为包含“the”并不理想。假设我的意思是:
CSS scientists eat well.
第一次出现时我会得到:
*The* Centre for Spaghetti Studies scientists eat well.
我真正想要的是:
Centre for Spaghetti Studies scientists eat well.
谢谢。
答案1
只要您有最新的,acro
您就可以定义定冠词和使用它的命令。然后您所要做的就是相应地定义首字母缩略词:
\documentclass{article}
\usepackage{acro}
\DeclareAcroArticle{definite}{the}
\DeclareAcroEnding{possessive}{'s}{'s}
\NewAcroCommand\dac{m}{\acrodefinite\UseAcroTemplate{first}{#1}}
\NewAcroCommand\Dac{m}{\acroupper\acrodefinite\UseAcroTemplate{first}{#1}}
\NewAcroCommand\Dacg{m}{%
\acroupper
\acrodefinite
\acropossessive
\UseAcroTemplate{first}{#1}%
}
\DeclareAcronym{css}{
short = CSS ,
long = Centre for Spaghetti Studies ,
short-definite = \nospace ,
long-possessive = '
}
\begin{document}
Bob hails from \dac{css}. \par
Bob hails from \dac{css}.
\acreset{css}
\Dacg{css} mandate is broad. \par
\Dacg{css} mandate is broad.
\acreset{css}
\Dac{css} scientists eat well. \par
\Dac{css} scientists eat well. \par
\end{document}
答案2
您可以定义一个新模板:
\documentclass[a4paper,12pt]{book}
\usepackage{acro}
\DeclareAcronym{cd}{
short = CD ,
long = compact disc
}
\DeclareAcronym{css}{
short = CSS ,
long = Centre for Spaghetti Studies
}
\NewAcroTemplate{long-short-the}{%
\acroiffirstTF{%
The
\acrowrite{long}%
\acspace(%
\acroifT{foreign}{\acrowrite{foreign}, }%
\acrowrite{short}%
\acroifT{alt}{ \acrotranslate{or} \acrowrite{alt}}%
\acrogroupcite
)%
}%
{\acrowrite{short}}%
}
\begin{document}
\ac[first-style=long-short-the]{cd}, \ac{css}
\ac[first-style=long-short-the]{cd}
\end{document}