TikZ节点注释中添加方括号导致XeLaTeX编译失败的原因咨询
关于TikZ节点文本中添加方括号导致XeLaTeX编译失败的问题
在使用TikZ绘制带文本注释的图形时,仅在注释文本外添加方括号[]就会导致XeLaTeX编译失败,具体示例如下:
正常编译的代码
\documentclass{standalone} \usepackage{tikz} \begin{document} \begin{tikzpicture}[scale=2] \node[draw,align=center] (n) at (0,0) {line1 \\ line2}; \end{tikzpicture} \end{document}
上述代码可生成包含两行文本的方框。
编译失败的代码
\documentclass{standalone} \usepackage{tikz} \begin{document} \begin{tikzpicture}[scale=2] \node[draw,align=center] (n) at (0,0) {line1 \\ [line2]}; \end{tikzpicture} \end{document}
原因解析
在TeX语法中,\\后面紧跟方括号[]是设置换行后垂直间距的语法(比如\\[1em]表示换行后增加1em的垂直空白)。当你写\\ [line2]时,TeX会把[line2]当作行距参数去解析,但line2不是合法的长度单位值,因此触发编译错误。
解决办法
如果需要在文本中显示方括号,需要通过以下方式避免TeX将其解析为参数:
- 给方括号添加分组:
\\ {[line2]} - 转义方括号:
\\ \[line2\] - 改用
\textbrackleft和\textbrackright命令(需加载textcomp包):\\ \textbrackleft line2 \textbrackright
内容的提问来源于stack exchange,提问作者Lucida
相关产品推荐
相关产品推荐

