Sie sind hier

Kaputtes Schriftbild bei Benutzung von scrreprt und lmodern

Hallo Zusammen,

ich verzweifele gerade etwas an einem Problem mit den LaTeX Schriften. Und zwar möchte ich gerne ein Dokument erzeugen, welches sowohl ausgedruckt, als auch am Bildschirm gut aussieht und man zudem in der PDF auch nach Umlauten bzw. Sonderzeichen Suchen kann.

Nach einer kleinen Recherche hatte ich dann das Paket 'fontenc' gefunden und es versucht entsprechend mit der Schrift 'lmodern' einzubinden.

Leider sieht das nun wie auf diesem Bild aus. Sprich manche Buchstaben werden falsch gesetzt.

Hier das entsprechende Minimalbeispiel:

\documentclass{scrreprt}
 
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
 
\usepackage[ngerman]{babel}
 
\begin{document}
    TU Sonstwas hat ein Problem mit schiefen Buchstaben!
\end{document}

Hab Ihr vielleicht eine Idee wie ich das Problem lösen kann?

Ach vielleicht noch ein kleiner Hinweis, wenn ich anstelle von 'scrreprt' die Standard 'report' Klasse verwende habe ich keine Probleme mehr mit falsch gesetzten Buchstaben, dafür sieht das Schriftbild irgendwie unsauber aus. Zudem würde ich natürlich lieber die KOMA-Script Klasse verwenden.

Gruß
Oli

Bild von Markus Kohm

Ich vermute, Du verwendest den AdobeReader (aka AcroReader). Der hat massive Probleme insbesondere mit verkleinerten und vergrößerter Darstellung. Wenn ich damit das Dokument mit 100%, 200%, 400% anschaue, sieht alles bestens aus. Wenn ich aber beispielsweise 150% verwende, passt das »U« nicht zum »T«. Wenn ich statt scrreprt dann report oder auch 10pt als Grundgröße bei scrreprt verwende, dann funktioniert das bei mir übrigens mit dem AdobeReader auch bei 100% und 200% nicht. Erst bei 400% zeigt er korrekt an. Das hat offenbar etwas mit der eingestellten Bildschirmauflösung zu tun.

Der AdobeReader ist übrigens für solche Probleme bekannt. Besonders beliebt sind auch Linien, die unterschiedlich dich erscheinen oder verschwinden, obwohl sie alle gleich sind. Mit der 5er-Version hatte ich einmal sogar das Phänomen, dass unter einer Abbildung, die garantiert unten keine Linie hatte, eine dünne schwarze Linie erschienen ist. Als ich die Abbildung dann leicht beschnitten habe, war die Linie plötzlich oben.

Mit xpdf oder xdvi ist das Problem übrigens bei mir nicht nachvollziehbar.

Hinweis zum Schluss: Wenn man bei Fonts die Standardklassen und die KOMA-Script-Klassen vergleichen will, sollte man die gewünschte Schriftgröße per Option setzen. In der Voreinstellung verwenden die Standardklassen nämlich 10pt, während die KOMA-Script-Klassen 11pt (scrlttr2 AFAIR sogar 12pt) verwenden. Wenn man bei Satzproblemen vergleichen will, sollte man außerdem identische Satzspiegel einstellen.

Für Dokumente, die am Bildschirm und im Ausdruck gut aussehen sollen, würde ich übrigens eine Schrift vorschlagen, die speziell entworfen wurde, damit sie auch bei geringen Auflösungen noch gut aussieht. Auf Latin Modern trifft dies definitiv nicht zu. Ein Beispiel wäre Charter. Dazu musst Du dann entweder noch eine passende Serifenlose suchen, oder Du verzichtest einfach auf Serifenlose.

Hallo Markus,

Danke erstmal für Deine ausführliche Antwort.

Wenn ich statt scrreprt dann report oder auch 10pt als Grundgröße bei scrreprt verwende, dann funktioniert das bei mir übrigens mit dem AdobeReader auch bei 100% und 200% nicht. Erst bei 400% zeigt er korrekt an. Das hat offenbar etwas mit der eingestellten Bildschirmauflösung zu tun.

Sowas ist echt dumm, weil der Acrobat Reader ist eigentlich der Viewer für PDF Dateien (zumindest unter Windows). Entsprechend sollte das Dokument dort natürlich zumindest bei "geraden" Zoomstufen korrekt angezeigt werden.


Wenn man bei Fonts die Standardklassen und die KOMA-Script-Klassen vergleichen will, sollte man die gewünschte Schriftgröße per Option setzen. In der Voreinstellung verwenden die Standardklassen nämlich 10pt, während die KOMA-Script-Klassen 11pt (...) verwenden.

Guter Hinweis, dass wusste ich nicht.

Ich hab auf Deinen Hinweis hin dann nochmal die Schriftart ausgetauscht gegen Charter und Du hattest recht, jetzt sieht das Schriftbild auf allen Zoomstufen gut aus. Allerdings hab ich jetzt das Problem, dass die Kapitelüberschriften sowie die Headings in den Verzeichnissen nicht mehr im Fettdruck erscheinen. Gibt es da eine Einfache Erklärung und/oder einen Workaround für?!

Bild von Markus Kohm

Du hast das vermutlich abgeschaltet. Näheres kann ich ohne vollständiges Minimalbeispiel aber nicht sagen.

Wäre also super, wenn Du mir sagen könntest womit ich das abgestellt habe...

Ich hab jetzt nochmal ein neues Minimalbeispiel erstellt, welches das Problem bei mir verdeutlicht:

%--- Packages
\documentclass{scrreprt}
 
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{charter}
 
\usepackage[ngerman]{babel}
 
