\documentclass{article} \usepackage{cmap} % fix search and cut-and-paste in PDF \usepackage{lmodern} \usepackage{parskip} \usepackage{booktabs} \usepackage{textcomp} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage[pdfencoding=auto,colorlinks=true]{hyperref} \usepackage{bookmark} % \pagestyle{headings} \usepackage{textalpha} \begin{document} \title{The \emph{textalpha} package} \author{Günter Milde} \maketitle With the \emph{textalpha} package, you can easily write a single Greek symbol (like \textPsi{} or \textmu{}) or a \textlambda\textomicron\textgamma\textomicron\textvarsigma{} in non-Greek text as well as ISO-conforming formulas with upright constants (like \textpi): $A = \mbox{\textpi} r^2$ vs. $A = \pi r^2$. Input is possible via LICR macros (\verb|\textalpha| \ldots \verb|\textOmega|) or (with the utf8 option to \href{http://www.ctan.org/pkg/inputenc}{inputenc}) Unicode literals. \section{Greek alphabet} Greek letters via Latin transcription in LGR font encoding: \begin{quote} \ensuregreek{A B G D E Z H J I K L M N X O P R S T U F Q Y W}\\ \ensuregreek{a b g d e z h j i k l m n x o p r sv c t u f q y w} \end{quote} Greek letters via default macros in other font encoding (here T1): \begin{quote} \textAlpha{} \textBeta{} \textGamma{} \textDelta{} \textEpsilon{} \textZeta{} \textEta{} \textTheta{} \textIota{} \textKappa{} \textLambda{} \textMu{} \textNu{} \textXi{} \textOmicron{} \textPi{} \textRho{} \textSigma{} \textTau{} \textUpsilon{} \textPhi{} \textChi{} \textPsi{} \textOmega{} \\ \textalpha{} \textbeta{} \textgamma{} \textdelta{} \textepsilon{} \textzeta{} \texteta{} \texttheta{} \textiota{} \textkappa{} \textlambda{} \textmu{} \textnu{} \textxi{} \textomicron{} \textpi{} \textrho{} \textsigma{} \textvarsigma{} \texttau{} \textupsilon{} \textphi{} \textchi{} \textpsi{} \textomega{} \end{quote} Archaic Greek letters and Greek punctuation \begin{quote} \textDigamma \textanoteleia \textQoppa \textSampi \textStigma \textnumeralsigngreek \texterotimatiko \\ \textdigamma \textkoppa \textqoppa \textsampi \textstigma \textnumeralsignlowergreek \textvarstigma \end{quote} \pagebreak{} \section{Greek Unicode characters in non-Greek text} With the \emph{textalpha} package and input encoding \texttt{utf8}, Greek Unicode characters can be used in text with any font encoding. Kerning is preserved if the font encoding is LGR. This holds also for pre-composed accented characters: \ensuregreek{AΫA}. All characters of the Greek and Coptic Unicode Block present in LGR via literal Unicode input in T1 font encoding (legend: * glyph missing in LGR): \begin{tabular}{rrrrrrrrrrrrrrrrr} \toprule & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & A & B & C & D & E & F\\ \midrule 370 & * & * & * & * & ʹ & ͵ & * & * & & & ͺ & * & * & * & ; & \\ 380 & & & & & ΄ & ΅ & Ά & · & Έ & Ή & Ί & & Ό & & Ύ & Ώ\\ 390 & ΐ & Α & Β & Γ & Δ & Ε & Ζ & Η & Θ & Ι & Κ & Λ & Μ & Ν & Ξ & Ο\\ 3A0 & Π & Ρ & & Σ & Τ & Υ & Φ & Χ & Ψ & Ω & Ϊ & Ϋ & ά & έ & ή & ί\\ 3B0 & ΰ & α & β & γ & δ & ε & ζ & η & θ & ι & κ & λ & μ & ν & ξ & ο\\ 3C0 & π & ρ & ς & σ & τ & υ & φ & χ & ψ & ω & ϊ & ϋ & ό & ύ & ώ & \\ 3D0 & * & * & * & * & * & * & * & * & Ϙ & ϙ & Ϛ & ϛ & Ϝ & ϝ & * & ϟ\\ 3E0 & Ϡ & ϡ & * & * & * & * & * & * & * & * & * & * & * & * & * & *\\ 3F0 & * & * & * & * & * & * & * & * & * & * & * & * & * & * & * & *\\ \bottomrule \end{tabular} All characters of the Greek Extended Unicode Block via literal Unicode input in T1 font encoding: \begin{tabular}{rrrrrrrrrrrrrrrrr} \toprule & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & A & B & C & D & E & F\\ \midrule 1F00 & ἀ & ἁ & ἂ & ἃ & ἄ & ἅ & ἆ & ἇ & Ἀ & Ἁ & Ἂ & Ἃ & Ἄ & Ἅ & Ἆ & Ἇ\\ 1F10 & ἐ & ἑ & ἒ & ἓ & ἔ & ἕ & & & Ἐ & Ἑ & Ἒ & Ἓ & Ἔ & Ἕ & & \\ 1F20 & ἠ & ἡ & ἢ & ἣ & ἤ & ἥ & ἦ & ἧ & Ἠ & Ἡ & Ἢ & Ἣ & Ἤ & Ἥ & Ἦ & Ἧ\\ 1F30 & ἰ & ἱ & ἲ & ἳ & ἴ & ἵ & ἶ & ἷ & Ἰ & Ἱ & Ἲ & Ἳ & Ἴ & Ἵ & Ἶ & Ἷ\\ 1F40 & ὀ & ὁ & ὂ & ὃ & ὄ & ὅ & & & Ὀ & Ὁ & Ὂ & Ὃ & Ὄ & Ὅ & & \\ 1F50 & ὐ & ὑ & ὒ & ὓ & ὔ & ὕ & ὖ & ὗ & & Ὑ & & Ὓ & & Ὕ & & Ὗ\\ 1F60 & ὠ & ὡ & ὢ & ὣ & ὤ & ὥ & ὦ & ὧ & Ὠ & Ὡ & Ὢ & Ὣ & Ὤ & Ὥ & Ὦ & Ὧ\\ 1F70 & ὰ & ά & ὲ & έ & ὴ & ή & ὶ & ί & ὸ & ό & ὺ & ύ & ὼ & ώ & & \\ 1F80 & ᾀ & ᾁ & ᾂ & ᾃ & ᾄ & ᾅ & ᾆ & ᾇ & ᾈ & ᾉ & ᾊ & ᾋ & ᾌ & ᾍ & ᾎ & ᾏ\\ 1F90 & ᾐ & ᾑ & ᾒ & ᾓ & ᾔ & ᾕ & ᾖ & ᾗ & ᾘ & ᾙ & ᾚ & ᾛ & ᾜ & ᾝ & ᾞ & ᾟ\\ 1FA0 & ᾠ & ᾡ & ᾢ & ᾣ & ᾤ & ᾥ & ᾦ & ᾧ & ᾨ & ᾩ & ᾪ & ᾫ & ᾬ & ᾭ & ᾮ & ᾯ\\ 1FB0 & ᾰ & ᾱ & ᾲ & ᾳ & ᾴ & & ᾶ & ᾷ & Ᾰ & Ᾱ & Ὰ & Ά & ᾼ & ᾽ & ι & ᾿\\ 1FC0 & ῀ & ῁ & ῂ & ῃ & ῄ & & ῆ & ῇ & Ὲ & Έ & Ὴ & Ή & ῌ & ῍ & ῎ & ῏\\ 1FD0 & ῐ & ῑ & ῒ & ΐ & & & ῖ & ῗ & Ῐ & Ῑ & Ὶ & Ί & & ῝ & ῞ & ῟\\ 1FE0 & ῠ & ῡ & ῢ & ΰ & ῤ & ῥ & ῦ & ῧ & Ῠ & Ῡ & Ὺ & Ύ & Ῥ & ῭ & ΅ & `\\ 1FF0 & & & ῲ & ῳ & ῴ & & ῶ & ῷ & Ὸ & Ό & Ὼ & Ώ & ῼ & ´ & ῾ & \\ \bottomrule \end{tabular} Combined Diacritics work ᾅ, diacritics (except diaeresis) are dropped with MakeUppercase (μαΐστρος $\mapsto$ \MakeUppercase{μαΐστρος}). \section{PDF strings} With \emph{textalpha}, you can get Greek letters in PDF strings, too. \subsection{\textlambda\textomicron\textgamma\textomicron\textvarsigma{}, λογος and \ensuregreek{logos}} The subsection title above uses: text* macros, Unicode input and the LGR transcription for the Greek word \ensuregreek{logos}. Check the table of contents in the PDF viewer: text* macros and Unicode literals work fine, the Latin transcription stays Latin in the PDF metadata. \section{Limitations} Because the internal font encoding switch interferes with other work behind the scenes, kerning, diacritics and up/down-casing show problems if Greek letters are used without explicit change of the font encoding. These problems can be avoided by use of \emph{babel} and the correct language setting (greek) or an explicit font encoding switch (e.g. wrapping the Greek text in \verb|\ensuregreek|% \footnote{The \texttt{\textbackslash ensuregreek} macro ensures the argument is set in a font encoding supporting Greek. This can be used to fix these problems without adverse side-effects if the active font encoding is already LGR.}). \subsection{Diacritics} Composition of diacritics (like \verb|\accdasia\acctonos|) fails in other font encodings. Long names (like \verb|\accdasiaoxia|) work, however they do not select pre-composed characters. With LGR, pre-composed glyphs are chosen if available (the difference becomes obvious if you drag-and-drop text from the PDF version of this document): % \ensuregreek{\<'a \accdasia\acctonos a \accdasiaoxia a \accdasiaoxia\textalpha} (LGR) vs. \accdasiaoxia\textalpha{} (T1). According to Greek typographical tradition, diacritics (except the dialytika) are placed before capital letters in titlecase and dropped in all-caps: % \begin{quote} \ensuregreek{% \<{\textalpha} \>{\textepsilon} \"'{\textiota} \`>\texteta{} \'<{\textomicron} \~<{\textupsilon} \~>{\textomega} \\ \<{\textAlpha} \>{\textEpsilon} \"{\textIota} \`>\textEta{} \'<{\textOmicron} \~<{\textUpsilon} \~>{\textOmega} \\ \MakeUppercase{% \<{\textalpha} \>{\textepsilon} \"'{\textiota} \`\>\texteta{} \'<{\textomicron} \~<{\textupsilon} \~>{\textomega}. } } \end{quote} % This fails if the active font encoding is not LGR: \ensuregreek{\'\textAlpha} (LGR) vs. \'\textAlpha (T1). To overcome this, the \verb|\ensuregreek| macro is used in composite Unicode character definitions: \ensuregreek{Ά} (LGR) = Ά (T1). The dialytika marks a \emph{hiatus} (break-up of a diphthong). It must be present in UPPERCASE even where it is redundant in lowercase (the hiatus can also be marked by an accent on the first character of a diphthong). The auto-hiatus feature works in LGR font encoding only: \acctonos\textalpha\textupsilon{}, \acctonos\textepsilon\textiota{} $\mapsto$ \MakeUppercase{\ensuregreek{ \acctonos\textalpha\textupsilon{}, \acctonos\textepsilon\textiota{} }} vs. \MakeUppercase{ \acctonos\textalpha\textupsilon{}, \acctonos\textepsilon\textiota{}% }. Currently, the second vowel of the diphthong must be given as macro, not Unicode literal if the auto-hiatus feature should work: \ensuregreek{ἀ\textupsilon{}πνία} $\mapsto$ \ensuregreek{\MakeUppercase{\ensuregreek{ἀ\textupsilon{}πνία}}} vs. \ensuregreek{\MakeUppercase{\ensuregreek{ἀυπνία}}}. \subsection{Kerning} No kerning occurs between Greek characters in non-Greek text due to the internal font encoding switch: compare \ensuregreek{\textAlpha\textUpsilon\textAlpha} (LGR) to \textAlpha\textUpsilon\textAlpha (T1). \end{document}