第一次使用 glossaries-extra 时如何将翻译放在括号中?

第一次使用 glossaries-extra 时如何将翻译放在括号中?

我目前正在用瑞典语撰写论文,并选择使用瑞典语翻译某些术语。由于这些术语在瑞典语中并不为人熟知,因此我希望在第一次使用时在括号中显示英文术语:

... 持续整合(英语)持续集成)...

后续使用:

... 持续整合 ...

这与这个答案glossaries-extra与样式一起使用,long-short-user因为我不想在后续用法中short输出(首字母缩略词)并且我希望long输出(瑞典语术语)。user-long如果存在 样式,则使用 。

答案1

我当前的解决方案(一种解决方法)是格式化如下的条目(使用bib2gls):

@entry{kontinuerlig-integration,
    name = {kontinuerlig integration},
    description = {Eng. \emph{continuous integration}, ...},
    long = {continuous integration},
    category = {translation}
}

搭配风格:

\setabbreviationstyle[translation]{short-long}
\renewcommand*{\glsfirstlongdefaultfont}[1]{eng. \emph{#1}}

这会产生所需的格式,但似乎是错误的。根据手册样式没有设置regular属性,根据第 5 章,该属性表明它是一个缩写。我不会说它是。

另外,这需要将翻译设置为long。我想说的是,英文术语可能是别的user

所以这个解决方案似乎是错误的。我会很感激任何不那么黑客的解决方案。

答案2

如果您想坚持使用 glossaries/glossaries-extra,请尝试以下代码。我建议使用额外的词汇表(此处定义为“trans”),这样它的条目只会在您使用 \printglossary[type=trans] 时显示。

更新#1:我忽略了‘仅限首次使用’的要求

更新 #2: ...我错过了示例文本和图片的替换

\documentclass{book}
\usepackage[colorlinks=true,]{hyperref}
\usepackage{glossaries}

\newcommand{\glsEngInSwedish}[1]{%
    \ifglsused{#1}%
    {\gls{#1}}
    {\gls{#1} (engl. \glsentryEnglish{#1})}%
    \glsunset{#1}% ensure flag for use
}

\glsaddkey
{english}           % key
{\glsentrytext{todo}}   % default value
{\glsentryEnglish}  % command analogous to \glsentrytext
{\GlsentryEnglish}  % command analogous to \Glsentrytext
{\glsEnglish}       % command analogous to \glstext
{\GlsEnglish}       % command analogous to \Glstext
{\GLSEnglish}       % command analogous to \GLStext
\glssetnoexpandfield{english}

\newglossary*{trans}{Translations}
\newglossaryentry{test}
{
    type=trans,
    name={swedish word},
    english={english translation},
    description={testDesc},
}

\begin{document}
    First use of \glsEngInSwedish{test} as well as second use of \glsEngInSwedish{test}
\end{document}

在此处输入图片描述

相关内容