TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am using the excellent classicthesis to typeset my thesis. It looks great, and I would be loathe to change unless I had to, but I've run up against a problem.

I have a number of longtables in the document that are in landscape orientation. I want to make the top and bottom margins, before and after the tables smaller, so that I can get more information on a page. At the same time I want to keep the margins in the rest of the document the same.

I have:

  1. Tried using the package changepage, but this does not seem to work with longtable (http://newsgroups.derkeiler.com/Archive/Comp/comp.text.tex/2007-05/msg00623.html also had problems with this)

  2. Considered using package geometry and then changing the margins before I enter the landscape environment with \newgeometry, but classicthesis does not appear to use geometry to manage page layout, so I think this will disrupt the page setup for the rest of the document

  3. Tried playing with \LTpre, \LTpost, \LTleft, \LTright

  4. Tried playing with the \addmargin command for KOMA script

Any thoughts appreciated

share|improve this question
    
I'm not fully certain how this might be useful yet, but classicthesis seems to use areaset. Possibly manipulating these values are a better way to go about it. Your selected answer is not working for me. – Steven Jeuris May 1 at 15:37

The interface could be better, I blame the author of the packages you are using, but this seems to work

\documentclass{article}
\usepackage{lscape,longtable}
\newcounter{z}
\def\z{\stepcounter{z}[[[[[\thez]]]]]}


\makeatletter

\def\fudge#1#2{%
\addtolength\textheight{#1}%
\@colroom\textheight
\vsize\textheight
\@colht\textheight
\def\LS@rot{%
  \setbox\@outputbox\vbox{\hbox{\kern-#2\rotatebox{90}{\box\@outputbox}}}}%
\clearpage}

\makeatother

\begin{document}
\begin{landscape}
\fudge{3cm}{1.5cm}% 3cm longer and raise by 1.5cm
\begin{longtable}{l}
\endhead
\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\
\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\
\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\
\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\
\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\
\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\
\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\\z\\
\end{longtable}
\end{landscape}
\end{document}
share|improve this answer

After a whole lot of messing around (including David's solution which I did not seem to get to work as expected) I found it easiest to leave the margins alone when you just need a bit more space to fit one bigger table on a single page.

First I experimented with areaset since this is what classicthesis uses to control margin sizes. Enlarging this before landscape and setting it back to the original after worked. However, these margins also influence where the header is placed, which I found undesirable. This however, could still be a suitable solution to the original OP's question, although I do not immediately know how to fix the 'header issue'.

A simple negative vspace ended up looking the 'cleanest' for me. I removed the space allocated in classicthesis to margins (\marginparsep + \marginparwidth), thus resulting in similar margins to the remainder of the document.

\begin{landscape}
\begin{table}
    \vspace{-\marginparsep}
    \vspace{-\marginparwidth}
    ...
    \caption{Longer table as usual still fitting on one page thanks to negative vspace.}
    \label{table:long_table}
\end{table}
\end{landscape}
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.