design
Clothes
Thursday, November 22nd, 2007 | Personal | No Comments
Is it just me, or are a lot of brand clothes websites absolutely abysmally designed, usability-wise? Flash players required, mostly it is impossible to link to images and some annoying ‘music’ is blaring out your speakers if you haphazardly find your way onto one of these sites. Hugo Boss and Falbe are two of the more egregious examples of this annoying behaviour. Bertoni, Eton and many others, follow closely by only featuring a bunch of ‘fancy’ photos in a flash application. Honestly, what were they thinking?! Slightly better is the Burberry website, but that was the only half-decent brand site I found in over an hour of searching!
Another problem is the Danish outlets (I hope for your sake that things are better in your country!). They have been designed mostly with the same mindset, except they are even worse, several of them do not even show anything but a page of brand names they sell! Kaufmann and Din Tøjmand are among the worst, Tøjeksperten barely climbs above them by actually having a PDF version of their catalogue available online.
Please, design shops and clothes outlets, the web is not another TV station showing commercials 24/7 where consumers passively gawk at your magnificent creations. We want instant feedback, we want to be able to easily link to apparel so we can show it to friends, get opinions, easily find stores that carry the clothes, so we can go to those stores and try the clothes on to see whether they fit us. It would be absolutely perfect if you could see whether the apparel is in stock in a specific store so we don’t have to wade all the way across town to find another outlet that might or might not happen to have it in stock. It is time you join the digital decade, it’s the thing in fashion.
An example book style
Wednesday, June 20th, 2007 | LaTeX | 2 Comments
Now that we have made our way through how to style a document, it is time to look at how we can actually use some of this knowledge in practice, by typesetting an actual book. Since all that Lorem Ipsum can get a tad boring in the long run, we will create a book with some works that have passed into the public domain, namely some by H. P. Lovecraft, a significant American horror author of the early 20th century. None other than the man behind Cthulhu.
Much like with the last four blog posts, we will take a look at styling the book in the same order, namely: chapter, table of contents, sections, and footers/headers. Remembering the plain chapter style, we have something like this, for our book:
As I’ve written before: while this is certainly acceptable, it’s not really too unique of fascinating, so let us think up a way to get it to feel more 1920′s and horror-ish. The last part is of course hard to quantify unless you pick some cheesy font that’s impossible to read, so let’s just stick to making it look a bit like a book on good literature. We will try to accomplish this by just writing the chapter number as a word (one, two, three, etc.), and omit the ‘Chapter’ prefix, centered, and put the chapter title in italics, also centered. We can do that with the following code:
\makechapterstyle{bookstyle}{ % Yes it's a very imaginative name \setlength{\beforechapskip}{0em} \setlength{\midchapskip}{1em} \renewcommand{\chapnumfont}{\normalfont\large\bfseries\fscshape} \renewcommand{\chaptitlefont}{\normalfont\huge\bfseries\itshape} \renewcommand{\printchaptername}{} \renewcommand{\printchapternum}{% \centering\chapnumfont\numtoname{\thechapter} } \renewcommand{\printchaptertitle}[1]{\centering\chaptitlefont ##1} } \chapterstyle{bookstyle}
This verily will take a bit further description. The \fscshape command introduces fake small-caps, and its existence depends on what font package you may or may not be using. If you have a commercial grade font, or one of the built-in fonts, then you will want to use \scshape instead. The \fscshape I am using here is provided by the mathdesign package together with the URW Garamond typeface. The only other surprise here should be the \numtoname command that is provided by memoir, and this command converts a number into a corresponding name, for instance \numtoname{13} will be turned into ‘thirteen’.
With this modest change in place, our chapter page suddenly looks like this:
This seems a tad more classic literature-ish to me, at least. So we will chalk one up for success on the chapter style. We could, of course, add something to the fancy and automatically insert an image for each chapter to complement the story, but since my freehand drawing skills aren’t what I’d like them to be, we shall skip this step for now.
With this out of the world, let us take a look at the existing table of contents:

From this we see that our book is divided in two parts: one for some of Lovecraft’s essays, and another for a very few of his poems. Since most of his essays aren’t subdivided, we probably have no need to indicate any of these, so let us turn them off and simplify the table of contents a bit. This may be done using:
\settocdepth{chapter}
Now, as long as you only want to tweak the distance between table of content entries, perhaps remove the dots on the line to the page numbers and move the page numbers a bit back and forth on the page, then everything is easy to do with memoir, but as soon as you move beyond that, things start to get really complicated, unfortunately. Not one to shy away from hard things, let us look at what it takes to center the part and draw lines around it and to typeset all the chapters in italics.
The first part is, unfortunately, rather hard. It requires us to override two different commands: \l@part and \partnumberline. The reason for this is two-fold. When we issue a \part command, the following is written to the .aux-file: \@writefile{toc}{\contentsline{part}{\partnumberline {I}Essays}{1}}, for instance, for part 1 called Essays. When this is going to be typeset then \l@part is called with the last two {}‘s above as arguments.
Using the tikz package that we have covered earlier to draw the lines about the part title, we will give the entire definition of the two commands here and then proceed with an explanation of the key points. The overall structure has been ‘borrowed’ from memoir.cls:
\newlength\sb@partheight \renewcommand*{\l@part}[2]{% \ifnum \c@tocdepth > -2\relax \addpenalty{-\@highpenalty}% \addvspace{\cftbeforepartskip}% \begingroup{ \centering \settoheight{\sb@partheight}{\Large\bfseries\MakeUppercase{#1}} \setlength{\sb@partheight}{.5\sb@partheight} \addtolength{\sb@partheight}{5pt} \begin{tikzpicture} \draw (0,0) node { \Large\bfseries\MakeUppercase{#1} }; \draw (-.25\textwidth,\sb@partheight) -- (.25\textwidth,\sb@partheight); \draw (-.25\textwidth,-\sb@partheight) -- (.25\textwidth,-\sb@partheight); \end{tikzpicture} \par }\endgroup \fi } \renewcommand{\partnumberline}[1]{}
So, I guess this requires some explanation. The test on \c@tocdepth tests for whether the part should actually be displayed in the table of contents, and -2 is the code for the part in this instance. The \addpenalty command here makes TeX prefer to create a page break \emph{before} the part rather than after, so we don’t have a part title dangling alone at the bottom of a page, since that doesn’t look particularly nice. Then we use \begingroup to localise our changes so they don’t seep into the remaining document, and inside this group, we do a bit of slight trickery to compute how heigh the part title is, using the \settoheight. Then we calculate the half height and add some space, and this we use as a measurement in the following tikzpicture. The tikzpicture code should be familiar, as we have already seen it here. The redefinition of \partnumberline merely discards the part number as we aren’t really interested in that.
Our changes to the actual chapters are a lot easier to accomplish. Indeed, it only requires the following two lines:
\setlength{\cftbeforechapterskip}{.2em} \renewcommand{\cftchapterfont}{\normalfont\small\itshape}
Taking all this together and using it with our book, we get the following table of contents for it:


This looks a good deal more like some of the older fictional works. So far so good. The next thing to turn pretty is the section titles. For the most part Lovecraft’s essays don’t have actual sections, but a few of them have sections named I, II, III, etc., and even fewer have actual section titles. One of the essays that do, is ‘Herbert West: Reanimator’.
First off, the numbering of the section doesn’t really make any sense in a fictional work as the title is usually sufficient in and of itself, so let’s do away with that. Apart from that, the standard section title layout looks quite decent. This is an extremely easy change then:
\maxsecnumdepth{chapter} \setsecnumdepth{chapter}
And we get the following:
This leaves us with just the page headers and footers. As we can see below, and as I have written previously, the standard page headers are just ugly.
So, to rectify this, we will place the part title on the left page and the chapter title on the right page, both centered in the header, and we’ll place the page number on the page edge in the footer. And this is easily accomplished with the following code:
\makepagestyle{mybookstyle} \makeoddhead{mybookstyle}{}{\itshape\rightmark}{} \makeevenhead{mybookstyle}{}{\itshape\leftmark}{} \makeoddfoot{mybookstyle}{}{}{\thepage} \makeevenfoot{mybookstyle}{\thepage}{}{} \makepsmarks{mybookstyle}{% \def\partmark##1{\markboth{##1}{}} \def\chaptermark##1{\markright{##1}} \def\sectionmark##1{} } \pagestyle{mybookstyle}
And presto, we get a much nicer output:
Throughout all these examples, we have used the @-sign repeatedly in commands. This is ok if you’re implementing this in a package file, but if you’re pasting them into your document’s preamble, the @ will not be interpreted as a character and a lot of errors will follow. To rectify this, surround the code in the preamble with the commands \makeatletter and \makeatother. This will make everything right. In a future post, I will try to talk about implementing packages to better hide this functionality away in a reusable component.
This concludes the styling example for today. If you’re in a need for a lot of sensible material to try out different stylings on, then I suggest that you head over to WikiSource or Project Gutenberg and grab some works that have entered the public domain and try to make your own compilation of them. And for your viewing pleasure, here is the book typeset with the style above.
Styling the page footer and header
Tuesday, June 12th, 2007 | LaTeX | 6 Comments
This leads us to the last post in my series of styling documents, namely the one on how to customise page headers and footers. This is one of the most visible style elements as it is (typically) present in some form or the other on almost all pages except chapter pages. As with the section titles it is also relevant for the page headers and footers to mimick the aesthetic feel of the chapter page, thus keeping a uniform expression that can be tied exclusively to your work (this is the really hard part, by the way). Before we delve into the intricacies, let us take a look at the standard page header:
For those of you with bad eye-sight, the chapter name and title is printed in all-caps. Absolutely ghastly. I mean, what is this, a tribute to AOL users?! We are definitely going to have to change something here indeed.
This is probably as good a time as any to bring this up. When we are typesetting a book it contains pages that will be to the left (verso pages) and on the right (recto pages). These two pages have different margins (try to open one of your books on your bookshelf and check for yourself), and furthermore books tend to have different things in the verso and recto headers and footers. Typically this means that the chapter number and title will be displayed on the verso page and the section number and title on the recto page (or part and chapter in other books, or something entirely different in yet other books).
These items (chapter number and title and section number and title) isn’t grabbed out of thin air in LaTeX, but is written into internal commands that can be read using the \leftmark and \rightmark commands (named for their use on left and right pages, obviously). Thus, the all-caps chapter title on the default page header has been written into the left mark here, so we will need to modify how the marks are stored.
The first step to creating a new page header and footer is to create a new page style using the \makepagestyle{name} command. So if we want to create a new page style where the header contains the page number and the chapter/section number (if any) and title, we would start out with the following:
\makepagestyle{mypagestyle}
To create a nice separation between the page number and the title—rather than typesetting them at opposite ends of the header—we will separate them with a vertical rule. Now the commands to modify the headers and footers of a page style are: \makeevenhead{style}{left}{center}{right}, \makeoddhead, \makeevenfoot, and \makeoddfoot. All with the same number of arguments. So, this means we can extend our page style as follows:
\makeevenhead{mypagestyle}{\thepage\hskip.5cm\vrule\hskip.5cm\leftmark}{}{}
\makeoddhead{mypagestyle}{}{}{\rightmark\hskip.5cm\vrule\hskip.5cm\thepage}
If we tack on a \pagestyle{mypagestyle} now, we will get some output like this:
Better than the standard, but it still feels partly like an AOL user tribute, what with all the caps and stuff. Before we fix this, it is time to discuss marks in a bit more detail.
Storing information to be read by \leftmark and \rightmark is accomplished using \markboth and \markright (no, there is no separate \markleft). And these two commands are meant to be invoked inside some specific commands that are in turn invoked from \chapter, \tableofcontents, etc. These commands include: \tocmark, \partmark, \chaptermark, and \sectionmark. There are, of course, more marks and you can generate more by creating new lists, so if you’re overriding marks you need to make sure to catch all of them appropriately.
Getting to the actual code now would be too easy. When we need to print the chapter number we have to remember that a book is divided into several ‘sections,’ namely the front matter (table of contents, lists, foreword, etc.), main matter (the actual book chapters), and back matter (bibliography, indices, etc.). Of these it is only customary to give the chapters in the main matter numbers in the heading.
Before we venture on, we also need to look at one of the ‘reserved’ symbols in LaTeX: @. This section is vague on purpose in order not to spend too much time on this detail. The @ is used for ‘reserved’ commands inside class-files and packages and its default ‘code’ to something that cannot be used. If, however, you’re in the need to using commands with @ in them you can use the command \makeatletter and then once you’re done return it to its original state with \makeatother. I will try to remember to visit this topic in more detail at some later time.
The use of @ becomes relevant when we need to test whether we’re in the main matter, because this is done (with memoir, remember @ means we’re overriding the internals of some package) using the \if@mainmatter where @mainmatter is a boolean value.
Now we’re finally ready to create our own marks! To recoup, we want to write the chapter mark on the verso page and the section mark on the recto page. This is done like this:
\makeatletter
\makepsmarks{mypagestyle}{
\def\chaptermark##1{\markboth{%
\ifnum \value{secnumdepth} < -1
\if@mainmatter
\chaptername\ \thechapter\ --- %
\fi
\fi
##1}{}}
\def\sectionmark##1{\markright{%
\ifnum \value{secnumdepth} < 0
\thesection. \ %
\fi
##1}}
}
\makeatother
The secnumdepth is a counter that contains information about what depth of sections should be numbered. Chapters is equal to secnumdepth 0 and sections to 1, hence the comparisons. Using this in our document we get the following output:
And for those with bad eye-sight, a courtesy close-up of the verso page:
Rather much of an improvement to the earlier AOL user tribute. There are, of course, plenty of other things we could want to do: add a ruler below the header, place the page number in the margin to make it easier to find a page when flipping through a book, or whatever else we might imagine. Even though I’ve carried this post on for quite a while, let us take a brief look at accomplishing this. First we create a page style very much like above:
\makepagestyle{myruledpagestyle}
\makeevenhead{myruledpagestyle}{\thepage}{}{\leftmark}
\makeoddhead{myruledpagestyle}{\rightmark}{}{\thepage}
\makeatletter
\makepsmarks{myruledpagestyle}{
\def\chaptermark##1{\markboth{%
\ifnum \value{secnumdepth} > -1
\if@mainmatter
\chaptername\ \thechapter\ --- %
\fi
\fi
##1}{}}
\def\sectionmark##1{\markright{%
\ifnum \value{secnumdepth} > 0
\thesection. \ %
\fi
##1}}
}
\makeatother
This is almost exactly the same as mypagestyle above, with the only change that we now place the page number and the mark on opposite sides of the header. This leaves us with the task of moving the page number into the margin and adding a ruler below the header. This is fairly easily accomplished:
\makerunningwidth{myruledpagestyle}{1.1\textwidth}
\makeheadposition{myruledpagestyle}{flushright}{flushleft}{flushright}{flushleft}
\makeheadrule{myruledpagestyle}{1.1\textwidth}{\normalrulethickness}
Here \makerunningwidth changes the width of the headers and footers of the specified style. As standard it’s \textwidth long, here we make it 1.1 times longer. \makeheadposition changes the placement of the header and footer. It has the form \makeheadposition{even-head-position}{odd-head-position}{even-foot-position}{odd-foot-position} where the different positions can be chosen between flushleft, center or flushright. This command is only useful, if the width of the page header is different from \textwidth. Finally we apply the actual rule, stating that it should be the width of the header and to use the normal rule thickness. This is, unless you have changed something, typically 0.4pt in LaTeX.
With all this trickery, this is what we get as output:
As an incidental note, the last style presented here is almost equivalent to the Ruled page style that comes with the memoir package (remember casing matters, there is both a ruled and Ruled page style). So if you want exactly this style, use that instead of defining all this yourself.
This fairly much concludes the styling the document series, but I am sure that I will, sooner or later, revisit how to style other parts of the document, or show even more involved styling solutions. But until then, let your imagination run free and bring some personal style to your documents.
Styling the other document divisors
Saturday, June 2nd, 2007 | LaTeX | No Comments
While sectional titles aren’t as stylistically free as the chapter page, it is still important to carry over the style of the chapter page to sections, subsections and other such entries you have throughout your text. Thus, if the chapter style contained sans-serif text and a line below the text, it might be relevant to make the sections be sans-serif and possibly with both a line on top and below the section title.
While memoir is indeed very configurable, it doesn’t contain quite as an elaborate amount of commands to configure the sections, subsections and so forth. The primary command to customise with here is the \setXheadstyle where X can be sec, subsec, or subsubsec (and possibly more). So writing up the section style mentioned above would look like this:
\newcommand{\ruledsection}[1]{%
\noindent%
\parbox[t]{\textwidth}{%
\hrule\vskip1em
\sffamily\Large\bfseries #1\vskip1em%
\hrule%
}
}
\setsecheadstyle{\ruledsection}
Here we set the style to our custom command that will be called with the section number and title as an argument. This gives us the following output when compiled:
Since styling in this way is fairly simple, I will not go into painstriking detail of how to create more section styles. It is, though, useful to note that there are three more useful commands to know of: \setbeforeXskip, \setafterXskip, and \setXindent. The two first commands take lengths such as ‘-3.5ex plus -1ex minus -.2ex’ as arguments, and the last command just takes a regular length as an argument.
To see how these lengths can be used in practice, please refer to the memoir manual.
Styling the table of contents
Saturday, May 26th, 2007 | LaTeX | 2 Comments
Styling the table of contents isn’t quite as trivial as the chapter page, as there are several more things to consider. Before we embark on this, however, let us take a look at how the table of contents are usually set up in a typical LaTeX book.
While this seems to be a fairly tradition-bound way to set up the table of contents, it may feel rather out of pace with the rest of the styling of the document. Or it may just be that you feel more avant-garde than the default LaTeX styles lead people to believe. Either way, restyling the table of contents is just as fascinating as the chapter page!
Something that’s important to keep in mind is that the table of contents, list of figures and other front matter lists are not typeset using the chapter styles we saw in the last post, but using their own setup. The TOC (for instance) is set up as follows in memoir:
\tocheadstart
\printtoctitle{\contentsname}
\tocmark
\thispagestyle{chapter}
\aftertoctitle
And thus, to restyle these front matter lists, you have to also override these commands. For the other lists, replace toc with the appropriate list.
This is, however, not the primary focus of this post, so let’s get on with the show. If we look above at the standard layout of the table of contents we see a couple of recurring items: a page number, a chapter/part/section number, a chapter/part/section title, and a separation between each of these items, which may or may not contain a series of dots. Now, in my personal opinion, the dots are absolutely terrible and ruin the overall aesthetic flow of the page, but that might just be me.
The control over the entries is extremely fine-grained and you can thus define stylings for the following things: part, chapter, section, subsection, subsubsection, paragraph, subparagraph, figure, subfigure, table, and subtable.
To start out we will try something fairly straightforward. We will remove page numbers from the \part entries and typeset them in colour, and we will also move the page numbers for the remaining entries closer to the actual text. This is a bit more involved than just changing the chapter style:
\usepackage{xcolor}
\renewcommand{\cftdotsep}{\cftnodots}
\cftpagenumbersoff{part}
\renewcommand{\cftpartpresnum}{\sffamily\large\bfseries\color{blue}\partname\ }
\renewcommand{\cftpartaftersnumb}{\\}
\cftsetindents{part}{0em}{0em}
\renewcommand{\cftchapterleader}{\hskip1cm}
\renewcommand{\cftchapterafterpnum}{\cftparfillskip}
\renewcommand{\cftsectionleader}{\hskip1cm}
\renewcommand{\cftsectionafterpnum}{\cftparfillskip}
This requires a bit of explanation. The \cftdotsep sets the separator spacing, and \cftnodots is a ‘big enough’ value that we will never see any dots. \cftpartpresnum specifies what goes before the part section number (I, II, etc.). Here we make the font sans-serif, blue and we print \partname (which in English amounts to ‘Part’) and a space after it. \cftpartaftersnumb specifies what happens after the section number block (that’s what the last b is for), and here we print a newline so the part title is displayed below the part name and number. There is also a \cftpartaftersnum where you can, for instance, place a colon so you’ll get something like ‘Part I:’. Lastly we set the indentation for the part lines to 0em leading space to the section number, and 0em subsequential space to the beginning of the title (since we’re printing the title on the following line). The \cftchapterleader contains the code for what happens after the section title and the page number (the default is for it to print the dots or blank space to right-align the page number). We make this empty. If this is all we do we’ll get the title spaced out over the line (like in a bad case of justified paragraphs in Microsoft Word), so we will have to specify that after the page number is printed we want to fill the rest of the line with blank space, we do this using \cftchapterafterpnum and the \cftparfillskip command.
Whew, that was a lot of text. What all this gives us is a table of contents page that looks like this:
While the balance of the page seems a bit more skewed, I actually find this kind of table of contents easier to use as you don’t have to trace across the page to find the right page number, and the dots across the page look even more ugly than this.
As a last practice, let us try another way to setup tables of contents, namely without part, chapter and section numbers. The section number is printed inside a \numberline command for all list types, except for part and chapter, which have their own \partnumberline and \chapternumberline. Thus to create a table of contents that doesn’t contain any of these numbers, we need to override all these commands. Furthermore we’ll keep the page numbers close to the titles like in the previous example, and no page number for the part. This amounts to the following:
\renewcommand{\cftdotsep}{\cftnodots}
\cftpagenumbersoff{part}
\renewcommand{\partnumberline}[1]{}
\renewcommand{\chapternumberline}[1]{}
\renewcommand{\cftchapterleader}{\hskip1cm}
\renewcommand{\cftchapterafterpnum}{\cftparfillskip}
\renewcommand{\numberline}[1]{}
\renewcommand{\cftsectionleader}{\hskip1cm}
\renewcommand{\cftsectionafterpnum}{\cftparfillskip}
This gives us the following output:
Depending on your need the section number-less style can be preferable while retaining part, chapter and section numbers inside the actual document. If none of these are needed you can use the \setsecnumdepth macro instead and just turn off the numbers everywhere. That’s a lot more easy.
As a rule of thumb, it is important to remember to keep fonts consistent between section numbers, section titles and page numbers. Mixing and matching makes for a very jumbled expression and is (for the most part) not what you’re interested in.
Again, for more technical details, consult the memoir manual or class file.
Styling the chapter
Monday, May 21st, 2007 | LaTeX | 13 Comments
When we write larger works, one of the places we have the most stylistic freedom is with chapter pages. The chapter page is meant to break off the flow of pages and present something new. Looking through books on the book-case we see a wide-ranging difference in chapter styles. While the standard chapter style (as seen below) is pretty decent, there’s a long way to the chapter styles of books like Unicode Standard 5.0, A History of Mathematics, or Fundamentals of Human Neuropsychology.
There are plenty of different styles we can think up to create on our own, or by mimicking others’ designs (do note that exactly reproducing someone else’s design is probably a copyright infringement in plenty of places. Yay for copyright law). So instead of showing you just one style, I will try to explain the fundamentals of chapter styling by looking at the commands used, and then giving several examples ranging from the simple to the quite complex.
Before we continue, it would probably be prudent for me to point out that LaTeX contains two kinds of chapters: numbered (the normal chapters) and unnumbered (the table of contents, the bibliography, the index, and chapters placed in the front matter). The main difference is, of course, that numbered chapters contain the text ‘Chapter 1’ (for chapter one, obviously), and unnumbered chapters do not. At least in the default setup.
In memoir, the default numbered chapter is defined as written below (from page 86 of the manual):
\chapterheadstart
\printchaptername \chapternamenum \printchapternum
\afterchapternum
\printchaptertitle{Title goes here}
\afterchaptertitle
In their default definitions the print methods also make use of the following commands that define font settings: \chapenamefont, \chapnumfont, and \chaptitlefont. This information is almost all we need in order to create our own fantastic chapter styles. The last thing before we embard on experimenting with styles is to know how to create and use different chapter styles. This is accomplished using the \makechapterstyle{stylename}{commands} command, where commands is a series of redefinitions of the above-mentioned commands, and in order to use this style, we can use the command \chapterstyle{stylename}.
As a very easy beginning, let’s add some colour to the chapter style, by creating a ‘colour’ chapter style:
\usepackage{xcolor}
\makechapterstyle{colour}{
\renewcommand*{\chapnamefont}{\normalfont\huge\bfseries\color{blue}}
\renewcommand*{\chaptitlefont}{\normalfont\Huge\bfseries\color{blue}}
}
\chapterstyle{colour}
This style only redefines the fonts and leaves the rest of the chapter style intact as default. If we only had numbered chapters then redefining the \chapnamefont would be adequate, as the colour seeps through to the other commands, but since \chapnamefont is never called for unnumbered chapters, we also need to provide the colour for the \chaptitlefont command. For those not deeply into the LaTeX command architecture, then the star after \newcommand and \renewcommand means that the content of the command cannot contain a paragraph change, so for simple inline commands, tag the star on for verification purposes. Adding our new chapter style to our document we get the following page:
This, actually, did little to make the chapter style prettier, if I have to be a bit self-critical for a moment. Let us instead try to be a tad more artistic with our usual black and white palette. Using the tikz package that I have written about before, we can draw a black box with the chapter number inside and then have the title below, and this time let us make it right-aligned.
\usepackage{tikz}
\makechapterstyle{box}{
\renewcommand*{\printchaptername}{}
\renewcommand*{\chapnumfont}{\normalfont\sffamily\huge\bfseries}
\renewcommand*{\printchapternum}{
\flushright
\begin{tikzpicture}
\draw[fill,color=black] (0,0) rectangle (2cm,2cm);
\draw[color=white] (1cm,1cm) node { \chapnumfont\thechapter };
\end{tikzpicture}
}
\renewcommand*{\chaptitlefont}{\normalfont\sffamily\Huge\bfseries}
\renewcommand*{\printchaptertitle}[1]{\flushright\chaptitlefont##1}
}
This probably requires a bit more explanation. We disable printing ‘Chapter’ for the chapter style by overriding the \printchaptername command with an empty body. Then we change the font for the chapter number to be sans-serif (\sffamily), and the same for the chapter title. Also we ensure that the chapter title is flushed right, that is it aligns to the right margin. Lastly we have the tikzpicture in the \printchapternum. Inside that we draw a black triangle that’s a 2cm square, and after that we print the chapter number in the middle of it. Fairly straightforward, eh? Using this chapter style in your document yields the following output:
This is, indeed, a lot better, but there are plenty of other options for chapter styles to try out. We can combine some of the concepts in the last few chapter styles we’ve tried:
\usepackage{xcolor,calc}
\makechapterstyle{combined}{
\setlength{\midchapskip}{-60pt}
\setlength{\afterchapskip}{2.5cm}
\renewcommand*{\printchaptername}{}
\renewcommand*{\chapnumfont}{\normalfont\sffamily\bfseries\fontsize{80}{0}\selectfont}
\renewcommand*{\printchapternum}{\flushright\chapnumfont\textcolor[rgb]{.64,.79,.87}{\thechapter}}
\renewcommand*{\chaptitlefont}{\normalfont\sffamily\Huge\bfseries}
\renewcommand*{\printchaptertitle}[1]{%
\raggedright\chaptitlefont\parbox[t]{\textwidth-3cm}{\raggedright##1}}
}
\chapterstyle{combined}
First we set up some distances. The -60pt fits approximately on eye measurement the amount that you need to back up for the chapter number and title to align at the top. Normally it would be better to redefine more of the chapter style to create explicit boxes for the two things that could be top-aligned, but that’s a lot more work and would actually obscure how to use the chapter styles easily, so eye measurement it is. We make the chapter number really big (80 pt to be exact), and we print it in the RGB value (0.64, 0.79, 0.87) where colours are in [0;1] for those of mathematical inclination. Lastly we print the chapter title inside a paragraph box that is 3 cm smaller than the text width in order not to have the chapter title written on top of the chapter number as that doesn’t look particularly smashing. Adding this to our document gives us the following output:
We have now seen several different kinds of chapter styles that can be (more or less) easily customised using memoir’s functionality. Creating your own chapter style is thus just a matter of overriding a couple of methods and inserting some code. Doing this gives a tremendous difference between a cookie-cutter template of a document and a customised, personal document of high quality. For those of you who need even more examples of different chapter styles, you can refer to the Memoir Chapter Style Samples document by Lars Madsen from Århus universitets institut for matematiske fag. But the most important aspect is, of course: experiment.
In closing, these are the relevant items to override in the standard setup. You may change commands so some of them become irrelevant or not used.
- Lengths:
\beforechapskip,\midchapskip, and\afterchapskip - Fonts:
\chapnamefont,\chapnumfont, and\chaptitlefont - Printing text:
\printchaptername,\printchapternum, and\printchaptertitle - More technical surrounding blocks:
\chapterheadstart,\afterchapternum,\printchapternonum, and\afterchaptertitle
For more technical details, consult the memoir manual or class file.
Styling the document
Monday, May 21st, 2007 | LaTeX | No Comments
Over the next few blog posts we will be looking at how we can restyle an entire document without changing its contents. This is one of the key strengths of LaTeX: separating content from style. There are, of course, several aspects of a document that can be interesting to restyle, but we will focus on some of the primary elements: the table of contents, chapter headings, part, section, subsection, etc. headings, and finally the page headers and footers. As usual, we will do this by investigating the memoir document class.
Post 0: This post
Post 1: Styling the chapter
Post 2: Styling the table of contents
Post 3: Styling the other document divisors
Post 4: Styling the page footer and header
Graph illustrations
Wednesday, April 5th, 2006 | LaTeX, Personal | No Comments
When we typeset documents for publishing, be it articles, journals or books, there is another important aspect to it, apart from the content: the layout. The hyphenation should be sensible, it should use ligatures properly, and the fonts shouldn’t change throughout the document. It is this last quality that can be rather tricky to maintain if you are importing figures into your document.
In Computer Science there’s a fairly prevalent need to create illustrations of graphs-no, not the ones plotting x- and y-values on a grid, rather the one with vertices and edges-and we can use software solutions such as GraphViz to draw our graphs based on fairly concise specifications. However, as always, there’s a catch: GraphViz presumes that we’re doing everything using TimesRoman at point size 12. This invariably leads to a problem if we are using Garamond at point size 11, namely that the fonts differ between your document text and your illustrations and you have lost some of the quality of the layout, much like you would have lost some of the quality of your content if you consequently forgot to place commas everywhere.
Solving this is incidentally part of my latest paper, Workflow optimisation for graph illustrations (PDF), where I look at synchronising the fonts between GraphViz and documents that are typeset in LaTeX. The paper will also be linked from the research section sometime in the near future when the need to update the different pages of my site strikes me. For those of you who are interested in learning more about what LaTeX may do for you, I will look at the possibility of running a series of posts on packages in LaTeX you can use to alleviate a lot of your problems, for tweaking your layout, and to create stunning output, but don’t hold your breath waiting for these posts. They keep me busy at the university.
Categories
Archives
- July 2011
- June 2011
- November 2010
- October 2010
- April 2010
- November 2009
- October 2009
- June 2009
- May 2009
- February 2009
- January 2009
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- December 2006
- November 2006
- October 2006
- September 2006
- June 2006
- April 2006
- March 2006
- February 2006
- January 2006
- December 2005
- November 2005
- October 2005
- September 2005
- May 2005
- April 2005
- March 2005
- February 2005
- January 2005
- December 2004
- June 2004
- April 2004
- February 2004
- November 2003
- January 2003
- November 2002