拉丁字母采用 Helvetica 字体,希腊字母采用 sans serif 字体

拉丁字母采用 Helvetica 字体,希腊字母采用 sans serif 字体

我努力成为一个完美主义者,并拼命地试图把事情做好:

  1. 所有拉丁符号都应使用 Helvetica
  2. 希腊字母至少应该是无衬线的(理想情况下是 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 年有些出版商仍然需要它。以下是必须使用时的解决方案。

加载无衬线数学包,例如newtxsfsansmathfontsarevmathtgheros作为无衬线字体,然后更新\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}

TG Heroes/newtxsf 示例

要获取数学模式下的 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}

tgheros 样本

相关内容