使用 parskip 选项溢出 \hbox

使用 parskip 选项溢出 \hbox

我有以下代码

\documentclass[parskip=half]{scrbook}

\usepackage{tikz,lipsum}
\input{insbox}

\begin{document}

\InsertBoxR{0}{%
\begin{tikzpicture}
\draw (0,0) rectangle(3,3);
\end{tikzpicture}}

\lipsum

\end{document}

并返回 Overfull \hbox。我发现这个parskip选项是罪魁祸首。是的,我知道有人发布了类似的问题,但我不知道如何应用解决方案,因为我的问题与以下内容无关tcolorbox

当使用 tcolorbox 和 parskip=half KOMA 选项时出现“Overfull \hbox”

你能帮我这个忙吗?

答案1

你可以使用wrapfig2代替insbox

\documentclass[parskip=half]{scrbook}

\usepackage{tikz,lipsum}
\usepackage{wrapfig2}

\begin{document}
\begin{wrapfigure}{r}
\begin{tikzpicture}
\draw (0,0) rectangle(3,3);
\end{tikzpicture}
\end{wrapfigure}
\lipsum

\end{document}

这也导致

使用 wrapfig2 的结果

但没有Overfull \hbox

你也可以尝试wrapfig

\documentclass[parskip=half]{scrbook}

\usepackage{tikz,lipsum}
\usepackage{wrapfig}

\begin{document}

\begin{wrapfigure}{r}{0pt}
\begin{tikzpicture}
\draw (0,0) rectangle(3,3);
\end{tikzpicture}
\end{wrapfigure}
\lipsum

\end{document}

导致:

使用 wrapfig 的结果

亦无Overfull \hbox

为了获得与wrapfig2您需要可选的窄线参数相同的结果:

\documentclass[parskip=half]{scrbook}

\usepackage{tikz,lipsum}
\usepackage{wrapfig}

\begin{document}

\begin{wrapfigure}[7]{r}{0pt}
\begin{tikzpicture}
\draw (0,0) rectangle(3,3);
\end{tikzpicture}
\end{wrapfigure}
\lipsum

\end{document}

或者

\documentclass[parskip=half]{scrbook}

\usepackage{tikz,lipsum}
\usepackage{wrapfig}

\begin{document}

\begin{wrapfigure}[\dimexpr (3cm+.5\baselineskip)/\baselineskip\relax]{r}{0pt}
\begin{tikzpicture}
\draw (0,0) rectangle(3,3);
\end{tikzpicture}
\end{wrapfigure}
\lipsum

\end{document}

答案2

parskip=half这是KoMa 课程的一个标准问题:此选项为 增加一些自然宽度\parfillskip

解决方案:不要使用parskip。但如果你真的想要制作一份难看的文件

相关内容