summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/textgreek
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-04-11 18:00:11 +0000
committerKarl Berry <karl@freefriends.org>2011-04-11 18:00:11 +0000
commit094823c890b3cea700a2ed9c3678f49f9eb4e1eb (patch)
tree069876cffbe732b3b01132e6e41ffd103409ac7a /Master/texmf-dist/source/latex/textgreek
parent4fa2b5c160feefbe7bc7c98a9db56ebfb550170e (diff)
textgreek (9apr11)
git-svn-id: svn://tug.org/texlive/trunk@22047 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/textgreek')
-rw-r--r--Master/texmf-dist/source/latex/textgreek/textgreek.dtx517
1 files changed, 374 insertions, 143 deletions
diff --git a/Master/texmf-dist/source/latex/textgreek/textgreek.dtx b/Master/texmf-dist/source/latex/textgreek/textgreek.dtx
index e4f87630216..5a8f559b0d3 100644
--- a/Master/texmf-dist/source/latex/textgreek/textgreek.dtx
+++ b/Master/texmf-dist/source/latex/textgreek/textgreek.dtx
@@ -20,7 +20,7 @@
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}[2009/09/24]
%<package>\ProvidesPackage{textgreek}
-%<package> [2011/03/30 v0.4 greek symbols in text]
+%<package> [2011/04/08 v0.5 greek symbols in text]
%
%<*batchfile>
\begingroup
@@ -56,7 +56,7 @@ and the derived files textgreek.sty and textgreek.pdf
%</batchfile>
%<*driver>
\documentclass[a4paper]{ltxdoc}
-\usepackage{textgreek}[2011/03/30]
+\usepackage{textgreek}[2011/04/08]
\usepackage[american]{babel}
\usepackage{upgreek}
\usepackage{amstext}
@@ -75,7 +75,7 @@ and the derived files textgreek.sty and textgreek.pdf
% \fi
%
% \iffalse\OnlyDescription\fi
-% \CheckSum{329}
+% \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
@@ -99,7 +99,7 @@ and the derived files textgreek.sty and textgreek.pdf
% \DoNotIndex{\#,\$,\%,\&,\@,\\,\{,\},\^,\_,\~,\ } \DoNotIndex{\@ne}
% \DoNotIndex{\advance,\begingroup,\catcode,\closein}
% \DoNotIndex{\closeout,\day,\def,\edef,\else,\empty,\endgroup}
-% \DoNotIndex{\if,\fi}
+% \DoNotIndex{\if,\fi,\iffalse,\iftrue}
% \DoNotIndex{\edef,\csname,\endcsname,\expandafter,\gdef,\xdef}
% \DoNotIndex{\ifcat,\ifmmode,\ifx,\mbox,\noexpand,\protect,\relax}
% \DoNotIndex{\texorpdfstring}
@@ -115,7 +115,8 @@ and the derived files textgreek.sty and textgreek.pdf
% \DoNotIndex{\thinspace,\thispagestyle,\topmargin,\ttfamily,\upshape}
% \DoNotIndex{\vbox,\vfil,\voffset,\vsize,\vskip}
% \DoNotIndex{\ce,\char,\curr@fontshape,\DeclareFontEncoding}
-% \DoNotIndex{\DeclareRobustCommand,\f@family,\f@series,\fontencoding}
+% \DoNotIndex{\DeclareRobustCommand,\temp,\tempa,\tempb,\tempc}
+% \DoNotIndex{\tempd,\tempe}
% \DoNotIndex{\fontseries,\providecommand,\renewcommand}
% \DoNotIndex{\RequirePackage,\romannumeral,\usefont}
% \DoNotIndex{\DeclareTextCommandDefault,\@@end}
@@ -127,6 +128,18 @@ and the derived files textgreek.sty and textgreek.pdf
%
% \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
@@ -147,16 +160,18 @@ and the derived files textgreek.sty and textgreek.pdf
% 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$}. {\sf In sans-serif text it is,
-% \textbeta{} vs.\ $\upbeta$.}
+% \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}.
%
-% \tableofcontents
% \section{Usage}
% The following list shows the commands provided by this package. You
% can use these commands in any context.
-% \begin{multicols}{4}
+% \begin{multicols}{3}
% \begin{tabbing}
-% |\textmugreek|\quad\=\textOmega\quad\kill
+% |\straightepsilon|\quad\=\textOmega\quad\kill
% |\textalpha|\>\textalpha\\
% |\textbeta|\>\textbeta\\
% |\textgamma|\>\textgamma\\
@@ -206,78 +221,82 @@ and the derived files textgreek.sty and textgreek.pdf
% |\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 instead of \texttt{cmr/m/n}. 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{artemisia} may also be set by:
+% 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}{
-% {eur/m/n}{U/eur/m/n}
-% {eur/b/n}{U/eur/b/n}
-% {cmr/m/n}{LGR/artemisia/m/n}
-% {cmr/b/n}{LGR/artemisia/b/n}
-% {cmr/bx/n}{LGR/artemisia/bx/n}
-% {lmr/m/n}{LGR/artemisia/m/n}
-% {lmr/b/n}{LGR/artemisia/b/n}
-% {lmr/bx/n}{LGR/artemisia/bx/n}
-% {phv/m/n}{U/psy/m/n}}
+% {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 substitute. Fonts not listed
-% 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{Package Options}
-% You can choose the greek fonts used.
-% \begin{description}
-% \item[cbgreek] use the default fonts. This is the
-% default. Font sample: {\usefont{LGR}{cmr}{m}{n}
-% \makeatletter\renewcommand*{\textgreekfontmap}{}
-% \makeatother \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}
-% \item[euler] use the Euler fonts as a companion for CM Roman and LM
-% Roman. Font sample:
-% { \usefont{U}{eur}{m}{n} \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}
-% \item[artemisia] use Artemisia fonts as a companion for CM Roman and
-% LM Roman. Font sample
-% {\makeatletter\renewcommand*{\textgreekfontmap}{}
-% \makeatother \usefont{LGR}{artemisia}{m}{n} \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}
-% \end{description}
+% 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}
%
-% \section{Compatibility}
+% 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.\
@@ -286,14 +305,23 @@ and the derived files textgreek.sty and textgreek.pdf
%
% 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|, but
-% I use |\text| from the package \textsf{amstext},
-% e.g. |$\lambda_{\text{\textbeta}}$|: $\lambda_{\text{\textbeta}}$.
+% 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{Examples}
+% \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.
%
-% {\usefont{T1}{phv}{m}{n} Using Helvetica, the font ``Symbol'' is
-% used for greek letters. Let's try \textgamma{}.}
+% 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
@@ -327,39 +355,40 @@ and the derived files textgreek.sty and textgreek.pdf
% \begin{macrocode}
\DeclareOption{cbgreek}{%
\renewcommand*{\textgreekfontmap}{%
-{eur/m/n}{U/eur/m/n}
-{eur/b/n}{U/eur/b/n}
-{phv/m/n}{U/psy/m/n}}}%
+{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}{%
-{eur/m/n}{U/eur/m/n}
-{eur/b/n}{U/eur/b/n}
-{cmr/m/n}{U/eur/m/n}
-{cmr/b/n}{U/eur/b/n}
-{cmr/bx/n}{U/eur/b/n}
-{lmr/m/n}{U/eur/m/n}
-{lmr/b/n}{U/eur/b/n}
-{lmr/bx/n}{U/eur/b/n}
-{phv/m/n}{U/psy/m/n}}}%
+{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/m/n}{U/eur/m/n}
-{eur/b/n}{U/eur/b/n}
-{cmr/m/n}{LGR/artemisia/m/n}
-{cmr/b/n}{LGR/artemisia/b/n}
-{cmr/bx/n}{LGR/artemisia/bx/n}
-{lmr/m/n}{LGR/artemisia/m/n}
-{lmr/b/n}{LGR/artemisia/b/n}
-{lmr/bx/n}{LGR/artemisia/bx/n}
-{phv/m/n}{U/psy/m/n}}}%
+ {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}
-% Initialize |\textgreekfontmap|, set the default option and process
-% the options.
% \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}
@@ -367,45 +396,62 @@ and the derived files textgreek.sty and textgreek.pdf
\PackageInfo{textgreek}{Loaded fontmap: \textgreekfontmap.}
% \end{macrocode}
% \end{macro}
-% \subsection{Font substitutions}
-% \begin{macro}{\textgreek@substfont}
-% Substitute a font.
+% \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{\usefont{#1}{#2}{#3}{#4}}%
-\def\textgreek@skipencoding#1/#2\relax{#2}%
-\def\textgreek@substfont#1#2{%
-\begingroup\edef\tempa{#1}\edef\tempb{\curr@fontshape}%
-\edef\tempc{\expandafter\textgreek@skipencoding\tempb\relax}%
-\def\spit##1##2\endgroup{\fi\endgroup##1}%
-\ifx\tempa\tempc\spit{\expandafter\textgreek@setfont #2\relax}\fi\endgroup}%
+\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}
-% \end{macro}
-% \begin{macro}{\textgreek@substfonts}
% \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}
-\newcommand{\textgreeksubstfonts}[1]{%
- \ifx#1\textgreek@eof%
- \else\textgreek@return{\textgreek@substfonts#1\textgreek@eof}%
- \fi\textgreek@eof}
-\def\textgreek@substfonts#1#2#3\textgreek@eof{%
- \textgreek@substfont{#1}{#2}%
- \def\textgreek@temp{#3}\ifx\textgreek@temp\textgreek@eof\else%
- \textgreek@return{\textgreek@substfonts#3\textgreek@eof}%
- \fi\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 setfont}
+% \changes{v0.2}{2010/10/20}{apply font replacements before
+% \textbackslash selectfont}
% \begin{macrocode}
\newcommand*{\textgreekfont}{%
\fontencoding{LGR}%
- \expandafter\textgreeksubstfonts\expandafter{\textgreekfontmap}%
- \selectfont}%
+ \edef\textgreek@fontmap{\textgreekfontmap}%
+ \expandafter\textgreek@findfont\textgreek@fontmap\textgreek@eof%
+ \selectfont%
+}%
% \end{macrocode}
% \end{macro}
% \begin{macro}{\lgrtoeuler}
@@ -430,7 +476,14 @@ and the derived files textgreek.sty and textgreek.pdf
\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%
-\if 0#1\textgreek@return{\char18}\fi% temperature style theta
+% \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%
@@ -452,12 +505,7 @@ and the derived files textgreek.sty and textgreek.pdf
% {\usefont{U}{eur}{m}{n}\char34}. Use {\usefont{U}{eur}{m}{n}\char34} by default.
% \begin{macrocode}
\if e#1\textgreek@return{\char34}\fi%
-% \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}\char35} by default.
-% \begin{macrocode}
-\if j#1\textgreek@return{\char35}\fi%
+\if 0#1\textgreek@return{\char35}\fi%
% \end{macrocode}
% Euler provides two variants of phi:
% {\usefont{U}{eur}{m}{n}\char30} and
@@ -465,8 +513,73 @@ and the derived files textgreek.sty and textgreek.pdf
% \begin{macrocode}
\if f#1\textgreek@return{\char39}\fi%
% \end{macrocode}
-% Use the default font for the LGR encoding, if the character is not
-% present in Euler.
+% 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}%
@@ -474,7 +587,7 @@ and the derived files textgreek.sty and textgreek.pdf
% \end{macro}
% \begin{macro}{\TextGreek}
% Produce a greek letter using the correct font. If the font is
-% Euler, convert to Euler's generic font encoding U.
+% 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}}
@@ -482,9 +595,13 @@ and the derived files textgreek.sty and textgreek.pdf
\DeclareRobustCommand*{\TextGreek}[1]{%
\begingroup%
\textgreekfont%
-\def\tempa{eur}\edef\tempb{\f@family}%
-\ifx\tempa\tempb\expandafter\lgrtoeuler\expandafter#1\else#1\noboundary\fi%
-\endgroup}
+\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}
@@ -493,7 +610,7 @@ and the derived files textgreek.sty and textgreek.pdf
% \begin{macrocode}
\newcommand*{\DeclareTextGreekSymbol}[2]{%
\expandafter\DeclareTextCommandDefault\csname text#1\endcsname%
-{\TextGreek#2}}%
+{\TextGreek{#2}}}%
% \end{macrocode}
% \end{macro}
% \begin{macrocode}
@@ -511,8 +628,8 @@ and the derived files textgreek.sty and textgreek.pdf
% \end{macrocode}
% \begin{macro}{\textmu}
% \changes{v0.4}{2010/11/07}{Don't override \textsf{textcomp}'s
-% textmu} \changes{v0.4}{2010/11/07}{Don't provide
-% \texttt{\textbackslash textmicro} anymore.}
+% \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
@@ -530,7 +647,21 @@ and the derived files textgreek.sty and textgreek.pdf
\DeclareTextGreekSymbol{omikron}{o}
\DeclareTextGreekSymbol{pi}{p}
\DeclareTextGreekSymbol{rho}{r}
-\DeclareTextGreekSymbol{sigma}{s}
+% \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}
@@ -562,6 +693,106 @@ and the derived files textgreek.sty and textgreek.pdf
\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{*************************************************************}