关于多列宽度和小页面在部分与主文档中的差异的问题

关于多列宽度和小页面在部分与主文档中的差异的问题

我正在尝试将一个页面分成两半,使用并排的两个小页面。因此我做了以下构造

\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}

Mathematica 图形

现在我只需添加一个部分,并保持所有内容不变,它仍然有效,只要在 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}

Mathematica 图形

我在两列之前添加了一个字母,现在小页面彼此重叠

\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}

Mathematica 图形

当我将 minipage 的大小从 减小0.450.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}

Mathematica 图形

问题是:为什么我在之前添加一行时必须减小部分内小页面的尺寸以使它们保持并排?文本宽度是否会根据章节、部分等而变化?

附录:

我确实尝试过\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}

Mathematica 图形

我不知道为什么\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这里真的不需要环境。你可以直接使用minipages:

\section{bar}
a

\noindent
\begin{minipage}[t]{0.45\textwidth}
  yyyyyyyyyyy
\end{minipage}%
\hfill
\begin{minipage}[t]{0.45\textwidth}
  yyyyyyyyyyy
\end{minipage}

仅使用 minipages 即可消除缩进

或者

\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}

相关内容