![编写一个包含语言相关字符串的类](https://linux22.com/image/257422/%E7%BC%96%E5%86%99%E4%B8%80%E4%B8%AA%E5%8C%85%E5%90%AB%E8%AF%AD%E8%A8%80%E7%9B%B8%E5%85%B3%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E7%B1%BB.png)
我无法使用 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
最终结论