I'm currently writing LaTeX articles containing all of my lessons content in order to have it on a very few pages instead of the heavy thing the teacher gives us with exercises, demonstrations and so on.

The goal of it is to be really short so I can see it before an oral. I've already tried to improve this with :

\marginparwidth 0pt
\oddsidemargin 0pt
\evensidemargin 0pt
\marginparsep 0pt
\topmargin 0pt
\textwidth 6.5in
\textheight 8.5in

And I specified a small font-size in the document class :

\documentclass[a4paper, 10pt]{article}

This works really well. However, the \maketitle command creates the title very low on the first page and this is kind of awkward.

Is there a workaround for this? And by the way do you have other tips to reduce the space taken by the text while still keeping it legible?

  • 1
    This question has been asked before, see tex.stackexchange.com/questions/51494/… – Sveinung Sep 16 '12 at 11:50
  • 2
    It doesn't solve the title problem though. – Cydonia7 Sep 16 '12 at 12:03
  • 2
    You could replace all of the commands given in your example with the single instruction \usepackage[margin=1in]{geometry}. Separately, do you even need formal title, author, and date groups in your document? Why not just write \section*{<Title>, <Author>, <Date>}? – Mico Sep 16 '12 at 12:50
  • 1
    @lockstep This is not a duplicate. See the comment to my first comment. The referenced question does not cover redefining the \maketitle. Please reopen it! Instead the referenced answer should be closed as superseded by this one! – Sveinung Sep 17 '12 at 11:17
  • 1
    @Sveinung I already recognized my mistake, edited the title, cast the first reopen vote and announced the problem in chat. Isn't your reputation sufficient to vote for reopening, too? – lockstep Sep 17 '12 at 11:19

Unless you are using something like extsizes the 8pt option won't do anything.

\maketitle is a fairly simple command defined in article class, You could simply go


but better would be to redefine it to use a tight layout, an extreme version might be



| improve this answer | |
  • I added a \huge command in your definition containing the \textbf. That made all the text get bigger. Then I've put it inside the textbf and that worked really well. That's strange though... Thank you ! – Cydonia7 Sep 16 '12 at 12:16
  • 1
    my definition didn't have any scoping other than that given by textbf so any declarations would apply after the command. For size changes it is best to include the following paragraph otherwise line spacing is messed up so \par{\huge\bfseries\@title\par}% is probably what you want. – David Carlisle Sep 16 '12 at 13:07

One approach to getting lots onto a page is to use the savetrees package. This reduces margins, makes fonts smaller and so on to get as much as possible onto each page: there are various settings to 'control' how much is done.

| improve this answer | |

In addition to a custom title and sections, small margins and small font size, you can also reduce line spacing a little (0.9 or even 0.8 if you can read it) and increase a little the readability using color for titles and two columns option (one column is more difficult to follow with so many small characters per line).

Although no very evident at first glance, the microtype could help for increasing the readability in this conditions, and even increase a little the text density. This is a MWE:

\usepackage[    % Much better micro typography
protrusion=true, % adjust to your eye needs 
letterspace=50, % well spaced smallcaps
shrink=40,      % may be 20 or less is good   
factor=1000]    % may be less that 1000 

\usepackage[margin=1cm,bmargin=1.4cm]{geometry} % little margins 
\usepackage{lipsum} % dummy text

\setstretch{0.8}      % same as \linespread{.8} 


\def\@maketitle{   % custom maketitle 
{\Large \bfseries \color{red} \@title}
{\scshape Teacher:} \@author ~ at  \@date \par 
\smallskip \hrule \bigskip }

% custom section 
{section}%                   % the name
{1}%                         % the level
{0mm}%                       % the indent
{-0.5\baselineskip}%            % the before skip
{0.5\baselineskip}%          % the after skip
{\bfseries\color{blue}}} % the style


\title{Howto obtain very highly condensed texts}
\author{Peter Grumpy}

\section{Lore ipsum}
\section{Nam dui ligula}



| improve this answer | |
  • A very nice answer. – Sveinung Sep 16 '12 at 15:49
  • The page number is a bit too low, otherwise a very nice approach. It combines a high density but preserves readability. +1 – Alexander Sep 16 '12 at 16:11
  • @Alexander, oops! I forgot the page number. I will correct just now with bmargin=1.4cm – Fran Sep 16 '12 at 16:30
  • I guess it bothers me more than it should that the section title should be "Lorem ipsum" not "Lore ipsum". And \setstretch{0.8} is arguably not the same as \linespread{0.8}. – Skillmon likes topanswers.xyz Jan 14 '18 at 18:50
  • @Skillmon (a)\relax, is only dummy text. :) (b) I meant "same result as is, in the preamble". I know that the first also set \@currsize but if I'm not wrong this is irrelevant in the preamble, so both commands can be used equally to set \baselinestretch to 0.8 (at least the result is exactly the same in the MWE). – Fran Jan 15 '18 at 1:06

A simple, but brute force, approach is to use the scrartcl from the KOMAscript-bundle with a very high DIV-factor, the headings=small-option and and some \vspace{-\baselineskip}. Instead of the \vspace-command, you can redefine the \maketitle-command as David Carlisle recommends.

A MWE with \vspace:

\thispagestyle{empty} % Remove page number
\vspace{-1.5\baselineskip}\lipsum[1-12] % Move the body text up


Using <code>\vspace</code>

A MWE with redefined \maketitle and multicol:







Using redefined <code>\maketitle</code>

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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