summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/lgrx/alphabeta-test.tex
blob: c71bc56b2ef03f7db29f117c0371b145fb1394e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
\documentclass{article}
\usepackage{cmap} % fix search and cut-and-paste in PDF
\usepackage{parskip}
\usepackage{textcomp}
\usepackage{amsmath}
\usepackage{fixmath}
\usepackage{lmodern}
% \usepackage{gfsdidot}
% \usepackage{kerkis}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\hypersetup{colorlinks=true,linkcolor=blue,urlcolor=blue,pdfencoding=auto}
\usepackage{bookmark}
% No section numbers but PDF bookmarks for sections
\setcounter{secnumdepth}{0}

% load alphabeta after math setup and encoding setup!
\usepackage{alphabeta}

\begin{document}

\title{The \emph{alphabeta} package}
\author{Günter Milde}
\maketitle

With the \emph{alphabeta} package, you can write Greek letters ``by name''
or as literal Unicode characters in both, ``text'' and ``math'' mode. The
mode determines whether the letters are taken from the text or math font.
Just like Latin letters, the Greek counterparts are by default italic in
math mode (capital letters upright without \emph{fixmath} or
\emph{\href{http://www.ctan.org/pkg/isomath}{isomath}}) and upright in text:

\begin{quote}
  Text: L \Gamma{} l \gamma,
  emphasized text: \emph{L \Gamma{} l \gamma},
  mathematics: $ L \ \Gamma \ l \ \gamma $
\end{quote}

This makes it easy to 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$.

\section{Tests and examples}

\subsection{Greek alphabet}

Greek letters via Latin transscription in LGR font encoding:

\begin{quote}
  \ensuregreek{A B G D E Z H J I K L M N X O P R S T U F Q Y W}\\
  \ensuregreek{a b g d e z h j i k l m n x o p r s c t u f q y w}
\end{quote}

Greek letters via default macros in LGR font encoding:

\begin{quote} \ensuregreek{
  \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{} \koppa{} \qoppa{} \Qoppa{}
  \Stigma{} \Sampi{} \sampi{}
  }
\end{quote}

Greek letters via default macros in other font encoding (here T1):

\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{} \koppa{} \qoppa{} \Qoppa{}
  \Stigma{} \Sampi{} \sampi{}
\end{quote}

Greek letters via Unicode input in T1 font encoding:

\begin{quote}
  Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω\\
  α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ ς τ υ φ χ ψ ω\\
  ϝ Ϝ ϛ ϟ ϙ Ϙ Ϛ Ϡ ϡ  
\end{quote}

Greek letters in math (with \emph{fixmath}):
(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{}
  \, \digamma{}
\end{align*}

Unicode input in math mode:
\begin{align*} & Γ ΔΘΛΞΠΣΥ ΦΨ Ω \\
	       & αβγδεζηθικλμνξπρσςτ υφχψω \, ϝ
\end{align*}

\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 (dasia dropped at the start of the heading in the PDF toc).

The generic macros result in warnings like
%
\begin{verbatim}
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
(hyperref)                removing `\TextOrMath ' on input line 109.


Package hyperref Warning: Token not allowed in a PDF string (Unicode):
(hyperref)                removing `\mathlambda' on input line 109.
\end{verbatim}
%
that can savely be ignored.

\subsection{Greek in math $\sin^2\alpha$}

PDF strings do not know math mode. The content of a formula or equation is
evaluated in text mode with non-valid commands discarded. This works for
simple formulas (but not for super-/subscripts). With the \emph{alphabeta}
package, it works also for Greek letters (with the abovementionend warnings
from hyperref).

In the main document, Greek continues to work as usual:

\[\Gamma = \frac{\sin\alpha}{\cos{\beta}}.
\]

Literal Unicode characters in mathematics are currently not supported.
% $sin^2 α$ is printed with latin letter a: sin²a


\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:

\ensuregreek{
\<{\alpha} \>{\epsilon} \"'{\iota} \>`{\eta}
\'<{\omicron} \~<{\upsilon} \~>{\omega}
\\
\<{\Alpha} \>{\Epsilon} \"'{\Iota} \>`{\Eta}
\'<{\Omicron} \~<{\Upsilon} \~>{\Omega}
\\
\MakeUppercase{%
 \<{\alpha} \>{\epsilon} \"'{\iota} \>`\eta{}
 \'<{\omicron} \~<{\upsilon} \~>{\omega}
}}

\subsection{Limitations}

If the current font encoding is not LGR, the same limitation like with
\emph{textalpha} apply:

\begin{itemize}

\item Composition of diacritics (like \verb+\>\'+) fails:
    
      \<{\alpha} \>{\epsilon} \"'{\iota} \>`\eta{}
      \'<{\omicron} \~<{\upsilon} \~>{\omega}

      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{}}
      (LGR) vs. \accdasiaoxia\alpha{} (T1)

\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 is not
      LGR: compare \ensuregreek{AUA} (LGR) to \Alpha\Upsilon\Alpha (T1).
      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+ TextCommandDefault 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 iterative accent macros where pre-composed characters are
selected (\ensuregreek{\<'\alpha}).

\end{document}