Charter and Helvetica with greek letters in LaTeX or XeLaTeX

You can use textgreek with its quite powerful substitution mechanism.

\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}

Here I use NeoHellenic for sans serif and Artemisia for serif.

enter image description here

With XeLaTeX you can use 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}

The test can be made more complicated if you also need to cope with other font families. As you see, if Helvetica is the current font, the transition just opens and closes a group; otherwise it chooses the Artemisia font.


The easy way to do this is to use Xelatex with Linux Libertine which provides good greek characters and the accentuations.

It's available here

If you want it juste for typesetting greek you can do a little :

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

That way you can keep your usual font and to typeset greek you just have to do \greek{your text}.

And with \newfontfamily you can use as much fonts you can possibly imagine, it's the beauty of fontspec.


In fact it is more simple than that :

With the code :

\documentclass{scrartcl}

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

\begin{document}

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

Text: ä ß α β μ in Linux Libertine

\end{document}

You get that :

desc

Which is kind of the desired effect. You can then adjust some of the font properties with fontspec.


You can use \boldsymbol{\alpha} to get bold greek letters.

\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}

enter image description here