
Bemerkungen
Das newtxmath
-Paket unterstützt verschiedene Schriftarten, darunter libertine
, minion
oder garamondx
. Mir persönlich gefällt Garamond sehr gut, aber garamondx
es ist nicht Teil der Standardinstallation. Daher verwende ich ebgaramond
stattdessen.
Dazu habe ich einfach den Teil kopiert, in dem die Schriftarten eingerichtet werden newtxmath
.
Problemstellung
Hier ist eine minimaleNICHTfunktionierendes Beispiel dessen, was ich bisher versucht habe, ebgaramond
als mathematisches Alphabet zu laden. ( unicode-math
oder mathspec
ist keine Option, es muss kompatibel sein pdflatex
)
\documentclass{article}
\usepackage{ebgaramond}
\usepackage[cmintegrals,cmbraces]{newtxmath}
\DeclareSymbolFont{letters}{OML}{EBGaramond12-Italic-lf-t1--base}{m}{it}
\SetSymbolFont{letters}{bold}{OML}{EBGaramond12-Italic-lf-t1--base}{b}{it}
\DeclareFontSubstitution{OML}{EBGaramond12-Italic-lf-t1--base}{m}{it}
\begin{document}
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
1234567890
$ABCDEFGHIJKLMNOPQRSTUVWXYZ$
$abcdefghijklmnopqrstuvwxyz$
$1234567890$
\end{document}
Bonus-Frage
Wie kann ichSchwungschriftGlyphen als mathcal
Alphabet?
BEARBEITEN 03.01.2014
Wie aus dem Kommentar von cfr hervorgeht, reduziert sich die Frage aufWie kann ich OML-Dateien für erstellen ebgaramond
?(Die Bonusfrage bleibt gültig)
Antwort1
Aktualisieren
Die einfachste Lösung ist nun die VerwendungEbbaramond-Mathematik, ein neues Paket, erhältlich bei CTAN.
ebgaramond-maths
ist jetzt in TeX Live enthalten. Wenn Sie TeX Live 2014 installiert haben, sollten Sie das Paket beim Update erhalten. (Zum Beispiel durch Ausführen tlmgr update --all
in der Befehlszeile oder mithilfe des GUI-Wrappers Ihrer Wahl.)
Die folgende Antwort ist wahrscheinlich nur dann nützlich, wenn Sie die Ergebnisse optimieren oder die Methode auf eine andere Schriftart anwenden möchten.
Ursprüngliche Antwort
Das Einrichten des \mathcal-Materials ist relativ unkompliziert. Das Einrichten der OML-Unterstützung ist weniger einfach.
Bereitstellung von OML-Unterstützung für EBGaramond
Es sind mehrere Ansätze möglich. Ich habe den Ansatz gewählt, der mir angesichts der Funktionsweise des vorhandenen ebgaramond-Pakets am einfachsten erschien. Ich würde dies wahrscheinlich anders machen, wenn ich die Unterstützung für Text und Mathematik von Grund auf neu erstellen würde, aber in diesem Fall versuche ich, Doppelarbeit so weit wie möglich zu vermeiden.
Variablen
Erstellen Sie irgendwo ein Arbeitsverzeichnis, das ich aufrufen werde
${work}
. Es ist egal, wo, solange Sie die Schreibberechtigung haben. (Tun Sie das natürlich nicht als Root.)Ich rufe
${texmain}
Ihr aktuelles Hauptverzeichnis von texmf auf. Auf meinem System ist das/usr/local/texlive/current
oder/usr/local/texlive/2013
.
Arbeitsumfeld
Wechseln Sie zu ${work}
. Ab jetzt gehe ich davon aus, dass alle Befehle in diesem Verzeichnis ausgeführt werden und alle erstellten Dateien hier gespeichert werden.
Kopieren Sie die benötigten Dateien in Ihr Arbeitsverzeichnis oder erstellen Sie bei Bedarf symbolische Links:
cp ${texmain}/texmf-dist/tex/fontinst/mathetx/oml.etx ${texmain}/texmf-dist/fonts/opentype/public/ebgaramond/EBGaramond12-Italic.otf ./
oder
ln -s ${texmain}/texmf-dist/tex/fontinst/mathetx/oml.etx ${texmain}/texmf-dist/fonts/opentype/public/ebgaramond/EBGaramond12-Italic.otf ./
Erstellen Sie eine vorläufige Kodierungsdatei
Dies ist nicht die Kodierungsdatei, die Sie TeX letztendlich mitteilen, aber sie wird die Grundlage für diese Datei bilden.
Führen Sie fontinst zunächst im interaktiven Modus aus. (Geben Sie dazu einfach „fontinst“ als Befehl ein.) Gehen Sie in die Eingabeaufforderung:
\input finstmsc.sty
\etxtoenc{oml}{oml-ebgaramond}
\bye
Dadurch wird die Datei oml-ebgaramond.enc erstellt, die Sie vor der Weiterleitung an otftotfm leicht ändern können.
sed -i -e 's/TeXMathItalicEncoding/EBGaramondTeXMathItalicEncoding/g' -e 's/oldstyle//' oml-ebgaramond.enc
Generieren Sie die TeX-Schriftart
ebgaramond stellt die benötigten Typ1-Dateien bereits bereit, Sie müssen diese also nicht neu generieren. Sie müssen lediglich eine geeignete .tfm-Datei generieren.
otftotfm -e oml-ebgaramond.enc EBGaramond12-Italic.otf > EBGaramond-Maths.map
Dadurch werden sowohl die .tfm-Datei als auch das .map-Dateifragment erstellt, das TeX benötigt, um die Schriftart zu verwenden. Im Wesentlichen ist die .tfm-Datei für TeX nur eine Schriftart. (pdfTeX sieht die Dinge etwas anders – es benötigt auch das Type1-Bit.)
Außerdem wird eine neue Kodierungsdatei mit einem höchstwahrscheinlich sehr merkwürdigen Namen erstellt. Dies ist die Kodierungsdatei, die TeX verwenden wird, wie im .map-Dateifragment angegeben. oml-ebgaramond.enc kann jetzt gelöscht werden, da es nicht mehr benötigt wird.
Erstellen Sie die Schriftdefinition für LaTeX
otftotfm generiert meines Wissens keine Fontdefinitionsdateien für LaTeX, aber in diesem Fall ist die Datei recht einfach. Erstellen Sie eine Datei mit folgendem Inhalt:
%Filename: OMLEBGaramond-Maths.fd
%Based on a file created using fontinst v1.928
%THIS FILE SHOULD BE PUT IN A TEX INPUTS DIRECTORY
\ProvidesFile{OMLEBGaramond-Maths.fd}
[2014/01/03 font definitions for OML/EBGaramond-Maths.]
\DeclareFontFamily{OML}{EBGaramond-Maths}{}
\DeclareFontShape{OML}{EBGaramond-Maths}{m}{it}{
<-> EBGaramond12-Italic--oml-ebgaramond
}{}
\DeclareFontShape{OML}{EBGaramond-Maths}{b}{it}{<->ssub * EBGaramond-Maths/m/it}{}
\DeclareFontShape{OML}{EBGaramond-Maths}{bx}{it}{<->ssub * EBGaramond-Maths/m/it}{}
\endinput
und speichern Sie es als OMLEBGaramond-Maths.fd
. Dies teilt LaTeX mit, woraus die Schriftfamilie EBGaramond-Maths in der OML-Kodierung besteht. Insbesondere teilt es LaTeX mit, welche TeX-Schriftarten in dieser Kodierung zu dieser Familie gehören und welche Eigenschaften jede einzelne hat. (In diesem Fall gibt es nur eine solche Schriftart, die dann durch andere Gewichte ersetzt wird, da es in EBGaramond keine Fettschrift gibt und OML sich nur um die Kursivschrift kümmert.)
Erstellen Sie eine Paketdatei für LaTeX (optional)
Es ist im Allgemeinen einfacher, ein Paket zu laden, als die Schriftart jedes Mal neu einzurichten, wenn Sie eine bestimmte Konfiguration verwenden möchten. Daher würde ich ein LaTeX-Paket erstellen. Erstellen Sie dazu eine weitere Datei mit folgendem Inhalt:
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{ebgaramond-maths}[2014/01/03 v1.0 ebgaramond-maths for use with EBGaramond]
\RequirePackage{ebgaramond}
% \pdfmapfile{+EBGaramond-Maths.map}
\DeclareSymbolFont{letters} {OML} {EBGaramond-Maths} {m} {it}
\DeclareSymbolFont{operators} {OT1} {EBGaramond-LF} {m} {n}
\SetSymbolFont{letters} {bold} {OML} {EBGaramond-Maths} {b} {it}
\SetSymbolFont{operators} {bold} {OT1} {EBGaramond-LF} {bx} {n}
\DeclareFontSubstitution{OML}{EBGaramond-Maths}{m}{it}
\DeclareFontSubstitution{OT1}{EBGaramond-LF}{m}{n}
\SetMathAlphabet{\mathbf} {normal} {OT1} {EBGaramond-LF} {bx} {n}
\SetMathAlphabet{\mathbf} {bold} {OT1} {EBGaramond-LF} {bx} {n}
\SetMathAlphabet{\mathit} {normal} {OT1} {EBGaramond-LF} {m} {it}
\SetMathAlphabet{\mathit} {bold} {OT1} {EBGaramond-LF} {bx} {it}
\DeclareMathAlphabet{\mathcal} {OT1} {EBGaramond-LF} {m} {sw}
\endinput
und speichern Sie es als ebgaramond-maths.sty
.
- Wenn Sie die Benutzer nicht zum Installieren der Schriftarten auffordern möchten, heben Sie die Kommentierung der entsprechenden Zeile in der .sty-Datei auf.
Anschließend kann von ${work} aus das Ergebnis vor der Installation der Schriftarten getestet werden:
\documentclass{article}
\usepackage{ebgaramond}
\usepackage[cmintegrals,cmbraces]{newtxmath}
\pdfmapfile{+EBGaramond-Maths.map}
\usepackage{ebgaramond-maths}
\begin{document}
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
1234567890
$ABCDEFGHIJKLMNOPQRSTUVWXYZ$
$abcdefghijklmnopqrstuvwxyz$
$1234567890$
$\Gamma\varGamma\Delta\Lambda\varLambda\Xi\varXi\Pi\varPi\Sigma\varSigma\Upsilon\varUpsilon\Phi\varPhi\Psi\varPsi\Omega\varOmega$
$\alpha\beta\gamma\delta\epsilon\varepsilon\zeta\eta\theta\iota\kappa\lambda\mu\nu\xi\pi\rho\varrho\sigma\varsigma\tau\upsilon\phi\varphi\chi\psi\omega$
$\mathbf{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$
$\mathbf{abcdefghijklmnopqrstuvwxyz}$
$\mathbf{0123456789}$
$\mathit{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$
$\mathit{abcdefghijklmnopqrstuvwxyz}$
$\mathit{0123456789}$
$\mathrm{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$
$\mathrm{abcdefghijklmnopqrstuvwxyz}$
$\mathrm{0123456789}$
$\mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$
$\mathcal{abcdefghijklmnopqrstuvwxyz}$
$\mathcal{0123456789}$
\end{document}
erzeugt:
Antwort2
Wennnurdie mathematische Schriftart wird dann benötigt
\documentclass{article}
\usepackage[ebgaramond]{newtxmath}
\begin{document}
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
1234567890
$ABCDEFGHIJKLMNOPQRSTUVWXYZ$
$abcdefghijklmnopqrstuvwxyz$
$1234567890$
\end{document}
aber wenn ebgaramond
es auch im Text benötigt wird, dann
\documentclass{article}
\usepackage[ebgaramond]{newtx}
\begin{document}
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
1234567890
$ABCDEFGHIJKLMNOPQRSTUVWXYZ$
$abcdefghijklmnopqrstuvwxyz$
$1234567890$
\end{document}