如何为首字母缩略词的长形式添加翻译?

如何为首字母缩略词的长形式添加翻译?

我目前正在使用该acronym包来处理我的论文中的首字母缩略词/缩写。

我用德语写作,但我使用了几个英语缩写词,因为要么没有德语缩写词,要么英语缩写词更常用。因此,在介绍缩写词时,我希望/需要在文本中使用德语单词(作为“长”形式),但我希望在(英语)缩写词旁边的括号中包含英语长形式。当然,德语和英语都应该出现在缩写词列表中。

  • 德语术语:Steuergerät
  • 英文术语:电子控制单元
  • 缩写:ECU

因此,在我的文本中我希望包含:

.... 电子控制单元 (ECU) ....

然后简单地

.... 发动机控制单元....

在首字母缩略词列表中,它应显示为:

ECU 电子控制单元 (Electronic Control Unit)

或者

ECU 电子控制单元 (Steuergerät)

有没有办法在首字母缩略词的长版本中包含翻译?

编辑:正如@NicolaTalbot 指出的那样,用例与使用词汇表包查找德语文档中的英文缩写。有没有办法用这个acronym包来实现这一点,还是我需要切换包?

答案1

正如我在评论中所说:acroforeign为此类情况提供了关键。尽管如此:这里有一种方法可以实现你想要的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}

相关内容