考虑以下使用 xelatex 编译的 MWE
\documentclass{article}
\usepackage{fontspec}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\tikzset{boite/.style={draw,text width=14em,text badly centered}};
\tikzset{liaison/.style={
->,thick,>=latex
}};
\node[boite]{foo};
\end{tikzpicture}
\end{document}
如果我读到这个答案 https://tex.stackexchange.com/a/326089/7712 我们总是需要在 tikzcommands 后面加一个分号;
但在我的例子中,我Missing character: There is no ; ("3B) in font nullfont!
进入了日志。如果删除 tikzset 后的分号,我就再也看不到了。
这个错误在哪里?在我的代码中?在 fontspec 中?在 tikz 中?在答案中?
答案1
您不需要多个\tikzset
命令,并且无论如何它们都不应该结束;
。
而是在可选参数中定义样式tikzpicture
(或在序言中用)\tikzset
。
\documentclass{article}
\usepackage{fontspec}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[
boite/.style={draw,text width=14em,text badly centered},
liaison/.style={->,thick,>=latex},
]
\node[boite]{foo};
\end{tikzpicture}
\end{document}
答案2
仅用于确认Qrrbrbirlbel 评论,删除或注释掉semicola ;
非路径语句中的 可以很好地进行编译XeLaTeX
。
\documentclass{article}
\usepackage{fontspec}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\tikzset{boite/.style={draw,text width=14em,text badly centered}}%;
\tikzset{liaison/.style={
->,thick,>=latex
}}%;
\node[boite]{foo};
\end{tikzpicture}
\end{document}