Bringhurst chapter style in memoir

Here is a third suggestion, this time using xcoffins. It has an easy and intuitive way of handling boxes that need to be joined, attached, shifted... one should note, though, that xcoffins' syntax might still change in the future.

The basic idea is simple: define coffins (i.e. boxes)

\NewCoffin\testA
\NewCoffin\testB

set them to contain what you like

\SetHorizontalCoffin\testA{\huge A}
\SetHorizontalCoffin\testB{bbb}

rotate, scale or resize them, join (bounding box is extended to contain both, \JoinCoffins) or attach (bounding box is not extended, \JoinCoffins*) them using so-called handles or poles and maybe used some horizontal or vertical offset

% join bottom center of \testA with top center of \testB
% and shift \testB 1em down:
\JoinCoffins\testA[hc,b]\testB[hb,t](0pt,-1em)

and finally typeset them:

\TypesetCoffin\testA

This is all very well explained in the documentation.

I use this idea below using three coffins: \main is used as a shell that will be filled with contents and typeset in the end. \titleline is filled with a horizontal ruled and joined with \main, \chapternumber is filled with the scaled and coloured chapter number for numbered chapters or is left empty else. It is then attached to main and shifted into the margin and (what seemed an appropriate amount) down:

\documentclass[b5paper]{memoir}
\usepackage[T1]{fontenc}
% not then font used by Bringhurst, but anyway:
\usepackage{libertine}
% we want to letterspace uppercased words and those in small caps, so:
\usepackage{microtype}

% the chapter style:
\usepackage{xcoffins,xcolor}
\NewCoffin\main
\NewCoffin\titleline
\NewCoffin\chapternumber

