Hallo,

ich habe mich in letzter Zeit mit der Erzeugung großer Schriften mit
LaTeX beschäftigt, beispielsweise für die Erzeugung von Postern. Es gibt
dafür bereits Lösungen (wie a0poster), aber ich war unzufrieden mit
einer Lösung, die für jeden in Frage kommenden Font ein neues
\DeclareFontShape schreibt.

Ich bin mir natürlich darüber im klaren, daß Fonts wie cmr, cmss, oder
auch ecrm, nur für kleine Größen designed wurden und die Autoren nicht
wollten, daß die Fonts einfach hochskaliert werden (sonst hätte man das
ja bereits in den font definition files eintragen können). Andererseits
funktioniert ein Hochskalieren zumindest ja und ist somit besser als
keine Lösung. Und die Lösung wird ja auch verwendet.

Im beiliegenden Vorschlag für das Paket "sizesub.sty" schlage ich eine
andere Lösung vor als für eine Latte von Fonts ein \DeclareFontShape
auszuführen. Stattdessen wird das Verhalten des NFSS verändert.
Normalerweise wird ein Font in der nächsten verfügbaren Größe verwendet,
wenn eine nicht vorhandene Größe verlangt wird. Ich verändere dieses
Verhalten und erlaube, diesen besten verfügbaren Font auf die gewünschte
Größe zu skalieren.

Dabei geht natürlich die übliche Einschränkung verloren, daß man nur
bestimmte Fontgrößen überhaupt zur Verfügung hat. Das hat den Nachteil,
daß Fonts immer umskaliert werden, sobald sie nicht in exakt der
gewünschten Größe vorhanden sind. (La)TeX selbst benötigt allerdings nur
die tfm-files der unskalierten Fonts, die ja weiterhin unter Kontrolle
der vorhandenen font definition files bleiben. Das ist dann aber anders,
wenn man Druckausgaben erzeugen will. Bei metafont Fonts müssen dann
pk's für die Größe erzeugt werden, was Zeit und Platz braucht. Bei Type1
Fonts hingegen kann die Skalierung ohne weiteres einfach erfolgen.

Nachdem nun also die Möglichkeit besteht, Fonts in jeder gewünschten
Größe zu verwenden (mittels \fontsize{}{}\selectfont --- siehe dazu
example1), werden nun noch Selektionsroutinen für Fontgrößen benötigt.
Eine Lösung wird im Paket "sizedef.sty" angeboten. Dieses Paket erstellt
eine ganze Liste von Kommandos von \SMALLSIZE bis \LARGESIZE ausgehend
von der Größe von \normalsize, die als Parameter an das Paket übergeben
wird (siehe example2).

Ich freue mich über jeglichen Kommentar zu den vorgeschlagenen Paketen.


André Wobst

