我希望在将首字母缩略词打印到首字母缩略词列表时,将单词的首字母大写。但是,在某些情况下,当我使用\ac{}
或\acf{}
命令将它们添加到段落时,我希望以小写形式(英语)打印书写形式。第三种情况是在文档中的某处使用混合字母变体。
例子:
% 1) In the list of acronyms.
Spatial Reference System (SRS)
...
% 2) In a paragraph.
... the spatial reference system (SRS) is important because ...
...
% 3) Somewhere else in the document.
... it may happen that you still want to use the
mixed variant when writing about the Spatial Reference System (SRS) ....
问题:
- 您将如何配置首字母缩略词来区分这三种情况?
答案1
你必须说出acronym
两种拼写:
\documentclass{article}
\usepackage{acronym}
\usepackage{etoolbox}
\makeatletter
\newif\if@in@acrolist
\AtBeginEnvironment{acronym}{\@in@acrolisttrue}
\newrobustcmd{\LU}[2]{\if@in@acrolist#1\else#2\fi}
\newcommand{\ACF}[1]{{\@in@acrolisttrue\acf{#1}}}
\makeatother
\begin{document}
\begin{acronym}
\acro{SRS}{\LU{S}{s}patial \LU{R}{r}eference \LU{S}{s}ystem}
\acro{DC}{\LU{D}{d}irect \LU{C}{c}urrent}
\end{acronym}
Batteries run on \ac{DC} and \ac{SRS} are different things.
\end{document}
宏\LU
只是将替代形式作为其参数;指令\AtBeginEnvironment
告诉此宏要使用第一个参数,因为条件\if@in@acrolist
返回 true。在普通文本中,条件返回 false(请注意,在环境结束时,acronym
条件的设置将自动恢复,因为环境形成组)。
我添加了一个\ACF
作用类似于\acf
使用大写版本的宏(打印完整版本和首字母缩略词)。