\makechapterstyle{Bringhurst}{%
  \renewcommand*\chapterheadstart{}
  \renewcommand*\printchaptername{}
  \renewcommand*\chapternamenum{}
  \renewcommand*\afterchapternum{}
  % numbered chapters:
  \renewcommand*\printchapternum{%
      \SetHorizontalCoffin\chapternumber{%
      \textcolor{black!10}{\thechapter}%
    }%
    \ScaleCoffin\chapternumber{8}{8}%
  }
  % unnumbered chapters:
  \renewcommand*\printchapternonum{\SetHorizontalCoffin\chapternumber{}}
  \renewcommand*\printchaptertitle[1]{%
    \memRTLraggedright\normalfont\large\MakeUppercase{\textls[75]{##1}}}
  \renewcommand*\afterchaptertitle{%
    \vskip.5\onelineskip
    \SetHorizontalCoffin\titleline{\color{black!50}\rule{\linewidth}{1.5pt}}%
    \JoinCoffins\main\titleline
    \JoinCoffins*\main\chapternumber(\textwidth+\marginparsep,-4\baselineskip)%
    \TypesetCoffin\main
    \vskip\onelineskip
  }
}

\chapterstyle{Bringhurst}

% sections and subsections:
\setsecnumformat{\normalfont\csname the#1\endcsname\quad}

% the section style:
\newcommand\uppercasehead[1]{%
  \noindent\normalfont\scshape\MakeLowercase{\textls[50]{#1}}}
\setsecindent{0pt}
\setsecheadstyle{\uppercasehead}

% the subsection style:
\newcommand\itshapehead[1]{\normalfont\itshape#1}
\setsubsecheadstyle{\itshapehead}
\setsecnumdepth{subsection}

% the subsubsection style:
\setsubsubsecheadstyle{\itshapehead}

\usepackage{lipsum}
\begin{document}

\chapter{The Grand Design}
\section{First Principles}
\subsection{Typography exists to honor content}

\lipsum

\end{document}

enter image description here


This lines the baseline of the number with the baseline of the text, you may want to raise it a bit.

enter image description here

\documentclass{memoir}
\usepackage{kantlipsum}
\makeatletter
\makechapterstyle{Bringhurst}{%
  \chapterstyle{default}
  \renewcommand*{\chapterheadstart}{}
  \renewcommand*{\printchaptername}{}
  \renewcommand*{\chapternamenum}{}
   \renewcommand*{\printchapternum}{%
   }%
  \renewcommand*{\afterchapternum}{}
  \renewcommand*{\printchaptertitle}[1]{%
   \raggedright\large\scshape\MakeUppercase{##1}}
  \renewcommand*{\afterchaptertitle}{%
  \vskip\onelineskip \hrule\vskip\onelineskip
\gdef\insertchapnum{%
\global\let\insertchapnum\relax
     \makebox[0pt][l]{%
       \hspace{\textwidth}%
       \smash{\resizebox{!}{\beforechapskip}{\color[rgb]{.5,.5,.5}\chapnumfont \thechapter}}}}%
}}

\def\@afterheading{%
  \@nobreaktrue
  \everypar{%
    \if@nobreak
      \@nobreakfalse
      \clubpenalty \@M
      \if@afterindent \else
        {\setbox\z@\lastbox\insertchapnum}%
      \fi
    \else
      \clubpenalty \@clubpenalty
      \everypar{}%
    \fi}}


\makeatother
\frenchspacing
\begin{document}
  \chapterstyle{Bringhurst}
  \chapter{This Is My First Chapter}
\section{A section title in the way}
  \kant[3]

aaa
\end{document}

In the above, \@afterheading which is the code LaTeX inserts to suppress indentation of the first paragraph of a section is redefined to insert a token \insertchapnum after removing the indentation. \chapter defines \insertchapnum to use the code you had to insert a number (I just made it grey rather than black) and then globally redefine \insertchapnum to \relax so it does nothing until the next \chapter command defines it again.


I have been playing with page layouts, and have carefully reproduced aspects of Bringhurst's design, including an explicit calculation of the page parameters, measure, etc. The result was achieved using the titlesec package, placing the chapter number with the marginnote package:

% Set the font
\defaultfontfeatures{Scale=MatchLowercase,
                     Mapping=tex-text}
\setmainfont[Mapping=tex-text, % E.g. -- -> en-dash
             Numbers=OldStyle,
             UprightFeatures={LetterSpace=-0.9},
             ItalicFeatures={LetterSpace=0.9},    % To cancel -0.9 tracking
             SmallCapsFeatures={LetterSpace=10.0},
             ]{Minion Pro}

\setkomafont{marginnote}{
  \addfontfeature{UprightFeatures={LetterSpace=5}}%
  \addfontfeature{ItalicFeatures={LetterSpace=5}}%
  \fontsize{7pt}{9pt}\selectfont}
\setkomafont{chapternumber}{%
  \fontspec[Numbers=OldStyle]{TeX Gyre Pagella}
  \fontsize{72pt}{72pt}\selectfont}
\setkomafont{sectioning}{\normalfont}
\setkomafont{chapter}{\addfontfeature{UprightFeatures={LetterSpace=15.0}}}

\setkomafont{section}{\scshape}
\setkomafont{subsection}{\itshape}

% Chapters open on the right page.
\KOMAoptions{open=right}

\setlength{\parindent}{1.5em}
% Chapter formatting
\titleformat{name=\chapter}
            [block]
            {} % format
            {\marginnote{\usekomafont{chapternumber}\thechapter}
                        [3\baselineskip]} % label
            {0pt} % separation between label and heading
            {\raggedright\usekomafont{chapter}\MakeTextUppercase} % before
            [\trule] % after
\titlespacing*{\chapter}{0pt}{-\topskip}{0pt}

% Bringuest has the whole text flush left, so do not typeset the label
% independently here or the text will hang.
\titleformat{name=\section}
            {\usekomafont{section}} % format
            {} % label
            {0pt} % separation between label and heading
            {\thesection\hspace{0.5em}\MakeTextLowercase} % before
\titleformat{name=\subsection}
            {\usekomafont{subsection}} % format
            {} % label
            {0pt} % separation between label and heading
            {\raggedright{\normalfont\thesubsection}\hspace{0.5em}} % before

\titlespacing*{\section}{0pt}{0pt}{\baselineskip} 
\titlespacing*{\subsection}{0pt}{\baselineskip}{\baselineskip} 

The complete source is too long to post (it includes a modification to geometry that allows page changes in the middle of a document, and explores other typographic styles) but is available on bitbucket: Exploring Typography with LaTeX. Here is the result:

Sample layout of Chapter 3 Page layout with Hexagonal Pattern

As you can see, I am still having some problems with the margin-notes, but the spacing, measure, and positioning of the chapter number is almost identical to Bringhurst's design (as a demonstration of how to do this in LaTeX rather than a suggestion that one should strive to exactly reproduce this style.)

Update

Here are the same ideas applied to the memoir class. Note: I am not fluent in memoir and had a little bit of difficulty getting the space before the section heads properly adjusted, so the vertical alignment is not exactly correct here (and I have not adjusted the page size etc. I just blindly set the text box to match Bringhurst's measurements.)

Note also that Bringhurst places the chapter numbers at the same vertical position regardless of the title text: it does not move up or down with the first line of text so that it will always be in the same place for a reader flipping through pages in the book.

\documentclass{memoir}
\usepackage{fontspec}
\usepackage{marginnote}
\usepackage{xparse}      % So we can define \trule with two optional args
\usepackage{xcolor}

% This rule will take exactly \baselinskip space, maintaining the grid. The
% raise value is the height above the next baseline. It will extend down
% thickness.
% \trule[thickness][raise]
\NewDocumentCommand\trule{O{0.4pt}O{0pt}}{
  \vskip0pt\vtop to0pt{
    \noindent\raisebox{#2}{\vbox{\leavevmode\hrule height#1}}}
}

\defaultfontfeatures{Scale=MatchLowercase,
                     Mapping=tex-text}
\setmainfont[Mapping=tex-text, % E.g. -- -> en-dash
             Numbers=OldStyle,
             UprightFeatures={LetterSpace=-0.9},
             ItalicFeatures={LetterSpace=0.9},    % To cancel -0.9 tracking
             SmallCapsFeatures={LetterSpace=10.0},
             ]{Minion Pro}

\usepackage{kantlipsum}

\settypeblocksize{496.32431pt}{255.8827pt}{1.25}
\makechapterstyle{Bringhurst}{%
  \chapterstyle{default}
  \setsecnumdepth{subsection}
  \renewcommand{\chaptitlefont}
               {\normalfont%
                 \addfontfeature{UprightFeatures={LetterSpace=15.0}}}
  \renewcommand{\chapnumfont}{%
    \fontspec[Numbers=OldStyle]{TeX Gyre Pagella}
    \fontsize{72pt}{72pt}\selectfont
    \color{black!30}}
  \renewcommand*{\chapterheadstart}{}
  \renewcommand*{\printchaptername}{}
  \renewcommand*{\chapternamenum}{}
  \renewcommand*{\printchapternum}{%
    \marginnote{\chapnumfont \thechapter}[3\baselineskip]
  }%
  \renewcommand*{\afterchapternum}{}
  \renewcommand*{\printchaptertitle}[1]{
    \chaptitlefont\raggedright\MakeUppercase{##1}}
  \renewcommand*{\afterchaptertitle}{\trule\vspace{\oneline}}

  \setsecindent{0pt}
  \setbeforesecskip{\onelineskip}
  \setaftersecskip{\onelineskip}
  \setsecheadstyle{\normalfont\scshape\raggedright\MakeLowercase}

  \setaftersubsecskip{\onelineskip}
  \setsubsecindent{0pt}
  \setsubsecheadstyle{\normalfont\raggedright\itshape}
}

\frenchspacing
\begin{document}
  \chapterstyle{Bringhurst}
  \chapter{The Grand Design}
  \section{First Principles}
  \subsection{Typography exists to honour content}
  Like oratory, music, dance, calligraphy -- like anything that lends
  its grace to language\ldots

  \kant[3]
\end{document}

Example of Chapter 1 in memoir