所以我想用 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}