summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/textgreek
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/textgreek
Initial commit
Diffstat (limited to 'macros/latex/contrib/textgreek')
-rw-r--r--macros/latex/contrib/textgreek/README42
-rw-r--r--macros/latex/contrib/textgreek/textgreek.dtx735
-rw-r--r--macros/latex/contrib/textgreek/textgreek.ins78
-rw-r--r--macros/latex/contrib/textgreek/textgreek.pdfbin0 -> 551711 bytes
4 files changed, 855 insertions, 0 deletions
diff --git a/macros/latex/contrib/textgreek/README b/macros/latex/contrib/textgreek/README
new file mode 100644
index 0000000000..674c25d679
--- /dev/null
+++ b/macros/latex/contrib/textgreek/README
@@ -0,0 +1,42 @@
+This is the README file for the 'textgreek' package.
+
+textgreek - text symbols for the Greek alphabet
+
+SUMMARY
+
+The LaTeX package textgreek provides NFSS text symbols for Greek
+letters. This way an 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, hyperref can use these
+symbols in PDF-strings such as PDF-bookmarks.
+
+To produce the textgreek.sty file run
+
+ latex textgreek.ins
+
+FEEDBACK
+
+Comments, suggestions, questions etc. are welcome. Send email to
+leonard.michlmayr at gmail.com. (Preferably in German, English, or
+Japanese)
+
+LICENSE
+
+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
diff --git a/macros/latex/contrib/textgreek/textgreek.dtx b/macros/latex/contrib/textgreek/textgreek.dtx
new file mode 100644
index 0000000000..1d8150dbca
--- /dev/null
+++ b/macros/latex/contrib/textgreek/textgreek.dtx
@@ -0,0 +1,735 @@
+% \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/10/09 v0.7 Greek symbols in text]
+%<*driver>
+\documentclass[a4paper]{ltxdoc}
+\usepackage{textcomp}
+\usepackage{textgreek}[2011/09/24]
+\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{477}
+%
+% \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}
+% \changes{v0.7}{2011/10/09}{Split out the .ins file and fix the
+% argument of \cmd{\usedir}.}
+%
+% \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,\2,\3,\8}
+% \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
+% {\bf bold text, 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|\>\textmugreek\\
+% |\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}
+% The \textsf{textcomp} package also defines
+% \cmd{\textmu}. \textsf{textgreek} will not replace a prior
+% definition of \cmd{\textmu} if recognized. Therefore it is often
+% better to use \cmd{\textmugreek} instead to avoid unexpected
+% results.
+% \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}
+% {*/*/it}{OML/*/*/*}}
+% \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}
+%
+% Remember that \TeX{} skips over whitespace directly following a
+% command. Add |{}| to get an interword space after a
+% command. E.g.\ \textsigma{} is genereted by |\textsigma{}|.
+%
+% \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
+% \smallskip
+%
+% \noindent 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. \smallskip
+%
+% \noindent This work has the LPPL maintenance status `author-maintained'. \smallskip
+%
+% \noindent The Current Maintainer of this work is Leonard Michlmayr. \smallskip
+%
+% \noindent 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}
+ {*/*/it}{OML/*/*/*}}}%
+% \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}
+% \changes{v0.6}{2011/09/24}{remove obsolote conversion tables
+% \cs{lgrtoeuler} and \cs{lgrtosymbol}}
+% \changes{v0.5}{2011/04/08}{Change the default variant for theta to
+% \straighttheta} \changes{v0.5}{2011/04/04}{Recognize that the
+% font-encoding of Symbol differs from LGR in some points}
+% \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}%
+\let\tempd\f@encoding%
+\def\tempb{eur}\def\tempc{psy}%
+\def\tempe{OML}%
+\ifx\tempd\tempe\textgreek@return{\lgrtoeuler#1}\fi%
+\ifx\tempa\tempb\textgreek@return{\lgrtoeuler#1}\fi%
+\ifx\tempa\tempc\textgreek@return{\lgrtosymbol#1}\fi%
+#1%
+\textgreek@eof%
+\endgroup}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\TextGreek@Select}
+% The macro |\TextGreek@Select|\marg{LGR}\marg{OML}\marg{symbol}
+% will produce a Greek letter using the font set by |\textgreekfont|
+% and selcting the character from the three arguments corresponding
+% to the font encoding.
+% \begin{macrocode}
+\DeclareRobustCommand*{\TextGreek@Select}[3]{%
+\begingroup%
+\textgreekfont%
+\edef\tempa{\f@family}%
+\let\tempd\f@encoding%
+\def\tempb{eur}\def\tempc{psy}%
+\def\tempe{OML}%
+\ifx\tempd\tempe\textgreek@return{#2}\fi%
+\ifx\tempa\tempb\textgreek@return{#2}\fi%
+\ifx\tempa\tempc\textgreek@return{#3}\fi%
+#1%
+\textgreek@eof%
+\endgroup}%
+% \end{macrocode}
+% \end{macro}
+% \subsection{Greek letter definitions}
+% \subsubsection{Utility macro}
+% \begin{macro}{\DeclareTextGreekSymbol}
+% \cmd{\DeclareTextGreekSymbol}\marg{letter}\marg{LGR}\oarg{OML}\oarg{U}\hskip
+% 0pt plus 20pt will define |\text|\textit{letter} using the
+% character code \textlangle\textit{LGR\/}\textrangle{} for
+% LGR-encoded fonts, \textlangle\textit{OML\/}\textrangle{} for math
+% fonts including Euler, and \textlangle\textit{U\/}\textrangle{}
+% for the Symbol font. If \textlangle\textit{OML\/}\textrangle{} is
+% not provided, an LGR font will be used instead, if
+% \textlangle\textit{U\/}\textrangle{} is missing
+% \textlangle\textit{LGR\/}\textrangle{} will be used
+% instead. \changes{v0.6}{2011/09/24}{In order to improve
+% performance, do not run through the conversion tables
+% (e.g.\ \texttt{\textbackslash lgrtoeuler}) but save all the
+% encodings for each letter in the macro itself.}
+% \begin{macrocode}
+\def\DeclareTextGreekSymbol#1#2{%
+ \@ifnextchar[%
+ {\DeclareTextGreekSymbol@{#1}{#2}}%
+ {\@DeclareTextGreekSymbol{#1}{#2}%
+ {\fontencoding{LGR}\fontfamily{cmr}\selectfont#2}{#2}}%
+}%
+% \end{macrocode}
+% \begin{macrocode}
+\def\@DeclareTextGreekSymbol#1#2#3#4{%
+ \expandafter\DeclareTextCommandDefault\csname text#1\endcsname%
+ {\TextGreek@Select{#2}{#3}{#4}}%
+}%
+% \end{macrocode}
+% \begin{macrocode}
+\def\DeclareTextGreekSymbol@#1#2[#3]{%
+ \ifx\textgreek@eof#3\textgreek@return{%
+ \DeclareTextGreekSymbol@@{#1}{#2}%
+ {\fontencoding{LGR}\fontfamily{cmr}\selectfont#2}}%
+ \else\textgreek@return{%
+ \DeclareTextGreekSymbol@@{#1}{#2}{#3}}\fi%
+ \textgreek@eof}%
+% \end{macrocode}
+% \begin{macrocode}
+\def\DeclareTextGreekSymbol@@#1#2#3{%
+ \@ifnextchar[%
+ {\DeclareTextGreekSymbol@@@{#1}{#2}{#3}}%
+ {\@DeclareTextGreekSymbol{#1}{#2}{#3}{#2}}%
+}%
+% \end{macrocode}
+% \begin{macrocode}
+\def\DeclareTextGreekSymbol@@@#1#2#3[#4]{%
+ \ifx\textgreek@eof#4\textgreek@return{%
+ \@DeclareTextGreekSymbol{#1}{#2}{#3}{#2}}%
+ \else\textgreek@return{%
+ \@DeclareTextGreekSymbol{#1}{#2}{#3}{#4}}\fi%
+ \textgreek@eof}%
+% \end{macrocode}
+% \end{macro}
+% \subsubsection{List of Greek letters}
+% \begin{macrocode}
+\DeclareTextGreekSymbol{alpha}{a}[\char11]
+\DeclareTextGreekSymbol{beta}{b}[\char12]
+\DeclareTextGreekSymbol{gamma}{g}[\char13]
+\DeclareTextGreekSymbol{delta}{d}[\char14]
+% \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}
+% with \cmd{\textepsilon}.
+% \begin{macrocode}
+\DeclareTextGreekSymbol{epsilon}{e}[\char34]
+\DeclareTextGreekSymbol{zeta}{z}[\char16]
+\DeclareTextGreekSymbol{eta}{h}[\char17]
+% \end{macrocode}
+% 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} for \cmd{\texttheta}.
+% \begin{macrocode}
+\DeclareTextGreekSymbol{theta}{j}[\char18][q]
+\DeclareTextGreekSymbol{iota}{i}[\char19]
+\DeclareTextGreekSymbol{kappa}{k}[\char20]
+\DeclareTextGreekSymbol{lambda}{l}[\char21]
+% \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}
+% I don't redefine |\textmu| if it is already 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}[\char22]
+\fi
+\DeclareTextGreekSymbol{mugreek}{m}[\char22]
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macrocode}
+\DeclareTextGreekSymbol{nu}{n}[\char23]
+\DeclareTextGreekSymbol{xi}{x}[\char24]
+\DeclareTextGreekSymbol{omikron}{o}
+\DeclareTextGreekSymbol{pi}{p}[\char25]
+\DeclareTextGreekSymbol{rho}{r}[\char26]
+% \end{macrocode}
+% \changes{v0.5}{2011/04/07}{\texttt{\textbackslash noboundary} is
+% needed only for sigma} Since the word-end sigma \textvarsigma{} is
+% implemented as a ligature in LGR encoded fonts, we have to add
+% \cmd{\noboundary} to get a \textsigma.
+% \begin{macrocode}
+\DeclareTextGreekSymbol{sigma}{s\noboundary}[\char27][s]
+% \end{macrocode}
+% \begin{macro}{\textvarsigma} Provide \textvarsigma{} as \cmd{\textvarsigma}.
+% \changes{v0.5}{2011/04/04}{New symbol \textvarsigma.}
+% \begin{macrocode}
+\DeclareTextGreekSymbol{varsigma}{c}[][V]
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\DeclareTextGreekSymbol{tau}{t}[\char28]
+\DeclareTextGreekSymbol{upsilon}{u}[\char29]
+% \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} for \cmd{\textphi}.
+% \begin{macrocode}
+\DeclareTextGreekSymbol{phi}{f}[\char39][j]
+\DeclareTextGreekSymbol{chi}{q}[\char31][c]
+\DeclareTextGreekSymbol{psi}{y}[\char32]
+\DeclareTextGreekSymbol{omega}{w}[\char33]
+\DeclareTextGreekSymbol{Alpha}{A}
+\DeclareTextGreekSymbol{Beta}{B}
+\DeclareTextGreekSymbol{Gamma}{G}[\char0]
+\DeclareTextGreekSymbol{Delta}{D}[\char1]
+\DeclareTextGreekSymbol{Epsilon}{E}
+\DeclareTextGreekSymbol{Zeta}{Z}
+\DeclareTextGreekSymbol{Eta}{H}
+\DeclareTextGreekSymbol{Theta}{J}[\char2][Q]
+\DeclareTextGreekSymbol{Iota}{I}
+\DeclareTextGreekSymbol{Kappa}{K}
+\DeclareTextGreekSymbol{Lambda}{L}[\char3]
+\DeclareTextGreekSymbol{Mu}{M}
+\DeclareTextGreekSymbol{Nu}{N}
+\DeclareTextGreekSymbol{Xi}{X}[\char4]
+\DeclareTextGreekSymbol{Omikron}{O}
+\DeclareTextGreekSymbol{Pi}{P}[\char5]
+\DeclareTextGreekSymbol{Rho}{R}
+\DeclareTextGreekSymbol{Sigma}{S}[\char6]
+\DeclareTextGreekSymbol{Tau}{T}
+\DeclareTextGreekSymbol{Upsilon}{U}[\char7]
+\DeclareTextGreekSymbol{Phi}{F}[\char8]
+\DeclareTextGreekSymbol{Chi}{Q}[][C]
+\DeclareTextGreekSymbol{Psi}{Y}[\char9]
+\DeclareTextGreekSymbol{Omega}{W}[\char10]
+% \end{macrocode}
+% \subsubsection{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{\char30}\fi%
+\ifx\tempa\tempd\textgreek@return{f}\fi%
+\ifx\tempb\tempe\textgreek@return{%
+ \fontencoding{OML}\selectfont\char30}\fi%
+\textgreek@ematch{\f@series}{bx}{\fontseries{b}}{}%
+\fontencoding{U}\fontfamily{eur}\selectfont\char30%
+\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}{%
+ \TextGreek@Select{j}{\char35}{J}}%
+% \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{\char18}\fi%
+\ifx\tempa\tempd\textgreek@return{q}\fi%
+\ifx\tempb\tempe\textgreek@return{%
+ \fontencoding{OML}\selectfont\char18}\fi%
+\textgreek@ematch{\f@series}{bx}{\fontseries{b}}{}%
+\fontencoding{U}\fontfamily{eur}\selectfont\char18%
+\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}
+%% 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{\char15}\fi%
+\ifx\tempa\tempd\textgreek@return{%
+ \fontfamily{eur}\fontseries{b}\selectfont\char15}\fi%
+\ifx\tempb\tempe\textgreek@return{%
+ \fontencoding{OML}\selectfont\char15}\fi%
+\textgreek@ematch{\f@series}{bx}{\fontseries{b}}{}%
+\fontencoding{U}\fontfamily{eur}\selectfont\char15%
+\textgreek@eof%
+\endgroup}%
+% \end{macrocode}
+% \end{macro}
+% \Finale
+\endinput
diff --git a/macros/latex/contrib/textgreek/textgreek.ins b/macros/latex/contrib/textgreek/textgreek.ins
new file mode 100644
index 0000000000..ce905b46f6
--- /dev/null
+++ b/macros/latex/contrib/textgreek/textgreek.ins
@@ -0,0 +1,78 @@
+%%
+%% 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 files textgreek.dtx and textgreek.ins
+%% and the derived files textgreek.sty and textgreek.pdf
+%%
+\input docstrip.tex
+\keepsilent
+\usedir{tex/latex/textgreek}
+\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 files textgreek.dtx and textgreek.ins
+and the derived files textgreek.sty and textgreek.pdf
+
+\endpreamble
+\askforoverwritefalse
+\generate{\file{textgreek.sty}{\from{textgreek.dtx}{package}}}
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* textgreek.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file textgreek.dtx *}
+\Msg{* through LaTeX. Typically the following commands will do *}
+\Msg{* the job: *}
+\Msg{* *}
+\Msg{* pdflatex textgreek.dtx *}
+\Msg{* pdflatex textgreek.dtx *}
+\Msg{* makeindex -s gglo.ist -o textgreek.gls textgreek.glo *}
+\Msg{* makeindex -s gind.ist -o textgreek.ind textgreek.idx *}
+\Msg{* pdflatex textgreek.dtx *}
+\Msg{* makeindex -s gglo.ist -o textgreek.gls textgreek.glo *}
+\Msg{* makeindex -s gind.ist -o textgreek.ind textgreek.idx *}
+\Msg{* pdflatex textgreek.dtx *}
+\Msg{* thumbpdf textgreek.pdf *}
+\Msg{* pdflatex textgreek.dtx *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{*************************************************************}
+\endbatchfile \ No newline at end of file
diff --git a/macros/latex/contrib/textgreek/textgreek.pdf b/macros/latex/contrib/textgreek/textgreek.pdf
new file mode 100644
index 0000000000..9544e0c186
--- /dev/null
+++ b/macros/latex/contrib/textgreek/textgreek.pdf
Binary files differ