LaTeX 或 XeLaTeX 中的 Charter 和 Helvetica 以及希腊字母

LaTeX 或 XeLaTeX 中的 Charter 和 Helvetica 以及希腊字母

所以我想用 Charter 和 Helvetica 写一份文件(德语)。问题是我需要在正文和章节标题中使用小写直立希腊字母(使用各自的字体)。

我使用 LaTeX 的尝试:

\documentclass{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[charter,greeklowercase=upright]{mathdesign}
\usepackage{helvet}

\begin{document}

\section{Text: ä ß $\alpha$ $\beta$ $\mu$ in Helvetica}

Text: ä ß $\alpha$ $\beta$ $\mu$ in Charter

\end{document}

结果是:

在此处输入图片描述

我想我需要两样东西:
1. 具有匹配数学支持的 Helvetica 版本;
2. 一种在 LaTeX 中输入多种数学字体的方法。

这可能吗?

我使用 XeLaTeX 的尝试:

\documentclass{scrartcl}

\usepackage{fontspec}
\setmainfont{XCharter}
\setsansfont{Helvetica}

\begin{document}

\section{Text: ä ß α β μ in Helvetica}

Text: ä ß α β μ in Charter

\end{document}

结果是:

在此处输入图片描述

这几乎就是我想要的,但是 XCharter 没有希腊字母。所以我想我需要以下两个东西之一:
1. 带有希腊字母的 Charter 版本或
2. 用非常相似的字体替换 Charter 中缺失的字形。

我知道 Charis SIL,但我真的不喜欢它的厚度,尤其是它的希腊字母。

任何帮助深表感谢!

答案1

您可以使用textgreek其相当强大的替代机制。

\documentclass{scrartcl}

\usepackage[utf8]{inputenc}

\usepackage[charter]{mathdesign}
\usepackage{helvet}
\usepackage{textgreek}
\renewcommand*{\textgreekfontmap}{%
  {phv/*/*}{LGR/neohellenic/*/*}%
  {*/b/n}{LGR/artemisia/b/n}%
  {*/bx/n}{LGR/artemisia/bx/n}%
  {*/*/n}{LGR/artemisia/m/n}%
  {*/b/it}{LGR/artemisia/b/it}%
  {*/bx/it}{LGR/artemisia/bx/it}%
  {*/*/it}{LGR/artemisia/m/it}%
  {*/b/sl}{LGR/artemisia/b/sl}%
  {*/bx/sl}{LGR/artemisia/bx/sl}%
  {*/*/sl}{LGR/artemisia/m/sl}%
  {*/*/sc}{LGR/artemisia/m/sc}%
  {*/*/sco}{LGR/artemisia/m/sco}%
}

\begin{document}

\section{Text: ä ß α β μ in Helvetica}

Text: ä ß α β μ in Charter

\end{document}

这里我使用 NeoHellenic 作为无衬线字体,使用 Artemisia 作为衬线字体。

在此处输入图片描述

使用 XeLaTeX 您可以使用ucharclasses

\documentclass{scrartcl}
\usepackage{fontspec}
\usepackage[Latin,Greek]{ucharclasses}
\usepackage{pdftexcmds}

\setmainfont{XCharter}
\setsansfont{Helvetica}[Scale=MatchUppercase,NFSSFamily=phv]

\newfontfamily{\artemisia}{GFS Artemisia}

\setTransitionsForGreek{\begingroup\checkhelvetica}{\endgroup}
\makeatletter
\newcommand{\checkhelvetica}{%
  \ifnum\pdf@strcmp{\f@family}{phv}=\z@\else\artemisia\fi
}
\makeatother

\begin{document}

\section{Text: ä ß α β μ in Helvetica}

Text: ä ß α β μ in Charter

\end{document}

如果您还需要处理其他字体系列,测试可能会变得更加复杂。如您所见,如果当前字体是 Helvetica,则过渡只会打开和关闭一个组;否则它会选择 Artemisia 字体。

答案2

最简单的方法是使用Xelatex提供Linux Libertine良好希腊字符和重音符号的。

可用这里

如果您希望它只用于排版希腊语,您可以做一点:

\newfontfamily{\gkfont}[]{Biolinum Regular}
\newcommand{\greek}[1]{\gkfont #1}

这样,您就可以保留您常用的字体并排版希腊文,您只需这样做即可\greek{your text}

而且\newfontfamily您可以使用尽可能多的您能想到的字体,这就是 的美妙之处fontspec


事实上它比这更简单:

使用代码:

\documentclass{scrartcl}

\usepackage{fontspec}
\setmainfont{Linux Libertine}
\setsansfont{Helvetica}

\begin{document}

\section{Text: ä ß α β μ in Helvetica}

Text: ä ß α β μ in Linux Libertine

\end{document}

你得到了:

描述

这有点像是想要的效果。然后您可以使用 调整一些字体属性fontspec

答案3

您可以使用它\boldsymbol{\alpha}来获得粗体希腊字母。

\documentclass{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[charter,greeklowercase=upright]{mathdesign}
\usepackage{helvet}

\usepackage{amsmath}

\begin{document}

\section{Text: ä ß $\boldsymbol{\alpha}$ $\boldsymbol{\beta}$ $\boldsymbol{\mu}$ in Helvetica}

Text: ä ß $\alpha$ $\beta$ $\mu$ in Charter

\end{document}

在此处输入图片描述

相关内容