Squeezing space in Latex

Here are some tips on how to squeeze a little more onto LaTeX pages. Note that these methods may adversely affect the appearance of the document, so use them with caution. Rephrasing and editing your text often leads to better results.

The savetrees package executes many of these methods, packing as much text as possible onto each page.

Page Layout

The a4 package will give you narrower margins. To have more control use the geometry package. If you use the layout package then \layout will produce a test page showing the values of the variables that control page layout.

\newcommand{\CLASSINPUTtoptextmargin}{2cm}
\newcommand{\CLASSINPUTbottomtextmargin}{2cm}

Changing lengths

There are many variables in LaTeX determining lengths. Two commands to change them are  \addtolength  and  \setlength . The dimensions understood by LaTeX include  cm mm in  and  pt . Variables can be set to a negative value.

Example: \addtolength{\parindent}{-5mm}

Some useful variables are

  • Page Layout
    • \columnsep: gap between columns
    • \topmargin: gap above header
    • \topskip: between header and text
    • \textheight: height of main text
    • \textwidth: width of text
    • \oddsidemargin: odd page left margin
    • \evensidemargin : even page left margin
  • Paragraphs
    • \parindent: indentation of paragraphs
    • \parskip: gap between paragraphs
  • Floats (tables and figures)
    • \floatsep: space left between floats.
    • \textfloatsep: space between last top float or first bottom float and the text.
    • \intextsep : space left on top and bottom of an in-text float.
    • \dbltextfloatsep is \textfloatsep for 2 column output.
    • \dblfloatsep is \floatsep for 2 column output.
    • \abovecaptionskip: space above caption
    • \belowcaptionskip: space below caption
  • Maths
    • \abovedisplayskip: space before maths
    • \belowdisplayskip: space after maths
    • \arraycolsep: gap between columns of an array
  • Lists
    • \topsep: space between first item and preceding paragraph.
    • \partopsep: extra space added to \topsep when environment starts a new paragraph.
    • \itemsep: space between successive items.

Environments

The  atbeginend.sty  package provides  \BeforeBegin{environment}{code-to-execute} \AfterEnd ...  etc. These commands can be used to remove space around and within environments. This can be useful in situations where the environment resets values that over-ride those you've created. For example,  \AfterBegin{itemize}{\addtolength{\itemsep}{-\baselineskip}}  in a LaTeX file squeezes items together by resetting  \itemsep  inside the environment.

The mdwlist package has a itemize* environment.

The paralist package offers a compactitem environment (that puts less space between items) and an inparaenum environment (that doesn't create new paragraphs for each item).

Figures and Tables

To save space, you can put more than one graphic inside a figure environment by using the  subfigure  package. It's also possible to wrap text around a figure using the  floatflt  package.

Using "\begin{figure} ... \centering ..." rather than "\begin{figure} ... \begin{center} ..." saves space. Sometimes excessive white space around a figure isn't LaTeX's fault. It may be that a postscript figure contains a big white border. ps2epsi can be used to produce a minimal bounding box, or you can use the clipping feature of the \includegraphics command of the graphicx package.

By default, LaTeX doesn't like to fill more than 0.7 of a text page with tables and graphics, nor does it like too many figures per page. This behaviour can be changed by placing lines like the following before \begin{document}

\renewcommand\floatpagefraction{.9}
\renewcommand\topfraction{.9}
\renewcommand\bottomfraction{.9}
\renewcommand\textfraction{.1}   
\setcounter{totalnumber}{50}
\setcounter{topnumber}{50}
\setcounter{bottomnumber}{50}
To reduce the size of captions use the  caption  package.

If you have a big table you might wish to bracket it by \begin{small} ... \end{small}.

You can reduce the gap between table columns by using \setlength{\tabcolsep}{1pt}. It may also be possible to scale a whole table as you can a piece of graphics, using \resizebox{!}{5cm}{\begin{tabular} ... \end{tabular}} though you need to view the output as postscript.

Headings

Vertical space around a heading depends on  \parskip \baselineskip  and other parameters that LaTeX sends to the  @startsection  routine. Remember also that LaTeX doesn't like putting a heading right at the bottom of a page - it would rather leave space.

Unless you want to redefine the sectioning commands yourself, it's worth looking at the titlesec package, which offers space-saving alternatives to the standard sectioning commands (especially \chapter). Even just \usepackage[small,compact]{titlesec}might save you quite a lot.

Contents and bibliography

The  mulitoc  package lets you have a two column table of contents in a single column document.

To reduce the linespacing in a bibliography (the same idea works for contents pages) use the setspace package

\begin{spacing}{0.9}
\tableofcontents
\end{spacing}
...

\begin{spacing}{0.9}
\bibliographystyle{plain}
\bibliography{refs}
\end{spacing}
If you're using the  natbib  package (recommended) then you can change the value of  \bibsep  to control the gap between items. Otherwise put the following (suggested by Axel Reichert) in the preamble
  \let\oldthebibliography=\thebibliography
  \let\endoldthebibliography=\endthebibliography
  \renewenvironment{thebibliography}[1]{%
    \begin{oldthebibliography}{#1}%
      \setlength{\parskip}{0ex}%
      \setlength{\itemsep}{0ex}%
  }%
  {%
    \end{oldthebibliography}%
  }

You can use the same idea to modify other environments - theglossary, etc.



A dirty trick

\hspace*{-4cm} before anything. But it seems not work well with two-column format.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值