答案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}
输出: