{ Proper use of historical German long s }

Rene Verkaart's picture

Some time ago I bought a very old document from the 1920's on a second hand fair. I instantly fell in love with the used typeface and descided to scan it and make a font out of it. Intentionally I just wanted to use it as an excercise for future fonts, but meanwhile I've really put my teath in it.

In the attached PDF you'll find the original text from the document. This contains words with the 'normal' s and the old German 'long s'. My German is quite good, but I my backwords compatibility goes only back to 1995. So I don't know how the long s is originally used in German text. I couldn't find any structural grammar-rules in the text, because both s-forms are used in the same word. Sometimes only the normal s is used and not the long s.

I want to make an OpenType Pro font that takes care of the historical grammar-issues when you activate the feature. Besides that it will be packed with cool ligatures that I'm going to make next.

Does anyone have reference material, or can give me an insight in the 'long s'-fenomenia?



PS: The name is just a working title, so if anyone has a cool name for it... please feel free to suggest it here.

George Horton's picture

Normally, long s ("medial s") is the standard form, our s ("terminal s") is used only at the end of words. In the Italian Renaissance some people only used long s, and I dimly remember that in Germany the rule was not only rather laxly upheld but actually different at one point.

Celeste's picture

I think the "medial s/terminal s" still applies here (as in "Gesetzer", for example) — but since there are many « compound-nouns » in German, you have here some terminal s "stuck" in the middle of a word, because they are actually the last letter of the first part of the noun (like "Ausgefertigt" or "Tilgungskasse"). I don't know if I'm perfectly clear here, though.

privateortheris's picture

Are we talking about the esset character - ß - which signifies double s, but seems to be sadly falling into misuse?

poms's picture

>(das Lange-s) Does anyone have reference material

http://www.sanskritweb.net/fontdocs/walbaum.pdf (page 7)
But it's in german.

Fraktur has three different small "s" -
the Eszett "ß" (das Eszett)
the "Long-s" (das Lange-s)
the "End-s" (das Schluss-s)

I try to translate the basic rule paragraph fromout the PDF with my poor english...

Basic rule

- The "Eszett" (ß) will be used the same way as in Antiqua, no difference.

The "Long-s" mostly appears at the beginning of a word, respectively inside the word, at the beginning of a syllable.

- The "End-s" mostly appears at the end of a word, repespectively inside a word at the end of a syllable.

This paragraph is followed by Examples for Long-s and End-s in Fraktur, this might be interesting for you. The real usage is getting more difficult, of course :)


Celeste's picture

