Seite 1 von 1

Serifenlose Schrift für Formeln und mathematische Zeichen

Verfasst: Mi 23. Jun 2021, 06:24
von AaronK

Ich verwende Noto Sans Condensed als Schriftart. Bei Formeln und mathematischen Zeichen wird eine Serifenschrift verwendet. Der Font Noto Serif gefällt mir nicht so gut, deshalb verwende ich Noto Sans. Noto Sans hat keinen mathematischen Support. Welche Schriftart mit Mathematik Support würde ihr empfehlen und wie binde ich den Font ein?

% !TEX xelatex
\documentclass[8pt,twoside,openany]{extbook}
\usepackage[a5paper,total={114mm,190mm},top=10mm, bindingoffset=10mm,includeheadfoot]{geometry}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

% Main serif font for German (Latin alphabet) text
\setmainfont{Noto Sans Condensed}
\setsansfont{Noto Sans Condensed}
\setmonofont{Noto Sans Mono}

% Packages
\usepackage{amsmath,amssymb}
\usepackage{array}
\usepackage{booktabs}
\usepackage{emptypage}
\usepackage{lscape}
\usepackage{siunitx}
\usepackage{paralist}
\usepackage{parskip}
\usepackage{ragged2e}
\usepackage{titlesec}
\usepackage{xltabular}
\usepackage{xurl}

\newcolumntype{F}{>{\RaggedRight\hspace{0pt}}X}

\begin{document}

\renewcommand{\arraystretch}{1.5}
\begin{xltabular}{.9\textwidth}{@{}lF@{}}\toprule
\textbf{Symbol} & \textbf{Erklärung} \\\midrule
\endhead
$\mathnormal{A \rightarrow B}$ & Aus der Aussage $\mathnormal{A}$ folgt die Aussage $\mathnormal{B}$. Andere Sprechweise: $\mathnormal{A}$ ist \textit{hinreichend} für $\mathnormal{B}$, und $\mathnormal{B}$ ist \textit{notwendig} für $\mathnormal{A}$ \\
\end{xltabular}
\end{document}

Re: Serifenlose Schrift für Formeln und mathematische Zeichen

Verfasst: Mi 23. Jun 2021, 09:01
von Grummelgast

Schau dir einmal das Paket unicode-math an. Damit kannst du zumindest die Buchstaben und Ziffern aus Noto Sans oder Noto Sans Condensed verwenden, indem du beispielsweise

\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\setmathfont[range=it]{NotoSansCondensedItalic}

nach dem Laden von amsmath einfügst. Natürlich kann man weitere \setmathfont-Anweisungen beispielsweise für range=up ergänzen. Näheres ist der Anleitung von unicode-math zu entnehmen.

BTW: Dir wurde das Paket eigentlich erst kürzlich empfohlen. Vielleicht würde es sich lohnen, solchen Empfehlungen etwas mehr Aufmerksamkeit zu widmen. :roll:


Re: Serifenlose Schrift für Formeln und mathematische Zeichen

Verfasst: Mi 23. Jun 2021, 09:12
von Grummelgast

Ich vergaß: Ich habe das mit LuaLaTeX und deshalb ohne xunicode getestet, also mit:

% !TeX LuaLaTeX
\documentclass[8pt,twoside,openany]{extbook}
\usepackage[a5paper,total={114mm,190mm},top=10mm, bindingoffset=10mm,includeheadfoot]{geometry}
\usepackage{fontspec}
%\usepackage{xunicode}% Braucht man eher selten und funktioniert nicht mit LuaLaTeX
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

% Main serif font for German (Latin alphabet) text
\setmainfont{Noto Sans Condensed}
\setsansfont{Noto Sans Condensed}
\setmonofont{Noto Sans Mono}

% Packages
\usepackage{amsmath,amssymb}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\setmathfont[range=it]{Noto Sans Condensed Italic}% Leerzeichen spielen hier keine Rolle.
\usepackage{array}
\usepackage{booktabs}
\usepackage{emptypage}
\usepackage{lscape}
\usepackage{siunitx}
\usepackage{paralist}
\usepackage{parskip}
\usepackage{ragged2e}
\usepackage{titlesec}
\usepackage{xltabular}
\usepackage{xurl}

\newcolumntype{F}{>{\RaggedRight\hspace{0pt}}X}

\begin{document}

