\documentclass{article} \usepackage[unicode,colorlinks=true,linkcolor=blue]{hyperref} \usepackage{bookmark} \hypersetup{colorlinks=true,linkcolor=blue,urlcolor=blue,pdfencoding=auto} \usepackage{parskip} \usepackage{amsmath} \ifdefined\XeTeXrevision \usepackage[no-math]{fontspec} \setmainfont{Linux Libertine O} \usepackage[libertine,slantedGreek]{newtxmath} \providecommand*{\varstigma}{$\oslash$} \else\ifdefined\luatexversion \usepackage{fontspec} \setmainfont{Linux Libertine O} \usepackage[libertine,slantedGreek]{newtxmath} \providecommand*{\varstigma}{$\oslash$} \else \usepackage[utf8]{inputenc} \usepackage[LGR,T1]{fontenc} \usepackage{textcomp} % \usepackage{lmodern} % \usepackage{gfsdidot} % \usepackage{kerkis} \usepackage{newtxtext,newtxmath} \usepackage{substitutefont} \substitutefont{LGR}{\rmdefault}{artemisia} \usepackage{isomath} \fi\fi % No section numbers but PDF bookmarks for sections \setcounter{secnumdepth}{0} % load alphabeta after math setup and encoding setup! \usepackage{alphabeta} % Avoid warnigns with PDF string generation for "alphabeta" commands: % let \TextOrMath (from fixltx2e) return the "text" argument: \pdfstringdefDisableCommands{% \let\TextOrMath\@firstoftwo% } \begin{document} \title{The \emph{alphabeta} package} \author{Günter Milde} \maketitle With the \emph{alphabeta} package, you can write Greek letters ``by name'' or as literal Unicode characters in both, ``text'' and ``math'' mode. The mode determines whether the letters are taken from the text or math font. Just like Latin letters, the Greek counterparts are by default italic in math mode (capital letters upright without \emph{fixmath} or \emph{\href{http://www.ctan.org/pkg/isomath}{isomath}}) and upright in text: \begin{quote} Text: L \Gamma{} l \gamma, emphasized text: \emph{L \Gamma{} l \gamma}, mathematics: $ L \ \Gamma \ l \ \gamma $ \end{quote} This makes it easy to write a single Greek symbol (like \Psi{} or \mu{}) or a \lambda\omicron\gamma\omicron\varsigma{} in non-Greek text as well as ISO-conforming formulas with upright symbols for constants like $A = \text{\pi} r^2$ instead of $A = \pi r^2$.\footnote{% The \emph{\href{http://www.ctan.org/pkg/isomath}{isomath}} package documentation describes more alternatives for upright Greek symbols in math mode.} See the source of this document \url{alphabeta-doc.tex} for a setup and usage example. \section{Tests and examples} \subsection{Greek alphabet} Greek letters via Latin transscription 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 s c t u f q y w} \end{quote} Greek letters via default macros without language/font-encoding switch: \begin{quote} \Alpha{} \Beta{} \Gamma{} \Delta{} \Epsilon{} \Zeta{} \Eta{} \Theta{} \Iota{} \Kappa{} \Lambda{} \Mu{} \Nu{} \Xi{} \Omicron{} \Pi{} \Rho{} \Sigma{} \Tau{} \Upsilon{} \Phi{} \Chi{} \Psi{} \Omega{} \\ \alpha{} \beta{} \gamma{} \delta{} \epsilon{} \zeta{} \eta{} \theta{} \iota{} \kappa{} \lambda{} \mu{} \nu{} \xi{} \omicron{} \pi{} \rho{} \sigma{} \varsigma{} \tau{} \upsilon{} \phi{} \chi{} \psi{} \omega{} \\ \digamma{} \Digamma{} \stigma{} \varstigma{}% \footnote{\texttt{\textbackslash varstigma} is not defined with Xe/LuaTeX and similar to \texttt{\textbackslash stigma} in some fonts.} \koppa{} \qoppa{} \Qoppa{} \Stigma{} \Sampi{} \sampi{} \end{quote} Greek letters via Unicode input without language/font-encoding switch: \begin{quote} Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω\\ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ ς τ υ φ χ ψ ω\\ ϝ Ϝ ϛ ϟ ϙ Ϙ Ϛ Ϡ ϡ \end{quote} \subsection{\ensuregreek{% Ἑλληνικά (\<\Epsilon\lambda\lambda\eta\nu\iota\kappa\'\alpha{})} in PDF strings} With the alphabeta package, you get Greek letters in both, the document body and PDF metadata generated by hyperref if the input uses Unicode literals or macros. Wrapping in \verb+\ensuregreek+ ensures the right placement of the accents and breathings (before, not above capital letters). With LICR input (accent macros + symbol macros), non-standard diacritics are missing in the PDF data, as hyperref's PU encoding currently does not support polytonic Greek. (Here, the dasia is dropped at the start of the word in parentheses in the PDF toc. The warning ``\texttt{Glyph not defined in PU encoding, removing `\textbackslash<' on input line 145.}'' is written to the log.) Warnings like \texttt{Token not allowed in a PDF string (Unicode): removing `\textbackslash TextOrMath ' on input line 145.} can be ignored or avoided with the preamble code: \begin{verbatim} \pdfstringdefDisableCommands{% \let\TextOrMath\@firstoftwo% } \end{verbatim} \subsection{Greek in math $\Gamma = \sin\alpha / \cos{\beta}$} In the main document, Greek in math mode should work as usual: \[\Gamma = \frac{\sin\alpha}{\cos{\beta}}. \] With 8-bit TeX, literal Greek Unicode characters are supported also in mathematical mode (for XeTeX/LuaTeX use unicode-math): \[ Γ = \frac{\sin α}{\cos{β}}. \] Greek letters in math (there are no math macros for Greek letters wich exist with similar shape in the Latin alphabet): Input as macro: \begin{align*} & % \Alpha{} \Beta{} \Gamma{} \Delta{} % \Epsilon{} \Zeta{} \Eta{} \Theta{} % \Iota{} \Kappa{} \Lambda{} % \Mu{} \Nu{} \Xi{} % \Omicron{} \Pi{} % \Rho{} \Sigma{} % \Tau{} \Upsilon{} \Phi{} % \Chi{} \Psi{} \Omega{} \\& \alpha{} \beta{} \gamma{} \delta{} \epsilon{} \zeta{} \eta{} \theta{} \iota{} \kappa{} \lambda{} \mu{} \nu{} \xi{} % \omicron{} \pi{} \rho{} \sigma{} \varsigma{} \tau{} \upsilon{} \phi{} \chi{} \psi{} \omega{} \, \digamma{} \end{align*} Input as Unicode literals (with XeTeX/LuaTeX, this requires the unicode-math package): \begin{align*} & Γ ΔΘΛΞΠΣΥ ΦΨ Ω \\ & αβγδεζηθικλμνξπρσςτ υφχψω \, ϝ \end{align*} PDF strings do not know math mode. The content of a formula or equation is evaluated in text mode with non-valid commands discarded (and warnings written to the log). This works resonably well for simple formulas (but not, e.g., for super-/subscripts). With the \emph{alphabeta} package, it works also for Greek letters. \subsection{Diacritics} Accent macros are set up for use with the generic macros by definition of ``TextComposite'' commands. Diacritics (except the dialytika) should placed before capital letters and dropped with MakeUppercase: \ensuregreek{ \<{\alpha} \>{\epsilon} \"'{\iota} \>`{\eta} \'<{\omicron} \~<{\upsilon} \~>{\omega} \\ \<{\Alpha} \>{\Epsilon} \'{\Iota} \>`{\Eta} \'<{\Omicron} \~<{\Upsilon} \~>{\Omega} \\ \MakeUppercase{% \<{\alpha} \>{\epsilon} \"'{\iota} \>`\eta{} \'<{\omicron} \~<{\upsilon} \~>{\omega} }} \subsection{Limitations} With 8-bit TeX, the following limitations known from \emph{\href{textalpha-doc.pdf}{textalpha}} apply if the current font encoding is not LGR: \begin{itemize} \item Composition of diacritics (like \verb+\>\'+) fails: \<{\alpha} \>{\epsilon} \"'{\iota} \>`\eta{} \'<{\omicron} \~<{\upsilon} \~>{\omega} Long names (like \verb+\accdasiaoxia+) work in any font encoding, however they do not select precomposed characters (the difference becomes obvious if you drag-and-drop text from the PDF version of this document): % \ensuregreek{\<'\alpha{} \accdasia\acctonos\alpha{} \accdasiaoxia\alpha{}} (LGR) vs. \accdasiaoxia\alpha{} (T1) \item MakeUppercase fails with composite diacritics in other font encodings. % \MakeUppercase{% % \<\alpha{} \>\epsilon{} \'\iota{} \`\eta{} \~\upsilon{} % } \item There is no kerning between Greek letters, if the font encoding is not LGR: compare \ensuregreek{\Alpha\Upsilon\Alpha} (LGR) to \Alpha\Upsilon\Alpha (T1). Because of this (and for proper hyphenation), use of the Babel package and correct language setting is recommended for Greek quotes. \end{itemize} The \verb+\ensuregreek+ macro ensures that the argument is typeset with a font encoding supporting Greek. This keeps kerning (if the kerning pair is inside the argument, \ensuregreek{\Alpha\Upsilon\Alpha}), and allows iterative accent macros where pre-composed characters are selected (\ensuregreek{\<'\alpha}). \end{document}