Cambiar los márgenes superior, inferior, izquierdo y derecho sobre la marcha

Cambiar los márgenes superior, inferior, izquierdo y derecho sobre la marcha

Estoy tratando de encontrar una manera de poder modificar todos los márgenes de una página cuando quiera y tantas veces como quiera en una sola página para poder poner texto muy fácilmente donde quiera. una página.

He pensado en usar el paquete de geometría y usar

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

pero desafortunadamente esto solo funciona para páginas completas, por lo que solo puedo cambiar los márgenes una vez por página (y luego son válidos para toda la página sin tener la posibilidad de cambiarlos nuevamente).

Encontré el siguiente script en Internet que permite a los usuarios cambiar los márgenes sobre la marcha, tal como yo quiero. El siguiente código funciona bien y me permite cambiar los márgenes izquierdo y derecho de mi página tantas veces como quiera, pero desafortunadamente no me da la opción de cambiar los márgenes 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 esta razón, intenté adaptar el código anterior y obtuve el siguiente código:

% 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}

Compila y aún cambia los márgenes izquierdo y derecho, pero el margen superior permanece sin cambios. (Aún no he intentado cambiar el margen inferior).

¿Alguien puede ayudarme a hacer que este código funcione completamente y permitirme modificar los márgenes izquierdo, derecho, superior e inferior de una página? Gracias.

Respuesta1

Puedes usar una combinación degeometry(para cambiar los márgenes superior e inferior) y el adjustwidthentorno proporcionado por elchangepagepaquete (esto usa internamente una lista y es similar a su changemarginentorno):

\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}

ingrese la descripción de la imagen aquí

Te recomiendo encarecidamente, como opinión personal,nopara hacer esto.

Respuesta2

Sólo para completar: con unclase komapuedes producir los mismos resultados extraños con el propio addmarginentorno de KOMA-Scripts.

Me tomé la libertad de tomarGonzalo MedinaEjemplo y ajústelo 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}

Dado que el resultado se ve casi igual, no proporciono una imagen.

información relacionada