% \iffalse meta-comment
% Copyright 2010,2011 Leonard Michlmayr
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
% 
% This work has the LPPL maintenance status `author-maintained'.
%  
% The Current Maintainer of this work is Leonard Michlmayr
% <leonard.michlmayr at gmail.com>.
% 
% This work consists of the file textgreek.dtx
% and the derived files textgreek.sty and textgreek.pdf
% \fi
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}[2009/09/24]
%<package>\ProvidesPackage{textgreek}
%<package>   [2011/04/08 v0.5 greek symbols in text]
%
%<*batchfile>
\begingroup
\input docstrip.tex
\keepsilent
\usedir{tex/latex/lm}
\preamble

This is a generated file.

Copyright 2010,2011 Leonard Michlmayr

This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
of this license or (at your option) any later version.
The latest version of this license is in
  http://www.latex-project.org/lppl.txt
and version 1.3 or later is part of all distributions of LaTeX
version 2005/12/01 or later.

This work has the LPPL maintenance status `author-maintained'.
 
The Current Maintainer of this work is Leonard Michlmayr
<leonard.michlmayr at gmail.com>.

This work consists of the file textgreek.dtx
and the derived files textgreek.sty and textgreek.pdf

\endpreamble
\askforoverwritefalse
\generate{\file{textgreek.sty}{\from{textgreek.dtx}{package}}}
\endgroup
%</batchfile>
%<*driver>
\documentclass[a4paper]{ltxdoc}
\usepackage{textgreek}[2011/04/08]
\usepackage[american]{babel}
\usepackage{upgreek}
\usepackage{amstext}
\usepackage{microtype}
\usepackage[numbered]{hypdoc}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
\begin{document}
  \DocInput{textgreek.dtx}
  \PrintChanges
  \makeatletter\c@IndexColumns = 2\makeatother
  \PrintIndex
