Berechnung x-facher Zeilenabstände in Microsoft Word
Die Berechnung der x-fachen (mehrfachen) Zeilenabstände in Microsoft Word entpuppt sich als Herausforderung: Ich wollte eine Microsoft-Word-Vorlage erstellen, die Flexibilität in der Schriftgröße ermöglicht. Das Layout gab PT Serif Regular 10pt/15pt vor. Word bietet die Möglichkeit, Zeilenabstände sowohl fest (»genau«) als auch flexibel (»Einfach« usw. bis »Mehrfach«) einzugeben.
Falsche Grundannahme
Man möchte annehmen, dass in Microsoft Word ein 1-facher Zeilenabstand bei einer 10-pt-Schrift genau 10 pt entspricht und ich demzufolge 10pt/1,5-fach einstellen müsste, um meiner Layout-Vorgabe folgend genau 15pt Zeilenabstand (ZAB) zu erhalten.
Dem! ist! nicht! so!
Nach kurzen Tests war klar: Word benutzt zur Berechnung des flexiblen Zeilenabstands bestimmte metrische Font-Attribute und die Schriftgröße. Das bedeutet: 1-facher Zeilenabstand ist je nach gewählter Schrift und Schriftgröße ein anderer absoluter Wert. Aber welche Werte werden zur Berechnung benutzt?
Internetsuche
Die Suche im Internet bestätigte zunächst mein vages Ergebnis recht amüsant (»defaults somewhere a little south of«):
Und brachte mich anschließend auf diese wundervolle Aussage eines Microsoft-Mitarbeiters:
Jede Office-Anwendung kalkuliert also den x-fachen Zeilenabstand anders. Und jede Version ein jeder Office-Anwendung eventuell ebenfalls.
So geht’s … zumindest in meiner Anwendungsumgebung
Nach weiterem Testen und Tüfteln habe ich diese Formel aufgestellt, die bisher in meiner Anwendungsumgebung (MS Word 2010 für Windows, Version 14.0.7184.5000) präzise Ergebnisse liefert:
Fontsize [pt] * ( WinAscent + | WinDescent | ) 1-fach-ZAB [pt] = -------------------------------------------------- UPM
WinAscent
und WinDescent
stammen aus der OS/2-Tabelle eines Fonts (os2.usWinAscent, os2.usWinDescent: https://www.microsoft.com/typography/otspec/os2.htm#wa).
UPM
(Units per EM, Einheiten pro Geviert) stammt aus der HEAD-Tabelle (head.unitsPerEm: https://www.microsoft.com/typography/otspec/head.htm).
Wollen wir also für einen Font bei vorgegebener Schriftgröße und festem Zeilenabstand den Wert berechnen, den wir in das Feld »Mehrfach« in Word eintragen müssen, hilft uns diese Formel (eine Kombination der oben dargestellten mit simplem Dreisatz):
ZAB [pt] * UPM x[-fach] = -------------------------------------------------- Fontsize [pt] * ( WinAscent + | WinDescent | )
Ein Beispiel:
Die PT Serif Regular hat folgende Font-Metriken:
head.unitsPerEm = 1000
os2.usWinAscent = 1039
os2.usWinDescent = -286
Bei gewünschten 10pt/15pt ergibt sich:
15 * 1000 x[-fach] = ---------------------------- = 1,132-facher Zeilenabstand in Word 10 * ( 1039 + | -286 | )
Und siehe da: Es passt.
Hallo Tobias,
danke für den Tipp. Das hat super geklappt.
Für andere die ein ähnliches Problem haben: Die Einheit Geviert findet man auch im von Tobias empfohlenen Programm und die Schriften findet man unter C:\Windows\Fonts.
Danke für den tollen Beitrag!
Prima, freut mich, dass alles geklappt hat! Viele Grüße, Tobias
Hallo Herr Wantzen,
vielen Dank für diesen Klasse Blog-Post. Ich wollte die Formel, um für meine Dissertation einen größeren Zeilenabstand beim Einfügen von Formeln in Text zu verhindern. Dafür benötige ich die Parameter für Arial Schriftgröße 12. In den angegebenen Links finde ich aber keine Tabekke, in der ich die Werte für WinAscent, WinDescend und UPM nachschauen kann. Können Sie mir da weiterhelfen?
Vielen Dank und viele Grüße
Timm
Moin Timm,
danke für Ihr positives Feedback!
Sie können sich den kostenlosen Font-Editor FontForge installieren, Ihre verwendete Version der Arial damit öffnen (naja, es ist mehr ein Importieren) und dort unter »Element › Font Info › OS/2 › Metrics« Win Ascent Offset und Win Descent Offset auslesen.
Ich hoffe, es hilft, Ihr Problem zu lösen.
Viele Grüße
Tobias Wantzen