![如何使用 ACRONYM 列表将长期转换为短期?](https://linux22.com/image/238036/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20ACRONYM%20%E5%88%97%E8%A1%A8%E5%B0%86%E9%95%BF%E6%9C%9F%E8%BD%AC%E6%8D%A2%E4%B8%BA%E7%9F%AD%E6%9C%9F%EF%BC%9F.png)
在我的文本中,我希望第一次使用\ac
结果(我的所有文本都是使用\ac
或输入的\acp
):
个人电脑
因此,通常结果是相反的:
个人电脑(PC)
如何定制?
答案1
更改宏的定义\acfa
和\@acf
(编辑:及其复数对应部分)。
\documentclass{article}
\usepackage{acronym}
\makeatletter
\renewcommand*{\acfa}[1]{%
% \texorpdfstring{\protect\@acf{#1}}{\AC@acl{#1} (#1)}}% DELETED
\texorpdfstring{\protect\@acf{#1}}{#1\ (\AC@acl{#1})}}% NEW
\renewcommand*{\@acf}[1]{%
\ifAC@footnote
\acsfont{\AC@acs{#1}}%
\footnote{\AC@placelabel{#1}\AC@acl{#1}{}}%
\else
\acffont{%
% \AC@placelabel{#1}\AC@acl{#1}% DELETED
\AC@placelabel{#1}\AC@acs{#1}% NEW
\nolinebreak[3] %
% \acfsfont{(\acsfont{\AC@acs{#1}})}% DELETED
\acfsfont{(\acsfont{\AC@acl{#1}})}% NEW
}%
\fi
\ifAC@starred\else\AC@logged{#1}\fi}
\renewcommand*{\acfpa}[1]{%
\texorpdfstring{\protect\@acfp{#1}}{\AC@acsp{#1} (\AC@aclp{#1})}}
\renewcommand*{\@acfp}[1]{%
\ifAC@footnote
\acsfont{\AC@acsp{#1}}%
\footnote{\AC@placelabel{#1}\AC@aclp{#1}{}}%
\else
\acffont{%
\AC@placelabel{#1}\AC@acsp{#1}%
\nolinebreak[3] %
\acfsfont{(\acsfont{\AC@aclp{#1}})}%
}%
\fi
\ifAC@starred\else\AC@logged{#1}\fi}
\makeatother
\begin{document}
Some text about the \ac{PC}~\dots
More about the \ac{PC}~\dots
\begin{acronym}
\acro{PC}{Personal Computer}
\end{acronym}
\end{document}
答案2
如果你找不到更好的解决方案,请声明一个结合短格式和长格式的新命令,例如(未经测试)
\newcommand{\firstac}[1]{\acl{#1} (\acs{#1})}