我努力成为一个完美主义者,并拼命地试图把事情做好:
- 所有拉丁符号都应使用 Helvetica
- 希腊字母至少应该是无衬线的(理想情况下是 Helvetica)
以下是我尝试解决的方法:
\documentclass{beamer}
\usepackage{helvet}
\usepackage[EULERGREEK]{sansmath}
\sansmath
\begin{document}
GR17 \alpha \beta \gamma \mu\\
$GR17 \alpha \beta \gamma \mu$
\end{document}
如果我尝试这样做:
\documentclass{beamer}
\usepackage{sansmathfonts}
\usepackage{helvet}
\begin{document}
GR17 \alpha \beta \gamma \mu\\
$GR17 \alpha \beta \gamma \mu$
\end{document}
您对如何修复此问题有什么想法吗?
UPD:到目前为止我只找到了一个复杂的解决方案这里:
\documentclass{beamer}
\usepackage{helvet}
\DeclareSymbolFont{sfletters}{OML}{cmbrm}{m}{it}
\DeclareMathSymbol{\alpha}{\mathord}{sfletters}{"0B}
\DeclareMathSymbol{\beta}{\mathord}{sfletters}{"0C}
\DeclareMathSymbol{\gamma}{\mathord}{sfletters}{"0D}
\DeclareMathSymbol{\delta}{\mathord}{sfletters}{"0E}
\DeclareMathSymbol{\epsilon}{\mathord}{sfletters}{"0F}
\DeclareMathSymbol{\zeta}{\mathord}{sfletters}{"10}
\DeclareMathSymbol{\eta}{\mathord}{sfletters}{"11}
\DeclareMathSymbol{\theta}{\mathord}{sfletters}{"12}
\DeclareMathSymbol{\iota}{\mathord}{sfletters}{"13}
\DeclareMathSymbol{\kappa}{\mathord}{sfletters}{"14}
\DeclareMathSymbol{\lambda}{\mathord}{sfletters}{"15}
\DeclareMathSymbol{\mu}{\mathord}{sfletters}{"16}
\DeclareMathSymbol{\nu}{\mathord}{sfletters}{"17}
\DeclareMathSymbol{\xi}{\mathord}{sfletters}{"18}
\DeclareMathSymbol{\pi}{\mathord}{sfletters}{"19}
\DeclareMathSymbol{\rho}{\mathord}{sfletters}{"1A}
\DeclareMathSymbol{\sigma}{\mathord}{sfletters}{"1B}
\DeclareMathSymbol{\tau}{\mathord}{sfletters}{"1C}
\DeclareMathSymbol{\upsilon}{\mathord}{sfletters}{"1D}
\DeclareMathSymbol{\phi}{\mathord}{sfletters}{"1E}
\DeclareMathSymbol{\chi}{\mathord}{sfletters}{"1F}
\DeclareMathSymbol{\psi}{\mathord}{sfletters}{"20}
\DeclareMathSymbol{\omega}{\mathord}{sfletters}{"21}
\DeclareMathSymbol{\varepsilon}{\mathord}{sfletters}{"22}
\DeclareMathSymbol{\vartheta}{\mathord}{sfletters}{"23}
\DeclareMathSymbol{\varpi}{\mathord}{sfletters}{"24}
\DeclareMathSymbol{\varrho}{\mathord}{sfletters}{"25}
\DeclareMathSymbol{\varsigma}{\mathord}{sfletters}{"26}
\DeclareMathSymbol{\varphi}{\mathord}{sfletters}{"27}
\begin{document}
GRQ17\\
$GRQ17 \alpha \beta \gamma \mu \Delta \delta \Sigma \Gamma \pi$\\
\end{document}
也许不够大胆,但比以前好多了。我想知道是否有人知道更优雅的解决方案。
答案1
在现代工具链中
在 LuaLaTeX 或 XeLaTeX 中,你可以使用 加载无衬线数学字体unicode-math
。你甚至可以使用 加载你选择的希腊字体\setmathfont[range=...
。
一种无衬线数学字体是 Fira Math,而 TeX 自带的 Helvetica 版本是 TeX Gyre Heros。
\usepackage{unicode-math}
\defaultfontfeatures{ Scale=MatchLowercase, Ligatures=TeX }
\setmainfont{TeX Gyre Heros}[Scale=1.0]
\setmathfont{Fira Math}
要获得真正的 Helvetica字体\mathit
,请添加\setmathfont[range=it/{Latin,latin,digits}]{TeX Gyre Heros Italic}
。如果您也需要直立、粗体和粗斜体,可以重复此操作。
在旧版工具链中
我个人的建议是,如果可以,就使用 LuaLaTeX unicode-math
,如果必须,就使用 PDFLaTeX。2020 年有些出版商仍然需要它。以下是必须使用时的解决方案。
加载无衬线数学包,例如newtxsf
或sansmathfonts
或arevmath
,tgheros
作为无衬线字体,然后更新\familydefault
以使其成为主字体。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} % The default since 2018
\usepackage{tgheros}
\renewcommand*\familydefault{\sfdefault}
\usepackage{newtxsf}
\begin{document}
GRQ17\\
$GRQ17 \alpha \beta \gamma \mu \Delta \delta \Sigma \Gamma \pi$\\
\end{document}
要获取数学模式下的 Helvetica,对于拉丁字母,请加载mathastext
。恰巧没有支持希腊语的 Type 1 版本的 Helvetica。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} % The default since 2018
\usepackage{tgheros}
\renewcommand*\familydefault{\sfdefault}
\usepackage{newtxsf}
\usepackage[italic]{mathastext}
\begin{document}
GRQ17\\
$GRQ17 \alpha \beta \gamma \mu \Delta \delta \Sigma \Gamma \pi$\\
\end{document}