Estou tentando encontrar uma maneira de modificar todas as margens de uma página sempre que quiser e quantas vezes quiser em uma única página, para poder colocar o texto com muita facilidade onde quiser. uma página.
Eu pensei em usar o pacote de geometria e usar
\newgeometry{left=6.75cm, right=1cm, top=1cm, bottom=1cm}
%…
\restoregeometry
mas infelizmente isso só funciona para páginas inteiras, então só posso alterar as margens uma vez por página (e então elas são válidas para a página inteira sem ter a possibilidade de alterá-las novamente).
Encontrei o seguinte script na internet que permite aos usuários alterar as margens rapidamente, como eu desejo. O código abaixo funciona bem e me permite alterar as margens esquerda e direita da minha página quantas vezes eu quiser, mas infelizmente não me dá a opção de alterar as margens superior e inferior.
% 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}
Por esse motivo, tentei adaptar o código acima e cheguei ao código abaixo:
% 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}
Ele compila e ainda altera as margens esquerda e direita mas a margem superior permanece inalterada. (Ainda não tentei alterar a margem inferior).
Alguém pode me ajudar a fazer esse código funcionar completamente e permitir que eu modifique as margens esquerda, direita, superior e inferior de uma página? Obrigado.
Responder1
Você pode usar uma combinação degeometry
(para alterar as margens superior e inferior) e o adjustwidth
ambiente fornecido pelochangepage
pacote (este usa internamente uma lista e é semelhante ao seu changemargin
ambiente):
\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}
Eu sugiro fortemente que você, como opinião pessoal,nãopara fazer isso.
Responder2
Apenas por uma questão de completude: com umClasse KOMAvocê pode produzir os mesmos resultados estranhos com o próprio addmargin
ambiente do KOMA-Scripts.
Tomei a liberdade de tomarGonzalo Medinaexemplo e ajuste-o para 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}
Como a saída parece quase a mesma, não forneço uma imagem.