LaTeX中wrapfigure嵌套TikZ绘图时提示多余花括号编译错误
错误原因定位
编译报多余右花括号的核心问题是语法不符合命令定义,导致LaTeX解析括号配对时逻辑错乱,具体问题点如下:
wrapfigure环境参数调用错误:wrapfigure的标准语法为\begin{wrapfigure}[<绕排文本行数>]{<对齐方式>}[<外伸宽度>]{<图片宽度>},原代码将左对齐参数l错误写入了可选参数的方括号中,且缺失必填的对齐方式、图片宽度参数,LaTeX会将后续环境内的花括号错误识别为wrapfigure的参数边界,直接在\begin{tikzpicture}位置触发括号不匹配报错。- 存在隐性依赖缺失问题:使用
wrapfigure环境需要额外引入wrapfig宏包,原代码未引入该宏包;同时最小可编译示例缺失必需的\documentclass文档类声明。 \foreach循环的remember选项内存在多余分号:原代码remember={\N as \Nprev (initially 0);}中,花括号内的末尾分号属于多余字符,会干扰TikZ对循环选项的解析。- 代码中存在HTML转义字符残留:原代码里的
\Nprev>0是网页转义后的写法,LaTeX中直接写>即可。
修正方案
- 补全
wrapfigure的必填参数:左对齐绕排时,对齐参数写在第一层花括号内,根据绘制的5层全连接网络尺寸,设置图片宽度为4.2cm即可完整容纳内容,若需要指定绕排覆盖的文本行数可自行在方括号内填数字。 - 引入
wrapfig宏包,补充文档类声明,保证最小示例可直接编译。 - 删除
remember选项内的多余分号,将转义字符>替换为LaTeX原生的>。 - (可选)在环境内添加
\centering让示意图居中,按需补充图题、交叉引用标签。 - (兼容性优化)将过时的
\tikzstyle语法替换为新版本TikZ推荐的\tikzset写法,避免版本兼容问题。
修正后可直接编译的完整代码
\documentclass{article} \usepackage{wrapfig} \usepackage{tikz} \usepackage{listofitems} \tikzset{mynode/.style={thick,draw=blue,fill=blue!20,circle,minimum size=22}} \begin{document} \begin{wrapfigure}{l}{4.2cm} \centering \begin{tikzpicture}[x=2.0cm , y=1.5cm] \foreach \N [count=\lay,remember={\N as \Nprev (initially 0)}] in {4,5,5,5,3}{ \foreach \i [evaluate={\y=\N/2-\i; \x=\lay; \prev=int(\lay-1);}] in {1,...,\N}{ \node[mynode] (N\lay-\i) at (\x,\y) {}; \ifnum\Nprev>0 \foreach \j in {1,...,\Nprev}{ \draw[thick] (N\prev-\j) -- (N\lay-\i);} \fi } } \end{tikzpicture} \end{wrapfigure} % 此处填充正文文本即可实现自动图文绕排 \end{document}
内容的提问来源于stack exchange,提问作者Oriol Telleria
相关产品推荐
相关产品推荐