\end{document}
%</driver>
% \fi
%
% \iffalse\OnlyDescription\fi
% \CheckSum{0}
%
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \<
%   Equals        \=     Greater than  \>     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
% \changes{v0.1}{2010/10/17}{Initial Version}
%
% \GetFileInfo{textgreek.sty}
% \DoNotIndex{\#,\$,\%,\&,\@,\\,\{,\},\^,\_,\~,\ } \DoNotIndex{\@ne}
% \DoNotIndex{\advance,\begingroup,\catcode,\closein}
% \DoNotIndex{\closeout,\day,\def,\edef,\else,\empty,\endgroup}
% \DoNotIndex{\if,\fi,\iffalse,\iftrue}
% \DoNotIndex{\edef,\csname,\endcsname,\expandafter,\gdef,\xdef}
% \DoNotIndex{\ifcat,\ifmmode,\ifx,\mbox,\noexpand,\protect,\relax}
% \DoNotIndex{\texorpdfstring}
% \DoNotIndex{\bfseries,\centering,\@xiipt,\@xivpt,\@xpt,\@xviipt,\@xxvpt}
% \DoNotIndex{\DeclareOption,\ExecuteOptions,\fontfamily,\fontsize}
% \DoNotIndex{\footskip,\hbox,\headheight,\headsep,\hfil,\hfill}
% \DoNotIndex{\hoffset,\hsize,\hspace,\kern,\MakeUppercase,\mdseries}
% \DoNotIndex{\MessageBreak,\newcommand,\newpage,\space,\noindent}
% \DoNotIndex{\oddsidemargin,\PackageError,\PackageWarning}
% \DoNotIndex{\paperwidth,\paperheight,\par,\parbox,\parindent,\parsep}
% \DoNotIndex{\ProcessOptions,\rmfamily,\selectfont,\setlength}
% \DoNotIndex{\sfdefault,\sffamily,\space,\string,\textheight,\textwidth}
% \DoNotIndex{\thinspace,\thispagestyle,\topmargin,\ttfamily,\upshape}
% \DoNotIndex{\vbox,\vfil,\voffset,\vsize,\vskip}
% \DoNotIndex{\ce,\char,\curr@fontshape,\DeclareFontEncoding}
% \DoNotIndex{\DeclareRobustCommand,\temp,\tempa,\tempb,\tempc}
% \DoNotIndex{\tempd,\tempe}
% \DoNotIndex{\fontseries,\providecommand,\renewcommand}
% \DoNotIndex{\RequirePackage,\romannumeral,\usefont}
% \DoNotIndex{\DeclareTextCommandDefault,\@@end}
%
% \title{The \textsf{\jobname} package\thanks{This document
%     corresponds to \textsf{textgreek}~\fileversion, dated~\filedate.}}
% \author{Leonard Michlmayr \\ \texttt{leonard.michlmayr at gmail.com}}
% \date{\filedate}
%
% \maketitle
%
% \begin{abstract}
%   The \LaTeX{} package \textsf{textgreek} provides NFSS text symbols
%   for greek letters. This way the author can use greek letters in
%   text without changing to math mode. The usual font selection
%   commands---e.g. |\textbf|---apply to these greek letters as to
%   usual text and the font is upright in an upright
%   environment. Further, \textsf{hyperref} can use these symbols in
%   PDF-strings such as PDF-bookmarks.
% \end{abstract}
%
% \tableofcontents
%
% \section{Introduction}
%
% The usual way to print greek letters in \LaTeX{} uses the math
% mode. E.g. |$\beta$| produces $\beta$. With the default math
% fonts, the greek letters produced this way are
% \textit{italic}. Generally, this is ok, since they represent
% variables and variables are typeset italic with the default math
% font settings. In some circumstances, however, greek letters don't
% represent variables and should be typeset upright. E.g. in
% ``\textbeta-decay'' or ``\textmugreek A''.
% 
% The package \textsf{upgreek} provides commands to set upright greek
% letters in math mode, but it does not provide text symbols. You
% could use them in text with |$\upbeta$-decay|, for example,
% which gives $\upbeta$-decay, but the font will always be the
% same and will not be adapted to the surrounding font.
%
% The package \textsf{textgreek} provides text commands for greek
% letters in text that adapt to the surrounding font. For example in
% bold text, {\bf the command \verb|\textbeta| gives \textbeta{} while
%   \verb|$\upbeta$| gives $\upbeta$}.
%
% As textsymbols, greek letters can also be used in unicode
% PDF-strings, for example in PDF-bookmarks provided by the
% \textsf{hyperref} package. See section \ref{hyperref}.
%
% \section{Usage}
% The following list shows the commands provided by this package. You
% can use these commands in any context.
% \begin{multicols}{3}
% \begin{tabbing}
% |\straightepsilon|\quad\=\textOmega\quad\kill
% |\textalpha|\>\textalpha\\
% |\textbeta|\>\textbeta\\
% |\textgamma|\>\textgamma\\
% |\textdelta|\>\textdelta\\
% |\textepsilon|\>\textepsilon\\
% |\textzeta|\>\textzeta\\
% |\texteta|\>\texteta\\
% |\texttheta|\>\texttheta\\
% |\textiota|\>\textiota\\
% |\textkappa|\>\textkappa\\
% |\textlambda|\>\textlambda\\
% |\textmu|\>\textmu\\
% |\textmugreek|\>\textmugreek\\
% |\textnu|\>\textnu\\
% |\textxi|\>\textxi\\
% |\textomikron|\>\textomikron\\
% |\textpi|\>\textpi\\
% |\textrho|\>\textrho\\
% |\textsigma|\>\textsigma\\
% |\texttau|\>\texttau\\
% |\textupsilon|\>\textupsilon\\
% |\textphi|\>\textphi\\
% |\textchi|\>\textchi\\
% |\textpsi|\>\textpsi\\
% |\textomega|\>\textomega\\
% |\textAlpha|\>\textAlpha\\
% |\textBeta|\>\textBeta\\
% |\textGamma|\>\textGamma\\
% |\textDelta|\>\textDelta\\
% |\textEpsilon|\>\textEpsilon\\
% |\textZeta|\>\textZeta\\
% |\textEta|\>\textEta\\
% |\textTheta|\>\textTheta\\
% |\textIota|\>\textIota\\
% |\textKappa|\>\textKappa\\
% |\textLambda|\>\textLambda\\
% |\textMu|\>\textMu\\
% |\textNu|\>\textNu\\
% |\textXi|\>\textXi\\
% |\textOmikron|\>\textOmikron\\
% |\textPi|\>\textPi\\
% |\textRho|\>\textRho\\
% |\textSigma|\>\textSigma\\
% |\textTau|\>\textTau\\
% |\textUpsilon|\>\textUpsilon\\
% |\textPhi|\>\textPhi\\
% |\textChi|\>\textChi\\
% |\textPsi|\>\textPsi\\
% |\textOmega|\>\textOmega\\
% \> \\
% |\textvarsigma|\>\textvarsigma\\
% |\straightphi|\>\straightphi\\
% |\scripttheta|\>\scripttheta\\
% |\straighttheta|\>\straighttheta\\
% |\straightepsilon|\>\straightepsilon\\
% \end{tabbing}
% \end{multicols}
%
% \subsection{Package Options}
% You can choose the greek fonts used.
% \newcommand{\textsample}{\textalpha \textbeta \textgamma \textdelta
%   \textepsilon{} \textzeta\texteta\texttheta\textiota\textkappa{}
%   \textlambda\textmugreek\textnu\textxi\textomikron{}
%   \textpi\textrho\textsigma\texttau\textupsilon{}
%   \textphi\textchi\textpsi\textomega{}
%   \textAlpha\textBeta\textGamma\textDelta\textEpsilon{}
%   \textZeta\textEta\textTheta\textIota\textKappa{}
%   \textLambda\textMu\textNu\textXi\textOmikron{}
%   \textPi\textRho\textSigma\textTau\textUpsilon{}
%   \textPhi\textChi\textPsi\textOmega{}
%   \textvarsigma\straightphi\scripttheta\straighttheta\straightepsilon}
% \begin{description}
% \item[cbgreek] use the default fonts. This option is the
%   default. Font sample: {\usefont{LGR}{cmr}{m}{n}
%     \renewcommand*{\textgreekfontmap}{} \textsample{}}
% \item[euler] use the Euler fonts as a companion for all fonts except
%   Helvetica. Font sample: { \usefont{U}{eur}{m}{n} \textsample }
% \item[artemisia] use Artemisia fonts as a companion for all fonts
%   except Helvetica and Euler. Font sample:
%   {\renewcommand*{\textgreekfontmap}{}
%     \usefont{LGR}{artemisia}{m}{n} \textsample{}}
% \end{description}
%
% \subsection{Advanced commands}
% The package provides a number of options that allows to select a
% font that will be used. The list of font substitutions is written to
% the log file. \DescribeMacro{\textgreekfontmap} If you need to
% customize the font substitutions, you can redefine
% |\textgreekfontmap|. For example, the font map for the option
% \textsf{euler} may also be set by:
% \begin{verbatim}
% \renewcommand*{\textgreekfontmap}{
%   {phv/*/*}{U/psy/*/*}
%   {*/bx/n}{U/eur/b/n}
%   {*/b/n}{U/eur/b/n}
%   {*/*/n}{U/eur/m/n}}}
% \end{verbatim}
% The list contains pairs of options: the font spec (without the
% encoding) of the font to be replaced and the font spec (with
% encoding) of the font to be used as companion. The wildcard * may be
% used to match any family, series, or shape respectively. The first
% match is effective. Fonts that do not matched at all will be
% substituted with the same font-family, font-series, and font-shape
% in the encoding LGR\@. Since the Euler font (eur) does not use the
% encoding LGR, it has to be replaced by U/eur/m/n.
%
% \section{Examples}
%
% Most users will use this package to get upright greek letters, but
% you can use it for italic letters too: for example
% |\textit{\textdelta}| \textit{\textdelta}.
%
% {\usefont{T1}{phv}{m}{n} When you are using Helvetica, the font
%   ``Symbol'' is used for greek letters:  \textsample}
%
% \subsection{Use \textquotedblleft\textbeta-decay\textquotedblright {}
%   in a heading}
%
% The command used for the heading was
% \begin{verbatim}
% \subsection{Use \textquotedblleft\textbeta
%   -decay\textquotedblright {} in a heading}
% \end{verbatim}
%
% \section{Compatibility}\label{hyperref}
%
% If you use the package \textsf{hyperref} I recommend to use the
% option \textsf{unicode}, i.e.\ 
% |\usepackage[unicode]{hyperref}|. Hyperref will recognize the
% textgreek letters and replace them with unicode in PDF-strings.
%
% You can use \textsf{upgreek} and \textsf{textgreek} in the same
% document. If you want to use a textgreek letter inside a math
% environment, you can place it into an |\mbox| or |\textnormal|, or
% use |\text| from the package \textsf{amstext},
% e.g. |$\lambda||_{\text| |{\textbeta}}$|: $\lambda _{\text {\textbeta}}$.
%
% \section{Limitations}
%
% The variants \straighttheta, \straightphi, and \straightepsilon{}
% are not included in the LGR font encoding and \straightepsilon{} is
% not included in Symbol either. For the commands |\straighttheta|,
% |\straightphi|, and |\straightepsilon| the missing symbols are
% substituted from \texttt{OML/*/*/it} or Euler.
%
% You may need to customize |\textgreekfontmap| if you use other fonts
% than Computer Modern and Latin Modern.
%
% The version number of this package is still below 1.0. Many details
% may still change from version to version.
%
% \section{Copyright}
% Copyright 2010,2011 Leonard Michlmayr
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
% 
% This work has the LPPL maintenance status `author-maintained'.
%  
% The Current Maintainer of this work is Leonard Michlmayr.
% 
% This work consists of the file textgreek.dtx
% and the derived files textgreek.sty and textgreek.pdf
% \StopEventually{}
% \section{Implementation}
% Load the LGR font encoding.
%    \begin{macrocode}
\InputIfFileExists{lgrenc.def}{%
  \PackageInfo{textgreek}{Loading the definitions for the Greek font%
    encoding.}}{%
  \PackageError{textgreek}{Cannot find the file lgrenc.def}{%
    lgrenc.def is a file that contains the definitions for the Greek
    font encoding LGR. Maybe it comes with the babel package.}}
%    \end{macrocode}
% \subsection{Package Options}
%    \begin{macrocode}
\DeclareOption{cbgreek}{%
\renewcommand*{\textgreekfontmap}{%
{eur/*/*}{U/eur/*/*}
{phv/*/*}{U/psy/*/*}}}%
%    \end{macrocode}
% \changes{v0.5}{2011/04/04}{use wildcards in the fontmap.}
%    \begin{macrocode}
\DeclareOption{euler}{%
\renewcommand*{\textgreekfontmap}{%
{phv/*/*}{U/psy/*/*}
{*/bx/n}{U/eur/b/n}
{*/b/n}{U/eur/b/n}
{*/*/n}{U/eur/m/n}}}%
%    \end{macrocode}
%    \begin{macrocode}
\DeclareOption{artemisia}{%
\renewcommand*{\textgreekfontmap}{%
  {eur/*/*}{U/eur/*/*}
  {phv/*/*}{U/psy/*/*}
  {*/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}}}%
%    \end{macrocode}
% \begin{macro}{\textgreekfontmap}
%   \changes{v0.5}{2011/04/05}{The new font matching macros support
%     the wildcard *.} Initialize
%   |\textgreekfontmap|, set the default option and process the
%   options.
%    \begin{macrocode}
\newcommand*{\textgreekfontmap}{}%
\ExecuteOptions{cbgreek}
\ProcessOptions\relax%
\PackageInfo{textgreek}{Loaded fontmap: \textgreekfontmap.}
%    \end{macrocode}
% \end{macro}
% \subsection{Font selection}
% \begin{macro}{\textgreek@findfont}
%   Chose a companion font.  \changes{v0.5}{2011/04/07}{Allow wildcards
%     in fontsspecs.}
%    \begin{macrocode}
\def\textgreek@setfont#1/#2/#3/#4\relax{%
\textgreek@ematch{#1}{*}{}{\fontencoding{#1}}%
\textgreek@ematch{#2}{*}{}{\fontfamily{#2}}%
\textgreek@ematch{#3}{*}{}{\fontseries{#3}}%
\textgreek@ematch{#4}{*}{}{\fontshape{#4}}}%
%    \end{macrocode}
%   \changes{v0.3}{2010/10/30}{Make font substitutions customizable.}
%   Process a list of font substitutions.
%    \begin{macrocode}
\def\textgreek@eof{}%
\def\textgreek@return#1#2\textgreek@eof{%
\fi#1}%
\def\textgreek@ematch#1#2#3#4{%
  \begingroup%
  \edef\tempa{#1}\edef\tempb{#2}\def\tempc{*}%
  \def\return##1##2\endgroup{\fi\endgroup##1}%
  \ifx\tempa\tempb\return{#3}\fi%
  \ifx\tempa\tempc\return{#3}\fi%
  \iftrue\return{#4}\fi%
  \endgroup}%
\def\textgreek@matchfont#1/#2/#3\relax#4#5{%
  \textgreek@ematch{#1}{\f@family}{%
    \textgreek@ematch{#2}{\f@series}{%
      \textgreek@ematch{#3}{\f@shape}{#4}{#5}}%
    {#5}}%
  {#5}%
}%
\def\textgreek@findfont@#1#2#3\textgreek@eof{%
  \textgreek@matchfont#1\relax%
  {\textgreek@setfont#2\relax}%
  {\textgreek@findfont#3\textgreek@eof}}%
\def\textgreek@findfont#1\textgreek@eof{%
  \begingroup%
  \def\temp{#1}%
  \def\return##1##2\endgroup{\fi\endgroup##1}%
  \ifx\temp\textgreek@eof\else%
  \return{\textgreek@findfont@#1\textgreek@eof}%
  \fi\endgroup}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\textgreekfont}
%   Select the greek font encoding and apply font replacements.
%   \changes{v0.2}{2010/10/20}{apply font replacements before
%     \textbackslash selectfont}
%    \begin{macrocode}
\newcommand*{\textgreekfont}{%
  \fontencoding{LGR}%
  \edef\textgreek@fontmap{\textgreekfontmap}%
  \expandafter\textgreek@findfont\textgreek@fontmap\textgreek@eof%
  \selectfont%
}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\lgrtoeuler}
%   Convert LGR encoded characters to Euler's U encoding.
%    \begin{macrocode}
\newcommand*{\lgrtoeuler}[1]{%
\if G#1\textgreek@return{\char0}\fi%
\if D#1\textgreek@return{\char1}\fi%
\if J#1\textgreek@return{\char2}\fi%
\if L#1\textgreek@return{\char3}\fi%
\if X#1\textgreek@return{\char4}\fi%
\if P#1\textgreek@return{\char5}\fi%
\if S#1\textgreek@return{\char6}\fi%
\if U#1\textgreek@return{\char7}\fi%
\if F#1\textgreek@return{\char8}\fi%
\if Y#1\textgreek@return{\char9}\fi%
\if W#1\textgreek@return{\char10}\fi%
\if a#1\textgreek@return{\char11}\fi%
\if b#1\textgreek@return{\char12}\fi%
\if g#1\textgreek@return{\char13}\fi%
\if d#1\textgreek@return{\char14}\fi%
\if 3#1\textgreek@return{\char15}\fi% element-of style epsilon
\if z#1\textgreek@return{\char16}\fi%
\if h#1\textgreek@return{\char17}\fi%
%    \end{macrocode}
% \changes{v0.5}{2011/04/08}{Change the default variant for theta to
%   \straighttheta} Euler provides two variants of theta:
% {\usefont{U}{eur}{m}{n}\char18} and
% {\usefont{U}{eur}{m}{n}\char35}. Use
% {\usefont{U}{eur}{m}{n}\texttheta} by default.
%    \begin{macrocode}
\if j#1\textgreek@return{\char18}\fi% temperature style theta
\if i#1\textgreek@return{\char19}\fi%
\if k#1\textgreek@return{\char20}\fi%
\if l#1\textgreek@return{\char21}\fi%
\if m#1\textgreek@return{\char22}\fi%
\if n#1\textgreek@return{\char23}\fi%
\if x#1\textgreek@return{\char24}\fi%
\if p#1\textgreek@return{\char25}\fi%
\if r#1\textgreek@return{\char26}\fi%
\if s#1\textgreek@return{\char27}\fi%
\if t#1\textgreek@return{\char28}\fi%
\if u#1\textgreek@return{\char29}\fi%
\if v#1\textgreek@return{\char30}\fi% o-slash style phi
\if q#1\textgreek@return{\char31}\fi%
\if y#1\textgreek@return{\char32}\fi%
\if w#1\textgreek@return{\char33}\fi%
%    \end{macrocode}
% Euler provides two variants of epsilon:
% {\usefont{U}{eur}{m}{n}\char15} and
% {\usefont{U}{eur}{m}{n}\char34}. Use {\usefont{U}{eur}{m}{n}\char34} by default.
%    \begin{macrocode}
\if e#1\textgreek@return{\char34}\fi%
\if 0#1\textgreek@return{\char35}\fi%
%    \end{macrocode}
% Euler provides two variants of phi:
% {\usefont{U}{eur}{m}{n}\char30} and
% {\usefont{U}{eur}{m}{n}\char39}. Use {\usefont{U}{eur}{m}{n}\char39} by default.
%    \begin{macrocode}
\if f#1\textgreek@return{\char39}\fi%
%    \end{macrocode}
% Use the default font for the LGR encoding, if the character does not
% exist in Euler.
%    \begin{macrocode}
\fontencoding{LGR}\selectfont #1%
\textgreek@eof}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\lgrtosymbol}
%   \changes{v0.5}{2011/04/04}{recognize that the U-font-encoding of
%     Symbol differs from LGR in some points} Convert LGR encoded
%   characters to Symbol's U encoding.
%    \begin{macrocode}
\newcommand*{\lgrtosymbol}[1]{%
\if A#1\textgreek@return{A}\fi%
\if B#1\textgreek@return{B}\fi%
\if Q#1\textgreek@return{C}\fi%
\if D#1\textgreek@return{D}\fi%
\if E#1\textgreek@return{E}\fi%
\if F#1\textgreek@return{F}\fi%
\if G#1\textgreek@return{G}\fi%
\if H#1\textgreek@return{H}\fi%
\if I#1\textgreek@return{I}\fi%
\if 0#1\textgreek@return{J}\fi%
\if K#1\textgreek@return{K}\fi%
\if L#1\textgreek@return{L}\fi%
\if M#1\textgreek@return{M}\fi%
\if N#1\textgreek@return{N}\fi%
\if O#1\textgreek@return{O}\fi%
\if P#1\textgreek@return{P}\fi%
\if J#1\textgreek@return{Q}\fi%
\if R#1\textgreek@return{R}\fi%
\if S#1\textgreek@return{S}\fi%
\if T#1\textgreek@return{T}\fi%
\if U#1\textgreek@return{U}\fi%
\if c#1\textgreek@return{V}\fi%
\if W#1\textgreek@return{W}\fi%
\if X#1\textgreek@return{X}\fi%
\if Y#1\textgreek@return{Y}\fi%
\if Z#1\textgreek@return{Z}\fi%
\if a#1\textgreek@return{a}\fi%
\if b#1\textgreek@return{b}\fi%
\if q#1\textgreek@return{c}\fi%
\if d#1\textgreek@return{d}\fi%
\if e#1\textgreek@return{e}\fi%
\if v#1\textgreek@return{f}\fi%
\if g#1\textgreek@return{g}\fi%
\if h#1\textgreek@return{h}\fi%
\if i#1\textgreek@return{i}\fi%
\if f#1\textgreek@return{j}\fi%
\if k#1\textgreek@return{k}\fi%
\if l#1\textgreek@return{l}\fi%
\if m#1\textgreek@return{m}\fi%
\if n#1\textgreek@return{n}\fi%
\if o#1\textgreek@return{o}\fi%
\if p#1\textgreek@return{p}\fi%
\if j#1\textgreek@return{q}\fi%
\if r#1\textgreek@return{r}\fi%
\if s#1\textgreek@return{s}\fi%
\if t#1\textgreek@return{t}\fi%
\if u#1\textgreek@return{u}\fi%
\if w#1\textgreek@return{w}\fi%
\if x#1\textgreek@return{x}\fi%
\if y#1\textgreek@return{y}\fi%
\if z#1\textgreek@return{z}\fi%
%    \end{macrocode}
% Use the default font for the LGR encoding, if the character does not
% exist in Symbol.
%    \begin{macrocode}
\fontencoding{LGR}\selectfont #1%
\textgreek@eof}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\TextGreek}
%   Produce a greek letter using the correct font. If the font is
%   Euler or Symbol, convert to the appropriate font encoding.
%   \changes{v0.4}{2011/03/30}{Avoid the ligature that changes sigma
%     to a word-final sigma with the help of \texttt{\textbackslash
%       noboundary}}
%    \begin{macrocode}
\DeclareRobustCommand*{\TextGreek}[1]{%
\begingroup%
\textgreekfont%
\edef\tempa{\f@family}%
\def\tempb{eur}\def\tempc{psy}%
\ifx\tempa\tempb\textgreek@return{\lgrtoeuler#1}\fi%
\ifx\tempa\tempc\textgreek@return{\lgrtosymbol#1}\fi%
#1%
\textgreek@eof%
\endgroup}%
%    \end{macrocode}
% \end{macro}
% \subsection{List of greek letters}
% \begin{macro}{\DeclareTextGreekSymbol}
% Define the symbol name with |\DeclareTextCommandDefault|.
%    \begin{macrocode}
\newcommand*{\DeclareTextGreekSymbol}[2]{%
\expandafter\DeclareTextCommandDefault\csname text#1\endcsname%
{\TextGreek{#2}}}%
%    \end{macrocode}
% \end{macro}
%    \begin{macrocode}
\DeclareTextGreekSymbol{alpha}{a}
\DeclareTextGreekSymbol{beta}{b}
\DeclareTextGreekSymbol{gamma}{g}
\DeclareTextGreekSymbol{delta}{d}
\DeclareTextGreekSymbol{epsilon}{e}
\DeclareTextGreekSymbol{zeta}{z}
\DeclareTextGreekSymbol{eta}{h}
\DeclareTextGreekSymbol{theta}{j}
\DeclareTextGreekSymbol{iota}{i}
\DeclareTextGreekSymbol{kappa}{k}
\DeclareTextGreekSymbol{lambda}{l}
%    \end{macrocode}
% \begin{macro}{\textmu}
%   \changes{v0.4}{2010/11/07}{Don't override \textsf{textcomp}'s
%     \texttt{\textbackslash textmu}} \changes{v0.4}{2010/11/07}{Don't
%     provide \texttt{\textbackslash textmicro} anymore.}
% \begin{macro}{\textmugreek}
% Don't redefine |\textmu| if it is also provided by another
% package. Use |\textmugreek| if you mean the greek letter rather than
% the micro symbol of the \textsf{textcomp} package.
%    \begin{macrocode}
\expandafter\ifx\csname?\string\textmu\endcsname\relax%
\DeclareTextGreekSymbol{mu}{m}\fi
\DeclareTextGreekSymbol{mugreek}{m}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%    \begin{macrocode}
\DeclareTextGreekSymbol{nu}{n}
\DeclareTextGreekSymbol{xi}{x}
\DeclareTextGreekSymbol{omikron}{o}
\DeclareTextGreekSymbol{pi}{p}
\DeclareTextGreekSymbol{rho}{r}
%    \end{macrocode}
% \begin{macro}{\textsigma}
%   \changes{v0.5}{2011/04/07}{\texttt{\textbackslash noboundary} is
%     needed only for sigma}
%    \begin{macrocode}
\DeclareTextGreekSymbol{sigma}{s\noboundary}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\textvarsigma}
% \changes{v0.5}{2011/04/04}{New symbol \textvarsigma.}
%    \begin{macrocode}
\DeclareTextGreekSymbol{varsigma}{c}
%    \end{macrocode}
% \end{macro}
%    \begin{macrocode}
\DeclareTextGreekSymbol{tau}{t}
\DeclareTextGreekSymbol{upsilon}{u}
\DeclareTextGreekSymbol{phi}{f}
\DeclareTextGreekSymbol{chi}{q}
\DeclareTextGreekSymbol{psi}{y}
\DeclareTextGreekSymbol{omega}{w}
\DeclareTextGreekSymbol{Alpha}{A}
\DeclareTextGreekSymbol{Beta}{B}
\DeclareTextGreekSymbol{Gamma}{G}
\DeclareTextGreekSymbol{Delta}{D}
\DeclareTextGreekSymbol{Epsilon}{E}
\DeclareTextGreekSymbol{Zeta}{Z}
\DeclareTextGreekSymbol{Eta}{H}
\DeclareTextGreekSymbol{Theta}{J}
\DeclareTextGreekSymbol{Iota}{I}
\DeclareTextGreekSymbol{Kappa}{K}
\DeclareTextGreekSymbol{Lambda}{L}
\DeclareTextGreekSymbol{Mu}{M}
\DeclareTextGreekSymbol{Nu}{N}
\DeclareTextGreekSymbol{Xi}{X}
\DeclareTextGreekSymbol{Omikron}{O}
\DeclareTextGreekSymbol{Pi}{P}
\DeclareTextGreekSymbol{Rho}{R}
\DeclareTextGreekSymbol{Sigma}{S}
\DeclareTextGreekSymbol{Tau}{T}
\DeclareTextGreekSymbol{Upsilon}{U}
\DeclareTextGreekSymbol{Phi}{F}
\DeclareTextGreekSymbol{Chi}{Q}
\DeclareTextGreekSymbol{Psi}{Y}
\DeclareTextGreekSymbol{Omega}{W}
%    \end{macrocode}
% \subsection{Variants}
% \begin{macro}{\straightphi}
%   \changes{v0.5}{2011/04/03}{New symbol \straightphi} The phi symbol
%   \straightphi{} is a variant of phi \textphi. Sometimes this variant
%   is used specifically, e.g.\ in quantum field theory. The Unicode
%   code point is \texttt{U+03D5}.
%    \begin{macrocode}
\DeclareTextCommand{\straightphi}{PU}%
  {\83\325} % U+03D5 GREEK PHI SYMBOL
%    \end{macrocode}
% The greek fonts aim at greek text therefore the phi symbol is not
% included. I use the math symbol for italic fonts and euler else.
%    \begin{macrocode}
\DeclareTextCommandDefault{\straightphi}{%
\begingroup\textgreekfont%
\edef\tempa{\f@family}%
\edef\tempb{\f@shape}%
\def\tempc{eur}\def\tempd{psy}%
\def\tempe{it}%
\ifx\tempa\tempc\textgreek@return{\lgrtoeuler{v}}\fi%
\ifx\tempa\tempd\textgreek@return{\lgrtosymbol{v}}\fi%
\ifx\tempb\tempe\textgreek@return{%
  \fontencoding{OML}\selectfont\char30}\fi%
\fontencoding{U}\fontfamily{eur}\selectfont\lgrtoeuler{v}%
\textgreek@eof%
\endgroup}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\scripttheta}
%   \changes{v0.5}{2011/04/06}{New symbol \scripttheta} The theta
%   symbol \scripttheta{} is a variant of theta \texttheta. The Unicode
%   code point is \texttt{U+03D1}. It is available as |\scripttheta|.
%    \begin{macrocode}
\DeclareTextCommand{\scripttheta}{PU}%
  {\83\321}% U+03D1 GREEK THETA SYMBOL
%    \end{macrocode}
%    \begin{macrocode}
\DeclareTextCommandDefault{\scripttheta}{%
\begingroup\textgreekfont%
\edef\tempa{\f@family}%
\edef\tempb{\f@shape}%
\def\tempc{eur}\def\tempd{psy}%
\def\tempe{it}%
\ifx\tempa\tempc\textgreek@return{\lgrtoeuler{0}}\fi%
\ifx\tempa\tempd\textgreek@return{\lgrtosymbol{0}}\fi%
j% default theta in cbgreek and artemisia
\textgreek@eof%
\endgroup}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\straighttheta}
%   \changes{v0.5}{2011/04/06}{New symbol \straighttheta} The theta
%   \straighttheta{} is presumably the common variant of theta
%   \texttheta. The cbgreek fonts and artemisia use the script
%   variant.
%    \begin{macrocode}
\DeclareTextCommand{\straighttheta}{PU}%
  {\83\270} % U+03B8 GREEK THETA SYMBOL
%    \end{macrocode}
%    \begin{macrocode}
\DeclareTextCommandDefault{\straighttheta}{%
\begingroup\textgreekfont%
\edef\tempa{\f@family}%
\edef\tempb{\f@shape}%
\def\tempc{eur}\def\tempd{psy}%
\def\tempe{it}%
\ifx\tempa\tempc\textgreek@return{\lgrtoeuler{j}}\fi%
\ifx\tempa\tempd\textgreek@return{\lgrtosymbol{j}}\fi%
\ifx\tempb\tempe\textgreek@return{%
  \fontencoding{OML}\selectfont\char18}\fi%
\fontencoding{U}\fontfamily{eur}\selectfont\lgrtoeuler{j}%
\textgreek@eof%
\endgroup}%
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\straightepsilon}
%   \changes{v0.5}{2011/04/06}{New symbol \straightepsilon} The epsilon
%   \straightepsilon{} is a variant of epsilon
%   \textepsilon.
%    \begin{macrocode}
\iffalse\fi % U+03F5 GREEK LUNATE EPSILON SYMBOL
\DeclareTextCommand{\straightepsilon}{PU}{\83\365}%
%    \end{macrocode}
%    \begin{macrocode}
\DeclareTextCommandDefault{\straightepsilon}{%
\begingroup\textgreekfont%
\edef\tempa{\f@family}%
\edef\tempb{\f@shape}%
\def\tempc{eur}\def\tempd{psy}%
\def\tempe{it}%
\ifx\tempa\tempc\textgreek@return{\lgrtoeuler{3}}\fi%
\ifx\tempa\tempd\textgreek@return{%
  \fontfamily{eur}\fontseries{b}\selectfont\lgrtoeuler{3}}\fi%
\ifx\tempb\tempe\textgreek@return{%
  \fontencoding{OML}\selectfont\char15}\fi%
\fontencoding{U}\fontfamily{eur}\selectfont\lgrtoeuler{3}%
\textgreek@eof%
\endgroup}%
%    \end{macrocode}
% \end{macro}
% \Finale
% {\obeyspaces
% \typeout{*************************************************************}
% \typeout{*                                                           *}
% \typeout{* To finish the installation you have to move the following *}
% \typeout{* file into a directory searched by TeX:                    *}
% \typeout{*                                                           *}
% \typeout{*     textgreek.sty                                         *}
% \typeout{*                                                           *}
% \typeout{* To produce the documentation run the file textgreek.dtx   *}
% \typeout{* through LaTeX. Typically the following commands will do   *}
% \typeout{* the job:                                                  *}
% \typeout{*                                                           *}
% \typeout{*     pdflatex textgreek.dtx                                *}
% \typeout{*     pdflatex textgreek.dtx                                *}
% \typeout{*     makeindex -s gglo.ist -o textgreek.gls textgreek.glo  *}
% \typeout{*     makeindex -s gind.ist -o textgreek.ind textgreek.idx  *}
% \typeout{*     pdflatex textgreek.dtx                                *}
% \typeout{*     makeindex -s gglo.ist -o textgreek.gls textgreek.glo  *}
% \typeout{*     makeindex -s gind.ist -o textgreek.ind textgreek.idx  *}
% \typeout{*     pdflatex textgreek.dtx                                *}
% \typeout{*                                                           *}
% \typeout{* Happy TeXing!                                             *}
% \typeout{*                                                           *}
% \typeout{*************************************************************}
% }
\endinput
