[Tex/LaTex] Tufte layout in “Painless Memoir?”

geometrymarginsmemoirtufte

I'm trying to bring together two styles, the airy Tufte's page layout

enter image description here

… and Michael OKane's "painless Memoir" document found on this site.

I've tried to edit OKane's template directly; I've tried to use the "geometry package" … and yet, nothing seems to work.

Here's the striking result of my attempt with geometry:

enter image description here

Any help would be welcome.
Thank you kindly.

Best Answer

Initial remarks

Firstly, consider what elements of Tufte's book design you want to emulate (the page geometry, the styling of running heads and headers, side notes, different widths and position of floats).

If the answer is "everything, of course" then think seriously about simply using the tufte-latex class, which is established, well-featured and includes all of these and more. It also has good manual-cum-examples.

Using tufte-latex will be a lot less work than reproducing the whole style in memoir, especially if you are not very familiar with memoir's many features. Some of the Tufte style, e.g. the different floats, are quite tricky. You should have a good reason for wanting to use memoir.

Secondly, if you must use memoir, I would start from scratch, rather than trying to adapt someone else's "simple" template.

Thirdly, if you're using memoir, you should use its features to do what you need to do, as its intended to replace or emulate a lot of other packages. For example, you shouldn't be using geometry to do the page layout.

Some Tufte elements in memoir

That said, I have selectively borrowed numerous elements of Tufte's design for my thesis, which is a memoir document, particularly the layout and handling of footnotes. At other points, for example the typeface, the Tufte style is less suitable for my document.

Here are examples of how I've implemented these elements, which I've done partly by reference to code in tufte-latex. These may help if you decide to proceed. This isn't a finished project and there are likely better ways of doing some of the following.

Here's what it looks like: http://imgur.com/MICJOi2

Page Layout

Based on an A4 two-side page, measurements from tufte-latex.

% MEMOIR LAYOUT
\setlength{\baselineskip}{14pt}
\setlength{\normalbaselineskip}{14pt}

% GEOMETRY
\settrims{0pt}{0pt}
\settypeblocksize{49\baselineskip}{107mm}{*}
\setlrmargins{24.8mm}{*}{*}
\setulmargins{27.4mm}{*}{*}
\setheadfoot{\baselineskip}{\baselineskip}
\setheaderspaces{*}{2\baselineskip}{*}
\setmarginnotes{8.2mm}{49.4mm}{\onelineskip}
\checkandfixthelayout

Ragged left body text

% TEXT
% ragged2e provides ragged justification with hyphenation
\RequirePackage{ragged2e}
\AtBeginDocument{\RaggedRight}
\setmpjustification{\RaggedLeft}{\RaggedRight}
\setlength{\RaggedRightParindent}{1.0pc}
\setlength{\parindent}{1pc}
\setlength{\parskip}{0pt}
% linespacing ~ 14pt
\linespread{1.17}

Full-width running headers

Tufte uses loosely-tracked small caps for the running headers, which do look very nice. You will want a font with true small caps, however. I compile with XeTeX, so use fontspec's features to set this font up.

% LOOSE-TRACK SMALL CAPS
\newcommand\loosesc[1]{%
  {\addfontfeature{LetterSpace=8}#1}}

% PAGE STYLE - HEADERS AND (NO) FOOTERS
\makepagestyle{tufte}
\makeoddhead{tufte}%
{}{}{\loosesc{\rightmark}\quad\thepage}
\makeevenhead{tufte}%
{\thepage\quad\loosesc{\leftmark}}{}{}
% font settings for page headers
\makeevenfoot{tufte}%
{}{}{}
\makeoddfoot{tufte}%
{}{}{}

% use small caps in running headers
\renewcommand*{\memUChead}[1]{\textsc{\MakeTextLowercase{#1}}}

% chapters on left, sections on right, without numbers
\makepsmarks{tufte}{%
  \createmark{chapter}{left}{nonumber}{}{}
  \createmark{section}{right}{nonumber}{}{}
  \createplainmark{toc}{both}{\contentsname}
  \createplainmark{lof}{both}{\listfigurename}
  \createplainmark{lot}{both}{\listtablename}
  \createplainmark{bib}{both}{\bibname}
  \createplainmark{index}{both}{\indexname}
  \createplainmark{glossary}{both}{\glossaryname}
}

% full-width-headers
\setlength{\headwidth}{\textwidth}
\addtolength{\headwidth}{\marginparsep}
\addtolength{\headwidth}{\marginparwidth}
\makerunningwidth{tufte}{\headwidth}
\makeheadposition{tufte}{flushright}{flushleft}{}{}

% use this
\pagestyle{tufte}

All footnotes are sidenotes

% text styling of all side footnotes
\renewcommand{\footnotesize}{\fontsize{8pt}{10pt}\selectfont}
\renewcommand{\foottextfont}{\footnotesize}
% styling and placement of mark
\footmarkstyle{{#1. }}
\setlength{\footmarkwidth}{0em}
\setlength{\footmarksep}{-\footmarkwidth}
% memoir command - do all footnotes in margin
\footnotesinmargin

(edit) If sidenotes run off the bottom of the page, use the marginfix package. With many sidenotes, the extrafloats package might be needed.

Floats with side captions

Use memoir's own sidecaption environment. The ragged-left layout on verso pages is probably not something I will keep.

% SIDECAPTIONS
\setsidecaps{\marginparsep}{\marginparwidth}
\sidecapmargin{outer}
\setsidecappos{t}
\renewcommand*{\sidecapstyle}{%
\captionnamefont{\foottextfont\scshape}
\ifscapmargleft
\captionstyle{\RaggedLeft\footnotesize\foottextfont}%
\else
\captionstyle{\RaggedRight\footnotesize\foottextfont}%
\fi}

Full-width floats

% FULLWIDTH environment
% The following code should be used *after* any changes to the margins and
% page layout are made (e.g., after the geometry package has been loaded).
\newlength{\fullwidthlen}
\setlength{\fullwidthlen}{\marginparwidth}
\addtolength{\fullwidthlen}{\marginparsep}

% \newlength{\fullwidthlen}
% \setlength{\fullwidthlen}{\marginparwidth}
% \addtolength{\fullwidthlen}{\marginparsep}

\newenvironment{fullwidth}{%
  \begin{adjustwidth*}{}{-\fullwidthlen}%
}{%
  \end{adjustwidth*}%
}
Related Question