我正在使用缩写包。通常,如果我输入这样的缩写:
This is a system with \ac{LTI} propertiesSystem. It can be ...
pdf 显示的内容如下:
这是一个具有线性、时不变 (LTI) 属性的系统。它可以是...
但我想要这样的东西:
这是一个具有 LTI(线性、时不变)特性的系统。它可以...
我如何设置首字母缩写词包,以便将括号放在描述周围而不是首字母缩写词周围?
编辑:
我现在尝试使用这个自定义命令:
\newcommand{\A}[1]{\acs{#1} (\aclu{#1})}
它首先显示首字母缩写,然后在括号中显示完整版本。但如果我稍后使用相同的首字母缩写,则会一次又一次地显示完整描述。我更希望它只在第一次显示...
答案1
为了全面交换首字母缩略词和描述,可以重新定义\@acf
和\acfa
表示单数形式,\@acfp
和\acfpa
表示复数形式。 它们的定义如下
\newcommand*{\acfa}[1]{%
\texorpdfstring{\protect\@acf{#1}}{\AC@acl{#1} (#1)}}
\newcommand*{\@acf}[1]{%
\ifAC@footnote
\acsfont{\AC@acs{#1}}%
\footnote{\AC@placelabel{#1}\AC@acl{#1}{}}%
\else
\acffont{%
\AC@placelabel{#1}\AC@acl{#1}%
\nolinebreak[3] %
\acfsfont{(\acsfont{\AC@acs{#1}})}%
}%
\fi
\ifAC@starred\else\AC@logged{#1}\fi}
和
\newcommand*{\acfpa}[1]{%
\texorpdfstring{\protect\@acfp{#1}}{\AC@aclp{#1} (\AC@acsp{#1})}}
\newcommand*{\@acfp}[1]{%
\ifAC@footnote
\acsfont{\AC@acsp{#1}}%
\footnote{\AC@placelabel{#1}\AC@aclp{#1}{}}%
\else
\acffont{%
\AC@placelabel{#1}\AC@aclp{#1}%
\nolinebreak[3] %
\acfsfont{(\acsfont{\AC@acsp{#1}})}%
}%
\fi
\ifAC@starred\else\AC@logged{#1}\fi}
改变相当简单——交换短 ( \AC@acs{#1}
) 和长 ( \AC@acl{#1}
) 形式,并用括号括住长形式,而不是短形式:
\documentclass{article}
\usepackage{acronym}
\newacro{CSS}{Cascading Style Sheets}
\newacro{CD}{Compact Disc}
\makeatletter
% singular:
\renewcommand*{\acfa}[1]{%
\texorpdfstring{\protect\@acf{#1}}{#1 (\AC@acl{#1})}%
}
\renewcommand*{\@acf}[1]{%
\ifAC@footnote
\acsfont{\AC@acs{#1}}%
\footnote{\AC@placelabel{#1}\AC@acl{#1}{}}%
\else
\acffont{%
\AC@placelabel{#1}%
\acfsfont{\acsfont{\AC@acs{#1}}}%
\nolinebreak[3] %
(\AC@acl{#1})%
}%
\fi
\ifAC@starred\else\AC@logged{#1}\fi
}
% plural:
\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}%
\acfsfont{\acsfont{\AC@acsp{#1}}}%
\nolinebreak[3] %
(\AC@aclp{#1})%
}%
\fi
\ifAC@starred\else\AC@logged{#1}\fi
}
\makeatother
\begin{document}
\ac{CSS}
\acp{CD}
\end{document}
答案2
缩写包 v1.47 更新(2020/04/17)
\makeatletter
%% singular:
\renewcommand*{\acfa}[2][\AC@linebreakpenalty]{%
\texorpdfstring{\protect\@acf[#1]{#2}}{#2 (\AC@acl{#2})}}
\renewcommand*{\@acf}[2][\AC@linebreakpenalty]{%
\ifAC@footnote
\acsfont{\AC@acs{#2}}%
\footnote{\AC@placelabel{#2}\AC@acl{#2}{}}%
\else
\acffont{%
\AC@placelabel{#2}%
\acfsfont{\acsfont{\AC@acs{#2}}}%
\nolinebreak[#1] %
(\AC@acl{#2})%
}%
\fi
\ifAC@starred\else\AC@logged{#2}\fi}
\makeatother
\acr
也可以作为使用两者(正常\ac
和反向)的自己的命令:
\makeatletter
\newcommand*{\acr}{\AC@starredfalse\protect\@acr}%
\newcommand{\@acr}[2][\AC@linebreakpenalty]{%
\ifAC@dua
\ifAC@starred\acl*{#2}\else\acl{#2}\fi%
\else
\expandafter\ifx\csname AC@\AC@prefix#2\endcsname\AC@used%
\ifAC@starred\acs*{#2}\else\acs{#2}\fi%
\else
\acs{#2} (\aclu{#2})%
\fi
\fi}
\makeatother