From 094823c890b3cea700a2ed9c3678f49f9eb4e1eb Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 11 Apr 2011 18:00:11 +0000 Subject: textgreek (9apr11) git-svn-id: svn://tug.org/texlive/trunk@22047 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/latex/textgreek/textgreek.dtx | 517 +++++++++++++++------ 1 file changed, 374 insertions(+), 143 deletions(-) (limited to 'Master/texmf-dist/source/latex/textgreek') 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 %\NeedsTeXFormat{LaTeX2e}[2009/09/24] %\ProvidesPackage{textgreek} -% [2011/03/30 v0.4 greek symbols in text] +% [2011/04/08 v0.5 greek symbols in text] % %<*batchfile> \begingroup @@ -56,7 +56,7 @@ and the derived files textgreek.sty and textgreek.pdf % %<*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{*************************************************************} -- cgit v1.2.3