klassizist
09-01-2010, 21:20
Seit es die LCDF type tools und Open Type Schriften gibt, ist die Verwendung von beliebigen OP-Schriften viel einfacher geworden. Trotzdem ist es immer noch nicht trivial, ich habe mich gerade wieder drei Stunden damit herumgeärgert. Der Haken ist, dass LCDF ausschliesslich unter Unix voll funktioniert, aber die Mehrheit der Computer unter einer Windows-Version laufen.
Daher will ich mein Vorgehen hier posten, es sollen die Schnitte römisch, kursiv und fett-kursiv der Linotype Sabon (http://de.wikipedia.org/wiki/Sabon_%28Schriftart%29), einer klassischen Buchschrift für MikTeX 2.8 unter Microsoft Windows (7) installiert werden.
Verfügbar sein werden Ligaturen (fi, fl ...), sowohl Mediävalziffern als auch Tabellenziffern, Kerning, kursive als auch bloss schräggestellte Schnitte.
Schritt 1: LCDF type tools (http://www.lcdf.org/type/) herunterladen und nach c:\Program files (x86)\ oder ähnlich extrahieren. Am besten setzt man gleich die Umgebungsvariable %PATH% unter Systemsteuerung->System->erweitert->Umgebungsvariablen auf das Verzeichnis mit den binaries von type tool.
Schritt 2: einen Ordner erstellen und folgende Dateien hineinkopieren:
texnansx.enc aus C:\Program Files (x86)\MiKTeX 2.8\fonts\enc\dvips\fontname
die drei Textdateien aus C:\Program Files (x86)\MiKTeX 2.8\fonts\map\glyphlist
alle .otf-Dateien der betreffenden Schrift. Bei mir sind das 4:
SabonLTStd-Roman.otf
SabonLTStd-Italic.otf
SabonLTStd-Bold.otf
SabonLTStd-BoldItalic.otf
Schritt 3: Eine .bat-Datei im Ordner erzeugen (z.B. Sabon.bat) mit folgendem Inhalt:
@Echo OFF
set texmf=d:\localtexmf
rem -----------------------------
rem "normaler" Schriftschnitt
rem -----------------------------
rem ganz normal
otftotfm -a -n Sabon-Roman-hanging -v Linotype -f liga -f kern -f onum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Roman.otf
rem mit grossen Ziffern
otftotfm -a -n Sabon-Roman-lining -v Linotype -f liga -f kern -f lnum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Roman.otf
rem schräg mit grossen und mit kleinen Ziffern
otftotfm -a -n Sabon-Roman-hanging-sl -v Linotype -S .167 -f liga -f kern -f onum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Roman.otf
otftotfm -a -n Sabon-Roman-lining-sl -v Linotype -S .167 -f liga -f kern -f lnum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Roman.otf
rem Kapitälchen
otftotfm -a -n Sabon-Roman-hanging-SC -v Linotype -f liga -f kern -f onum -f smcp -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Roman.otf
rem -----------------------------
rem kursiver Schriftschnitt
rem -----------------------------
rem ganz normal
otftotfm -a -n Sabon-Italic-hanging -v Linotype -f liga -f kern -f onum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Italic.otf
rem mit grossen Ziffern
otftotfm -a -n Sabon-Italic-lining -v Linotype -f liga -f kern -f lnum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Italic.otf
rem Schräg und kursiv gleichzeitig macht keinen Sinn!
rem Kapitälchen
otftotfm -a -n Sabon-Italic-hanging-SC -v Linotype -f liga -f kern -f onum -f smcp -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Italic.otf
rem -----------------------------
rem fetter Schriftschnitt
rem -----------------------------
rem ganz normal
otftotfm -a -n Sabon-Bold-hanging -v Linotype -f liga -f kern -f onum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Bold.otf
rem mit grossen Ziffern
otftotfm -a -n Sabon-Bold-lining -v Linotype -f liga -f kern -f lnum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Bold.otf
rem schräg mit grossen und mit kleinen Ziffern
otftotfm -a -n Sabon-Bold-hanging-sl -v Linotype -S .167 -f liga -f kern -f onum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Bold.otf
otftotfm -a -n Sabon-Bold-lining-sl -v Linotype -S .167 -f liga -f kern -f lnum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Bold.otf
rem Kapitälchen
otftotfm -a -n Sabon-Bold-hanging-SC -v Linotype -f liga -f kern -f onum -f smcp -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Bold.otf
rem -----------------------------
rem fetter kursiver Schriftschnitt
rem -----------------------------
rem ganz normal
otftotfm -a -n Sabon-BoldItalic-hanging -v Linotype -f liga -f kern -f onum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-BoldItalic.otf
rem mit grossen Ziffern
otftotfm -a -n Sabon-BoldItalic-lining -v Linotype -f liga -f kern -f lnum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-BoldItalic.otf
rem Schräg und kursiv gleichzeitig macht keinen Sinn!
rem Kapitälchen
otftotfm -a -n Sabon-BoldItalic-hanging-SC -v Linotype -f liga -f kern -f onum -f smcp -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-BoldItalic.otf
rem Lass MikTex die neu generierten Files suchen
initexmf -u
Wird eine andere Schrift als Linotype Sabon installiert, muss einiges angepasst werden. Als letztes Argument der otftotfm-Befehle kommt immer der Dateiname der OpenType-Schrift. Der Wert des -n Arguments ist der Name der Schrift in LaTeX. Man kann den String "Sabon" hier ersetzen mit dem Namen einer anderen Schift, z.B. "GillSans".
Ich verwende für Anpassungen an der MikTeX-Installation einen Ordner unter D:\localtexmf. Diesen Ordner habe ich in den MikTeX Settings im Reiter "Roots" registriert. Natürlich steht es jedem frei, irgend ein anderes Laufwerk oder einen anderen Ordner zu wählen. Nur muss man dann die dritte Zeile im Batch file entsprechend anpassen.
Schritt 4: Ich habe diese zwei font definition files im Ordner D:\localtexmf\tex\latex\sabon:
\ProvidesFile{LY1Sabon-hanging.fd}[Linotype Sabon font definitions]
\DeclareFontFamily{LY1}{Sabon-hanging}{}
\DeclareFontShape{LY1}{Sabon-hanging}{m}{n}{ <-> Sabon-Roman-hanging }{}
\DeclareFontShape{LY1}{Sabon-hanging}{m}{it}{ <-> Sabon-Italic-hanging }{}
\DeclareFontShape{LY1}{Sabon-hanging}{m}{sc}{ <-> Sabon-Roman-hanging-SC }{}
\DeclareFontShape{LY1}{Sabon-hanging}{m}{sl}{ <-> Sabon-Roman-hanging-sl }{}
\DeclareFontShape{LY1}{Sabon-hanging}{b}{n}{ <-> Sabon-Bold-hanging }{}
\DeclareFontShape{LY1}{Sabon-hanging}{b}{it}{ <-> Sabon-BoldItalic-hanging }{}
\DeclareFontShape{LY1}{Sabon-hanging}{b}{sc}{ <-> Sabon-Bold-hanging-SC }{}
\DeclareFontShape{LY1}{Sabon-hanging}{b}{sl}{ <-> Sabon-Bold-hanging-sl }{}
\DeclareFontShape{LY1}{Sabon-hanging}{bx}{n}{ <-> ssub * Sabon-hanging/b/n }{}
\DeclareFontShape{LY1}{Sabon-hanging}{sb}{n}{ <-> ssub * Sabon-hanging/b/n }{}
\endinput
\ProvidesFile{LY1Sabon-lining.fd}[Linotype Sabon font definitions]
\DeclareFontFamily{LY1}{Sabon-lining}{}
\DeclareFontShape{LY1}{Sabon-lining}{m}{n}{ <-> Sabon-Roman-lining }{}
\DeclareFontShape{LY1}{Sabon-lining}{m}{it}{ <-> Sabon-Italic-lining }{}
\DeclareFontShape{LY1}{Sabon-lining}{m}{sc}{ <-> Sabon-Roman-lining-SC }{}
\DeclareFontShape{LY1}{Sabon-lining}{m}{sl}{ <-> Sabon-Roman-lining-sl }{}
\DeclareFontShape{LY1}{Sabon-lining}{b}{n}{ <-> Sabon-Bold-lining }{}
\DeclareFontShape{LY1}{Sabon-lining}{b}{it}{ <-> Sabon-BoldItalic-lining }{}
\DeclareFontShape{LY1}{Sabon-lining}{b}{sc}{ <-> Sabon-Bold-lining-SC }{}
\DeclareFontShape{LY1}{Sabon-lining}{b}{sl}{ <-> Sabon-Bold-lining-sl }{}
\DeclareFontShape{LY1}{Sabon-lining}{bx}{n}{ <-> ssub * Sabon-lining/b/n }{}
\DeclareFontShape{LY1}{Sabon-lining}{sb}{n}{ <-> ssub * Sabon-lining/b/n }{}
\endinput
Wer im batchfile von Schritt 3 den Fontnamen geändert hat, muss hier alle Vorkommen von "Sabon" entsprechend ersetzen.
Schritt 4: Das Batch file starten. Fehler kann es geben, wenn z.B. keine Umgebungsvariable PATH für die Dateien im miktex\bin-Ordner vorhanden ist. In diesem Fall wie unter Schritt 2 vorgehen.
Schritt 5: Start->Alle Programme->Zubehör->Eingabeaufforderung rechtsklicken und als Administrator ausführen. Den Befehl initexmf --admin --edit-config-file=updmap eingeben. Am Ende der Datei eine neue Zeile mit
map Sabon.map erzeugen, oder eben den Dateinamen, welcher man im Batch file für das Map file angegeben hat.
Wers ohne Admin-Modus versucht, wird sein config-file am falschen Ort erzeugen und unweigerlich scheitern (scheint ein MikTeX-Bug zu sein).
Schritt 6: In der Eingabeaufforderung mit initexmf --mkmaps eine neue Bibliothek der installierten Schriften generieren.
Schritt 7: Fertig! Folgendes Minimalbeispiel testen:
\documentclass{scrbook}
\usepackage[LY1]{fontenc}
\renewcommand{\rmdefault}{Sabon-hanging}
\renewcommand{\sfdefault}{Sabon-lining}
\begin{document}
\chapter{Schrift installiert!}
Hallo Welt!
\end{document}
Daher will ich mein Vorgehen hier posten, es sollen die Schnitte römisch, kursiv und fett-kursiv der Linotype Sabon (http://de.wikipedia.org/wiki/Sabon_%28Schriftart%29), einer klassischen Buchschrift für MikTeX 2.8 unter Microsoft Windows (7) installiert werden.
Verfügbar sein werden Ligaturen (fi, fl ...), sowohl Mediävalziffern als auch Tabellenziffern, Kerning, kursive als auch bloss schräggestellte Schnitte.
Schritt 1: LCDF type tools (http://www.lcdf.org/type/) herunterladen und nach c:\Program files (x86)\ oder ähnlich extrahieren. Am besten setzt man gleich die Umgebungsvariable %PATH% unter Systemsteuerung->System->erweitert->Umgebungsvariablen auf das Verzeichnis mit den binaries von type tool.
Schritt 2: einen Ordner erstellen und folgende Dateien hineinkopieren:
texnansx.enc aus C:\Program Files (x86)\MiKTeX 2.8\fonts\enc\dvips\fontname
die drei Textdateien aus C:\Program Files (x86)\MiKTeX 2.8\fonts\map\glyphlist
alle .otf-Dateien der betreffenden Schrift. Bei mir sind das 4:
SabonLTStd-Roman.otf
SabonLTStd-Italic.otf
SabonLTStd-Bold.otf
SabonLTStd-BoldItalic.otf
Schritt 3: Eine .bat-Datei im Ordner erzeugen (z.B. Sabon.bat) mit folgendem Inhalt:
@Echo OFF
set texmf=d:\localtexmf
rem -----------------------------
rem "normaler" Schriftschnitt
rem -----------------------------
rem ganz normal
otftotfm -a -n Sabon-Roman-hanging -v Linotype -f liga -f kern -f onum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Roman.otf
rem mit grossen Ziffern
otftotfm -a -n Sabon-Roman-lining -v Linotype -f liga -f kern -f lnum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Roman.otf
rem schräg mit grossen und mit kleinen Ziffern
otftotfm -a -n Sabon-Roman-hanging-sl -v Linotype -S .167 -f liga -f kern -f onum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Roman.otf
otftotfm -a -n Sabon-Roman-lining-sl -v Linotype -S .167 -f liga -f kern -f lnum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Roman.otf
rem Kapitälchen
otftotfm -a -n Sabon-Roman-hanging-SC -v Linotype -f liga -f kern -f onum -f smcp -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Roman.otf
rem -----------------------------
rem kursiver Schriftschnitt
rem -----------------------------
rem ganz normal
otftotfm -a -n Sabon-Italic-hanging -v Linotype -f liga -f kern -f onum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Italic.otf
rem mit grossen Ziffern
otftotfm -a -n Sabon-Italic-lining -v Linotype -f liga -f kern -f lnum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Italic.otf
rem Schräg und kursiv gleichzeitig macht keinen Sinn!
rem Kapitälchen
otftotfm -a -n Sabon-Italic-hanging-SC -v Linotype -f liga -f kern -f onum -f smcp -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Italic.otf
rem -----------------------------
rem fetter Schriftschnitt
rem -----------------------------
rem ganz normal
otftotfm -a -n Sabon-Bold-hanging -v Linotype -f liga -f kern -f onum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Bold.otf
rem mit grossen Ziffern
otftotfm -a -n Sabon-Bold-lining -v Linotype -f liga -f kern -f lnum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Bold.otf
rem schräg mit grossen und mit kleinen Ziffern
otftotfm -a -n Sabon-Bold-hanging-sl -v Linotype -S .167 -f liga -f kern -f onum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Bold.otf
otftotfm -a -n Sabon-Bold-lining-sl -v Linotype -S .167 -f liga -f kern -f lnum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Bold.otf
rem Kapitälchen
otftotfm -a -n Sabon-Bold-hanging-SC -v Linotype -f liga -f kern -f onum -f smcp -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-Bold.otf
rem -----------------------------
rem fetter kursiver Schriftschnitt
rem -----------------------------
rem ganz normal
otftotfm -a -n Sabon-BoldItalic-hanging -v Linotype -f liga -f kern -f onum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-BoldItalic.otf
rem mit grossen Ziffern
otftotfm -a -n Sabon-BoldItalic-lining -v Linotype -f liga -f kern -f lnum -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-BoldItalic.otf
rem Schräg und kursiv gleichzeitig macht keinen Sinn!
rem Kapitälchen
otftotfm -a -n Sabon-BoldItalic-hanging-SC -v Linotype -f liga -f kern -f onum -f smcp -e texnansx --map-file=D:\localtexmf\pdftex\config\Sabon.map SabonLTStd-BoldItalic.otf
rem Lass MikTex die neu generierten Files suchen
initexmf -u
Wird eine andere Schrift als Linotype Sabon installiert, muss einiges angepasst werden. Als letztes Argument der otftotfm-Befehle kommt immer der Dateiname der OpenType-Schrift. Der Wert des -n Arguments ist der Name der Schrift in LaTeX. Man kann den String "Sabon" hier ersetzen mit dem Namen einer anderen Schift, z.B. "GillSans".
Ich verwende für Anpassungen an der MikTeX-Installation einen Ordner unter D:\localtexmf. Diesen Ordner habe ich in den MikTeX Settings im Reiter "Roots" registriert. Natürlich steht es jedem frei, irgend ein anderes Laufwerk oder einen anderen Ordner zu wählen. Nur muss man dann die dritte Zeile im Batch file entsprechend anpassen.
Schritt 4: Ich habe diese zwei font definition files im Ordner D:\localtexmf\tex\latex\sabon:
\ProvidesFile{LY1Sabon-hanging.fd}[Linotype Sabon font definitions]
\DeclareFontFamily{LY1}{Sabon-hanging}{}
\DeclareFontShape{LY1}{Sabon-hanging}{m}{n}{ <-> Sabon-Roman-hanging }{}
\DeclareFontShape{LY1}{Sabon-hanging}{m}{it}{ <-> Sabon-Italic-hanging }{}
\DeclareFontShape{LY1}{Sabon-hanging}{m}{sc}{ <-> Sabon-Roman-hanging-SC }{}
\DeclareFontShape{LY1}{Sabon-hanging}{m}{sl}{ <-> Sabon-Roman-hanging-sl }{}
\DeclareFontShape{LY1}{Sabon-hanging}{b}{n}{ <-> Sabon-Bold-hanging }{}
\DeclareFontShape{LY1}{Sabon-hanging}{b}{it}{ <-> Sabon-BoldItalic-hanging }{}
\DeclareFontShape{LY1}{Sabon-hanging}{b}{sc}{ <-> Sabon-Bold-hanging-SC }{}
\DeclareFontShape{LY1}{Sabon-hanging}{b}{sl}{ <-> Sabon-Bold-hanging-sl }{}
\DeclareFontShape{LY1}{Sabon-hanging}{bx}{n}{ <-> ssub * Sabon-hanging/b/n }{}
\DeclareFontShape{LY1}{Sabon-hanging}{sb}{n}{ <-> ssub * Sabon-hanging/b/n }{}
\endinput
\ProvidesFile{LY1Sabon-lining.fd}[Linotype Sabon font definitions]
\DeclareFontFamily{LY1}{Sabon-lining}{}
\DeclareFontShape{LY1}{Sabon-lining}{m}{n}{ <-> Sabon-Roman-lining }{}
\DeclareFontShape{LY1}{Sabon-lining}{m}{it}{ <-> Sabon-Italic-lining }{}
\DeclareFontShape{LY1}{Sabon-lining}{m}{sc}{ <-> Sabon-Roman-lining-SC }{}
\DeclareFontShape{LY1}{Sabon-lining}{m}{sl}{ <-> Sabon-Roman-lining-sl }{}
\DeclareFontShape{LY1}{Sabon-lining}{b}{n}{ <-> Sabon-Bold-lining }{}
\DeclareFontShape{LY1}{Sabon-lining}{b}{it}{ <-> Sabon-BoldItalic-lining }{}
\DeclareFontShape{LY1}{Sabon-lining}{b}{sc}{ <-> Sabon-Bold-lining-SC }{}
\DeclareFontShape{LY1}{Sabon-lining}{b}{sl}{ <-> Sabon-Bold-lining-sl }{}
\DeclareFontShape{LY1}{Sabon-lining}{bx}{n}{ <-> ssub * Sabon-lining/b/n }{}
\DeclareFontShape{LY1}{Sabon-lining}{sb}{n}{ <-> ssub * Sabon-lining/b/n }{}
\endinput
Wer im batchfile von Schritt 3 den Fontnamen geändert hat, muss hier alle Vorkommen von "Sabon" entsprechend ersetzen.
Schritt 4: Das Batch file starten. Fehler kann es geben, wenn z.B. keine Umgebungsvariable PATH für die Dateien im miktex\bin-Ordner vorhanden ist. In diesem Fall wie unter Schritt 2 vorgehen.
Schritt 5: Start->Alle Programme->Zubehör->Eingabeaufforderung rechtsklicken und als Administrator ausführen. Den Befehl initexmf --admin --edit-config-file=updmap eingeben. Am Ende der Datei eine neue Zeile mit
map Sabon.map erzeugen, oder eben den Dateinamen, welcher man im Batch file für das Map file angegeben hat.
Wers ohne Admin-Modus versucht, wird sein config-file am falschen Ort erzeugen und unweigerlich scheitern (scheint ein MikTeX-Bug zu sein).
Schritt 6: In der Eingabeaufforderung mit initexmf --mkmaps eine neue Bibliothek der installierten Schriften generieren.
Schritt 7: Fertig! Folgendes Minimalbeispiel testen:
\documentclass{scrbook}
\usepackage[LY1]{fontenc}
\renewcommand{\rmdefault}{Sabon-hanging}
\renewcommand{\sfdefault}{Sabon-lining}
\begin{document}
\chapter{Schrift installiert!}
Hallo Welt!
\end{document}