我正在使用该类tufte-book
来编写我的笔记,并且我希望有tcolorbox
可以包含边注和旁注(由sidenotes
包提供)的定理。接下来我将发布一个 MWE 以及我在两种情况下遇到的错误:
\documentclass[nobib,notoc, a4paper]{tufte-book}
% For the example image
\usepackage{graphicx}
\usepackage[T1]{fontenc}
\usepackage[italian]{babel} % Italian support
\usepackage[utf8]{inputenc} % Accented letters
\usepackage[theorems]{tcolorbox}
\newtcbtheorem{Thm}{Teorema}%
{colback=green!5,colframe=green!35!black,fonttitle=\bfseries}{thm}
\begin{document}
\mainmatter
\begin{Thm}{Titolo}{esempio}
Esempio di teorema.
%\sidenote{Una nota a margine}
\begin{marginfigure}
\includegraphics{example-image-a}
\caption{Figura di esempio}
\label{fig:ex_a}
\end{marginfigure}
\end{Thm}
\end{document}
在使用marginfigure
环境时我遇到
LaTeX Error: Not in outer par mode.
在使用侧注时
l.29 LaTeX Error: Float(s) lost.
l.21 Missing number, treated as zero.
我不仅遇到了这个问题,tcolorbox
而且还遇到了这个问题ntheorem
(我目前正在使用但正在转移,因为我想要不同的定理、定义、示例等风格)。我基本上被迫在这些环境之外使用 marginfigures,这使得定位非常棘手,代码也相当混乱。
我在看这个答案和这个也是但它们都没有真正解决我的问题,因为我无法将定理放入 marginfigures 中。据我所知,问题在于 marginfigures 和 sidenotes 都是浮点数,tcolorbox
' 定理也是如此,我无法从另一个创建其中一个。我对 LaTeX 内部机制了解不够深入,无法开发解决方案或更好地理解。
任何对此的见解都将不胜感激!
答案1
这里有两种可能的边距解决方案。我认为 OP 想要第二种,但是...
侧注是这里未解决的另一个问题。
第一个解决方案使用一个sidebyside
框,其中上部是定理内容,下部是一个带有\captionof
命令标题的非浮动图形。
第二个解决方案使用tcbraster
两列。这些列有自己的大小,左边是 tcolorboxed 定理,右边是带标题的非浮动图形。
需要对利润进行一些工作,但这只是一个概念证明。
顺便说一句,并排的 tcolorbox 和 tcbraster 的行都不能跨页拆分。因此,可能会出现一些分页问题。
\documentclass[nobib,notoc, a4paper]{tufte-book}
% For the example image
% \usepackage{graphicx} %<- loaded by tcolorbox
\usepackage[T1]{fontenc}
\usepackage[italian]{babel} % Italian support
\usepackage[utf8]{inputenc} % Accented letters
\usepackage[most]{tcolorbox}
\usepackage{caption}
\usepackage{lipsum}
\tcbset{
fullwidth/.style={
enhanced,
grow to right by=\marginparsep+\marginparwidth,
sidebyside,
righthand width=\marginparwidth,
sidebyside gap=\marginparsep,
segmentation hidden},
}
\newtcbtheorem{Thm}{Teorema}%
{colback=green!5,colframe=green!35!black,fonttitle=\bfseries}{thm}
\begin{document}
\mainmatter
\lipsum[2]
\begin{Thm}[fullwidth]{Titolo}{esempio}
\lipsum[2]
\tcblower
\centering
\includegraphics[width=\linewidth]{example-image-a}
\captionof{figure}{My first figure}
\end{Thm}
\begin{tcbraster}[
raster width=\linewidth+\marginparsep+\marginparwidth,
raster force size=false,
raster column skip=\marginparsep,]
\begin{Thm}[width=\textwidth]{Titolo}{esempio}
Esempio di teorema.
\end{Thm}
\begin{tcolorbox}[blankest, width=\marginparwidth]
\includegraphics[width=\marginparwidth]{example-image-a}
\captionof{figure}{Figura di esempio}
\label{fig:ex_a}
\end{tcolorbox}
\end{tcbraster}
\end{document}