我正在使用非常好的包波波伊特在我的工作中,结合 tikz 和 pgf 图形的外部编译。我在使用 boiboites 环境中定义的引用时遇到了一些问题,如下例所示:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{boiboites}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{external}
\tikzexternalize
\newboxedtheorem[boxcolor=blue, background=cyan, titlebackground=cyan,titleboxcolor = black]{impbox}{}{}
\begin{document}
\begin{impbox}[Some equation]
\begin{equation} \label{eq:1}
a = b
\end{equation}
\end{impbox}
I want to talk about equation \ref{eq:1} here.
\end{document}
产生以下结果:
我的文档非常大,使用了很多“boiboites”。我看到了一种可能性(无法再次找到链接),即通过为每个“boiboites”应用额外的编译步骤来解决这个问题,但这在这里不可行。有人知道其他方法吗?
提前致谢 !
答案1
每个boîte
(盒子)都是使用 tikz 构建的,因此它是外部化的(因此标签丢失了)。一种解决方案可能是添加\tikzexternaldisable
和\tikzexternalenable
。但是如果您想将盒子的内容外部化,该解决方案将不起作用。
新命令(您也可以定义一个新的环境):
\newboxedtheorem[boxcolor=blue, background=cyan, titlebackground=cyan,titleboxcolor = black]{impbox}{}{}
\newcommand{\thperso}[2]{%
\tikzexternaldisable
\begin{impbox}[#1]
#2
\end{impbox}
\tikzexternalenable%
}
新的框语法:
\thperso{Some equation}{%
\begin{equation}
a = b\label{eq:1}
\end{equation}%
}