2

When writing a document in the memoir class I am getting some unwanted spacing between lists and paragraphs etc. If there isn't a full page of content then instead of placing the blank space at the bottom of the page, it spreads it between paragraphs. It appear to be an attribute of memoir classes as it doesn't happen for articles; unfortunately changing to the document class isn't an option. How do I change the blank space to appear at the bottom of the page?

MWE:

'''

% \documentclass[]{article}

\documentclass[]{memoir}

\usepackage{graphicx}

\begin{document}

\begin{itemize}
\item One

\item Two

\item Three

\end{itemize}

\includegraphics[width=120mm]{example-image-9x16} 

\end{document}
Sveinung
  • 20,355
  • 1
    Remember that memoir is not running as article but as book, in which you'll see the same result. The default in memoir (and book) is to try to have the first and last line line op on each page. This may result in stretched pages of something is moved to the next page like this image or a large math calculation. If you need a break before the image then insert a \pagebreak or learn to use floats. The default in article is to have the page run short (\raggedbottom) but as mentione dthis is not the default in memoir (though it is if you use the articleoption formemoir` – daleif Aug 16 '19 at 13:06
  • @daleif memoir does not change to \raggedbottom with the article option set, at least not on my system (MikTeX 2.9 updated some days ago). – Sveinung Aug 16 '19 at 14:01
  • @Sveinung you're right, it is oneside that does so – daleif Aug 16 '19 at 14:03

1 Answers1

1

Your graphic is to large for the standard memoir or article top and bottom margins, and will overwrite the page number, or running footers. With the existing margins, the maximum you can use is width=108.7mm. It will then fit within the existing text area.

This question has be asked several times before, and linked to LaTeX standard document classes and similar classes use of \flushbottom and \raggedbuttom. If you are going to print your text on both sides and bind it to a book or booklet, you normally prefer the the text in a spread to line up at top and bottom of the page. Therefore, such use classes use \flushbottom. To fill the page, LaTeX stretches the space between paragraphs, displays, headings etc., which looks terrible. However, LaTeX is not meant for 100 per cent automatic typesetting, but assume that a sensible author, after she has finished all the creative writing and proofread the document for typos and grammar at least three time, start the tedious work to apply all type of typographic ‘feinschmecker’ stuff on each page of the document.

NB! When you are using memoir as the two first steps:

  1. you set the option oneside, which will apply raggedbottom, and
  2. you encapsulate the graphic and tables in a floating environment

That is:

\begin{figure}
\includegraphics[width=108.75mm]{example-image-9x16} 
\end{figure}

\begin{table}
  <example-table> 
\end{table}

If, for a good reason, you cannot use the oneside option, you set the document to \raggedbottom.

Forget page breaks etc. until you have finish all writing and proofreading. And remember that if you do not use a floating environment, the graphic may be pushed to the next page and leave most of the page without any text.

For help to avoid bad page breaks, I encourage you to read Frank Mittelbach’s two excellent articles published in TUGboat 39:3, 2018

  1. Managing forlorn paragraph lines (a.k.a. widows and orphans) in LaTeX
  2. The widows-and-orphans package

In addition, you ought to read his similar excellent answer regarding floats: How to influence the position of float environments like figure and table in LaTeX?

Example 1: Without oneside, raggedbottom or figure-environment

enter image description here

\documentclass[]{memoir}
\usepackage{graphicx}

\begin{document}

\begin{itemize}
\item One
\item Two
\item Three
\end{itemize}

% If you do not encapsulate in a figure environment, you need a \noindent first
\noindent\includegraphics[width=108.7mm]{example-image-9x16} 
\end{document}

Example 2: With oneside- option and figure-environment

enter image description hereenter image description here

\documentclass[oneside]{memoir}
\usepackage{graphicx}

%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%

\begin{document}

\begin{itemize}
\item One
\item Two
\item Three
\end{itemize}

% Encapsulating the graphic make it ‘float’. Encapsulate tables in a table-environment
\begin{figure}
\includegraphics[width=108.7mm]{example-image-9x16} 
\end{figure}
\end{document}
Sveinung
  • 20,355