summaryrefslogtreecommitdiff
path: root/language/greek/greek-fontenc/hyperref-with-greek.tex
diff options
context:
space:
mode:
Diffstat (limited to 'language/greek/greek-fontenc/hyperref-with-greek.tex')
-rw-r--r--language/greek/greek-fontenc/hyperref-with-greek.tex509
1 files changed, 509 insertions, 0 deletions
diff --git a/language/greek/greek-fontenc/hyperref-with-greek.tex b/language/greek/greek-fontenc/hyperref-with-greek.tex
new file mode 100644
index 0000000000..e0c8d94b15
--- /dev/null
+++ b/language/greek/greek-fontenc/hyperref-with-greek.tex
@@ -0,0 +1,509 @@
+\documentclass{article}
+\usepackage[LGR,T1]{fontenc}
+\usepackage{lmodern}
+
+\usepackage[unicode,colorlinks=true,linkcolor=blue]{hyperref}
+% \usepackage{bookmark}
+
+\usepackage[greek,english]{babel}
+\usepackage[normalize-symbols]{alphabeta}
+\usepackage[utf8]{inputenc}
+
+% \pagestyle{headings}
+
+\begin{document}
+
+\title{Greek and hyperref}
+\author{Günter Milde}
+\date{2020/10/30}
+\maketitle
+
+\noindent
+On 2010-11-05, Heiko Oberdiek wrote in comp.text.tex:
+%
+\begin{quote}
+ \textbackslash pdfstringdef (converting TeX code to PDF strings for
+ bookmarks) supports NFSS2 and needs active characters. Encoding
+ stuff based on the internal font machinery of TeX (letters with
+ catcode 11 or 12, ligatures) does not work, because the strings
+ don't reach TeX's stomach.
+\end{quote}
+%
+The \emph{greek-fontenc} package allows input of Greek characters in a way
+that ``reaches TeX's stomach'' and hence works in both, the main document as
+well as in PDF strings (e.g. bookmarks). Hyperref's ``puenc.def`` font
+encoding file defines LICR macros for monotonic Greek (Greek characters of
+the ``Greek and Coptic'' unicode block).
+
+All utf8-encoded literal Unicode characters work in PDF strings. With
+\emph{greek-fontenc} and \emph{greek-inputenc}, this enables use of all
+Greek character in text and PDF strings.
+
+\section{Transcription: \ensuregreek{logos}, \foreignlanguage{greek}{logos}}
+
+\textbackslash{}textgreek + LGR transcription or
+Greek language (babel) + LGR transcription:
+In the PDF-bookmark are Latin letters instead of Greek ones.
+
+
+\section{Macros:
+ \textlambda\textomicron\textgamma\textomicron\textvarsigma{},
+ \lambda\omicron\gamma\omicron\varsigma{},
+ λογος}
+
+\emph{textalpha} package with \textbackslash{}textalpha \ldots
+\textbackslash{}textomega macros or \emph{alphabeta} package with
+\textbackslash{}alpha \ldots \textbackslash{}Omega macros. With 8-bit TeX
+engines (pdflatex), literal Greek Unicode characters are converted to LICR
+Macros, too.
+
+Works, if the \texttt{unicode} or \texttt{pdfencoding=auto} option is given
+to \emph{hyperref}.%
+\footnote{With the ``xpdf'' viewer, Greek letters are not shown
+ in PDF bookmarks.}
+
+The generic short macros from the \emph{alphabeta} package result in
+hyperref warnings. See \href{alphabeta-doc.pdf}{alphabeta-doc.pdf} and
+\href{alphabeta-doc.tex}{alphabeta-doc.tex}
+for details and workarounds.
+
+
+\section{LGR + Macros: \foreignlanguage{greek}{
+ \textlambda\textomicron\textgamma\textomicron\textvarsigma{}}}
+
+LICR-macro input works also if the font encoding is LGR.
+
+\section{%
+ Kerning: \textAlpha\textUpsilon\textLambda{}
+ \ensuregreek{\textAlpha\textUpsilon\textLambda}
+ \foreignlanguage{greek}{\textAlpha\textUpsilon\textLambda}%
+}
+
+Kerning is impossible if the font encoding is switched for every single
+character. To fix this, wrap the Greek part in a command switching to a font
+encoding supporting Greek, either \verb+\ensuregreek{...}+ (with package
+\emph{textalpha} or \emph{Babel}) or \verb+\foreignlanguage{greek}{...}+
+(with \emph{Babel}).
+
+\section{Literal Unicode input}
+The following subsection headings contain all characters from the ``Greek
+and Coptic'' and ``Greek Extended'' Unicode Blocks that are supported by the
+LGR font encoding.
+\subsection{ʹ͵ͺ; ΄ ΅ Ά·ΈΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝ}
+\subsection{ΞΟΠΡΣΤΥΦΧΨΩΪΫϘϚϜϠ}
+Greek and Coptic Unicode block: punctuation and uppercase letters
+
+\subsection{άέήίΰαβγδεζηθικλμν}
+\subsection{ξοπρςστυφχψωϊϋόύώϐϑϕϖϘϙϛϝϟϡ}
+
+Greek and Coptic Unicode block: lowercase letters
+
+\subsection{ἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏ}
+\subsection{ἐἑἒἓἔἕἘἙἚἛἜἝ}
+\subsection{ἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯ}
+\subsection{ἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿ}
+\subsection{ὀὁὂὃὄὅὈὉὊὋὌὍ}
+\subsection{ὐὑὒὓὔὕὖὗὙὛὝὟ}
+\subsection{ὠὡὢὣὤὥὦὧὨὩὪὫὬὭὮὯ}
+\subsection{ὰάὲέὴήὶίὸόὺύὼώ}
+\subsection{ᾀᾁᾂᾃᾄᾅᾆᾇᾈᾉᾊᾋᾌᾍᾎᾏ}
+\subsection{ᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾞᾟ}
+\subsection{ᾠᾡᾢᾣᾤᾥᾦᾧᾨᾩᾪᾫᾬᾭᾮᾯ}
+\subsection{ᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆᾼ᾽ι᾿}
+\subsection{῀῁ῂῃῄῆῇῈΈῊΉῌ῍῎῏}
+\subsection{ῐῑῒΐῖῗῘῙῚΊ῝῞῟}
+\subsection{ῠῡῢΰῤῥῦῧῨῩῪΎῬ῭΅`}
+\subsection{ῲῳῴῶῷῸΌῺΏῼ´῾}
+
+Greek Extended Unicode block: Input as literal precomposed Unicode character
+works fine.
+
+\section{LICR command input}
+
+\subsection{\ensuregreek{
+ \textnumeralsigngreek
+ \textnumeralsignlowergreek
+ { }\ypogegrammeni
+ \texterotimatiko
+ \acctonos{ }
+ \"'{ }
+ \'\textAlpha
+ \textanoteleia
+ \'\textEpsilon
+ \'\textEta
+ \'\textIota
+ \'\textOmicron
+ \'\textUpsilon
+ \'\textOmega
+ \'"\textiota
+ \textAlpha
+ \textBeta
+ \textGamma
+ \textDelta
+ \textEpsilon
+ \textZeta
+ \textEta
+ \textTheta
+ \textIota
+ \textKappa
+ \textLambda
+ \textMu
+ \textNu}}
+\subsection{\ensuregreek{
+ \textXi
+ \textOmicron
+ \textPi
+ \textRho
+ \textSigma
+ \textTau
+ \textUpsilon
+ \textPhi
+ \textChi
+ \textPsi
+ \textOmega
+ \"\textIota
+ \"\textUpsilon
+}}
+
+\subsection{\ensuregreek{
+ \'\textalpha
+ \'\textepsilon
+ \'\texteta
+ \'\textiota
+ \"'\textupsilon
+ \textalpha
+ \textbeta
+ \textgamma
+ \textdelta
+ \textepsilon
+ \textzeta
+ \texteta
+ \texttheta
+ \textiota
+ \textkappa
+ \textlambda
+ \textmu
+ \textnu}}
+\subsection{\ensuregreek{
+ \textxi
+ \textomicron
+ \textpi
+ \textrho
+ \textvarsigma
+ \textsigma
+ \texttau
+ \textupsilon
+ \textphi
+ \textchi
+ \textpsi
+ \textomega
+ \"\textiota
+ \"\textupsilon
+ \'\textomicron
+ \'\textupsilon
+ \'\textomega
+ \textbetasymbol
+ \textthetasymbol
+ \textphisymbol
+ \textpisymbol
+ \textQoppa
+ \textqoppa
+ \textStigma
+ \textstigma
+ \textDigamma
+ \textdigamma
+ \textKoppa
+ \textkoppa
+ \textSampi
+ \textsampi
+}}
+
+
+Currently, there is no hyperref support for LICR input with non-standard
+accents or combined diacritics characters.
+
+\subsection{\ensuregreek{
+ \accpsili\textalpha
+ \accdasia\textalpha
+ \accpsili`\textalpha
+ \accdasia`\textalpha
+ \accpsili'\textalpha
+ \accdasia'\textalpha
+ \~>\textalpha
+ \~<\textalpha
+ \accpsili\textAlpha
+ \accdasia\textAlpha
+ \accpsili`\textAlpha
+ \accdasia`\textAlpha
+ \accpsili'\textAlpha
+ \accdasia'\textAlpha
+ \~>\textAlpha
+ \~<\textAlpha
+}}
+\subsection{\ensuregreek{
+ \accpsili\textepsilon
+ \accdasia\textepsilon
+ \accpsili`\textepsilon
+ \accdasia`\textepsilon
+ \accpsili'\textepsilon
+ \accdasia'\textepsilon
+ \accpsili\textEpsilon
+ \accdasia\textEpsilon
+ \accpsili`\textEpsilon
+ \accdasia`\textEpsilon
+ \accpsili'\textEpsilon
+ \accdasia'\textEpsilon
+}}
+\subsection{\ensuregreek{
+ \accpsili\texteta
+ \accdasia\texteta
+ \accpsili`\texteta
+ \accdasia`\texteta
+ \accpsili'\texteta
+ \accdasia'\texteta
+ \~>\texteta
+ \~<\texteta
+ \accpsili\textEta
+ \accdasia\textEta
+ \accpsili`\textEta
+ \accdasia`\textEta
+ \accpsili'\textEta
+ \accdasia'\textEta
+ \~>\textEta
+ \~<\textEta
+}}
+\subsection{\ensuregreek{
+ \accpsili\textiota
+ \accdasia\textiota
+ \accpsili`\textiota
+ \accdasia`\textiota
+ \accpsili'\textiota
+ \accdasia'\textiota
+ \~>\textiota
+ \~<\textiota
+ \accpsili\textIota
+ \accdasia\textIota
+ \accpsili`\textIota
+ \accdasia`\textIota
+ \accpsili'\textIota
+ \accdasia'\textIota
+ \~>\textIota
+ \~<\textIota
+}}
+\subsection{\ensuregreek{
+ \accpsili\textomicron
+ \accdasia\textomicron
+ \accpsili`\textomicron
+ \accdasia`\textomicron
+ \accpsili'\textomicron
+ \accdasia'\textomicron
+ \accpsili\textOmicron
+ \accdasia\textOmicron
+ \accpsili`\textOmicron
+ \accdasia`\textOmicron
+ \accpsili'\textOmicron
+ \accdasia'\textOmicron
+}}
+\subsection{\ensuregreek{
+ \accpsili\textupsilon
+ \accdasia\textupsilon
+ \accpsili`\textupsilon
+ \accdasia`\textupsilon
+ \accpsili'\textupsilon
+ \accdasia'\textupsilon
+ \~>\textupsilon
+ \~<\textupsilon
+ \accdasia\textUpsilon
+ \accdasia`\textUpsilon
+ \accdasia'\textUpsilon
+ \~<\textUpsilon
+}}
+\subsection{\ensuregreek{
+ \accpsili\textomega
+ \accdasia\textomega
+ \accpsili`\textomega
+ \accdasia`\textomega
+ \accpsili'\textomega
+ \accdasia'\textomega
+ \~>\textomega
+ \~<\textomega
+ \accpsili\textOmega
+ \accdasia\textOmega
+ \accpsili`\textOmega
+ \accdasia`\textOmega
+ \accpsili'\textOmega
+ \accdasia'\textOmega
+ \~>\textOmega
+ \~<\textOmega
+}}
+\subsection{\ensuregreek{
+ \accvaria\textalpha
+ \accoxia\textalpha
+ \accvaria\textepsilon
+ \accoxia\textepsilon
+ \accvaria\texteta
+ \accoxia\texteta
+ \accvaria\textiota
+ \accoxia\textiota
+ \accvaria\textomicron
+ \accoxia\textomicron
+ \accvaria\textupsilon
+ \accoxia\textupsilon
+ \accvaria\textomega
+ \accoxia\textomega
+}}
+\subsection{\ensuregreek{
+ \accpsili\textalpha\ypogegrammeni
+ \accdasia\textalpha\ypogegrammeni
+ \accpsili`\textalpha\ypogegrammeni
+ \accdasia`\textalpha\ypogegrammeni
+ \accpsili'\textalpha\ypogegrammeni
+ \accdasia'\textalpha\ypogegrammeni
+ \~>\textalpha\ypogegrammeni
+ \~<\textalpha\ypogegrammeni
+ \accpsili\textAlpha\ypogegrammeni
+ \accdasia\textAlpha\ypogegrammeni
+ \accpsili`\textAlpha\ypogegrammeni
+ \accdasia`\textAlpha\ypogegrammeni
+ \accpsili'\textAlpha\ypogegrammeni
+ \accdasia'\textAlpha\ypogegrammeni
+ \~>\textAlpha\ypogegrammeni
+ \~<\textAlpha\ypogegrammeni
+}}
+\subsection{\ensuregreek{
+ \accpsili\texteta\ypogegrammeni
+ \accdasia\texteta\ypogegrammeni
+ \accpsili`\texteta\ypogegrammeni
+ \accdasia`\texteta\ypogegrammeni
+ \accpsili'\texteta\ypogegrammeni
+ \accdasia'\texteta\ypogegrammeni
+ \~>\texteta\ypogegrammeni
+ \~<\texteta\ypogegrammeni
+ \accpsili\textEta\ypogegrammeni
+ \accdasia\textEta\ypogegrammeni
+ \accpsili`\textEta\ypogegrammeni
+ \accdasia`\textEta\ypogegrammeni
+ \accpsili'\textEta\ypogegrammeni
+ \accdasia'\textEta\ypogegrammeni
+ \~>\textEta\ypogegrammeni
+ \~<\textEta\ypogegrammeni
+}}
+\subsection{\ensuregreek{
+ \accpsili\textomega\ypogegrammeni
+ \accdasia\textomega\ypogegrammeni
+ \accpsili`\textomega\ypogegrammeni
+ \accdasia`\textomega\ypogegrammeni
+ \accpsili'\textomega\ypogegrammeni
+ \accdasia'\textomega\ypogegrammeni
+ \~>\textomega\ypogegrammeni
+ \~<\textomega\ypogegrammeni
+ \accpsili\textOmega\ypogegrammeni
+ \accdasia\textOmega\ypogegrammeni
+ \accpsili`\textOmega\ypogegrammeni
+ \accdasia`\textOmega\ypogegrammeni
+ \accpsili'\textOmega\ypogegrammeni
+ \accdasia'\textOmega\ypogegrammeni
+ \~>\textOmega\ypogegrammeni
+ \~<\textOmega\ypogegrammeni
+}}
+\subsection{\ensuregreek{
+ \u\textalpha
+ \=\textalpha
+ \accvaria\textalpha\ypogegrammeni
+ \textalpha\ypogegrammeni
+ \accoxia\textalpha\ypogegrammeni
+ \~\textalpha
+ \~\textalpha\ypogegrammeni
+ \u\textAlpha
+ \=\textAlpha
+ \accvaria\textAlpha
+ \accoxia\textAlpha
+ \textAlpha\ypogegrammeni
+ \accpsili{ }
+ { }\prosgegrammeni
+ \accpsili{ }
+}}
+\subsection{\ensuregreek{
+ \accperispomeni\textcompwordmark
+ \"\~{ }
+ \accvaria\texteta\ypogegrammeni
+ \texteta\ypogegrammeni
+ \accoxia\texteta\ypogegrammeni
+ \~\texteta
+ \~\texteta\ypogegrammeni
+ \accvaria\textEpsilon
+ \accoxia\textEpsilon
+ \accvaria\textEta
+ \accoxia\textEta
+ \textEta\ypogegrammeni
+ \accpsili`{ }
+ \accpsili'{ }
+ \~>{ }
+}}
+\subsection{\ensuregreek{
+ \u\textiota
+ \=\textiota
+ \`"\textiota
+ \'"\textiota
+ \~\textiota
+ \~"\textiota
+ \u\textIota
+ \=\textIota
+ \accvaria\textIota
+ \accoxia\textIota
+ \accdasia`{ }
+ \accpsili'{ }
+ \~<{ }
+}}
+\subsection{\ensuregreek{
+ \u\textupsilon
+ \=\textupsilon
+ \`"\textupsilon
+ \'"\textupsilon
+ \accpsili\textrho
+ \accdasia\textrho
+ \~\textupsilon
+ \~"\textupsilon
+ \u\textUpsilon
+ \=\textUpsilon
+ \accvaria\textUpsilon
+ \accoxia\textUpsilon
+ \accdasia\textRho
+ \`"{ }
+ \'"{ }
+ \accvaria{ }
+}}
+\subsection{\ensuregreek{
+ \accvaria\textomega\ypogegrammeni
+ \textomega\ypogegrammeni
+ \accoxia\textomega\ypogegrammeni
+ \~\textomega
+ \~\textomega\ypogegrammeni
+ \accvaria\textOmicron
+ \accoxia\textOmicron
+ \accvaria\textOmega
+ \accoxia\textOmega
+ \textOmega\ypogegrammeni
+ \accoxia{ }
+ \accdasia{ }
+}}
+
+\section{Makeuppercase}
+
+According to Greek typesetting conventions,
+diacritics (except the dialytika) are dropped in ALL CAPS.
+
+However, \verb|\Makeuppercase| is not supported in PDF-strings, so we
+do not need to care for this.
+
+\section{Conclusion}
+
+For Greek text parts in section headers use either literal Unicode
+characters%
+\footnote{Pre-composed Unicode characters must be used for multi-accented
+letters or non-standard accents. Combining Unicode characters do not work
+with inputenc and 8-bit LaTeX – this is a general restriction.} or macros.
+For proper kerning in the main document, combine this with the
+\verb+\textgreek+ or \verb+\foreignlanguage{greek}+ macros.
+
+\end{document}