在我制作的文档中,有几种情况需要将内容组织成几个“列”。例如,下面是我可能使用的一些代码:
\documentclass[letterpaper,12pt]{report}
\usepackage[margin=1in]{geometry}
\begin{document}
\bigskip
\noindent
\begin{minipage}[t]{.45\textwidth}
\raggedright
This is \\
some left-aligned \\
text in a column \\
for demo purposes
\end{minipage}
\hfill
\noindent
\begin{minipage}[t]{.45\textwidth}
\raggedleft
This is \\
some different \\
text, right-aligned \\
for demo purposes, \\
and with more lines.
\end{minipage}
\end{document}
我的问题是关于{.45\textwidth}
minipage 环境定义的部分。在我第一次尝试设置此布局时,我{.5\textwidth}
在每个布局上使用了可能更直观的值 - 因为我想用完整个页面,将其分成两半。
然而,当我使用这个值时,我收到来自 TeX 的警告:
Overfull \hbox (2.61107pt too wide) in paragraph at lines 8--28
我想知道的是,这种行为是否仅仅是因为minipage
有一些隐式填充,我必须通过像这样的分数来处理0.45
,或者是否有一些更清晰的方法来定义这种环境?
(请记住,此示例是简化的 - 在实际文档中,我可能需要两列以上的列,并且列的大小可能不均匀。)
答案1
不,minipage
不提供填充。这是由于您使用了虚假空格导致的问题。为了纠正此问题,使用%
在行尾.例如,考虑一下:
\noindent
\begin{minipage}[t]{.5\textwidth}
\raggedright
This is \\
some left-aligned \\
text in a column \\
for demo purposes
\end{minipage}% <---------------- Note the use of "%"
\begin{minipage}[t]{.5\textwidth}
\raggedleft
This is \\
some different \\
text, right-aligned \\
for demo purposes, \\
and with more lines.
\end{minipage}
也许提供与文档类似的填充的一些有用的东西twocolumn
是使用minipage
宽度\dimexpr.5\textwidth-.5\columnsep
。
以下是所讨论方法的视觉效果,以查看差异(我添加了使用\fbox
零宽度间隙/分离的框架):
\documentclass[letterpaper,12pt]{report}
\usepackage[margin=1in]{geometry}
\setlength{\fboxsep}{-\fboxrule}% Just for this example
\begin{document}
\noindent
\fbox{\begin{minipage}[t]{.45\textwidth}
\raggedright
This is \\
some left-aligned \\
text in a column \\
for demo purposes
\end{minipage}}
\hfill
\noindent
\fbox{\begin{minipage}[t]{.45\textwidth}
\raggedleft
This is \\
some different \\
text, right-aligned \\
for demo purposes, \\
and with more lines.
\end{minipage}}
\bigskip
\noindent
\fbox{\begin{minipage}[t]{.5\textwidth}
\raggedright
This is \\
some left-aligned \\
text in a column \\
for demo purposes
\end{minipage}}
\hfill
\noindent
\fbox{\begin{minipage}[t]{.5\textwidth}
\raggedleft
This is \\
some different \\
text, right-aligned \\
for demo purposes, \\
and with more lines.
\end{minipage}}
\bigskip
\noindent
\fbox{\begin{minipage}[t]{\dimexpr.5\textwidth-.5\columnsep}
\raggedright
This is \\
some left-aligned \\
text in a column \\
for demo purposes
\end{minipage}}% <---------------- Note the use of "%"
\fbox{\begin{minipage}[t]{\dimexpr.5\textwidth-.5\columnsep}
\raggedleft
This is \\
some different \\
text, right-aligned \\
for demo purposes, \\
and with more lines.
\end{minipage}}
\end{document}