我目前正在使用该acronym
包来处理我的论文中的首字母缩略词/缩写。
我用德语写作,但我使用了几个英语缩写词,因为要么没有德语缩写词,要么英语缩写词更常用。因此,在介绍缩写词时,我希望/需要在文本中使用德语单词(作为“长”形式),但我希望在(英语)缩写词旁边的括号中包含英语长形式。当然,德语和英语都应该出现在缩写词列表中。
- 德语术语:Steuergerät
- 英文术语:电子控制单元
- 缩写:ECU
因此,在我的文本中我希望包含:
.... 电子控制单元 (ECU) ....
然后简单地
.... 发动机控制单元....
在首字母缩略词列表中,它应显示为:
ECU 电子控制单元 (Electronic Control Unit)
或者
ECU 电子控制单元 (Steuergerät)
有没有办法在首字母缩略词的长版本中包含翻译?
编辑:正如@NicolaTalbot 指出的那样,用例与使用词汇表包查找德语文档中的英文缩写。有没有办法用这个acronym
包来实现这一点,还是我需要切换包?
答案1
正如我在评论中所说:acro
foreign
为此类情况提供了关键。尽管如此:这里有一种方法可以实现你想要的acronym
用法与 类似acronym
。\acroextra
下面的代码定义了一个命令\acroforeign{<foreign long form>}
,该命令将被放置在第二个强制参数中的\acro
:
\documentclass{article}
\usepackage{acronym}
% provides \AtBeginEnvironment, \patchcmd and \csdef:
\usepackage{etoolbox}
\makeatletter
\newcommand{\acroforeign}[1]{}
% patch the environment to print the foreign definition:
\AtBeginEnvironment{acronym}{%
\def\acroforeign#1{ (#1)}%
}
% patch the acronym definition to safe the foreign definition:
\expandafter\patchcmd\csname AC@\AC@prefix{}@acro\endcsname
{\begingroup}
{\begingroup\def\acroforeign##1{\csdef{ac@#1@foreign}{##1, }}}
{}
{\fail}
% % renew the first output to include the foreign definition if given:
\renewcommand*{\@acf}[2][\AC@linebreakpenalty]{%
\ifAC@footnote
\acsfont{\csname ac@#2@foreign\endcsname\AC@acs{#2}}%
\footnote{\AC@placelabel{#2}\AC@acl{#2}{}}%
\else
\acffont{%
\AC@placelabel{#2}\AC@acl{#2}%
\nolinebreak[#1] %
\acfsfont{(\acsfont{\csname ac@#2@foreign\endcsname\AC@acs{#2}})}%
}%
\fi
\ifAC@starred\else\AC@logged{#2}\fi
}
\makeatother
\begin{document}
First: \ac{ECU}, \ac{BW}
Subsequent: \ac{ECU}, \ac{BW}
List:
\begin{acronym}[ECU]
\acro{ECU}{Steuerger\"at\acroforeign{Electronic Control Unit}}
\acro{BW}{Baden-W\"urttemberg}
\end{acronym}
\end{document}