documentclass langscibook
(基于scrbook
)提供了选项booklanguage
。默认值为。我过去english
曾成功使用过french
、portuguese
和。german
在内部,选项值被传递给 babel。
这将设置连字符并将“Contents”更改为“Table des matières”、“Conteúdo”、“Inhaltsverzeichnis”等等。
当我说booklanguage=spanish
我确实获得了目录的“Índice general”时,但是此后编译停止了。
...
Runaway argument?
! Forbidden control sequence found while scanning use of \language@active@arg~.
<inserted text>
\par
l.6 \maketitle
I suspect you have forgotten a `}', causing me
to read past where you wanted me to stop.
...
以下作品
\documentclass[booklanguage=german]{langscibook}
\author{John Doe}
\title{The test}
\begin{document}
\maketitle
\frontmatter
\tableofcontents
\mainmatter
\chapter{test}
123
\end{document}
当“德语”改为“西班牙语”时,它不再起作用:
\documentclass[booklanguage=spanish]{langscibook}
\author{John Doe}
\title{The test}
\begin{document}
\maketitle
\frontmatter
\tableofcontents
\mainmatter
\chapter{test}
123
\end{document}
langscibook.cls 中的相关代码部分是
165ff 行
\DeclareStringOption{booklanguage}[english]
\define@key{langscibook}{booklanguage}{%
\renewcommand{\lsBookLanguage}{#1}}
1392 行
\usepackage[\lsBookLanguage]{babel}
当我切换到 时{scrbook}
,就可以\usepackage[spanish]{babel}
毫无问题地了。
总而言之,{scrbook}
+ babel 适用于所有语言,但{langscibook}
+ babel 适用于英语、德语、法语、葡萄牙语和中文,但不适用于西班牙语。我不明白这种行为的原因。任何提示都值得赞赏。
包含该文件的最小工作示例langscibook.cls
可以在这里找到
答案1
spanish 将波浪号重新定义~
为重音符号。但是该类在空格的标准含义中到处使用它,这会产生冲突。您可以告诉 babel-spanish 不要使用波浪号:
\documentclass[booklanguage={spanish,es-notilde}]{langscibook}
\author{John Doe}
\title{The test}
\begin{document}
\maketitle
\frontmatter
\tableofcontents
\mainmatter
\chapter{test}
123
\end{document}