\renewcommand{\arraystretch}{1.5}
\begin{xltabular}{.9\textwidth}{@{}lF@{}}\toprule
\textbf{Symbol} & \textbf{Erklärung} \\\midrule
\endhead
$\mathnormal{A \rightarrow B}$ & Aus der Aussage $\mathnormal{A}$ folgt die Aussage $\mathnormal{B}$. Andere Sprechweise: $\mathnormal{A}$ ist \textit{hinreichend} für $\mathnormal{B}$, und $\mathnormal{B}$ ist \textit{notwendig} für $\mathnormal{A}$ \\
\end{xltabular}
\end{document}

XeLaTeX hat bei mir immer wieder Probleme, die Fonts zu finden. Dort muss ich deshalb ständig darauf ausweichen, Fonts über den Dateinamen zu laden, was mir auf Dauer auf den Keks geht. Auch sonst bevorzuge ich LuaLaTeX, weil damit einige Pakete wie pgfplots deutlich leistungsfähiger werden und viele Beschränkungen wegfallen.


Re: Serifenlose Schrift für Formeln und mathematische Zeichen

Verfasst: Mi 23. Jun 2021, 09:35
von KOMA
Grummelgast hat geschrieben:
Mi 23. Jun 2021, 09:12

XeLaTeX hat bei mir immer wieder Probleme, die Fonts zu finden. Dort muss ich deshalb ständig darauf ausweichen, Fonts über den Dateinamen zu laden, was mir auf Dauer auf den Keks geht.

Du verwendest vermutlich Vanilla-TeX Live unter Linux. In dem Fall kann man das Problem lösen, indem man eine Datei /etc/fonts/conf.d/00-texlive.conf mit dem Inhalt:

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<dir>/usr/local/texlive/current/texmf-dist/fonts/opentype/</dir>
<dir>/usr/local/texlive/current/texmf-dist/fonts/type1/</dir>
</fontconfig>

anlegt. Dabei ist current durch die Jahreszahl der TeX-Live-Version zu ersetzen (oder man legt einen passenden symbolischen Link an). Wer nicht die Standardverzeichnisse verwendet hat, muss die Pfadangaben natürlich insgesamt anpassen.

Anschließend muss man noch fc-cache aufrufen (i. d. R. mit root-Rechten also sudo fc-cache). Danach sollte XeLaTeX alle Fonts von TeX Live finden. Hat man Fonts in TEXMFLOCAL installiert, können die entsprechenden Verzeichnisse ebenfalls in 00-texlive.conf ergänzt werden.

Aber Achtung: Damit müllt man sich die Liste der systemweit installierten Fonts ziemlich zu. Bei mir sind mit der Datei über 9000 Fonts aus TeX Live registriert, während nur knapp 1500 Fonts außerhalb von TeX Live registriert sind. Das verlangsamt das Laden der Fontauswahl in einigen Programmen ganz massiv! Ich bevorzuge nicht nur aus diesem Grund ebenfalls LuaLaTeX.


Re: Serifenlose Schrift für Formeln und mathematische Zeichen

Verfasst: Mi 23. Jun 2021, 10:17
von AaronK

Ich schreibe meine Dokument mithilfe von overleaf. "overleaf.com". Ich habe mit XeLatext und LuaLatex kompiliert. Ich bekomme folgende Fehlermeldungungen:

Package fontspec Warning: Font "NotoSansCondensedItalic" does not contain requested Script "Math".
‪math.tex‬

Package fontspec Warning: OpenType feature 'Style=MathScript' (ssty) not available for font 'NotoSansCondensedItalic' with script 'CustomDefault' and language 'Default'.

‪math.tex‬
Package fontspec Warning: OpenType feature 'Style=MathScriptScript' (ssty) not available for font 'NotoSansCondensedItalic' with script 'CustomDefault' and language 'Default'.


Re: Serifenlose Schrift für Formeln und mathematische Zeichen

Verfasst: Mi 23. Jun 2021, 10:28
von Grummelgast
AaronK hat geschrieben:
Mi 23. Jun 2021, 10:17

Ich schreibe meine Dokument mithilfe von overleaf. "overleaf.com". Ich habe mit XeLatext und LuaLatex kompiliert. Ich bekomme folgende Fehlermeldungungen:

Package fontspec Warning: Font "NotoSansCondensedItalic" does not contain requested Script "Math".
‪math.tex‬

Package fontspec Warning: OpenType feature 'Style=MathScript' (ssty) not available for font 'NotoSansCondensedItalic' with script 'CustomDefault' and language 'Default'.

‪math.tex‬
Package fontspec Warning: OpenType feature 'Style=MathScriptScript' (ssty) not available for font 'NotoSansCondensedItalic' with script 'CustomDefault' and language 'Default'.

