在我的文档中,我使用 Bitstream Charter(衬线)作为主要字体。标题用 Bitstream Vera Sans 排版,用 Bitstream Vera Mono 编码。以下是我用来加载它们的代码:
% This replaces all fonts with Bitstream Charter, Bitstream Vera Sans and
% Bitstream Vera Mono. Math will be rendered in Charter.
\RequirePackage[charter, greekuppercase=italicized]{mathdesign}
\RequirePackage{beramono}
\RequirePackage{berasans}
% Bold vectors.
\RequirePackage{isomath}
\renewcommand{\vec}{\vectorsym}
\newcommand{\tens}{\tensorsym}
\newcommand{\mat}{\matrixsym}
\ifluatex
\else
\RequirePackage[T1]{fontenc}
\RequirePackage[utf8]{inputenc}
\fi
不久前我转向了 LuaLaTeX,主要是因为 TikZ 中的图形布局引擎。
我对 LaTeX 字体选择的知识非常贫乏,我只听说过fontspec
LuaLaTeX 的 OTF 字体。原则上,这应该允许我使用更多字体,甚至可以将不同的字体带入数学模式,这样我就可以使用除列出的字体之外的其他字体LaTeX 数学字体调查。
我的序言是否可以以某种方式进行更改,以改进 LuaLaTeX 的内容,还是我应该保持原样?
最小工作示例
这是一个极简示例,展示了字体的所有要点。正如评论中提到的,“ß”字符确实存在问题。事实证明,我没有使用 LuaLaTeX 创建任何德语文档,但过去几年只关注英语文档。通过添加fontenc
和 luainputenc` 可以轻松解决这个问题。
\documentclass[11pt, ngerman, fleqn, parskip=half]{scrartcl}
\usepackage{ifluatex}
\usepackage{babel}
\ifluatex
\else
\usepackage[activate]{microtype}
\fi
\usepackage[charter, greekuppercase=italicized]{mathdesign}
\usepackage{beramono}
\usepackage{berasans}
\usepackage{isomath}
\renewcommand{\vec}{\vectorsym}
\newcommand{\tens}{\tensorsym}
\newcommand{\mat}{\matrixsym}
\newcommand{\four}[1]{\underline{\vec {#1}}}
\newcommand\setname[1]{\text{\bfseries\sffamily{#1}}}
\usepackage{amsmath}
\usepackage{amsthm}
% The following paragraph is what I had before, but the “ß” character did not
% work out. So this is now replaced by `luainputenc` paragraph below.
%\ifluatex
%\else
% \usepackage[T1]{fontenc}
% \usepackage[utf8]{inputenc}
%\fi
\usepackage[T1]{fontenc}
\usepackage[utf8]{luainputenc}
\begin{document}
Dies ist mein Minimalbeispiel. Es kommt auch mit nicht-ASCII Zeichen klar:
ae ä oe ö ue ü ss ß
rising á, falling, à, tilde ã, caret â
Außerdem kann ich Formeln nach ISO 80000-2 nutzen: Skalar $M$, Vektor $\vec M$,
Matrix $\mat M$, Tensor $\tens M$, Menge $\setname M$.
\end{document}
第二轮
我试图摆脱T1
字体包,而是使用fontspec
:
\documentclass[11pt, ngerman, fleqn, parskip=half, DIV=9]{scrartcl}
\usepackage{ifluatex}
\usepackage{babel}
\ifluatex
\else
\usepackage[activate]{microtype}
\fi
%\usepackage[charter, greekuppercase=italicized]{mathdesign}
%usepackage{beramono}
%usepackage{berasans}
\usepackage{fontspec}
\setmainfont{XCharter}
\setsansfont{Noto Sans}
\setmonofont{Noto Mono}
\setmathrm{XCharter}
\setboldmathrm{XCharter Bold}
\usepackage{isomath}
\renewcommand{\vec}{\vectorsym}
\newcommand{\tens}{\tensorsym}
\newcommand{\mat}{\matrixsym}
\newcommand{\four}[1]{\underline{\vec {#1}}}
\newcommand\setname[1]{\text{\bfseries\sffamily{#1}}}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage[utf8]{luainputenc}
\newcommand\pangramm{Falsches Üben von Xylophonmusik quält jeden größeren Zwerg.}
\begin{document}
Dies ist mein Minimalbeispiel. Es kommt auch mit nicht-ASCII Zeichen klar:
ae ä oe ö ue ü ss ß
rising á, falling, à, tilde ã, caret â
Test der automatischen Silbentrennung:
grüßen grüßen grüßen grüßen grüßen grüßen grüßen grüßen grüßen grüßen grüßen
grüßen grüßen grüßen grüßen grüßen grüßen grüßen grüßen grüßen grüßen grüßen
grüßen grüßen grüßen grüßen grüßen grüßen grüßen grüßen grüßen grüßen grüßen
grüßen grüßen grüßen grüßen grüßen grüßen grüßen grüßen grüßen grüßen grüßen
Außerdem kann ich Formeln nach ISO 80000-2 nutzen: Skalar $M$ (= \emph M),
Vektor $\vec M$, Matrix $\mat M$, Tensor $\tens M$, Menge $\setname M$.
\[
\int \mathcal D x = \prod_i \int_{-\infty}^{\infty} \mathrm d x_i \,.
\]
Serif: \pangramm
Serif Bold: \textbf{\pangramm}
Serif Italic: \textit{\pangramm}
Sans: \textsf{\pangramm}
Sans Bold: \textbf{\textsf{\pangramm}}
Sans Italic: \textit{\textsf{\pangramm}}
Mono: \texttt{\pangramm}
\end{document}
我没有安装 Bitstream Vera Sans 和 Mono,所以我只使用了 Noto 字体。
这似乎支持重音和连字符:
但是,默认的数学字体(应该是衬线斜体)看起来像 Computer Modern,尽管我的\mathrm
字体是 Bitstream Charter:
要让 XCharter 在数学模式下完全工作,还需要什么?这样是否也能自动匹配希腊字母?