Serifenlose Schrift für Formeln und mathematische Zeichen Thema ist als GELÖST markiert

Formelsatz für Mathematik, Naturwissenschaften und Technik


AaronK
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 77
Registriert: So 2. Mai 2021, 09:29

Serifenlose Schrift für Formeln und mathematische Zeichen

Beitrag 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}

Grummelgast

Re: Serifenlose Schrift für Formeln und mathematische Zeichen

Beitrag 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:


Grummelgast

Re: Serifenlose Schrift für Formeln und mathematische Zeichen

Beitrag 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.


Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Re: Serifenlose Schrift für Formeln und mathematische Zeichen

Beitrag 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.


AaronK
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 77
Registriert: So 2. Mai 2021, 09:29

Re: Serifenlose Schrift für Formeln und mathematische Zeichen

Beitrag 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'.


Grummelgast

Re: Serifenlose Schrift für Formeln und mathematische Zeichen

Beitrag 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.


Grummelgast

Re: Serifenlose Schrift für Formeln und mathematische Zeichen

Beitrag 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.


Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Re: Serifenlose Schrift für Formeln und mathematische Zeichen

Beitrag 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.


AaronK
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 77
Registriert: So 2. Mai 2021, 09:29

Re: Serifenlose Schrift für Formeln und mathematische Zeichen

Beitrag 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.


Antworten