在双列布局中调整宽度?

在双列布局中调整宽度?

是否可以改变文档中间两列布局的边距是多少?您会看到,在下面的示例中,左边距总是增加。但是,我想增加左列的左边距和右列的右边距。可以吗?

\documentclass[twocolumn]{scrartcl}
\usepackage{changepage, lipsum}
\begin{document}
    \lipsum[1]
    \begin{adjustwidth}{1cm}{0cm}
        \lipsum[2-4]
    \end{adjustwidth}
\lipsum[5]
\end{document}

在此处输入图片描述

编辑:使用 multicol 可能不是一个选项,因为文档应该包含浮点数。

答案1

一般情况下,LaTeX 会逐段设置文本,之后才可能在段落内开始新页面。粗略地说,段落的设置跨越页面边界。

环境adjustwidth将跨页面边界保持不变。twocolumns设置将从一列延续到下一列。您可以为左列和右列设置两种不同的设置,但如果列中间出现分栏符,则该段落的设置将继续延续到下一列。

但是,您可以在两列中进行不同的设置。

% adjtwocolprob.tex  SE 639945
%% from SE 640138
%% DG with multicol \docolaction{left}{middle}{right}
%% John Kormylo  \if@firstcolumn, but not reliable
    
\documentclass[twocolumn]{scrartcl}
\usepackage{changepage, lipsum}

\makeatletter
\newenvironment{altadjustwidth}[2]{%
  \if@firstcolumn
  \begin{adjustwidth}{#1}{#2}
    \else
    \begin{adjustwidth}{#2}{#1}
      \fi}
{\end{adjustwidth}}
  
\begin{document}
    \lipsum[1]
    \begin{adjustwidth}{1cm}{0cm}
        \lipsum[2]
    \end{adjustwidth}
    \begin{adjustwidth}{1cm}{0cm}
        \lipsum[3]
    \end{adjustwidth}
    \begin{adjustwidth}{1cm}{0cm}
        \lipsum[4]
    \end{adjustwidth}
    \lipsum[5]

    \begin{center}
    TRY IT WITH ALTADJUSTWIDTH
    \end{center}
    
    \lipsum[1]
    \begin{altadjustwidth}{1cm}{0cm}
        \lipsum[2]
    \end{altadjustwidth}
    \begin{altadjustwidth}{1cm}{0cm}
        \lipsum[3]
    \end{altadjustwidth}
    \begin{altadjustwidth}{1cm}{0cm}
        \lipsum[4]
    \end{altadjustwidth}
    \lipsum[5]
\end{document}

在此处输入图片描述

然而,您必须确保adjustwith不跨越页面边界。

答案2

尝试这个:

\documentclass{scrartcl}
\usepackage{changepage, lipsum,multicol}
\begin{document}
    \begin{multicols}{2}
    \lipsum[1]
    \end{multicols}
\begin{adjustwidth}{-1cm}{-1cm}
\begin{multicols}{2}
        \lipsum[2-4]
\end{multicols} 
    \end{adjustwidth}
    \begin{multicols}{2}
    \lipsum[5]
\end{multicols} 
\end{document}

输出:

在此处输入图片描述

相关内容