From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/textgreek/README | 42 ++ macros/latex/contrib/textgreek/textgreek.dtx | 735 +++++++++++++++++++++++++++ macros/latex/contrib/textgreek/textgreek.ins | 78 +++ macros/latex/contrib/textgreek/textgreek.pdf | Bin 0 -> 551711 bytes 4 files changed, 855 insertions(+) create mode 100644 macros/latex/contrib/textgreek/README create mode 100644 macros/latex/contrib/textgreek/textgreek.dtx create mode 100644 macros/latex/contrib/textgreek/textgreek.ins create mode 100644 macros/latex/contrib/textgreek/textgreek.pdf (limited to 'macros/latex/contrib/textgreek') 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 +. + +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 +% . +% +% This work consists of the file textgreek.dtx +% and the derived files textgreek.sty and textgreek.pdf +% \fi +% \iffalse +%\NeedsTeXFormat{LaTeX2e}[2009/09/24] +%\ProvidesPackage{textgreek} +% [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} +% +% \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 +%% . +%% +%% 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 +. + +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 Binary files /dev/null and b/macros/latex/contrib/textgreek/textgreek.pdf differ -- cgit v1.2.3