我无法使用 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
最终结论