我有一个宏来定义文本:
\def\Title{Mein Titel und Langes"=Wort"=Beispiel}
破折号"=
在德语中定义babel
,用于激活连接单词中的连字符。
我titlepage.tex
用\Title
它来生成标题页。如果我把 放入,\def
我titlepage.tex
会得到正确的破折号,但如果我把 放入,\def
我main.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}