[Tex/LaTex] Greek words with kpfonts

fontsgreekkpfonts

I want to typeset some sporadic Greek words in an otherwise Latin text. I can get it with something like:

\documentclass{minimal}

\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{kpfonts}
\usepackage[greek,english]{babel}

\begin{document}

Test, \textgreek{χημεία}, test.

\end{document}

But the problem is that the Greek letters don't come from the Kp fonts (they're not even Type1 in my system). This is probably because the Kp fonts don't provide an LGR encoding…

So, is there any way I could get the Greek letters to fit nicely with the Latin font? Some additional package? Some substitute for kpfonts (no xelatex, please)?

I could use $\chiup\etaup\muup\epsilonup\acute{\iotaup}\alphaup$, but that's not pretty (or right).

Best Answer

You have to define a Greek font. There are some choices: the default Beccari fonts, which however are modelled from the CM fonts, or the Greek Font Society ones.

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[LGRx,T1]{fontenc}
\usepackage{kpfonts}
\usepackage[greek,english]{babel}

\newcommand{\test}[2]{{\fontencoding{LGR}\fontfamily{#1}\selectfont#2
    -- αβγδε ζηθικλ μνοπρ σςτυφ χψω ΑΒΓΔΕ ΖΗΘΙΚ ΛΜΝΞΟΠ ΡΣΤΥ ΦΧΨΩ} ABEHKMNOPTXYZ}

\begin{document}

Test, \test{cmr}{χημεία}, test.

Test, \test{artemisia}{χημεία}, test.

Test, \test{gfsbaskerville}{χημεία}, test.

Test, \test{bodoni}{χημεία}, test.

Test, \test{complutum}{χημεία}, test.

Test, \test{udidot}{χημεία}, test.

Test, \test{neohellenic}{χημεία}, test.

Test, \test{porson}{χημεία}, test.

Test, \test{solomos}{χημεία}, test.

\end{document}

enter image description here

I've added to the test also the complete alphabet and some uppercase letters in with kpfonts.

I'd exclude Bodoni, Complutum, NeoHellenic. Possibly recommendable are Artemisia or Didot.

If you choose Artemisia, you can patch the \greektext macro with

\usepackage{xpatch}
\xpatchcmd{\greektext}{\selectfont}{\fontfamily{artemisia}\selectfont}{}{}

and use \textgreek or \greektext normally. Change artemisia into udidot if you want the Didot font.

Note I've used utf8 instead of utf8x; in case you really want the latter, say

\usepackage[utf8x]{inputenc}
\usepackage[LGR,T1]{fontenc}
Related Question