
Ich suche nach einer Möglichkeit, die folgende XeLaTeX-Deklaration zu übersetzen (basierend auf dem unicode-math
Paket)
\setmainfont{Linux Libertine G}
\setsansfont[Scale=MatchLowercase]{Liberation Sans}
\setmonofont[Scale=MatchLowercase,
ItalicFont=lmmono10-italic.otf,
BoldFont=lmmonolt10-bold.otf,
BoldItalicFont=lmmonolt10-boldoblique.otf,
SmallCapsFont=lmmonocaps10-regular]{lmmono10-regular.otf}
\setmathfont[Scale=MatchLowercase]{TeX Gyre Termes Math}
\setmathfont[Scale=MatchLowercase, range=\mathup]{linlibertine_r_g.ttf}
\setmathfont[Scale=MatchLowercase, range=\mathbfup]{linlibertine_rz_g.ttf}
\setmathfont[Scale=MatchLowercase, range=\mathsfup]{liberationsans-regular.ttf}
\setmathfont[Scale=MatchLowercase, range=\mathsfit]{liberationsans-italic.ttf}
\setmathfont[Scale=MatchLowercase, range=\mathbfsfup]{liberationsans-bold.ttf}
\setmathfont[Scale=MatchLowercase, range=\mathbfsfit]{liberationsans-bolditalic.ttf}
\setmathfont[Scale=MatchLowercase, range=\mathtt]{lmmono10-italic.otf}
\setmathfont[Scale=MatchLowercase, range=\mathscr]{asana-math.otf}
in ein ConTeXt-Typoskript. Ich kann die Serifen-, serifenlosen und monophonen Schriftarten erfolgreich einstellen, brauche aber Hilfe bei den mathematischen Einstellungen.
\startenvironment liberty
\starttypescript [liberty]
\definefontsynonym [Serif] [file:LinLibertine_R_G]
\definefontsynonym [SerifCaps] [Serif] [features=smallcaps]
\definefontsynonym [SerifItalic] [file:LinLibertine_RI_G]
\definefontsynonym [SerifSlanted] [SerifItalic]
\definefontsynonym [SerifBold] [file:LinLibertine_RZ_G]
\definefontsynonym [SerifBoldItalic] [file:LinLibertine_RZI_G]
\definefontsynonym [SerifBoldSlanted] [SerifBoldItalic]
\definefontsynonym [Sans] [file:LiberationSans-Regular]
\definefontsynonym [SansCaps] [Sans] [features=smallcaps]
\definefontsynonym [SansItalic] [file:LiberationSans-Italic]
\definefontsynonym [SansSlanted] [SansItalic]
\definefontsynonym [SansBold] [file:LiberationSans-Bold]
\definefontsynonym [SansBoldItalic] [file:LiberationSans-BoldItalic]
\definefontsynonym [SansBoldSlanted] [SansBoldItalic]
\definetypeface [liberty] [rm] [serif] [liberty] [default]
\definetypeface [liberty] [ss] [sans] [liberty] [default] [rscale=0.816]
\definetypeface [liberty] [tt] [mono] [modern] [default]
\definetypeface [liberty] [mm] [math] [times] [default] [rscale=0.958]
\stoptypescript
\setupbodyfont[liberty, 10pt]
\stopenvironment
Dank im Voraus.
PS: Weiß jemand, was das Äquivalent von ist Scale=MatchLowercase
? Die rscale
von mir verwendeten s stammen aus der von XeLaTeX erstellten Protokolldatei.
BEARBEITEN. Wie in einem Kommentar vorgeschlagen, ist dies der Anfang einer Fallback-basierten Lösung, die überraschenderweise nicht funktioniert.
\startenvironment liberty
\starttypescript [serif] [liberty]
\definefontsynonym [Serif] [file:LinLibertine_R]
\definefontsynonym [SerifCaps] [Serif] [features=smallcaps]
\definefontsynonym [SerifItalic] [file:LinLibertine_RI]
\definefontsynonym [SerifSlanted] [SerifItalic]
\definefontsynonym [SerifBold] [file:LinLibertine_RZ]
\definefontsynonym [SerifBoldItalic] [file:LinLibertine_RZI]
\definefontsynonym [SerifBoldSlanted] [SerifBoldItalic]
\stoptypescript
\starttypescript [sans] [liberty]
\definefontsynonym [Sans] [file:LiberationSans-Regular]
\definefontsynonym [SansCaps] [Sans] [features=smallcaps]
\definefontsynonym [SansItalic] [file:LiberationSans-Italic]
\definefontsynonym [SansSlanted] [SansItalic]
\definefontsynonym [SansBold] [file:LiberationSans-Bold]
\definefontsynonym [SansBoldItalic] [file:LiberationSans-BoldItalic]
\definefontsynonym [SansBoldSlanted] [SansBoldItalic]
\stoptypescript
\starttypescript [math] [liberty]
\definefontfallback [asserif] [Serif] [0x0030-0x0039] % Digits
\definefontfallback [asserif] [Serif] [0x0041-0x005a] % Latin capital letters
\definefontfallback [asserif] [Serif] [0x0061-0x007a] % Latin small letters
\definefontsynonym [MathRoman] [file:texgyretermes-math] [fallbacks=asserif]
\stoptypescript
\definetypeface [liberty] [rm] [serif] [liberty] [default]
\definetypeface [liberty] [ss] [sans] [liberty] [default] [rscale=0.816]
\definetypeface [liberty] [tt] [mono] [modern] [default]
\definetypeface [liberty] [mm] [math] [liberty] [default] %[rscale=0.958]
\setupbodyfont[liberty, 10pt]
\stopenvironment
Antwort1
für Libertine ist bereits ein Typescript definiert. Um die TeXGyre Pagella-Mathematik zu erhalten, die mit Libertine gut aussieht, laden Sie zuerst Pagella:
\setupbodyfont[pagella]
\setupbodyfont[libertine,12pt]
\starttext
foo $bar$
\stoptext
Die Schriftarten sind:
voss@shania:~> pdffonts zz.pdf
name type encoding emb sub uni object ID
--------------------------------- ----------- -------------- --- --- ---------
RSSLOW+LinLibertineO CID Type 0C Identity-H yes yes yes 18 0
TQYEHR+TeXGyrePagellaMath-Regular CID Type 0C Identity-H yes yes yes 19 0
Antwort2
Hier ist die Lösung. Achtung, Sie benötigen eine aktuelle Version von ConTeXt. Im folgenden Beispiel verwende ich Baskervald, Corbel und Ubuntu Mono anstelle von Libertine, Liberation und Latin Modern Mono. Unsere gemischte mathematische Schriftart basiert auf Pagella Math.
Zunächst einmal sollte man den Code der mathematischen Glyphen innerhalb einer Opentype-Mathematikschrift kennen. Diese finden sich beispielsweise in der Zeichentabelle von MS Word. Für Pagella Math haben wir:
- 0x30-0x39 = 0-9
- 0x41-0x5A = aufrecht römisch AZ
- 0x61-0x7A = aufrechtes römisches Az
- 0x1D434-0x1D44D = kursiv römisch AZ
- 0x1D44E-0x1D467 = kursiv römisch az
- 0x1D400-0x1D419 = aufrecht fett römisch AZ
- 0x1D41A-0x1D433 = aufrecht fett roman az
- 0x1D468-0x1D481 = kursiv fett römisch AZ
- 0x1D482-0x1D49B = kursiv fett roman az
- 0x1D5A0-0x1D5B9 = aufrechte serifenlose AZ
- 0x1D5BA-0x1D5D3 = aufrechte serifenlose az
- 0x1D608-0x1D621 = kursiv, serifenlos AZ
- 0x1D622-0x1D63B = kursiv, serifenlos az
- 0x1D5D4-0x1D5ED = aufrecht fett serifenlos AZ
- 0x1D5EE-0x1D607 = aufrecht fett serifenlos az
- 0x1D63C-0x1D655 = kursiv fett serifenlos AZ
- 0x1D656-0x1D66F = kursiv fett serifenlos az
- 0x1D670-0x1D689 = aufrecht mono AZ
- 0x1D68A-0x1D6A3 = aufrecht mono az
Nun verwenden wir den Fallback-Mechanismus und die Offset-Option, um das Mapping durchzuführen:
\startenvironment liberty
% 0x30-0x39 = 0-9 within both Pagella Math and Baskervald
\definefontfallback [baskervaldmath] [file:BaskervaldADFStd] [0x30-0x39] [force=yes]
% 0x41-0x5A = upright roman A-Z within both Pagella Math and Baskervald
\definefontfallback [baskervaldmath] [file:BaskervaldADFStd] [0x41-0x5A] [force=yes]
% 0x61-0x7A = upright roman a-z within both Pagella Math and Baskervald
\definefontfallback [baskervaldmath] [file:BaskervaldADFStd] [0x61-0x7A] [force=yes]
% 0x1D434-0x1D44D = italic roman A-Z
\definefontfallback [baskervaldmath] [file:BaskervaldADFStd-Italic] [0x41-0x5A] [offset=0x1D434-0x1D44D, force=yes]
% 0x1D44E-0x1D467 = italic roman a-z
\definefontfallback [baskervaldmath] [file:BaskervaldADFStd-Italic] [0x61-0x7A] [offset=0x1D44E-0x1D467, force=yes]
% 0x1D400-0x1D419 = upright bold roman A-Z
\definefontfallback [baskervaldmath] [file:BaskervaldADFStd-Bold] [0x41-0x5A] [offset=0x1D400-0x1D419, force=yes]
% etc.
% Type script
\starttypescript [serif] [liberty]
\definefontsynonym [Serif] [file:BaskervaldADFStd]
\definefontsynonym [SerifCaps] [Serif] [features=smallcaps]
\definefontsynonym [SerifItalic] [file:BaskervaldADFStd-Italic]
\definefontsynonym [SerifSlanted] [SerifItalic]
\definefontsynonym [SerifBold] [file:BaskervaldADFStd-Bold]
\definefontsynonym [SerifBoldItalic] [file:BaskervaldADFStd-BoldItalic]
\definefontsynonym [SerifBoldSlanted] [SerifBoldItalic]
\stoptypescript
\starttypescript [sans] [liberty]
\definefontsynonym [Sans] [file:corbel]
\definefontsynonym [SansCaps] [Sans] [features=smallcaps]
\definefontsynonym [SansItalic] [file:corbeli]
\definefontsynonym [SansSlanted] [SansItalic]
\definefontsynonym [SansBold] [file:corbelb]
\definefontsynonym [SansBoldItalic] [file:corbelz]
\definefontsynonym [SansBoldSlanted] [SansBoldItalic]
\stoptypescript
\starttypescript [mono] [liberty]
\definefontsynonym [Mono] [file:UbuntuMono-R]
\definefontsynonym [MonoCaps] [Mono] [features=smallcaps]
\definefontsynonym [MonoItalic] [file:UbuntuMono-RI]
\definefontsynonym [MonoSlanted] [MonoItalic]
\definefontsynonym [MonoBold] [file:UbuntuMono-B]
\definefontsynonym [MonoBoldItalic] [file:UbuntuMono-BI]
\definefontsynonym [MonoBoldSlanted] [MonoBoldItalic]
\stoptypescript
\starttypescript [math] [liberty]
\definefontsynonym [MathRoman] [file:texgyrepagella-math] [fallbacks=baskervaldmath]
\stoptypescript
\definetypeface [liberty] [rm] [serif] [liberty] [default] [features=default]
\definetypeface [liberty] [ss] [sans] [liberty] [default] [features=default, rscale=0.95]
\definetypeface [liberty] [tt] [mono] [liberty] [default] [features=default, rscale=0.88]
\definetypeface [liberty] [mm] [math] [liberty] [default] [features=default]
\setupbodyfont [liberty, 12pt]
\stopenvironment