estee

joined 2 years ago
MODERATOR OF
[–] estee 2 points 2 years ago

The usual answer for Sweden is "The Emigrants" (Utvandrarna) by Vilhelm Moberg. However, and I don't think this is obvious to foreign readers, the author John Ajvide Lindqvist really writes about Sweden. He's most famous for the book "Let the right one in" about a vampire kid, but the story is actually about growing up as a young boy in Sweden. The horror aspect is part of the genre, but all his books manage to mix a description of swedish society with a supernatural horror element.

[–] estee 1 points 2 years ago

No worries, I'm not a native speaker either. I think I know what you mean :) And, I would do the same. In one of his books, Tschichold points out that the center white "column" should be optically the same width as the outer margins, i.e. when you open the book or binder, however it is bound or put together, it's the visual impression that matters, not the millimeters on a loose page. Very few books open completely flat.

For that reason the page usually has a binding correction distance, which is added to the inner margin. If the binding "steals" 1cm, one must add that to the margin, at least. And to the page width if you are trimming the page after printing.

If you fold the papers into folded bundles or signatures, then there's also a tiny amount of creep that can be adjusted, because the outer layers of the bundle/signature will have a rounded shape at the spine while the innermost has a crisp fold. But that's maybe being pedantic. I have a macro for creep correction but honestly I've never actually used it.

[–] estee 2 points 2 years ago (1 children)

At first the margins feel very large, but it has grown on me, and I'm using this layout in my current project.

4
Two-sided documents (self.tex_typesetting)
submitted 2 years ago by estee to c/tex_typesetting
 

In a two-sided document, the margins are mirrored. This is good if the document is intended to be read as a book, where the combination of a verso and recto page is seen as a whole. Traditionally the inner margin is smaller, so that the white space in the middle (the combined inner margins) is in harmony with the outer margins.

If we first set the recto (odd) page with some margins, then we can figure out how much the type area on a verso (even) page needs to move.

Then, the idea is to insert an \hoffset-adjusting macro in the output routine before it does anything else.

In plain LuaTeX we could have this document:

% Undo 1 inch origin (personal preference)
\pdfvariable horigin 0pt
\pdfvariable vorigin 0pt

% A5 paper
\pagewidth=148.5mm
\pageheight=210mm

% Inner margin
\hoffset=0.111\pagewidth

% Top margin
\voffset=0.111\pageheight

% Type area width
\hsize=0.666\pagewidth

%Type area height
\vsize=\topskip
\advance\vsize by 32\baselineskip

\tolerance=9999 % Not important for testing

Then a spread would look like this:

Ok, so then we figure out how much a verso should move and insert that into the output routine:

% How much verso pages should move
\newdimen\shiftoffset
\shiftoffset = \pagewidth
\advance \shiftoffset by -\hsize
\advance \shiftoffset by -2\hoffset

% \hoffset-adjusting macro...
\def\beforeoutput{%
	\ifodd\pageno
	\else
		\advance \hoffset by \shiftoffset
	\fi
}

% ...inserted before the regular output routine
\output{\beforeoutput \plainoutput}

And then we get:

Caveat: if you have your coordinate origin somewhere else, like 1 inch in from the left and top, or some other setup, you may have to account for that in the macros.

8
submitted 2 years ago* (last edited 2 years ago) by estee to c/tex_typesetting
 

Jan Tschichold and Raul Rosariva independently researched the layout of medieval books, and each came up with a method of construction. Rosarivas version (to the right) lends itself very well to a programmatic approach. We could implement it (in luaTeX) in a few lines like this:

% Page size (proportions 2:3)
\pagewidth=150mm	
\pageheight=225mm

% Undo 1 inch origin (personal preference)
\pdfvariable horigin 0pt
\pdfvariable vorigin 0pt

% Inner margin
\hoffset=\pagewidth
\divide\hoffset by9

% Top margin
\voffset=\pageheight
\divide\voffset by9

% Type area width
\hsize=\pagewidth
\divide\hsize by9
\multiply\hsize by6

% Type area height
\vsize=\pageheight
\divide\vsize by9
\multiply\vsize by6

This is all well and good if we have vertically stretchable material on every page. But... if we want to do grid typesetting, we will quickly run into "Underfull \vbox (badness 10000)".

Let's say we've set \parskip=0pt.

\topskip=10pt and \baselineskip=12pt

\showthe\vsize produced "426.79129pt" in the log.

Right now we have 35 lines: \topskip + 34 \baselineskips, which is 10pt+(34*12pt) = 418pt, i.e. less than \vsize, but there's no room for adding another line.

Something has got to give.

One way is to define \vsize as a set number of lines, and then adjust \baselineskip to be slightly bigger to make \vsize be in accordance with the golden canon.

Either we stay with 35 lines and increase \baselineskip slightly, or we decrease \baselineskip to fit one more line. This is where you have to make a call based on what would make it better as a whole. In this case, I think it wouldn't hurt with a little extra leading, so I'll stick with 1+34 lines and go back and change \vsize:

\vsize=\topskip
\advance\vsize by 34\baselineskip

Now all that is left is to figure out how much to increase \baselineskip. We can leave \topskip as it is, at 10pt, so we're left with 426.79129pt - 10pt = 416.79129pt.

Divide that with 34 lines:

416.79129pt / 34 is approximately 12.2586pt, so we go back and set \baselineskip to that.

\baselineskip=12.2586pt

Now we have something like this (with added guidelines):

Finally, if our goal here is to make a type area rectangle of a certain proportion, it could be argued that the first line should have its x-height touch the upper border of the rectangle. The bulk of a line contributing to color is made up of the lower case letters. In that case we could adjust \voffset:

\advance\voffset by-\topskip
\advance\voffset by 1ex

but then we would also have to compensate the total \vsize and figure out a new \baselineskip.

Disclaimer: I haven't tested the above code, so there could be spelling errors etc, but it's more about the reasoning.

[–] estee 1 points 2 years ago* (last edited 2 years ago)

True, maybe it would be better to have step by step instructions on how to compile your own TeXbook, since the source is free?

Edit: it seems like it's actually not 100% free to produce a pdf from the source.

2
Modern versions of TeX (self.tex_typesetting)
submitted 2 years ago by estee to c/tex_typesetting
 

If you've read the TeXbook, you probably noticed that there are some outdated aspects of it. Most people don't use bitmap fonts or DVI anymore, they use opentype and PDF. Because of this, the engine evolved from TeX to pdfTeX, XeTeX and luaTeX. Two projects worth checking out if you are interested in a modern version of TeX, are:

OpTeX https://ctan.org/pkg/optex

Minim https://ctan.org/pkg/minim

3
The TeXbook (ctan.org)
submitted 2 years ago* (last edited 2 years ago) by estee to c/tex_typesetting
 

Donald Knuths surprisingly friendly manual of the TeX macro language.

Edit: Removed the link to the pdf, which is available online in various places, because of copyright. The source is freely available to read, but not to make your own document.

view more: ‹ prev next ›