我有以下代码
\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}
这也导致
但没有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}
导致:
亦无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
。但如果你真的想要制作一份难看的文件