当我将 TikZ 增强框与彩色盒子使用 TikZ 的外部化:
! Argument of \tikzexternal@laTeX@collect@until@end@tikzpicture has an extra }.
<inserted text>
\par
l.27 }
此错误是预料之中的吗?如果是,为什么会出现此错误?除了禁用盒子的外部化之外,还能避免此错误吗?如果不是,为什么会出现此错误?除了禁用盒子的外部化之外,还能避免此错误吗?
不使用skins
和enhanced
可以避免错误。注释\tikzexternalenable
可以避免错误。在这里使用不同类型的框(例如\efbox
)可以避免错误。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize
\tikzexternaldisable
\usepackage{tcolorbox}
\tcbuselibrary{xparse,skins}
\NewTColorBox{gwybodaeth}{ O {\linewidth} m O {} }
{
enhanced,
colframe=blue,
colback=blue!5,
fonttitle=\bfseries\sffamily\large,
halign title=center,
title={#2},
width=#1,
#3,
}
\begin{document}
\tikzexternalenable
\newsavebox{\argan}
\sbox{\argan}{%
\begin{gwybodaeth}{Title}
For example, cabbages or kings.
Or sealing wax and things.
\end{gwybodaeth}%
}
\usebox{\argan}
\end{document}
答案1
目前,除了暂时禁用外部化(如您的问题中所述)之外,没有其他方法可以启动和运行它。
原因是外部化库必须扫描整个图片环境,以便知道哪些部分要用外部图片替换。为此,它开始对 进行低级标记搜索\end{tikzpicture}
。此搜索失败,因为没有合适的\end{tikzpicture}
(每个构造)。
让外部库意识到这一点将tcolorbox
是一个功能请求。