動態變更頂部、底部、左側和右側邊距

動態變更頂部、底部、左側和右側邊距

我正在嘗試找到一種方法,以便能夠在單個頁面上隨時修改頁面的所有邊距,並且可以多次修改頁面的所有邊距,以便能夠輕鬆地將文字放在我想要的位置頁面。

我想過使用幾何包並使用

 \newgeometry{left=6.75cm, right=1cm, top=1cm, bottom=1cm}
 %…
 \restoregeometry

但不幸的是,這只適用於整個頁面,所以我只能每頁更改一次邊距(然後它們對整個頁面有效,而無法再次更改它們)。

我在網路上找到了以下腳本,它使用戶能夠按照我的意願動態更改邊距。下面的程式碼工作正常,使我能夠根據需要多次更改頁面的左右邊距,但不幸的是,它沒有給我更改頂部和底部邊距的選項。

% placed before \begin{document}

\newenvironment{changemargin}[2]{%
\begin{list}{}{%
\setlength{\leftmargin}{#1}%
\setlength{\rightmargin}{#2}%
}%
\item[]}
{\end{list}}

% And then inside the document, whenever I want to use
% the command to change the margins on the current page

\begin{changemargin}{1.9875cm}{-3.7625cm}
% this means the left margin increases by 1.9875cm compared
% to the default left margin (4.7625cm) (so left margin=6.75cm here)
% and the right margin decreases by 3.7625cm (so right margin=1cm)

% ... (text or pictures in new environment)

\end{changemargin}

為此,我嘗試對上面的程式碼進行修改,並得到了下面的程式碼:

% placed before \begin{document}
\newenvironment{changemargin}[3]{%
\begin{list}{}{%
\setlength{\leftmargin}{#1}%
\setlength{\rightmargin}{#2}%
\setlength{\topmargin}{#3}%
}%
\item[]}
{\end{list}}

% And then to use the command:
\begin{changemargin}{1.9875cm}{-3.7625cm}{1cm}
% ...
\end{changemargin}

它編譯並仍然更改左右邊距,但上邊距保持不變。 (我還沒有嘗試改變底部邊距)。

誰能幫助我讓這段程式碼完全運作,並使我能夠修改頁面的左、右、上、下邊距?謝謝。

答案1

您可以組合使用geometry(改變頂部和底部邊距)和adjustwidth提供的環境changepage包(這在內部使用一個列表,它與您的changemargin環境類似):

\documentclass{article}
\usepackage[paperheight=14cm]{geometry}
\usepackage{changepage}
\usepackage{lipsum}

\begin{document}
\lipsum[1-3]
\newpage
\newgeometry{top=0.5cm, bottom=0.5cm}
\begin{adjustwidth}{-2cm}{-1cm}
\lipsum[4]
\end{adjustwidth}
\lipsum[1]
\begin{adjustwidth}{1cm}{2cm}
\lipsum[3]
\end{adjustwidth}
\lipsum[4]
\newpage
\restoregeometry
\lipsum[1-3]
\newpage
\newgeometry{top=2.5cm, bottom=2.5cm}
\begin{adjustwidth}{2cm}{2cm}
\lipsum[4]
\end{adjustwidth}
\lipsum[4]
\begin{adjustwidth}{3cm}{-3cm}
\lipsum[3]
\end{adjustwidth}

\end{document}

在此輸入影像描述

作為個人意見,我強烈建議你,不是去做這個。

答案2

只是為了完整性:科馬級您可以使用 KOMA-Scripts 自己的環境產生同樣奇怪的結果addmargin

我冒昧地採取了貢薩洛·梅迪納的範例並將其調整為scrartcl

\documentclass{scrartcl}
\usepackage[paperheight=18cm]{geometry}
\usepackage{lipsum}

\begin{document}
\lipsum[1-3]
\newpage
\newgeometry{top=0.5cm, bottom=0.5cm}
\begin{addmargin}[-2cm]{-1cm}
\lipsum[4]
\end{addmargin}
\lipsum[1]
\begin{addmargin}[1cm]{2cm}
\lipsum[3]
\end{addmargin}
\lipsum[4]
\newpage
\restoregeometry
\lipsum[1-3]
\newpage
\newgeometry{top=2.5cm, bottom=2.5cm}
\begin{addmargin}[2cm]{2cm}
\lipsum[4]
\end{addmargin}
\lipsum[4]
\begin{addmargin}[3cm]{-3cm}
\lipsum[3]
\end{addmargin}

\end{document}

由於輸出看起來幾乎相同,因此我不提供圖片。

相關內容