![为什么 babel 在 Tikz 中不起作用?](https://linux22.com/image/246214/%E4%B8%BA%E4%BB%80%E4%B9%88%20babel%20%E5%9C%A8%20Tikz%20%E4%B8%AD%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%EF%BC%9F.png)
在 TikZ Mindmap 中将子节点添加到子节点有一些示例代码,其中德语单词未正确连字。我尝试使用inputenc
(表示 Umlaute) 和来修复它\usepackage[ngerman]{babel}
。不幸的是,它对连字没有影响。
必须改变什么?
下面您可以看到它的一个工作示例,其中显示了强制连字和无连字:
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usetikzlibrary{mindmap,trees}
\begin{document}
\begin{tikzpicture}
\path[mindmap,concept color=black,text=white]
node[concept] {Die Wahrnehmung}
[clockwise from=0]
child[concept color=green!50!black] {
node[concept] {Sensorische Prozesse}
[clockwise from=90]
child { node[concept] {Schwellen}
child {node[concept] {Unterschiedsschwelle}}
child {node[concept] {Unter\-schieds\-schwel\-le}}
}
}
child[concept] { node[concept] {Klassifikation} };
\end{tikzpicture}
\end{document}
答案1
原因是 TeX 不会对段落中的第一个单词进行连字符连接。\hspace{0pt}
例如,插入将启用连字符连接,因为这样单词就不在最开头了:
child {node[concept] {\hspace{0pt}Unterschiedsschwelle}}
答案2
可以滥用节点选项中的键,在节点开头font=
添加宏。但是,这会覆盖以前的字体键(如果存在)。\hspace{0pt}
child {node[concept,font={\hspace{0pt}}] {Unterschiedsschwelle}}
为了保留现有的font
密钥,您可以在序言中定义以下内容
\makeatletter
\tikzset{add to font/.code={\expandafter\def\expandafter\tikz@textfont\expandafter{\tikz@textfont#1}}}
\makeatother
然后使用它作为
child {node[concept,add to font={\hspace{0pt}}] {Unterschiedsschwelle}}
child {node[concept,add to font={\hspace{0pt}}] {Unter\-schieds\-schwel\-le}}
获得