我正在学习如何使用 cutwin 包。我将代码复制到https://tex.stackexchange.com/a/74702/247085:
\documentclass{book}
\usepackage{amsthm}
\usepackage{cutwin}
\usepackage{lipsum}
\theoremstyle{plain}
\newtheorem{thm}{Theorem}
\begin{document}
\renewcommand\windowpagestuff{\rule{2cm}{2cm}}
\opencutleft
\begin{thm}
\begin{cutout}{2}{0pt}{\dimexpr\linewidth-2.5cm\relax}{6}
\lipsum[1]
\end{cutout}
\end{thm}
\end{document}
但我无法获得与https://tex.stackexchange.com/a/74702/247085,图片比预期高出了一些行:
我正在使用 TexLive 2021,通过 XeLaTeX 编译上述代码。
答案1
更新的 cutwin 现已在 ctan(2021-10-31)上可用,并且很快就会在 tex 发行版中推出,因此下面的原始答案不再适用。
Cutwin 显然需要一些更新(与 latex 中新图片模式实现的交互),在此之前,您可以将格式回滚到兼容版本
\RequirePackage[2020/02/08]{latexrelease}
\documentclass{book}
\usepackage{amsthm}
\usepackage{cutwin}
\usepackage{lipsum}
\theoremstyle{plain}
\newtheorem{thm}{Theorem}
\begin{document}
\renewcommand\windowpagestuff{\rule{2cm}{2cm}}
\opencutleft
\begin{thm}
\begin{cutout}{2}{0pt}{\dimexpr\linewidth-2.5cm\relax}{6}
\lipsum[1]
\end{cutout}
\end{thm}
\end{document}
答案2
更新 2021-10-31
cutwin 已在 ctan 上更新,不再需要补丁
旧答案
cutwin
在两个地方使用长度,\@tempdimc
但无法确保两次使用之间长度不会改变——而 picture 现在正是这样做的。如果 cutwin 使用自己的临时长度,代码将再次有效:
\documentclass{book}
\usepackage{amsthm}
\usepackage{cutwin}
\usepackage{etoolbox}
\makeatletter
\newlength\cut@tempdimc
% patch twice:
\patchcmd\pageinwindow{\@tempdimc}{\cut@tempdimc}{}{\fail}
\patchcmd\pageinwindow{\@tempdimc}{\cut@tempdimc}{}{\fail}
\usepackage{lipsum}
\theoremstyle{plain}
\newtheorem{thm}{Theorem}
\begin{document}
\renewcommand\windowpagestuff{\rule{2cm}{2cm}}
\opencutleft
\begin{thm}
\begin{cutout}{2}{0pt}{\dimexpr\linewidth-2.5cm\relax}{6}
\lipsum[1]
\end{cutout}
\end{thm}
\end{document}
这是一个明显的错误cutwin
(并且它也应该改变它的用法\@tempdimb
,这也不安全)。