Chemmacros 方案翻译

Chemmacros 方案翻译

我正在尝试翻译方案标题中的“Scheme”一词chemmacros。我用西班牙语写作,因此我想将“Scheme 1”更改为“Esquema 1”。

我不知道我是否不理解手册或者包和模块(lang)如何工作。

到目前为止我尝试了很多方法,但是出现了这个错误:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}

\usepackage{chemmacros}
\chemsetup{modules={scheme}}
\DeclareChemTranslation{spanish}{scheme}{esquema}
\DeclareChemTranslation{spanish}{Scheme}{Esquema}

\begin{document}

    \begin{scheme}
        \caption{Lorem ipsum}
    \end{scheme}

\end{document}

! 包翻译错误:未知语言“scheme”。请参阅翻译包文档以获取解释。输入 H 可立即获得帮助.... ...reChemTranslation{spanish}{scheme}{esquema}

我正在使用此版本:这是 pdfTeX,版本 3.14159265-2.6-1.40.20(MiKTeX 2.9.7000 64 位)(预加载格式=pdflatex 2019.4.23)2019 年 6 月 3 日 19:24

答案1

这里的一个问题是手册中的一个错误。

您必须使用以下定义

\DeclareChemTranslation{scheme}{spanish}{esquema} % <===================
\DeclareChemTranslation{Scheme}{spanish}{Esquema} % <===================

不会收到任何错误消息。请注意,参数的顺序已更改!首先key,然后language,然后translation。在手册中,这完全是错误的(参见带有闪光的红色箭头),但第二个命令按描述工作...

手册片段

也许是因为 l3kernel 已经改变,上面的定义似乎没有进入文档。请参阅以下代码

\documentclass[spanish]{article} % <====================================

\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}

\usepackage{chemmacros}
\chemsetup{modules={scheme}}
%\chemsetup{language={spanish}}
\DeclareChemTranslation{scheme}{spanish}{esquema} % <===================
\DeclareChemTranslation{Scheme}{spanish}{Esquema} % <===================
%\DeclareChemTranslations{scheme}{spanish=esquema} % <==================
%\DeclareChemTranslations{Scheme}{spanish=Esquema} % <==================


\begin{document}

    \begin{scheme}
        \caption{Lorem ipsum}
    \end{scheme}

\end{document}

及其结果(使用 MIKTeX 版本编译pdfTeX, Version 3.14159265-2.6-1.40.20 (MiKTeX 2.9.7050 64-bit)):

生成的 pdf

正如您所见,语言scheme没有改变!

现在添加

\renewcommand{\schemename}{Esquema}

之后 \begin{document}会得到以下结果:

生成的 pdf

而在之前添加相同的行\begin{documents}会导致错误,因为\schemename只有在文档启动后才能知道命令......

我现在没有调查代码(直到现在我才学会使用 l3kernel)为什么新定义的scheme西班牙语翻译没有打印在文档中。

我建议您向该软件包的维护者提交一个错误报告,以便更正手册并获得可用的翻译......

答案2

正如@Mensch 已经提到的,手册是错误的,语言应该放在第二位。此外,手册中的翻译键列表也有点混乱。列表中提到了和schemescheme-name但只有scheme-name有效。这可以在方案模块源代码大约在第 250 行,schema-name用于预定义的德语翻译 - 但在\ChemCompatibilityTo{5.6}块中再次有些令人困惑,因此它可能是语法的旧版本 - 但至少它可以工作。

Github 页面上的问题确实看起来是个好主意,可以更新手册和/或代码以使行为更加直观。

梅威瑟:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}

\usepackage{chemmacros}
\chemsetup{modules={scheme}}
\DeclareChemTranslation{scheme-name}{spanish}{Esquema}

\begin{document}

    \begin{scheme}
        \caption{Lorem ipsum}
    \end{scheme}

\end{document}

结果:

在此处输入图片描述

答案3

改变它的一种方法是简单地将其放在\renewcommand{\schemename}{Esquema}后面begin{document},但我不知道为什么我无法改变翻译。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}

\usepackage{chemmacros}
\chemsetup{modules={scheme}}

\begin{document}
\renewcommand{\schemename}{Esquema}

    \begin{scheme}
        \caption{Lorem ipsum}
    \end{scheme}

\end{document}

相关内容