Chris — the esset character is actually a ligature of a medial s and a terminal one (as can be seen, for instance, in German neoclassical typefaces, like Heinrich Jost's Bauer Bodoni).

privateortheris's picture

That is really (really) interesting. The development of characters (like & and ß for instance) is not considered/acknowledged enough. Well done everybody. Tuned out for a while because Prison Break was just finishing.

privateortheris's picture

Top contribution from Thomas - I have learned today.

Tim Stadelmann's picture

The distinction between ſ and s in German is really a spelling problem, and as such there won't be an automatic solution unless you plan to include a sizeable dictionary in your implementation...

However, it's really only crucial for Blackletter. When using Antiqua for printing German, the short s has always been acceptable.

Since you may still be interested, I'll try to explain the rules as far as I remember them.

As pointed out before, the basic idea is that ſ comes at the start of a syllable, but s is written at the end. (The ſ in ſp and ſt is always counted as part of the following syllable, unless etymology indicates something else.) The problems are that sometimes ſ can also come at the end of a syllable:

If the end of the syllable coincides with the end of a word, the end of a prefix, or the end of a constituent of a compound word, s must be used; these rules are applied to words of foreign origin, too! If a silent vowel has been elided (e. g., ich wechſle, unſre) ſ must be used. Before a suffix starting with a vowel, it's ſ. If the suffix starts with a consonant, use s. Before d, k, m, n, w (in native German words, there are few such combinations not covered by earlier rules) s is used. In all other cases ſ is used as the default.

Doesn't seem to complicated, but in practice the issue can be quite subtle, for example transportieren (trans-portieren) vs. tranſkribieren (tran-ſkribieren), or Wachſtube vs. Wachstube (slightly far fetched, but there are a few examples where the form of the s changes the meaning completely.)

Abbreviation and hyphenation do not affect the choice of s. You have to base the orthography on that of the complete word.

Rene Verkaart's picture

Thanx Thomas and Dan, that was exactly what I was looking for!

I see the huge problem of the etymology. My German is quite good, but I don't think it's possible to build an OT feature that can handle these kinds of issues.

It would be interesting to find out to what extend it's possible to program this in OT. So I will post a thread about this asking for help, because I want to get it right. It's easy to make ligatures that get activated with certain glyph combinations. IMHO it makes no sence to do just that if it changes the meaning of the word or is just etymologically wrong.

Great help, you guys.


www.characters.nl { Dutch typography to express yourself }

dan_reynolds's picture

but I don’t think it’s possible to build an OT feature that can handle these kinds of issues.

No, it is not, and I am very unhappy about that.

You'd have to put in an entire dictionary and hypenation engine into the font.

Ligatures, for instance, are another trick. Not ever instance of "fl" is replaced by a ligature in German. "Auflegen", for instance. "Auf" is a prefix. Prefixes and root words are not connected by ligatures. Otherwise, it would be difficult to notice the gap. But with words like "abfliegen", an "fl" liagure should be used.

andreas's picture

The whole thing of ligatures and longs is very problematic in German. So the best thing you can do is to avoid any automatic substitution!

The fi ligature will work in 99,9% right, but fl, like Dan pointed out, will result in a small number of false settings. It will became more problematic with other ligatures.

So if you make your OpenType feature code, limit the ligatures for the German language.

feature liga { # Ligatures
script latn;
language dflt;

lookup no_i {
sub longs longs i by longs_longs_i.lig;
sub longs i by longs_i.lig;
sub f f i by f_f_i.lig;
sub f i by fi;
} no_i;

lookup STANDARD {
sub longs longs by longs_longs.lig;
sub longs l by longs_l.lig;
sub f f by f_f.lig;
sub f l by fl;
sub l l by l_l.lig;
sub lslash lslash by lslash_lslash.lig;
sub t t by t_t.lig;
sub t h by t_h.lig;

language TRK exclude_dflt;
lookup STANDARD;

language AZE exclude_dflt;
lookup STANDARD;

language DEU exclude_dflt; # Only fi is availble for German
sub f i by fi;

} liga;


Rene Verkaart's picture

Thanx Andreas for the OT code. I will give it a go in the weekend.

German is a tricky language when you want to do it right... Every year you have to update your grammar-knowledge because they descide to change the rules for writing again.
How many did you have over the last years?


www.characters.nl { Dutch typography to express yourself }

andreas's picture

Yes, and now we have the revision of the revision of revision of the revision ... :-) so it must be updated again. Its a good strategy to stay on the "old" language rules.

BTW. The feature code above works "right" only, if the application is capable to strip the feature code for each language. Till today, only the FontLab Preview is capable of it - my guess.


k.l.'s picture

So in German text, you only substitute fi an no other ligature? This doesn't satisfy me. Same for Adobe's solution which requires that you activate dlig (discretionary ligatures) to get f-ligatures in German text ... [Side note: These language-dependent definitions would require that layout engines respect language tags which, to my knowledge, most of them don't do at the moment.]

I am unhappy that no application yet supports proper substitution of f-ligatures and maybe long-s for German. Obviously this is the price of internationalization. And I am one of them who made a fuss about the earlier method of substituting f-ligatures everywhere, with typographically incorrect results at many places in a German text.

But: Taking f-ligature substitution (almost) completely out of liga is just the other extreme!

A very simple solution for German typographers is:
liga *should* substitute f-ligatures wherever they appear -- so, no additional lookups for German! If a typographer really cares, he can go through the text manually, place the cursor between two letter that shall *not* be ligated, and switch off the liga feature. Character styles may help.
The amount of work this requires is about the same as with Andreas Seidel's or Adobe's liga-implementation for German. Only difference is, corrections work the other way round ...

In German typesetting it is not nice, but does not harm either if f-ligatures are used at places where they are typographically "wrong". This is what has become common anyway -- because the software does the job. If we are honest, there are maybe a hand-full of German typographers who really care if an f-ligature is in place or not. My impression is that this hand-full of typographers are responsible for the just-as-unsatisfying solutions described at the beginning. I worry for this, because the "solutions" are even worse than the original problem which is something one can live with! And definitely is not to be addressed on font level.

To non-German-speaking type designers: Just do it as you always did. Forget the talk about exceptions from German side. Dealing with these exceptions correctly is not to be solved on typeface but on application level (dictionary).


Rene Verkaart's picture

Hi Karsten,

I think you are right about the f-ligatures, they're not even standard in FontLab. The German language has a lot of f-ligatures (ff, ffi, ffl, ffj, fft, etc.) that have been forgotten in fonts for a long time. You had to buy an expert font an work through your whole text to replace these ligatures. My god!...

I'm also a person to correct my text by hand, as long as we're not talking about a 200 pages thick book. ;-) IMHO I think every typographer and/or typedesigner should apply 'the correct typographic rules' set an example for people. If they don't, who will!
Most people nowadays rely too much on their software to do it right. Mostly this is not the case. Therefor I want to implement as much into my font as possible, so the machine does it right.

If you make a font for a specific language, the etymological- and grammatical issues should be respected and applied correctly. You can't just producte the rights glyphs and put them into the designated box.


www.characters.nl { Dutch typography to express yourself }

ralf h.'s picture

I can not understand that a German would say something like that. Did you try to read German texts with these wrong ligatures (like aufliegen)? It doesn't work at all. The ligatures mostly appear inbetween compound words and these words become instantly to hard to read because you can't make out the boundaries of the two parts – and thats exactly what you expect to make out the meaning of the word.
Also I don't think it's just a matter of how it looks. It's a rule of the German orthography (and for a good reason)! And a type designer should never question that or build fonts that don't go along with the orthography.



k.l.'s picture

A German can say this. I had to read German texts with wrong ligatures and I don't feel comfortable with it. It is against habits, but, sorry to say, it does work, and one can get used to it.

Also I don’t think it’s just a matter of how it looks. It’s a rule of the German orthography (and for a good reason)! And a type designer should never question that or build fonts that don’t go along with the orthography.

1. You are mixing up two aspects. Of course typographers should care for setting f-ligatures correctly. If they only would ... But: Orthography is not the business of fonts but of applications.
2. Typesetting with normal fonts which substitute f-ligatures everywhere and doing the exceptions by hand e.g. with character styles is just as easy (or complicated) as doing exceptions to exceptions already performed by the font! At least you know what you can expect.
3. Typographer/editors of German texts who don't care about typography get "faulty" results with all of the methods! Sometimes visually, sometimes orthographically, or both, at least regarding one ligature, or the other, or both ...
4. As to typographers who care, the two solutions mentioned earlier don't help but complicate. In future, do I have to check each font for ligature behavior first? No f-ligature-substitution at all? Substituting only fi? Or only fl?

Typographer should always question things! I prefer Renner ("it depends") over Tschichold ("do this! don't do that!").


ralf h.'s picture

Typographer/editors of German texts who don’t care about typography get “faulty” results with all of the methods! Sometimes visually, sometimes orthographically …

Right. But we shouldn't prefer correct typography over correct orthography, should we?



emka's picture


I wonder how your attempt at an OT solution for correct long/short-s application worked. There is, btw, a script for MS Windows that automatically applies ligatures and s-versions to German texts in (few) historical fonts: Ligaturix; maybe that can help.
It'd be great if software started to support historical letter features; as you know, this is not only important for German. Until and throughout the 18th century, French, Italian, English, Dutch, they all used two types of s (in Antiqua, of course) according to position in the syllable, and my bet is there also were rules for when and when not to use ligatures.


Rene Verkaart's picture

Sorry about the laaaaaate reply. I have had absolutely no time in the last months to work on my fonts. My work takes up all of my attention.
I will be back soon with an update on this font.


Syndicate content Syndicate content