Tikz,分号和缺失字符

Tikz,分号和缺失字符

考虑以下使用 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}

相关内容