Seite 1 von 1
LuaTeX: Ist in glyph nodes die font.size gleich der em-Größe? (Antwort: Ja)
Verfasst: Di 25. Mai 2021, 18:10
von khzimmer
Hallo Wissende,
Ich wollte herausfinden, wie groß ein Geviert (ein em) mit dem Font und der Font-Größe wäre, die ein Glyph verwendet:
Dazu kopierte ich in pre_linebreak_filter einen glyph-node, setzte als char ein M ein und prüfte die Größe:
\documentclass{scrbook}
\usepackage{luacode}
\begin{luacode*}
local find_em_size = function (head)
local glyph_id = node.id "glyph"
local kern_id = node.id "kern"
while head do
if head.id == kern_id then
print ("kerning found: ", head.kern)
elseif head.id == glyph_id then
local curFont = font.fonts [head.font]
local fontSize = curFont.size
local emNode = node.copy (head)
emNode.char = 77
local emSize = emNode.height + emNode.depth
print ("char: "..unicode.utf8.char(head.char).." emSize: "..tostring(emSize).." fontSize: "..tostring(fontSize))
end
head = head.next
end
return true
end
luatexbase.add_to_callback("pre_linebreak_filter",find_em_size,"~")
\end{luacode*}
\begin{document}
\typeout{}
x\large y\Large z
A\kern1emB
\end{document}
Merkwürdigerweise erhalte ich in emSize einen viel zu kleinen Wert – doch in fontsize bekomme ich den Wert, den ich auch in einem kern-Node bekomme, wenn ich im Dokument \kern1em schriebe.
Wie kann das sein? Ist das immer so?
Herzliche Grüße
Karl-Heinz
Re: LuaTeX: Ist in glyph nodes die font.size gleich der em-Größe?
Verfasst: Mi 26. Mai 2021, 09:08
von Gute*r Gȧst*in
Ein Geviert ist eine typografische Designgröße. Das ist keineswegs zwingend die Breite des Buchstabens M. Die englische Bezeichnung der Einheit ist lediglich eine historische Näherung.
Wikipedia hat geschrieben:Die im Englischen verwendeten Bezeichnungen Em für „Geviert“ und En für „Halbgeviert“ sollten nur als Näherung verstanden werden, denn die Breite der Buchstaben M und N ist für die Definition von Geviert (also Em) und Halbgeviert (also En) nicht maßgeblich. Außerdem ist das Geviert im klassischen Letternsatz aufgrund des typographischen Fleisches (in der Grafik 3) etwas größer als der größte Buchstabe.
Es sei darauf hingewiesen, dass der größte Buchstabe schon im klassischen Letternsatz nicht zwangsläufig das M, sondern teilweise beispielsweise das W war.
Wenn also allgemein schon das Ausmessen der Breite eines einzelnen Buchstabens zur Bestimmung eines Geviert im Ansatz falsch ist, gilt das erst recht für das Ausmessen der Höhe und Tiefe.
Übrigens gilt ähnliches für 1ex. Auch das ist nur eine Näherung an die Höhe des x. Die tatsächliche Höhe weicht teilweise ab.
Re: LuaTeX: Ist in glyph nodes die font.size gleich der em-Größe?
Verfasst: Mi 26. Mai 2021, 09:25
von khzimmer
Vielen Dank für die Hinweise.
Ich setzte probehalber
ein:
Auch dabei ist das von
produzierte Kerning exakt so groß wie die aktuelle fontsize.
Ist denn sicher, dass das immer so ist?
Also ein em identisch mit der Fontsize?
Oder gibt es einen anderen Weg, wie ich zur Laufzeit innerhalb von
zuverlässig die aktuelle Größe eines em feststellen kann?
Re: LuaTeX: Ist in glyph nodes die font.size gleich der em-Größe?
Verfasst: Mi 26. Mai 2021, 09:34
von khzimmer
Oh, je, wo war ich mit meinen Gedanken!?
Sorry, Leute, für's Zeit verschwenden, soeben finde ich die Antwort in der echten Wikipedia:
An em is a unit in the field of typography, equal to the currently specified point size.
Quelle: https://en.wikipedia.org/wiki/Em_(typography)
Ist also völlig klar, wieso \kern1em einen Abstand baut, der exakt der fontsize entspricht: So ist das Geviert wohl definiert!
Verdutzte Grüße
Karl-Heinz