Латекс - змініть поля лише на декількох сторінках


90

У мене є латексний документ, де мені потрібно змінити поля лише кількох сторінок (сторінок, на які я додаю багато графіки).

Зокрема, я хотів би змінити верхні поля ( \voffset). Я спробував зробити:

\addtolength{\voffset}{-4cm}

% Insert images here

\addtolength{\voffset}{4cm}

але це не спрацювало. Я бачив посилання на пакет геометрії, але не знайшов, як використовувати його для купу сторінок, а не для цілого документа.

Будь-які підказки?

Відповіді:


66

Я використовував це в beamer, але не для загальних документів, але, схоже, саме так підказує оригінальний підказка

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

Потім використовувати його

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

не забудьте

\end{changemargin}

в кінці сторінки

Я отримав це за допомогою Змінення полів «на льоту» у TeX FAQ.


3
Для мене це працює краще, ніж використання геометрії, оскільки включення пакету геометрії в преамбулу вже порушує макет стилю, який я повинен використовувати.
mak

Велике спасибі за це!
SRG

151

Скористайтеся пакетом "геометрія" та напишіть, \newgeometry{left=3cm,bottom=0.1cm}де ви хочете змінити поля. Коли ви хочете скинути поля, ви пишете \restoregeometry.


5
Дякую, це чудово працює. Я виявив, що це допомогло переглянути документацію, оскільки є багато інших варіантів полів, крім лише лівого, правого, верхнього та нижнього: sharelatex.com/learn/Page_size_and_margins
Ноа Суссман

3
Єдина проблема geometryкоманд полягає в тому, що вони переносять текст на наступну сторінку, якщо вона використовується в середині сторінки, оскільки геометрія визначена як "сторінка".
Emadpres

@Emadpres Оскільки ви хочете визначити нові поля для деяких сторінок, \newpageабо \pagebreakнеобхідні і природні команди, які ви використовуєте спочатку.
CK

13

Я багато боровся з різними рішеннями, включаючи \ vspace {-Xmm} вгорі та внизу сторінки та маючи справу з попередженнями та помилками. Нарешті я знайшов цю відповідь:

Ви можете змінити поля лише однієї або декількох сторінок, а потім відновити її за замовчуванням:

\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- Це також може виправити таке попередження:

Попередження LaTeX: надто великий розмір сторінки для ... pt на рядку введення ...

2- Для отримання більш детальної відповіді дивіться на це .

3- Я щойно виявив, що це більш детальна розробка відповіді Кевіна Чена.


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

Для рисунків ви можете використовувати метод, описаний тут:
http://texblog.net/latex-archive/layout/centering-figure-table/,
а саме, зробіть щось подібне:

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

Зверніть увагу, що якщо на малюнку є підфігури, ви, мабуть, захочете перейти в режим абзацу всередині вікна, наприклад:

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

За те, що малюнок можна відцентрувати на сторінці, виступаючи на обидва поля, а не лише на праве поле.
Зазвичай це робить фокус для зображень. Зверніть увагу, що за допомогою цього методу підпис зображення все одно буде розмежовано звичайними полями сторінки (що добре).


2

Невелика модифікація цього, щоб змінити \voffsetроботи для мене:

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

А потім помістіть свої фігури в \begin{changemargin}{-1cm}...\end{changemargin}оточення.


0

Шукайте \enlargethispageпосилання на LaTeX.


2
Не могли б ви додати більше деталей, включаючи рішення, до своєї відповіді?
Steve Westbrook

0

У мене була та ж проблема в презентації прожектора. Для мене працював із використанням середовища стовпців:

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

-1

Я не міг знайти простий спосіб встановити поля для однієї сторінки.

Моє рішення полягало у використанні vspace із потрібною кількістю сантиметрів порожнього простору:

 \vspace*{5cm}                                                             

Я поставив цю команду на початку сторінок, на яких я хотів би мати + 5 см поля.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.