tcolorbox 增强框可以与 TikZ 外部化和保存框结合使用吗?如果可以,该怎么做?如果不行,最好的解决方法是什么?

tcolorbox 增强框可以与 TikZ 外部化和保存框结合使用吗?如果可以,该怎么做?如果不行,最好的解决方法是什么?

当我将 TikZ 增强框与彩色盒子使用 TikZ 的外部化:

! Argument of \tikzexternal@laTeX@collect@until@end@tikzpicture has an extra }.
<inserted text>
                \par 
l.27 }

此错误是预料之中的吗?如果是,为什么会出现此错误?除了禁用盒子的外部化之外,还能避免此错误吗?如果不是,为什么会出现此错误?除了禁用盒子的外部化之外,还能避免此错误吗?

不使用skinsenhanced可以避免错误。注释\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是一个功能请求。

相关内容