Latex - Modifica i margini di poche pagine


91

Ho un documento Latex in cui ho bisogno di modificare i margini solo di poche pagine (le pagine in cui sto aggiungendo molta grafica).

In particolare, vorrei modificare i margini superiori ( \voffset). Ho provato a fare:

\addtolength{\voffset}{-4cm}

% Insert images here

\addtolength{\voffset}{4cm}

ma non ha funzionato. Ho visto riferimenti al pacchetto di geometria, ma non ho trovato come usarlo per un mucchio di pagine e non per l'intero documento.

Qualche suggerimento?

Risposte:


67

L'ho usato in beamer, ma non per i documenti generali, ma sembra che sia quello che suggerisce il suggerimento originale

\newenvironment{changemargin}[2]{%
\begin{list}{}{%
\setlength{\topsep}{0pt}%
\setlength{\leftmargin}{#1}%
\setlength{\rightmargin}{#2}%
\setlength{\listparindent}{\parindent}%
\setlength{\itemindent}{\parindent}%
\setlength{\parsep}{\parskip}%
}%
\item[]}{\end{list}}

Quindi usarlo

\begin{changemargin}{-1cm}{-1cm}

non dimenticare di farlo

\end{changemargin}

alla fine della pagina

Ho ottenuto questo da Modifica dei margini "al volo" nelle FAQ di TeX.


4
Questo funziona meglio per me che usare la geometria, poiché includere il pacchetto della geometria nel preambolo rompe già il layout dello stile che devo usare.
martedì

Grazie mille per questo!
SRG

156

Usa il pacchetto "geometry" e scrivi \newgeometry{left=3cm,bottom=0.1cm}dove vuoi cambiare i margini. Quando vuoi azzerare i tuoi margini, scrivi \restoregeometry.


5
Grazie, funziona perfettamente. Ho trovato utile esaminare la documentazione perché ci sono molte altre opzioni di margine oltre a sinistra, destra, alto e basso: sharelatex.com/learn/Page_size_and_margins
Noah Sussman

3
L'unico problema con i geometrycomandi è che scaricano il testo nella pagina successiva se viene utilizzato nel mezzo di una pagina, poiché la geometria è definita per "pagina".
Emadpres

@Emadpres Dato che vuoi definire nuovi margini per alcune pagine, \newpageo \pagebreaksono comandi necessari e naturali che usi per primi.
CK

14

Stavo lottando molto con diverse soluzioni tra cui \ vspace {-Xmm} nella parte superiore e inferiore della pagina e gestivo avvisi ed errori. Finalmente ho trovato questa risposta:

Puoi modificare i margini di una o più pagine e quindi ripristinarli al valore predefinito:

\usepackage{geometry}
...
... 
...
\newgeometry{top=5mm, bottom=10mm}     % use whatever margins you want for left, right, top and bottom.
...
... %<The contents of enlarged page(s)>
...    
\restoregeometry     %so it does not affect the rest of the pages.
...
... 
...

PS:

1- Questo può anche risolvere il seguente avviso:

Avviso LaTeX: Float troppo grande per la pagina di ... pt sulla riga di input ...

2- Per una risposta più dettagliata guarda questo .

3- Ho appena scoperto che questa è un'ulteriore elaborazione della risposta di Kevin Chen.


5
\par\vfill\break % Break Last Page

\advance\vsize by 8cm % Advance page height
\advance\voffset by -4cm % Shift top margin
% Start big page
Some pictures
% End big page
\par\vfill\break % Break the page with different margins

\advance\vsize by -8cm % Return old margings and page height
\advance\voffset by 4cm % Return old margings and page height

2

Per le figure puoi usare il metodo descritto qui:
http://texblog.net/latex-archive/layout/centering-figure-table/
ovvero, fai qualcosa del genere:

\begin{figure}[h]
\makebox[\textwidth]{%
        \includegraphics[width=1.5\linewidth]{bla.png}
    }
\end{figure}

Nota che se hai sottofigure nella figura, probabilmente vorrai entrare in modalità paragrafo all'interno del riquadro, in questo modo:

\begin{figure}[h]
\makebox[\textwidth]{\parbox{1.5\textwidth}{ %
\centering
\subfigure[]{\includegraphics[width=0.7\textwidth]{a.png}}
\subfigure[]{\includegraphics[width=0.7\textwidth]{b.png}}
\end{figure}

Per consentire alla figura di essere centrata nella pagina, sporgendo in entrambi i margini anziché solo nel margine destro.
Questo di solito fa il trucco per le immagini. Si noti che con questo metodo, la didascalia dell'immagine sarà ancora delimitata dai normali margini della pagina (il che è positivo).


2

Una leggera modifica di questo per cambiare i \voffsetlavori per me:

\newenvironment{changemargin}[1]{
  \begin{list}{}{
    \setlength{\voffset}{#1}
  }
  \item[]}{\end{list}}

E poi metti le tue figure in un \begin{changemargin}{-1cm}...\end{changemargin}ambiente.


0

Cerca \enlargethispagein qualche riferimento LaTeX.


2
Potresti aggiungere più dettagli, inclusa una soluzione, alla tua risposta?
Steve Westbrook

0

Ho avuto lo stesso problema in una presentazione con videoproiettore. Per me ha lavorato utilizzando l'ambiente delle colonne:

\begin{frame}
  \begin{columns}
    \column{1.2\textwidth}
    \begin{figure}
      \subfigure{\includegraphics[width=.49\textwidth]{1.png}}
      \subfigure{\includegraphics[width=.49\textwidth]{2.png}}
    \end{figure}
   \end{columns}
\end{frame}

0

Non sono riuscito a trovare un modo semplice per impostare il margine per una singola pagina.

La mia soluzione era usare vspace con il numero di centimetri di spazio vuoto che volevo:

 \vspace*{5cm}                                                             

Ho inserito questo comando all'inizio delle pagine che volevo avere + 5cm di margine.


1
Non so chi ha votato senza un commento. Questo è stato un salvavita per me!
Stephan Richter
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.