编写一个包含语言相关字符串的类

编写一个包含语言相关字符串的类

我无法使用 babel 使我的类字符串依赖于语言。我有以下最小示例:

文件test-babel.cls

\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\提供包{test-babel}[2012/10/22 v0.1]

\DeclareOption{西班牙语}{%
  \在开始文档{%
      \renewcommand*\conclusionsname{结论}
     }
  \AtEndOfClass{\main@language{西班牙语}}
}

\DeclareOption{英语}{%
  \在开始文档{%
    \renewcommand*\conclusionsname{最终结论}
  }
  \AtEndOfClass{\main@language{english}}
}

\newcommand\conclusionsname{dumyy}


\DeclareOption*{\PassOptionsToClass{\CurrentOption}{报告}}
\进程选项\放松

\LoadClass{报告}
\newcommand\print{\conclusionsname}

我使用这个测试tex文件:

\documentclass{测试-babel}
\usepackage[spanish]{babel}
\开始{文档}
\打印
\结束{文档}

编译的结果是单词dummy,即默认值,而不是西班牙语翻译。

有人能帮助我理解如何babel在编写课程时使用吗?

答案1

spanish首先,该选项并未传递给班级。

不过,我认为你真的不需要为此设置课程选项。以下是zunbeltz.cls

\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{zunbeltz}[2012/10/22 v0.1]

\providecommand*{\conclusionsname}{Final conclusions}

\AtBeginDocument{
  \@ifpackagewith{babel}{spanish}{%
    \addto\captionsspanish{\renewcommand*\conclusionsname{Conclusiones finales}}%
  }{}
  \@ifpackagewith{babel}{english}{%
    \addto\captionsenglish{\renewcommand*\conclusionsname{Final conclusions}}%
  }{}
}


\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
\ProcessOptions\relax

\LoadClass{report}

这是测试文档zunbeltz.tex

\documentclass{zunbeltz}
\usepackage[english,spanish]{babel}
\begin{document}
\conclusionsname

\selectlanguage{english}
\conclusionsname
\end{document}

你会得到

Conclusiones finales
最终结论

相关内容