Das sind keine Fehlermeldungen sondern Warnungen. Hast du dir auch einmal das Ergebnis angeschaut? Dazu musst du das nicht einmal auf Overleaf ausprobieren, sondern kannst einfach oben bei meinem vollständigen Beispiel den Button unter dem Code nutzen … :roll:

Ein Fehlermeldung würdest du dagegen bekommen, wenn du das erste \setmathfont weglassen würdest.

Es gibt extrem wenige, vollständige serifenlose Mathefonts. Mathematik wird nun einmal traditionell hauptsächlich mit Serifen gesetzt.


Re: Serifenlose Schrift für Formeln und mathematische Zeichen

Verfasst: Mi 23. Jun 2021, 10:31
von Grummelgast
KOMA hat geschrieben:
Mi 23. Jun 2021, 09:35

Du verwendest vermutlich Vanilla-TeX Live unter Linux. In dem Fall kann man das Problem lösen, indem man eine Datei /etc/fonts/conf.d/00-texlive.conf mit dem Inhalt:

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<dir>/usr/local/texlive/current/texmf-dist/fonts/opentype/</dir>
<dir>/usr/local/texlive/current/texmf-dist/fonts/type1/</dir>
</fontconfig>

anlegt.

Danke für den Hinweis. Damit funktioniert mein Beispiel dann auch mit XeLaTeX und xunicode, das ich aber (beides) trotzdem nur verwenden würde, wenn es wirklich gebraucht wird.


Re: Serifenlose Schrift für Formeln und mathematische Zeichen

Verfasst: Mi 23. Jun 2021, 15:16
von KOMA
AaronK hat geschrieben:
Mi 23. Jun 2021, 10:17

Ich schreibe meine Dokument mithilfe von overleaf. "overleaf.com". Ich habe mit XeLatext und LuaLatex kompiliert. Ich bekomme folgende Fehlermeldungungen:

Wie bereits erwähnt, sind das keine Fehlermeldungen. Die Warnungen kommen daher, dass Noto Sans Condensed Italic eben kein Mathefont ist. Wie Grummelgast ebenfalls bereits angedeutet hat, ist das letztlich nur eine Notlösung für einen bestimmten Ausschnitt der Fonts. Damit das überhaupt funktioniert, musste er auch erst einmal einen Font mit Math Script als Mathefont festlegen. Der dafür verwendete Latin Modern Math Font ist übrigens der Standard. Man muss den trotzdem explizit angeben, wenn man anschließend Abweichungen für einen bestimmten range festlegen will. Näheres ist in der von Grummelgast bereits verlinkten Anleitung zu finden.

Wenn man einen echten Mathefont zu Noto Sans Condensed hat, dann wäre es natürlich sinnvoller, diesen zu verwenden. Aber, soweit ich weiß, gibt es weder von Noto Sans noch von Noto Sans Condensed einen echten Mathefont. Selbst, wenn man also einen anderen serifenlosen Mathefont als Basis verwendet, also Latin Modern Math durch etwas anderes ersetzt, könnte es daher durchaus eine Verbesserung sein, wenn man zusätzlich bestimmte Bereiche wie die Buchstaben und die Ziffern durch Noto Sans Italic oder Noto Sans Condensed Italic ersetzt.

Ich kann daher Grummelgast nur recht geben: Besser, nicht nur die Warnungen sondern auch das Ergebnis anschauen. Und natürlich unbedingt die Anleitung lesen. Gerade wenn man mit unicode-math nicht nur einen einzigen Mathefont auswählen will, lohnt es sich, sich näher damit zu beschäftigen. Ich selbst habe bisher auch noch nicht die komplette Anleitung durch und alle Feinheiten, die damit möglich sind, erfasst. Aber es ist ein ziemlich mächtiges Paket, das außerdem aktiv entwickelt wird.

Achja, es gibt auch das Paket notomath, das letztlich auf newtx basiert. Will man das mit LuaLaTeX oder XeLaTeX verwenden, sollte man aber unbedingt die Hinweise in der Anleitung beachten. Selbst habe ich das nie ausprobiert. Ich weiß auch nicht, ob dabei auch die Condensed-Variante unterstützt wird. Ich selbst finde die ohnehin etwas schwierig zu lesen für ein komplettes Dokument.


Re: Serifenlose Schrift für Formeln und mathematische Zeichen

Verfasst: Mi 23. Jun 2021, 17:10
von AaronK

Vielen Dank für die ausführlichen Informationen. Das ist auch meine Meinung. Die Schriftfamilie Noto Condensed ist nicht sehr leicht zu lesen. Noto habe ich gewählt, weil ich auch in Hebrew, Hindi, Thai, Arabic und Cyrillic schreibe. Meine bevorzugte Schriftart ist Helvetica.