我正在嘗試找到一種方法,以便能夠在單個頁面上隨時修改頁面的所有邊距,並且可以多次修改頁面的所有邊距,以便能夠輕鬆地將文字放在我想要的位置頁面。
我想過使用幾何包並使用
\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}
由於輸出看起來幾乎相同,因此我不提供圖片。