通过 \include 包含的宏

通过 \include 包含的宏

我有一个宏来定义文本:

\def\Title{Mein Titel und Langes"=Wort"=Beispiel}

破折号"=在德语中定义babel,用于激活连接单词中的连字符。

titlepage.tex\Title它来生成标题页。如果我把 放入,\deftitlepage.tex会得到正确的破折号,但如果我把 放入,\defmain.tex\include{titlepage}看到"=而不是-

答案1

这里的问题是,它babel似乎在文档开始时加载语言,而不是立即加载。使用尚未在另一个宏的定义中定义的普通宏是可以的,只要您不立即使用该宏即可。但是,主动字符需要"已经是主动的,否则它们的被动形式将存储在宏中。

我不知道如何告诉babel立即加载语言。\selectlanguage序言中的 A 不起作用(You can't use垂直模式下的 \setlanguage')。但是,手动设置"为活动状态效果很好:

\documentclass{article}

\usepackage[german]{babel}

\catcode`\"=\active
\def\Title{Mein Titel und Langes"=Wort"=Beispiel}

\begin{document}

\Title

\end{document}

相关内容