在嵌套的minipage
s 中,我希望放置独立\textwidth
于当前 的占据整个文档的文本\linewidth
。显而易见的解决方案是使用minipage
宽度为 的\textwidth
(在第一个 之前minipage
)似乎工作正常(Overfull hbox
消息除外)。
根据需要,迷你页面C占据整个\textwidth
嵌套的迷你页面A和乙:
问题
- 这种方法是否存在我尚未发现的问题?
- 处理“Overfull hbox”的最佳方法是什么?我可以用 关闭它们
hfuzz=10000
,但这不会阻止报告所有此类消息吗? - 有一个更好的方法吗?
笔记:
- 将文本移到之后
minipage
不是一个选择,因为这会因我正在使用的结构而引入其他复杂情况。 - 如果你好奇,这是解决
wrapfigure
列表问题的技巧。我使用minipgage
s 表示文本和图形。然后,使用解决方案仅排版列表中的前 n 个项目或后 n 个项目我将列表分成两部分,其中列表的第二部分是在我垂直传递图形后排版的。我意识到如果\item
列表中的元素很长,这种方法效果会不太好,但在我的特定用例中,这种情况很少见。
代码:
\documentclass{article}
\usepackage{xcolor}\pagecolor{white}
\newcommand*{\LipsumText}{%
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Morbi sagittis mi quis dui condimentum ullamcorper sed nec est.
Sed eros orci, varius sit amet sem vel, porttitor sodales libero.%
}
\newlength\FullTextWidth
\setlength\FullTextWidth\textwidth
\fboxsep=0pt
\begin{document}
\noindent\fbox{%
\begin{minipage}{0.75\linewidth}
\textbf{A:}
\LipsumText%
\noindent\fbox{%
\begin{minipage}{0.75\linewidth}
\textbf{B:}
\LipsumText%
\noindent\fbox{%
\begin{minipage}{\FullTextWidth}\hfuzz=1000pt
\textbf{C:}
\LipsumText%
\end{minipage}}%
\end{minipage}}%
\end{minipage}}%
\end{document}
答案1
将我的评论变成答案。如果您知道您将在那里放置一个太宽的框,但对此没意见,您可以通过告诉 TeX 该框足够小来消除框满警告。这可以很容易地使用(\rlap
或者如果您愿意,\makebox[\linewidth][l]{<stuff>}
可以改为,在本例中产生相同的输出,但也会告诉 TeX 当前行已满)。
代码示例:
\documentclass{article}
\usepackage{xcolor}\pagecolor{white}
\newcommand*{\LipsumText}{%
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Morbi sagittis mi quis dui condimentum ullamcorper sed nec est.
Sed eros orci, varius sit amet sem vel, porttitor sodales libero.%
}
\newlength\FullTextWidth
\setlength\FullTextWidth\textwidth
\fboxsep=-\fboxrule
\begin{document}
\noindent\fbox{%
\begin{minipage}{0.75\linewidth}
\textbf{A:}
\LipsumText%
\noindent\fbox{%
\begin{minipage}{0.75\linewidth}
\textbf{B:}
\LipsumText%
\noindent\makebox[\linewidth][l]{\fbox{%
\begin{minipage}{\FullTextWidth}
\textbf{C:}
\LipsumText%
\end{minipage}}}%
\end{minipage}}%
\end{minipage}}%
\end{document}
(注意:我已经删除了\hfuzz
设置,并将更改为\fboxsep
,-\fboxrule
这样规则就会显示规则外角的框的精确轮廓,并且不会增加框的尺寸)。