Back

The microtype package: Subliminal refinements towards typographical perfection [pdf]

91 points2 yearsmirror.clientvps.com
mbork_pl2 years ago

I worked (very part-time) a typesetting job for 10+ years. We were making a journal with (sometimes) pretty narrow columns. Microtype was surprisingly helpful, while remaining (almost) invisible to a layman's eye. (Once you know about it, you can spot the differences in letter widths sometimes.)

Interestingly, Guthenberg used very similar techniques with varying the shapes of letters so that the "blackness" of the page could be more uniform.

kccqzy2 years ago

My favorite feature of this package is how it expands/contracts letters so that hyphenation is almost entirely gone in a fully justified text. I personally hate the hyphenation of words: they sometimes create ambiguity (incidental hyphens at the end of a line vs hyphens in the original word) and the hyphenation points always seem unintuitive to me.

mbork_pl2 years ago

Fun fact: in Polish typography, you repeat the hyphen at the beginning of the next line in the latter case (hyphenation when there is a hyphen already).

vitorsr2 years ago

I should warn you that the stretch that the package performs does not preserve the vertical stem widths. Therefore, especially at small point sizes, there are perceptible weight changes.

In my opinion, the default font expansion value stretch=20 is not conservative enough. I would personally recommend not only reducing it but also using the selected argument to further reduce the expansion of glyphs whose geometry distortion may be more easily perceived.

nextos2 years ago

Came here to say the same thing. Also, it pushes commas, full stops, and hyphens to hang over the margin. The typeset outcome is much more pleasant to the eye.

layer82 years ago

Hyphenation should not be dependent on justification? Meaning, it should be there or gone regardless of justification.

154573452342 years ago

It's hard (impossible?) to justify narrow columns in a fashion which is pleasing to the eye if you don't hyphenate, unless you employ glyph squeezing/stretching techniques such as used by microtype.

layer82 years ago

Yes, but it doesn’t look much better left-aligned, you’d want to use hyphenation there as well.

vitorsr2 years ago

@dang, this URL submission points to a CTAN mirror, can you please change it to the following:

https://mirrors.ctan.org/macros/latex/contrib/microtype/micr...

einpoklum2 years ago

From the fine document:

Micro-typography is the art of enhancing the appearance and readability of a document while exhibiting a minimum degree of visual obtrusion. It is concerned with what happens between or at the margins of characters, words or lines. Whereas the macro-typographical aspects of a document (i.e., its layout) are clearly visible even to the untrained eye, micro-typographical refinements should ideally not even be recognisable.

However, there don't seem to be any major changes to the package since 2021. (Which is not surprising, since it was first released in 2004.)

154573452342 years ago

> there don't seem to be any major changes to the package since 2021

It must be perfect!

Finnucane2 years ago

Does there need to be changes?

esafak2 years ago

What do people use to get microtyping on the web and in native applications?

gjvc2 years ago

A delightful document on a delightful subject!

__mharrison__2 years ago

I wish XeLaTex supported microtype...

Isthatablackgsd2 years ago

It don't? That's weird because I am able to use microtype package with XeLaTeX.

Ohhh I see, I look it up. Apparently, it support specific feature[0] of microtype in XeLaTeX.

[0] https://tex.stackexchange.com/questions/118713/is-microtype-...

pseingatl2 years ago

That's not clear from the document. I couldn't find a clear statement. What about LuaLaTeX?

bradrn2 years ago

It works fine with LuaTeX, in my experience. (And the document does make it clear: see Table 1, on page 6.)

bhickey2 years ago

Does fontspec work with LuaTeX?

bradrn2 years ago

Yes, it does. In general LuaTeX supports everything that XeTeX does.