LuaTeX: Ist in glyph nodes die font.size gleich der em-Größe? (Antwort: Ja) Thema ist als GELÖST markiert

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


khzimmer
Forum-Anfänger
Forum-Anfänger
Beiträge: 27
Registriert: So 3. Mär 2019, 12:01

LuaTeX: Ist in glyph nodes die font.size gleich der em-Größe? (Antwort: Ja)

Beitrag 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

Zuletzt geändert von khzimmer am Mi 26. Mai 2021, 09:49, insgesamt 1-mal geändert.

Gute*r Gȧst*in

Re: LuaTeX: Ist in glyph nodes die font.size gleich der em-Größe?

Beitrag 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.


khzimmer
Forum-Anfänger
Forum-Anfänger
Beiträge: 27
Registriert: So 3. Mär 2019, 12:01

Re: LuaTeX: Ist in glyph nodes die font.size gleich der em-Größe?

Beitrag von khzimmer »

Vielen Dank für die Hinweise. :)

Ich setzte probehalber

\usepackage{DejaVuSans}

ein:

Auch dabei ist das von

\kern1em

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

pre_linebreak_filter

zuverlässig die aktuelle Größe eines em feststellen kann?


khzimmer
Forum-Anfänger
Forum-Anfänger
Beiträge: 27
Registriert: So 3. Mär 2019, 12:01

Re: LuaTeX: Ist in glyph nodes die font.size gleich der em-Größe?

Beitrag 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


Antworten