我想创建一个环境,用于直观地将文本部分标记为“需要重做”、“未完成”或类似内容。为此,我想在部分周围放置一个彩色框架,我通常会使用 来实现这一点tcolorbox
。
但是,这些内容元素通常包含浮动元素(图形、表格)。tcolorbox 中的浮动元素(mdframed 中的浮动元素应该也一样)不起作用。
是否有某种方法可以实现跨页面的视觉标记,并允许浮动?
示例代码
\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage[scale=0.95,a6paper]{geometry}
\usepackage[skins,breakable]{tcolorbox}
\usepackage{todonotes}
\usepackage{lipsum}
\makeatletter
\newcommand\changecolor[1]{%
\color{#1}\let\default@color\current@color
}
\makeatother
\begin{document}
THIS WORKS WELL, BUT LACKS SOME ASPECTS \\
SUCH AS HIGHLIGHTING ACCIDENTIALLY \\
NESTED ENVRIONMENTS. \\
\newenvironment{needsreview_simple}[1][]{
\par\noindent\changecolor{blue}%
\hrulefill\space
\textsc{#1}%
\space\hrulefill\par
}{
\par\noindent\hrulefill\par
}
\begin{needsreview_simple}[Some stuff]
\lipsum[1-2]
\begin{figure}
\centering
\missingfigure{hello world}
\caption{Hello world}
\end{figure}
\begin{needsreview_simple}[Nested]
\lipsum[3]
\end{needsreview_simple}
\end{needsreview_simple}
\clearpage
THIS VARIANT CREATES ERRORS BECAUSE \\
THE FIGURE ENVIRONMENT ISN'T ALLOWED \\
INSIDE A TCOLORBOX. THE FLOAT IS \\
**LOST** AS A CONSEQUENCE. \\
\newenvironment{needsreview_tcbox}[1][]{%
\tcolorbox[enhanced,breakable,colframe=blue,col=blue,title={\textsc{#1}}]%
\changecolor{blue}%
}{
\endtcolorbox
}
\begin{needsreview_tcbox}[Some stuff]
\lipsum[1-3]
\begin{figure}
\centering
\missingfigure{hello world}
\caption{Hello world}
\end{figure}
\end{needsreview_tcbox}
\end{document}