# Fraktur (blackletter) typesetting with certain automated features?

This question is somewhat related to this one.

Background: I have a book from 1855 (Faust) of which I'd like to create a kind of facsimile version. At this point it isn't too important to make sure to have the exact font reproduced as the style. So for my purposes and for an initial version I am settling for UnifrakturMaguntia for now. However, maybe I'll also test with yfonts and so on.

However, one goal would be to be able to toggle between using a Fraktur (blackletter) typeface and contemporary typefaces with serifs (keep that in mind while reading the remainder of this question).

Given the nature of the old 19th century blackletter typesetting, I am concerned about the following items:

• How to properly typeset long ſ versus round s?
• This is kind of a biggie actually, because preferably I'd like to type away in my editor and not have to care at which point a long ſ is called for and at what point it should be a round s. Can LuaLaTeX be employed to help in this without actually having to change how I type the text?
• Since the text is pre-1880 it doesn't follow the (German) spelling rules established by the Duden. This means any automatic features such as hyphenation aren't going to work reliably (I reckon). It's not as much of an issue for this type of text, but I am eyeing at creating a facsimile of sorts of another body of text with similar requirements in the future.

This answer by Håkon Malmedal addresses how to use \emph to use wide letter spacing for emphasis. But neither answer on said question has an automated version of long ſ versus round s.

Consider the following sample from aforementioned book.

\documentclass[paper=A6]{scrbook}
%\usepackage{yfonts}
\usepackage{fontspec}

\defaultfontfeatures{Ligatures=TeX}
\setmainfont{UnifrakturMaguntia}
\begin{document}
\begin{center}
{\Huge Faust.}\vspace{4ex}

Eine Tragödie\vspace{4ex}

{\tiny von}\vspace{4ex}

{\Large \bfseries Goethe.}\vspace{4ex}

{\small Beide Theile in Einem Bande.}\vspace{4ex}

\rule{5em}{.5pt}\vspace{4ex}

{\bfseries Stuttgart und Augsburg.}

\emph{J. G. Cotta'ſcher Verlag.}

1855.
\end{center}

\pagebreak

\begin{center}
\emph{\large \bfseries Der Tragödie}

\emph{erster Theil.}

{\footnotesize Nacht.}

{\bfseries Faust}

{\scriptsize (in einem hochgewölbten, engen, gothischen Zimmer unruhig auf seinem Sessel am Pulte).}
\end{center}

Habe nun, ach! Philosophie,

Juristerei und Medicin,

Und, leider! auch Theologie

Durchaus studirt, mit heißem Bemühn.

Da steh' ich nun, ich armer Thor!

Und bin so klug, als wie zuvor;

Heiße Magister, heiße Doctor gar,

Und ziehe schon an die zehen Jahr,

Herauf, herab, und quer und krumm,

Meine Schüler an der Nase herum ---

...
\end{document}


Now on page one I have used the long ſ in "J. G. Cotta'ſcher Verlag.", ..

... but on page two I haven't used the long ſ explicitly anywhere and the outcome is not what's desired:

Instead I would hope to automatically get the outcome I get from explicitly setting the long ſ (second page adjusted accordingly):

\begin{center}
\emph{\large \bfseries Der Tragödie}

\emph{erſter Theil.}

{\footnotesize Nacht.}

{\bfseries Fauſt}

{\scriptsize (in einem hochgewölbten, engen, gothiſchen Zimmer unruhig auf ſeinem Seſſel am Pulte).}
\end{center}

Habe nun, ach! Philoſophie,

Juriſterei und Medicin,

Und, leider! auch Theologie

Durchaus ſtudirt, mit heißem Bemühn.

Da ſteh' ich nun, ich armer Thor!

Und bin ſo klug, als wie zuvor;

Heiße Magiſter, heiße Doctor gar,

Und ziehe ſchon an die zehen Jahr,

Herauf, herab, und quer und krumm,

Meine Schüler an der Naſe herum ---

...


Now, this is still just an approximation of the real book (font doesn't match 100% and some lines are broken differently), but I want to hash out the details before I proceed.

Here's a sample of the real thing (what's page 2 in the above example):

TL;DR: How can I automate the use of long ſ versus round s without having to explicitly type the long ſ all the time. Preferred engine LuaTeX.

NB: if you can recommend a closer match to the font shown in the above photo, I'd be glad if you'd point it out (be it in a comment or answer). Thanks.

PS: I am literate in vanilla Lua, but not necessarily in the ways it's embedded in LuaTeX.

• there is some lua code to enable automatic long s here tex.stackexchange.com/questions/435638/… – David Carlisle Apr 20 '19 at 8:37
• I guess an alternative (albeit less desirable) to what I am asking for could be to replace the long ſ when typesetting in a contemporary Latin typeface. I.e. so that I'd still have to explicitly type the long ſ in my text, but when producing output without Fraktur, I'd get the round s in place of each long s. – 0xC0000022L Apr 20 '19 at 8:37
• Thanks @DavidCarlisle, I am going to try this and write up an answer, provided it works out. – 0xC0000022L Apr 20 '19 at 8:40
• Two remarks: First, I assume an automated solution for the s problem is not possible as it requires semantic aspects (although one can easily identify, for example, the end of a word with a virtual font and the ligature mechanism). As you write a German text you might be able to read German so see bfds.de/wp-content/uploads/S-Regeln.pdf. Second, do not letterspace ligatures like st in erster'' (and add more space after a letterspaced word); see page 15 of buchbinderei-koester.de/download/Knigge_digital.pdf. – Udo Wermuth Apr 20 '19 at 20:52
• @UdoWermuth Danke für die Anmerkungen! The letter-spacing of the st in "erster" is probably due to a lack of fine-tuning at this point. But thanks a lot for pointing it out and providing links to more detailed references. – 0xC0000022L Apr 20 '19 at 22:11