首字母缩略词 - 德语单词,英文缩写

首字母缩略词 - 德语单词,英文缩写

我正在处理缩写。我的大多数缩写都是英文的,但我的文本是德文的。由于没有必要在文本中写出较长的英文单词,我只希望它列在缩写列表中,这样德文单词和英文缩写就会出现在文本中,而德文和英文单词应该出现在缩写列表中。我知道缩写包不是最好的选择,但我在工作中用过它。希望有人能帮忙。我发现,但文本内也显示了英文单词。

以下是简短的 MWE:

\documentclass[a4paper]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[printonlyused]{acronym}


\begin{document}
\begin{acronym}[eng]
\acro{eng}{German word}
\end{acronym}
\newpage
\ac{eng}
\end{document}

答案1

如果我正确理解了您的问题,您想禁用\foreignlanguage文本中链接答案的输出。 以下内容可实现此目的:

\documentclass[a4paper]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[printonlyused]{acronym}

\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:
\patchcmd\AC@@acro
  {\begingroup}
  {\begingroup\def\acroforeign##1{\csdef{ac@#1@foreign}{##1, }}}
  {}
  {}

% renew the first output to include the foreign definition if given:
\renewcommand*{\@acf}[1]{%
  \ifAC@footnote
    \acsfont
      {%
        %\csname ac@#1@foreign\endcsname
        \AC@acs{#1}%
      }%
    \footnote{\AC@placelabel{#1}\hskip\z@\AC@acl{#1}{}}%
  \else
    \acffont{%
      \AC@placelabel{#1}\hskip\z@\AC@acl{#1}%
      \nolinebreak[3] %
      \acfsfont{(\acsfont
        {%
          %\csname ac@#1@foreign\endcsname
          \AC@acs{#1}%
        })}%
    }%
 \fi
 \ifAC@starred\else\AC@logged{#1}\fi
}
\makeatother

\begin{document}
\begin{acronym}[eng]
  \acro{eng}{\acroforeign{German word}}
\end{acronym}
\ac{eng}
\end{document}

相关内容