%--- Dummy Document
\begin{document}
        \tableofcontents
 
        \chapter{Kaptiel 1}
        Lorem ipsum dolor sit amet, consectetuer sadipscing elitr, sed diam
        nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
        sed diam voluptua.
 
        \section{Abschnitt 1-1}
        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
        gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
        ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
        voluptua.
 
        \chapter{Kaptiel 2}
        Lorem ipsum dolor sit amet, consectetuer sadipscing elitr, sed diam
        nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
        sed diam voluptua.
 
        \section{Abschnitt 2-1}
        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
        gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
        ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
        eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
        voluptua.
 
\end{document}
</pre>

Ich bekomme aber auch die folgende Ausgabe von LaTeX beim Compile Vorgang die zuvor beim kompilieren des ganzen Dokuments immer untergegangen ist. Achja wichtig wäre vielleicht noch zu erwähnen, dass ich pdflatex zum kompilieren benutze.

LaTeX Font Warning: Font shape `T1/cmss/b/n' undefined
(Font)              using `T1/cmss/m/n' instead on input line 60.

Wenn ich das richtig verstehe, dann hat er das entsprechende Bold Face der Schrift nicht gefunden und ersetzt es durch etwas anderes.

Bild von Markus Kohm

charter.sty ändert den default für \bfseries von bold-extended (bx) auf bold (b). Die EC-Fonts, die Du mit \usepackage[T1]{fontenc} einschaltest haben bei LaTeX keine serifenlosen (cmss) aufrecht (n) in bold (b). Daher auch die Warnung. EC passt aber ohnehin nicht gut zu Charter. Deshalb hatte ich auch schon geschrieben, dass Du entweder auf Serifenlose verzichten solltest (wie das geht, steht am Beispiel der Gliederungsüberschriften in der KOMA-Script-Anleitung), oder eine passende suchen musst.

Wenn man EC verwendet, sollte man übrigens unbedingt mit fix-cm arbeiten, also vor \documentclass noch \RequirePackage{fix-cm} einfügen. Damit wird dann auch der fehlende Schnitt nachgereicht. Hm, wenn ich mir das so anschaue, dann passt die EC vielleicht doch gar nicht sooo schlecht. Eventuell wäre es mit LM sogar noch besser:

\documentclass{scrreprt}

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\AfterFile{t1lmss.fd}{%
  \DeclareFontShape{T1}{lmss}{b}{n}
  {<->ssub*lmss/bx/n}{}
}
\usepackage{lmodern}
\usepackage{charter}

Der Rest wie bei Dir. Dabei wird geschickt, die Anweisung \AfterFile aus scrlfile (wird von scrreprt automatisch geladen) verwendet, um die fd-Datei für die Serifenlose Latin Modern zu erweitern.

Jetzt passt es in der Tat und sieht auch auf allen Zoomstufen gut aus (selbst im AR).

Das ganze ist für mich zwar noch völliges Neuland, aber da werd ich mich wohl doch mal intensiver mit den Schriften unter LaTeX auseinander setzen...

Nur zum Verständnis, Du erweiterst mit der \AfterFile Anweisung die Schriften-Tabelle so, dass Latin Modern als Serifenlose Schrift verwendet wird anstelle von Charter, richtig?

Bild von Markus Kohm

In dem Beispiel mit \AfterFile wird erst per \usepackage{lmodern} Latin Modern und dann per \usepackage{charter} Charter geladen. Beim Laden von Latin Modern wird als Serifenschrift lmr und als Serifenlose lmcc voreingestellt. Beim Laden von Charter dann als Serifenschrift bch. Dabei wird außerdem als fetter Default (\bfdefault) der Schnitt bold (b) voreingestellt. Soweit so gut.

Wird nun irgendwann tatsächlich irgend ein Schnitt von lmss verwendet, lädt LaTeX die Datei t1lmss.fd. Darin ist deklariert, welche Schrift genau für welchen Schnitt verwendet wird. Leider ist dort für lmss (Latin Modern Sans Serif) b (bold) n (normal = aufrecht) keine Schrift eingetragen. Also würde normalerweise dieser Schnitt automatisch durch lmss (Latin Modern Sans Serif) m (medium = normal dick) n (normal=aufrecht) ersetzt. Das wollen wir aber nicht. Uns wäre ein anderer fetter Schnitt lieber. Zu diese Zweck müssen wir LaTeX per \DeclareFontShape mitteilen, dass es für T1/lmss/b/n eben T1/lmss/bx/n verwenden soll (und zwar per silent substitute, also ssub).

Nun kann man aber \DeclareFontShape nicht an beliebiger Stelle verwenden. Das geht nur in einem entsprechenden Umfeld (und unbedingt bevor der entsprechende Schnitt bereits einmal ausgewählt wurde). Der beste Ort dafür ist die fd-Datei der Schriftfamilie. Nun kann man natürlich nicht einfach die fd-Datei der Schriftfamilie ändern. Es bleiben also nur zwei Möglichkeiten: Entweder man definiert eine eigene Schriftfamilie oder man findet eine Möglichkeit, LaTeX zu sagen, dass es am Ende der Original-fd-Datei noch eine Anweisung mehr ausführen soll. Zufälligerweise bietet KOMA-Script mit dem Paket scrlfile die Anweisung \AfterFile, die für solche Zwecke gedacht ist.

Mehr über fd-Dateien und die dort erlaubten Anweisungen findet sich im fntguide, der zu LaTeX gehört. Es gibt noch eine zweite Anleitung über die Codierung von Fonts, deren Name mir gerade nicht einfällt.

Verstanden?

Hört sich alles einleuchtend an. Werd mir auf jeden Fall mal den fntguide ansehen.

Danke Dir für die ausführliche Erklärung!

Comments for "Kaputtes Schriftbild bei Benutzung von scrreprt und lmodern" abonnieren