我正在尝试将一个页面分成两半,使用并排的两个小页面。因此我做了以下构造
\begin{multicols}{2}
\begin{minipage}[t]{0.45\textwidth}
stuff here
\end{minipage}
%
\begin{minipage}[t]{0.45\textwidth}
stuff here
\end{minipage}
\end{multicols}
看起来效果很好,但我注意到在某个部分中,我必须降低值0.45
才能使 2 个小页面彼此相邻。所以我想知道为什么我原以为的值\textwidth
保持不变。
这是一个在部分之外有效的例子
\documentclass[12pt]{book}%
\usepackage[margin=1in]{geometry}
\usepackage{multicol}
\begin{document}
\begin{multicols}{2}
\begin{minipage}[t]{0.45\textwidth}
xxxxxxxxxxx
\end{minipage}
%
\begin{minipage}[t]{0.45\textwidth}
xxxxxxxxxxx
\end{minipage}
\end{multicols}
\end{document}
现在我只需添加一个部分,并保持所有内容不变,它仍然有效,只要在 cols 之前没有任何内容
\documentclass[12pt]{book}%
\usepackage[margin=1in]{geometry}
\usepackage{multicol}
\begin{document}
\section{foo}
\begin{multicols}{2}
\begin{minipage}[t]{0.45\textwidth}
xxxxxxxxxxx
\end{minipage}
%
\begin{minipage}[t]{0.45\textwidth}
xxxxxxxxxxx
\end{minipage}
\end{multicols}
\end{document}
我在两列之前添加了一个字母,现在小页面彼此重叠
\documentclass[12pt]{book}%
\usepackage[margin=1in]{geometry}
\usepackage{multicol}
\begin{document}
\section{foo}
z
\begin{multicols}{2}
\begin{minipage}[t]{0.45\textwidth}
xxxxxxxxxxx
\end{minipage}
%
\begin{minipage}[t]{0.45\textwidth}
xxxxxxxxxxx
\end{minipage}
\end{multicols}
\end{document}
当我将 minipage 的大小从 减小0.45
到0.4
时,它又恢复了
\documentclass[12pt]{book}%
\usepackage[margin=1in]{geometry}
\usepackage{multicol}
\setlength\parindent{0pt}
\begin{document}
\section{foo}
z
\begin{multicols}{2}
\begin{minipage}[t]{0.40\textwidth}
xxxxxxxxxxx
\end{minipage}
%
\begin{minipage}[t]{0.40\textwidth}
xxxxxxxxxxx
\end{minipage}
\end{multicols}
\end{document}
问题是:为什么我在之前添加一行时必须减小部分内小页面的尺寸以使它们保持并排?文本宽度是否会根据章节、部分等而变化?
附录:
我确实尝试过\setlength\parindent{0pt}
认为这是一个缩进问题,但它没有效果
\documentclass[12pt]{book}%
\usepackage[margin=1in]{geometry}
\usepackage{multicol}
\setlength\parindent{0pt}
\begin{document}
\section{foo}
z
\begin{multicols}{2}
\begin{minipage}[t]{0.45\textwidth}
xxxxxxxxxxx
\end{minipage}
%
\begin{minipage}[t]{0.45\textwidth}
xxxxxxxxxxx
\end{minipage}
\end{multicols}
\end{document}
我不知道为什么\noindent
下面给出的答案有效,但全局\setlength\parindent{0pt}
却无效!
答案1
默认情况下,\section
抑制第一段的缩进,因此
\section{foo}
\begin{multicols}{2}
\begin{minipage}[t]{0.45\textwidth}
xxxxxxxxxxx
\end{minipage}
minipage
从左边距开始第一个。
在列前添加内容时
\section{foo}
z
内容之前的段落缩进被抑制。然后是段落分隔符,因此
\begin{multicols}{2}
\begin{minipage}[t]{0.45\textwidth}
xxxxxxxxxxx
\end{minipage}
第一个minipage
按正常方式缩进。
在最后一个示例中,您不仅更改了宽度,还将默认段落缩进归零。但您不需要(而且几乎肯定不应该)这样做。您只需使用 即可\noindent
。
\section{foo}
z
\noindent
\begin{multicols}{2}
\begin{minipage}[t]{0.45\textwidth}
xxxxxxxxxxx
\end{minipage}
%
\begin{minipage}[t]{0.45\textwidth}
xxxxxxxxxxx
\end{minipage}
\end{multicols}
但multicols
这里真的不需要环境。你可以直接使用minipage
s:
\section{bar}
a
\noindent
\begin{minipage}[t]{0.45\textwidth}
yyyyyyyyyyy
\end{minipage}%
\hfill
\begin{minipage}[t]{0.45\textwidth}
yyyyyyyyyyy
\end{minipage}
或者
\section{foobar}
b
\noindent
\hfill
\begin{minipage}[t]{0.45\textwidth}
zzzzzzzzzzz
\end{minipage}%
\hfill
\begin{minipage}[t]{0.45\textwidth}
zzzzzzzzzzz
\end{minipage}%
\hspace*{\fill}
为了比较:
\documentclass[12pt]{book}
\usepackage[margin=1in]{geometry}
\usepackage{multicol}
\begin{document}
\section{foo}
z
\noindent
\begin{multicols}{2}
\begin{minipage}[t]{0.45\textwidth}
xxxxxxxxxxx
\end{minipage}
%
\begin{minipage}[t]{0.45\textwidth}
xxxxxxxxxxx
\end{minipage}
\end{multicols}
\section{bar}
a
\noindent
\begin{minipage}[t]{0.45\textwidth}
yyyyyyyyyyy
\end{minipage}%
\hfill
\begin{minipage}[t]{0.45\textwidth}
yyyyyyyyyyy
\end{minipage}
\section{foobar}
b
\noindent
\hfill
\begin{minipage}[t]{0.45\textwidth}
zzzzzzzzzzz
\end{minipage}%
\hfill
\begin{minipage}[t]{0.45\textwidth}
zzzzzzzzzzz
\end{minipage}%
\hspace*{\fill}
\end{document}