diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /language/greek/greek-fontenc/alphabeta-doc.tex |
Initial commit
Diffstat (limited to 'language/greek/greek-fontenc/alphabeta-doc.tex')
-rw-r--r-- | language/greek/greek-fontenc/alphabeta-doc.tex | 461 |
1 files changed, 461 insertions, 0 deletions
diff --git a/language/greek/greek-fontenc/alphabeta-doc.tex b/language/greek/greek-fontenc/alphabeta-doc.tex new file mode 100644 index 0000000000..e9daa7c5f1 --- /dev/null +++ b/language/greek/greek-fontenc/alphabeta-doc.tex @@ -0,0 +1,461 @@ +% alphabeta-doc: Documentation and tests for alphabeta.sty +% ******************************************************** +% +% :Copyright: © 2010, 2015 Günter Milde +% :Licence: 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 any later version. +% +% This LaTeX document can be compiled with 8-bit TeX (latex or pdflatex), +% XeTeX (xelatex), or LuaTeX (lualatex). +% As it contains tests for the different limitations, there will be warnings +% in the log, which can be safely ignored. + +\documentclass{article} + +\usepackage[unicode,colorlinks=true,linkcolor=blue]{hyperref} +\usepackage{bookmark} +\hypersetup{colorlinks=true,linkcolor=blue,urlcolor=blue,pdfencoding=auto} +% \usepackage{parskip} +\usepackage{amsmath} +\frenchspacing + +\newcommand{\setupUnicodeFonts}{ + \usepackage[no-math,tuenc]{fontspec} + \setmainfont{Linux Libertine O} + \setsansfont{Linux Biolinum O} + \setmonofont{Liberation Mono}[Scale=MatchLowercase] + \usepackage[libertine,slantedGreek]{newtxmath} + % \usepackage{unicode-math} % package conflict +} +\newcommand{\setupTeXFonts}{ + \usepackage[LGR,T1]{fontenc} + \usepackage{textcomp} + \usepackage{lmodern} + % \usepackage{libertine} + % \usepackage{gfsdidot} + % \usepackage{kerkis} + % \usepackage{newtxtext,newtxmath} + % \usepackage{substitutefont} + % \substitutefont{LGR}{\rmdefault}{artemisia} + \usepackage{isomath} +} +\ifdefined\XeTeXrevision + \newcommand{\engine}{XeTeX} + \setupUnicodeFonts +\else\ifdefined\luatexversion + \newcommand{\engine}{LuaTeX} + \setupUnicodeFonts +\else + \newcommand{\engine}{8-bit TeX} + \usepackage[utf8]{inputenc} + \setupTeXFonts +\fi\fi + +% load alphabeta after math setup and encoding setup! +% \usepackage{alphabeta}[2015/08/08] +\usepackage[normalize-symbols]{alphabeta}[2015/08/08] + +% Fallback macros: + +% Avoid warnigns with PDF string generation for "alphabeta" commands: +% let \TextOrMath (from fixltx2e) return the "text" argument: +\pdfstringdefDisableCommands{\let\TextOrMath\@firstoftwo} + +% varstigma only defined with 8-bit LGR fonts +\providecommand*{\varstigma}{$\oslash$} +% varkappa, only defined with newtxmath, other var... only with unicode-math +\providecommand*{\varkappa}{\oslash} +\providecommand*{\varbeta}{\oslash} +\providecommand*{\varTheta}{\oslash} + +% print current font encoding: +\makeatletter +\newcommand{\currentEncoding}{\f@encoding} +\makeatother + +\begin{document} + +\title{The \emph{alphabeta} package} +\author{Günter Milde} +\maketitle + +\begin{abstract}\noindent +The \emph{alphabeta} package makes the standard macros for Greek letters in +mathematical mode also available in text mode. This way, you can input Greek +letters ``by name'' everywhere in the document. The mode determines whether +the characters are taken from the text or math font. + +With 8-bit TeX and +\emph{\href{http://www.ctan.org/pkg/greek-inputenc}{greek-inputenc}}, +literal Unicode charactes can also be used in mathematical mode. +\end{abstract} + +% \tableofcontents + +\section{Requirements} + +The \emph{alphabeta} package depends on +\emph{\href{textalpha-doc.pdf}{textalpha}} (both are part of +\emph{\href{http://www.ctan.org/pkg/greek-fontenc}{greek-fontenc}}). +It can be used under 8-bit TeX as well as XeTeX/LuaTeX (this document is +typeset with \engine). Depending on the converter and fonts, different +\hyperref[sec:limitations]{limitations} apply. + +The package conflicts with +\href{http://www.ctan.org/pkg/unicode-math}{\emph{unicode-math}}. + +It also fails, if the \texttt{utf8x} input encoding is selected (interface +to the \href{http://www.ctan.org/pkg/ucs}{\emph{ucs}} package using a +non-compatible definition of \verb+\DeclareUnicodeCharacter+). + +\section{Usage} + +Load this package in the preamble of your document (after font and math +setup) with +\begin{verbatim} + \usepackage{alphabeta} +\end{verbatim} +% +Now you can write a single Greek symbol (like \Psi{} or \mu{}) or +a \lambda\omicron\gamma\omicron\varsigma{} in non-Greek text as well as +ISO-conforming formulas with upright symbols for constants +like $A = \text{\pi} r^2$ (instead of $A = \pi r^2$).% +\footnote{The + \href{http://mirrors.ctan.org/macros/latex/contrib/isomath/isomath.html}% + {\emph{isomath} documentation} describes more alternatives for upright + Greek symbols in math mode.} + +Just like Latin letters, the Greek counterparts are by default italic in +math mode% +\footnote{Capital Greek letters are upright in TeX unless a package selects +the ``ISO'' math-style. See the +\href{http://mirrors.ctan.org/macros/latex/contrib/isomath/isomath.html}% +{\emph{isomath} documentation} for a detailled discussion of math-styles.} +and upright in text: + +\begin{quote} + Text: L \Gamma{} l \gamma, + mathematics: $ L \ \Gamma \ l \ \gamma $ +\end{quote} +% +See the source of this document \url{alphabeta-doc.tex} for a setup and +usage example. + + +\subsection{options} + +Package options are passed to the \href{alphabeta-doc.pdf}{\emph{alphabeta}} +package. Example call with options: + +\begin{verbatim} + \usepackage[normalize-symbols,keep-semicolon]{alphabeta} +\end{verbatim} + +\texttt{normalize-symbols} merges ``letters'' and ``symbol`` variants of +some Greek letters to the ``letter'' character: +\footnote{The normalize-symbols option was added in version 0.13 (2015-08-03). + Unicode input of the symbol variants requires at least version~1.6 + (2015-08-05) of + \emph{\href{http://www.ctan.org/pkg/greek-inputenc}{greek-inputenc}}.} +Without this option, the symbol variant characters cannot be used in text, +because they are not supported by 8-bit Greek fonts (LGR encoding). +The \texttt{normalize-symbols} option is ignored, if you compile the +document with XeTeX or LuaTeX using Unicode fonts. +\textbf{Attention}: Be careful in cases where the distinction between the +symbol variants may be important (e.g. in a mathematical or scientific +context). Use XeTeX/LuaTeX with Unicode fonts or the respective characters +in mathematical mode (e.g. $\pi$ vs. $\varpi$). + +The option \texttt{keep-semicolon} prevents conversion of the semicolon to +an \emph{ano teleia} (see \emph{\href{textalpha-doc.pdf}{textalpha-doc}}). + +\subsection{symbol variants} + +Mathematical notation uses variant shapes of some Greek letters as +additional symbols. The variations have no syntactic meaning in Greek text +and text fonts may use the variant shapes in place of the “regular” ones as +a stylistic choice. + +Unicode defines separate code points for the symbol variants. TeX supports +some of the variant shape symbols in mathematical mode, but its concept of +“standard” vs. “variant” symbols differs from the distinction between +“GREEK LETTER ...” vs. “GREEK ... SYMBOL” in the Unicode standard. +See \href{greek-euenc-doc.pdf}{greek-euenc-doc}. + +The \emph{alphabeta} package defines generic macros for these variants that +are short forms of the set defined in \texttt{greek-euenc.def}: +\begin{quote} + \verb|\<name>| selects the Unicode GREEK LETTER ... variant, + + \verb|\<name>symbol| selects the Unicode + GREEK ... SYMBOL variant, + + \verb|\var<name>| selects the variant + shape according to TeX' mathematical mode +\end{quote} +See Table \ref{tab:symbol-variant-macros} for the full list. + +\section{Limitations \label{sec:limitations}} + +With 8-bit TeX, the limitations described in the +\href{textalpha-doc.pdf}{textalpha documentation} apply. See also the tests +in section \hyperref[sec:8-bit-limitations]{8 bit limitations}. + +With XeTeX/LuaTeX and Unicode fonts, literal Unicode characters cannot be +used in formulas (the log file reports missing characters) +This is a generic TeX limitation which \emph{alphabeta} overcomes if used +under 8-bit TeX. Under XeTeX/LuaTeX it may be lifted using the +\href{http://www.ctan.org/pkg/unicode-math}{\emph{unicode-math}} +package, but unfortunately, \emph{alphabeta} conflicts +with \emph{unicode-math}. + + +\section{Tests and examples} + +\subsection{Greek alphabet} + +Greek letters via generic ``name'' macros without language/font-encoding +switch: + +\begin{quote} + \Alpha{} \Beta{} \Gamma{} \Delta{} \Epsilon{} \Zeta{} \Eta{} \Theta{} + \Iota{} \Kappa{} \Lambda{} \Mu{} \Nu{} \Xi{} \Omicron{} \Pi{} \Rho{} + \Sigma{} \Tau{} \Upsilon{} \Phi{} \Chi{} \Psi{} \Omega{} + \\ + \alpha{} \beta{} \gamma{} \delta{} \epsilon{} \zeta{} \eta{} \theta{} + \iota{} \kappa{} \lambda{} \mu{} \nu{} \xi{} \omicron{} \pi{} \rho{} + \sigma{} \varsigma{} \tau{} \upsilon{} \phi{} \chi{} \psi{} \omega{} + \\ + \digamma{} \Digamma{} \stigma{} \varstigma{}% + \footnote{There is no separate Unicode code point for a stigma variant + symbol, \texttt{\textbackslash varstigma} is not defined with + Xe/LuaTeX and similar to \texttt{\textbackslash stigma} in some fonts.} + \koppa{} \qoppa{} \Qoppa{} + \Stigma{} \Sampi{} \sampi{} +\end{quote} + +Greek letters via Unicode input without language/font-encoding switch: + +\begin{quote} + Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω\\ + α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ ς τ υ φ χ ψ ω\\ + ϝ Ϝ ϛ ϟ ϙ Ϙ Ϛ Ϡ ϡ +\end{quote} + +\subsection{Diacritics} + +Accent macros are set up for use with the generic macros by definition of +``TextComposite'' commands. + +Diacritics (except the dialytika) should placed +before capital letters and dropped with MakeUppercase: + +\begin{quote} +\ensuregreek{ +\<{\alpha} \>{\epsilon} \"'{\iota} \>`{\eta} +\'<{\omicron} \~<{\upsilon} \~>{\omega} +\\ +\<{\Alpha} \>{\Epsilon} \'{\Iota} \>`{\Eta} +\'<{\Omicron} \~<{\Upsilon} \~>{\Omega} +\\ +\MakeUppercase{% + \<{\alpha} \>{\epsilon} \"'{\iota} \>`\eta{} + \'<{\omicron} \~<{\upsilon} \~>{\omega} +}} +\end{quote} + + +\subsection{normalize-symbols} + +The \texttt{normalize-symbols} option merges ``letters'' and ``symbol`` +variants of some Greek letters to the ``letter'' character. It is ignored, +if the document uses Unicode fonts and is compiled with XeTeX or LuaTeX. +(This document is compiled using \engine.) +\begin{quote} + This quote uses both variants for beta (β|ϐ), theta (θ|ϑ), phi (φ|ϕ), pi + (π|ϖ), kappa (κ|ϰ), rho (ρ|ϱ), Theta (Θ|ϴ), and epsilon (ε|ϵ) in the LaTeX + source.% +\end{quote} + + +\subsection{\ensuregreek{% + Ἑλληνικά (\<\Epsilon\lambda\lambda\eta\nu\iota\kappa\'\alpha{})} + in PDF strings} + +With the alphabeta package, you get Greek letters in both, the document body +and PDF metadata generated by hyperref if the input uses Unicode literals or +macros. Wrapping in \verb+\ensuregreek+ ensures the right placement of the +accents and breathings (before, not above capital letters). With LICR input +(accent macros + symbol macros), non-standard diacritics are missing in the +PDF data, as hyperref's PU encoding currently does not support polytonic +Greek. (Here, the dasia is dropped at the start of the word in parentheses in +the PDF toc. The warning ``\texttt{Glyph not defined in PU encoding, +removing `\textbackslash<' on input line 145.}'' is written to the log.) + +Warnings like +\begin{verbatim} + Token not allowed in a PDF string (Unicode): + removing `\textbackslash TextOrMath ' on input line 145. +\end{verbatim} +can be ignored or avoided with the preamble code: + +\begin{verbatim} + \pdfstringdefDisableCommands{\let\TextOrMath\@firstoftwo} +\end{verbatim} + + +\subsection{Greek in math $\Gamma = \sin\alpha / \cos{\beta}$} + +In the main document, Greek in math mode should work as usual: + +\[\Gamma = \frac{\sin\alpha}{\cos{\beta}}. +\] + +Greek letters and symbols in math input as macro (there are no math macros +for Greek letters wich exist with similar shape in the Latin alphabet): +\begin{align*} + & + % \Alpha{} \Beta{} + \Gamma{} \Delta{} + % \Epsilon{} \Zeta{} \Eta{} + \Theta{} + % \Iota{} \Kappa{} + \Lambda{} + % \Mu{} \Nu{} + \Xi{} + % \Omicron{} + \Pi{} + % \Rho{} + \Sigma{} + % \Tau{} + \Upsilon{} \Phi{} + % \Chi{} + \Psi{} \Omega{} +\\& + \alpha{} \beta{} \gamma{} \delta{} \epsilon{} \zeta{} \eta{} \theta{} + \iota{} \kappa{} \lambda{} \mu{} \nu{} \xi{} + % \omicron{} + \pi{} \rho{} + \sigma{} \varsigma{} \tau{} \upsilon{} \phi{} \chi{} \psi{} \omega{} +\\& + \vartheta \varphi \varpi \digamma{} \varrho \varepsilon +\end{align*} + +PDF strings do not know math mode. The content of a formula or equation is +evaluated in text mode with non-valid commands discarded (and warnings +written to the log). This works resonably well for simple formulas (but not, +e.g., for super-/subscripts). With the \emph{alphabeta} package, it works +also for Greek letters. + +\subsection{Greek Unicode characters in math (only under 8-bit TeX)} + +With the \texttt{utf8} option of \emph{inputenc} and +\href{http://www.ctan.org/pkg/greek-inputenc}{\emph{greek-inputenc}}, +literal Greek Unicode characters are supported also in +mathematical mode: +\[ + Γ = \frac{\sin α}{\cos β}. +\] +Greek letters and symbols in math input as Unicode literals: +\begin{align*} + \ifdefined\DeclareUnicodeCharacter + & Γ ΔΘΛΞΠΣΥ ΦΨ Ω \\ + & αβγδεζηθικλμνξπρσςτυφχψω \\ + & ϑϕϖϝϱϵ + \else + \text{This does not work with XeTeX/LuaTeX (unless in 8-bit emulation + mode).} + \fi +\end{align*} +The ``normal'' vs. ``variant'' shape of phi and epsilon is inverted when using +traditional makros or Unicode letter vs. symbol characters respectively. +This is to keep backwards compatibility of the math macros as well +as consistent input-output mapping for Unicode in text and math. +It corresponds to the behaviour of +\href{http://www.ctan.org/pkg/unicode-math}{\emph{unicode-math}} +with the default option \texttt{vargreek-shape=TeX}. + +\subsection{8-bit limitations \label{sec:8-bit-limitations}} + +These limitations are lifted, if the document is compiled with XeTeX/LuaTeX. + +\begin{itemize} + +\item Composition of diacritics (like \verb+\>\'+) fails: + \<{\alpha} \>{\epsilon} \"'{\iota} \>`\eta{} + \'<{\omicron} \~<{\upsilon} \~>{\omega} + + Simple diacritics and long names (like \verb+\accdasiaoxia+) work in + any font encoding, however they do not select precomposed characters + (the difference becomes obvious if you drag-and-drop text from the PDF + version of this document): + % + \ensuregreek{\<'\alpha{} \accdasia\acctonos\alpha{} \accdasiaoxia\alpha{} + (\currentEncoding)} vs. \accdasiaoxia\alpha{} (\currentEncoding) + +\item MakeUppercase fails with composite diacritics in other font encodings. + % \MakeUppercase{% + % \<\alpha{} \>\epsilon{} \'\iota{} \`\eta{} \~\upsilon{} + % } + +\item There is no kerning between Greek letters, if the font encoding does not + support Greek: compare \ensuregreek{\Alpha\Upsilon\Alpha + (\currentEncoding)} to \Alpha\Upsilon\Alpha{} (\currentEncoding). Because + of this (and for proper hyphenation), use of the Babel package and + correct language setting is recommended for Greek quotes. + +\end{itemize} + +The \verb+\ensuregreek+ macro ensures that the argument is typeset with a +font encoding supporting Greek. This keeps kerning (if the kerning pair is +inside the argument, \ensuregreek{\Alpha\"\Upsilon\Alpha}), and allows +combining of accent macros where pre-composed characters are selected +(\ensuregreek{\<'\alpha}). + +\begin{table}[bp] + \centering + \begin{tabular}{lcc} + \hline + macro & text & math \\ + \hline + \verb$\pi$ & \pi & $\pi$ \\ + \verb$\varpi$ & \varpi & $\varpi$ \\ + \verb$\pisymbol$ & \pisymbol & $\pisymbol$ \\ + \hline + \verb$\rho$ & \rho & $\rho$ \\ + \verb$\varrho$ & \varrho & $\varrho$ \\ + \verb$\rhosymbol$ & \rhosymbol & $\rhosymbol$ \\ + \hline + \verb$\theta$ & \theta & $\theta$ \\ + \verb$\vartheta$ & \vartheta & $\vartheta$ \\ + \verb$\thetasymbol$ & \thetasymbol & $\thetasymbol$ \\ + \hline + \verb$\epsilon$ & \epsilon & $\epsilon$ \\ + \verb$\varepsilon$ & \varepsilon & $\varepsilon$ \\ + \verb$\epsilonsymbol$ & \epsilonsymbol & $\epsilonsymbol$ \\ + \hline + \verb$\phi$ & \phi & $\phi$ \\ + \verb$\varphi$ & \varphi & $\varphi$ \\ + \verb$\phisymbol$ & \phisymbol & $\phisymbol$ \\ + \hline + \verb$\beta$ & \beta & $\beta$ \\ + \verb$\varbeta$ & \varbeta & $\varbeta$ \\ + \verb$\betasymbol$ & \betasymbol & $\betasymbol$ \\ + \hline + \verb$\kappa$ & \kappa & $\kappa$ \\ + \verb$\varkappa$ & \varkappa & $\varkappa$ \\ + \verb$\kappasymbol$ & \kappasymbol & $\kappasymbol$\\ + \hline + \verb$\Theta$ & \Theta & $\Theta$ \\ + \verb$\varTheta$ & & $\varTheta$ \\ + \verb$\Thetasymbol$ & \Thetasymbol & \\ + \hline + \end{tabular} + \caption{Macros for Greek symbol variants ($\oslash$ = symbol missing). + With 8-bit TeX and the \texttt{normalize-symbols} option, the output for + both variants in text mode is the same (8-bit Greek text fonts contain + only one symbol variant). \label{tab:symbol-variant-macros}} +\end{table} + +\end{document} |