我正在尝试使用 LaTeX 的系统字体。我可以对文本使用系统字体,但对数学部分却不行。下面是一个例子(使用 XeLaTeX 编译),我使用字体“Broadway”,但它对数学部分不起作用。关于如何定义数学部分的字体,有什么建议吗?
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[xetex]{graphicx}
\usepackage{fontspec,xunicode}
\defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
\setmainfont[Scale=.95]{Broadway}
\setmonofont{Broadway}
\begin{document}
This is the formula for $(a+b)^2$
\begin{equation}
(a+b)^2=a^2+2ab+b^2
\end{equation}
\end{document}
我找到了其他方法LaTex 字体目录。
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{concmath}
\usepackage[T1]{fontenc}
\begin{document}
This is the formula for $(a+b)^2$
\begin{equation}
(a+b)^2=a^2+2ab+b^2
\end{equation}
\end{document}
我在寻找 typewritter 字体,“concmath” 就是一款不错的字体,并且还提供数学支持。但我对 courier 字体更感兴趣,它也有目录
\usepackage{courier}
\renewcommand*\ttdefault{lcmtt}
\renewcommand*\familydefault{\ttdefault}
\usepackage[T1]{fontenc}
但是现在数学符号变成了罗马字体。有没有可能让数学部分使用 courier 字体?我不确定是否可以通过修改相应的 .sty 文件来实现,或者是否有其他更好的方法。我所做的就是让数学部分使用与文本相同的字体(仅适用于文本部分,不适用于符号),而不使用斜体或粗体。
答案1
使用mathspec
包。但请注意,大多数字体仅包含可用于的拉丁字母和希腊字母mathspec
。如果您希望数学字体(字母和符号)保持一致,则需要unicode-math
与带有 MATH 表的 OpenType 字体一起打包。这样的字体相对较少,唯一具有完整 Unicode 覆盖的字体是 XITS/STIX。
基本用法mathspec
:
\usepackage{mathspec}
\setmainfont{Broadway}
\setmathsfont(Digits,Latin,Greek)[Numbers={Lining,Proportional}]{Broadway}
一些评论:
- 不要加载
fontspec
包。它将与 冲突mathspec
。 - 文本字体中不可用的符号将恢复为 Computer Modern。如果您喜欢该
mnsymbol
软件包提供的运算符(该运算符旨在与 Minion Pro 配合使用),请使用选项\usepackage[MnSymbol]{mathspec}
。
基本用法unicode-math
:
此包适用于包含 OpenType MATH 表的字体。目前仅提供以下字体:
- 坎布里亚数学(微软),
- 拉丁现代数学(Bogusław Jackowski、Janusz M. Nowacki)
- TeX Gyre Pagella 数学(Bogusław Jackowski、Janusz M. Nowacki)
- 体位数学(阿波斯托洛斯·西罗波洛斯),
- 新欧拉(哈立德·霍斯尼)
- 星火(STI Pub)
- XITS 数学(哈立德·霍斯尼)。
推荐最后一个,因为它覆盖范围全面,外观类似时代(大多数专业书籍对数学都使用类似时代的字体)。
\usepackage{unicode-math}
\setmainfont{XITS}
\setmathfont{XITS Math}
\setmathfont[range={\mathcal,\mathbfcal},StylisticSet=1]{XITS Math}
最后一行只能与XITS Math
或一起使用STIX
。它确保 \mathcal 和 \mathscr 看起来不同,并且与传统 TeX 字体中的外观一致。
关于您的代码的其他评论:
- 不要
inputenc
与 XeTeX 或 LuaTeX 一起使用。的 utf8 选项inputenc
是肮脏黑客的汇编,它实现了 Unicode 的一小部分,而 XeTeX 本身支持 UTF-8 和 UTF-16。 - 无需指定
xetex
软件包graphicx
。在现代发行版中,它会自动检测。 - 您的替代解决方案全部利用了遗留代码,例如 T1 fontenc,应该避免使用这些代码
xetex
。