如何使用 ACRONYM 列表将长期转换为短期?

如何使用 ACRONYM 列表将长期转换为短期?

在我的文本中,我希望第一次使用\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})}

相关内容