Latex - Zmień marginesy tylko kilku stron

90

Mam dokument Latex, w którym muszę zmienić marginesy tylko kilku stron (stron, na których dodaję dużo grafiki).

W szczególności chciałbym zmienić górne marginesy ( \voffset). Próbowałem zrobić:

\addtolength{\voffset}{-4cm}

% Insert images here

\addtolength{\voffset}{4cm}

ale to nie zadziałało. Widziałem odniesienia do pakietu geometrii, ale nie znalazłem, jak go używać na kilku stronach, a nie w całym dokumencie.

Jakieś wskazówki?

pgb
źródło

Odpowiedzi:

66

Używałem tego w beamer, ale nie w przypadku dokumentów ogólnych, ale wygląda na to, że tak sugeruje oryginalna wskazówka

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

Potem go użyć

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

nie zapomnij

\end{changemargin}

na końcu strony

Zdobyłem to dzięki zmianie marginesów „w locie” w TeX-owym FAQ.

ansate
źródło
3
Działa to lepiej dla mnie niż używanie geometrii, ponieważ włączenie pakietu geometrii do preambuły już narusza układ stylu, którego mam użyć.
mak
Wielkie dzięki za to!
SRG,
152

Skorzystaj z pakietu „geometria” i napisz, \newgeometry{left=3cm,bottom=0.1cm}gdzie chcesz zmienić marginesy. Kiedy chcesz zresetować marginesy, piszesz \restoregeometry.

Kevin Chen
źródło
5
Dziękuję, to działa idealnie. Pomogło mi przyjrzeć się dokumentacji, ponieważ istnieje wiele innych opcji marginesów oprócz lewej, prawej, góry i dołu: sharelatex.com/learn/Page_size_and_margins
Noah Sussman
3
Jedynym problemem związanym z geometrypoleceniami jest to, że umieszczają one tekst na następnej stronie, jeśli są używane w środku strony, ponieważ geometria jest zdefiniowana dla „strony”.
Emadpres
@Emadpres Ponieważ chcesz zdefiniować nowe marginesy dla niektórych stron, \newpagelub \pagebreaksą konieczne i naturalne polecenia, których używasz najpierw.
CK
13

Dużo zmagałem się z różnymi rozwiązaniami, w tym \ vspace {-Xmm} na górze i na dole strony oraz radzeniem sobie z ostrzeżeniami i błędami. Wreszcie znalazłem tę odpowiedź:

Możesz zmienić marginesy jednej lub więcej stron, a następnie przywrócić ustawienia domyślne:

\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- Może to również naprawić następujące ostrzeżenie:

Ostrzeżenie LaTeX: wartość zmiennoprzecinkowa jest zbyt duża dla strony o ... pkt w wierszu wprowadzania ...

2- Aby uzyskać bardziej szczegółową odpowiedź, spójrz na to .

3- Właśnie stwierdziłem, że jest to bardziej rozwinięcie odpowiedzi Kevina Chena.

Alisa
źródło
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
Alexey Malistov
źródło
2

W przypadku liczb możesz użyć metody opisanej tutaj:
http://texblog.net/latex-archive/layout/centering-figure-table/,
a mianowicie zrób coś takiego:

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

Zwróć uwagę, że jeśli na rysunku masz podobiekty, prawdopodobnie będziesz chciał przejść do trybu akapitu wewnątrz pola, na przykład:

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

Umożliwienie wyśrodkowania figury na stronie i wystawienie jej na oba marginesy, a nie tylko na prawy margines.
To zwykle załatwia sprawę w przypadku obrazów. Zauważ, że dzięki tej metodzie podpis obrazu nadal będzie ograniczony normalnymi marginesami strony (co jest dobre).

shoosh
źródło
2

Niewielka modyfikacja tego, aby zmienić \voffsetprace dla mnie:

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

A potem umieść swoje figury w \begin{changemargin}{-1cm}...\end{changemargin}środowisku.

Noe
źródło
0

Poszukaj \enlargethispagew niektórych odniesieniach do LaTeX.

Żaden
źródło
2
Czy możesz dodać więcej szczegółów, w tym rozwiązanie, do swojej odpowiedzi?
Steve Westbrook
0

Miałem ten sam problem w prezentacji beamer. U mnie pracowałem używając środowiska kolumn:

\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}
user3510575
źródło
-1

Nie mogłem znaleźć prostego sposobu na ustawienie marginesu dla pojedynczej strony.

Moim rozwiązaniem było użycie vspace z liczbą centymetrów pustej przestrzeni, którą chciałem:

 \vspace*{5cm}                                                             

To polecenie umieściłem na początku stron, które chciałem mieć + 5cm marginesu.

Neaţu Ovidiu Gabriel
źródło