ลาเท็กซ์ - เปลี่ยนระยะขอบเพียงไม่กี่หน้า


91

ฉันมีเอกสารลาเท็กซ์ที่ฉันต้องการเปลี่ยนระยะขอบเพียงไม่กี่หน้า (หน้าที่ฉันเพิ่มกราฟิกจำนวนมาก)

โดยเฉพาะอย่างยิ่งฉันต้องการเปลี่ยนระยะขอบบนสุด ( \voffset) ฉันได้ลองทำแล้ว:

\addtolength{\voffset}{-4cm}

% Insert images here

\addtolength{\voffset}{4cm}

แต่มันไม่ได้ผล ฉันเคยเห็นการอ้างอิงถึงแพ็คเกจเรขาคณิต แต่ฉันไม่พบวิธีใช้สำหรับหลาย ๆ หน้าไม่ใช่สำหรับทั้งเอกสาร

คำแนะนำใด ๆ ?

คำตอบ:


67

ฉันเคยใช้สิ่งนี้ใน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


4
สิ่งนี้ได้ผลดีสำหรับฉันมากกว่าการใช้รูปทรงเรขาคณิตเนื่องจากการรวมแพ็คเกจเรขาคณิตในคำนำหน้านั้นทำให้เค้าโครงของสไตล์ที่ฉันต้องใช้แตกไปแล้ว
หัวหมาก

ขอบคุณมากสำหรับสิ่งนี้!
SRG

156

ใช้แพ็คเกจ "geometry" และเขียน\newgeometry{left=3cm,bottom=0.1cm}ตำแหน่งที่คุณต้องการเปลี่ยนระยะขอบ \restoregeometryเมื่อคุณต้องการรีเซ็ตอัตรากำไรขั้นต้นของคุณที่คุณเขียน


5
ขอบคุณที่ทำงานได้อย่างสมบูรณ์แบบ ฉันพบว่ามันช่วยในการดูเอกสารเนื่องจากมีตัวเลือกระยะขอบอื่น ๆ อีกมากมายนอกเหนือจากซ้ายขวาบนและล่าง: sharelatex.com/learn/Page_size_and_margins
Noah Sussman

3
ปัญหาเดียวของgeometryคำสั่งคือคำสั่งจะล้างข้อความในหน้าถัดไปหากมีการใช้ตรงกลางหน้าเนื่องจากรูปทรงเรขาคณิตถูกกำหนดไว้สำหรับ "หน้า"
Emadpres

@Emadpres เนื่องจากคุณต้องการกำหนดระยะขอบใหม่สำหรับบางเพจ\newpageหรือ\pagebreakเป็นคำสั่งที่จำเป็นและเป็นธรรมชาติที่คุณใช้ก่อน
CK

14

ฉันกำลังดิ้นรนอย่างมากกับโซลูชันต่างๆรวมถึง \ 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- ฉันเพิ่งพบว่านี่เป็นการอธิบายเพิ่มเติมเกี่ยวกับคำตอบของ 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

สำหรับตัวเลขคุณสามารถใช้วิธีการที่อธิบายไว้ที่นี่:
http://texblog.net/latex-archive/layout/centering-figure-table/
กล่าวคือทำสิ่งนี้:

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

สังเกตว่าหากคุณมี subfigures ในรูปคุณอาจต้องการเข้าสู่โหมดย่อหน้าภายในกล่องดังนี้:

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

0

ฉันไม่พบวิธีง่ายๆในการกำหนดระยะขอบสำหรับหน้าเดียว

วิธีแก้ปัญหาของฉันคือใช้ vspace กับจำนวนพื้นที่ว่างที่ฉันต้องการ:

 \vspace*{5cm}                                                             

ฉันใส่คำสั่งนี้ที่จุดเริ่มต้นของหน้าที่ฉันต้องการให้มีระยะขอบ + 5cm


1
ไม่รู้ว่าใครโหวตเรื่องนี้โดยไม่แสดงความคิดเห็น นี่คือผู้ช่วยชีวิตฉัน!
Stephan Richter
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.