diff options
Diffstat (limited to 'macros')
41 files changed, 5286 insertions, 5056 deletions
diff --git a/macros/latex/contrib/babel-contrib/greek/Makefile b/macros/latex/contrib/babel-contrib/greek/Makefile index 5cfd53df74..c88acae1ef 100644 --- a/macros/latex/contrib/babel-contrib/greek/Makefile +++ b/macros/latex/contrib/babel-contrib/greek/Makefile @@ -16,21 +16,26 @@ DESTDIR = ~/texmf/tex/latex/greek/babel-greek DOCDIR = ~/texmf/doc/latex/greek/babel-greek CHDIR = cd -COPY = cp -u +COPY = cp --update SH = sh # programs -PYLIT = pylit # text <-> source converter for literal programming -RST2HTML = rst2html5 # text -> HTML converter, see docutils.sf.net -RUBBER = rubber -f --pdf # wrapper around `latex`, run until references resolved +PYLIT = pylit # text <-> source converter for literal programming +RST2HTML = rst2html5 # text -> HTML converter, see docutils.sf.net +RUBBER = rubber --force --pdf # latex-wrapper running until refs are resolved LATEX = pdflatex -interaction batchmode # suppress logging to terminal + +.PHONY: all + +all: packages doc test + # LaTeX source files # ================== -.PHONY: all +.PHONY: packages -all: greek.ldf athnum.sty grmath.sty +packages: greek.ldf athnum.sty grmath.sty greek.ldf: babel-greek.dtx tex babel-greek.ins @@ -44,22 +49,28 @@ grmath.sty: athnum.dtx # Documentation # ============= -.PHONY: doc html pdf +.PHONY: doc html pdf test doc: html pdf -html: README.html +html: babel-greek-doc.html + +babel-greek-doc.html: babel-greek-doc.rst + $(RST2HTML) babel-greek-doc.rst babel-greek-doc.html -README.html: README - $(RST2HTML) README README.html +pdf: babel-greek.pdf athnum.pdf grmath.pdf usage.pdf -pdf: babel-greek.pdf athnum.pdf grmath.pdf usage.pdf\ - test-greek-lgr.pdf test-greek-tu.pdf test-8bit-greek.pdf \ - test-tu-lgr.pdf +test: test-greek.pdf test-greek-tu.pdf test-greek-8bitcompat.pdf \ + test-greek-ini.pdf \ + test-lgr-fixes.pdf test-case-changing.pdf\ + test-greeknum.pdf test-greeknum-tu.pdf \ + test-athnum.pdf test-athnum-tu.pdf babel-greek.pdf: babel-greek.dtx $(RUBBER) -m hyperref babel-greek.dtx + makeindex -s gglo.ist -o babel-greek.gls babel-greek.glo + $(RUBBER) -m hyperref babel-greek.dtx athnum.pdf: athnum.dtx $(RUBBER) athnum.dtx @@ -70,39 +81,65 @@ grmath.pdf: grmath.dtx usage.pdf: usage.tex greek.ldf $(RUBBER) usage.tex -test-greek-lgr.pdf: test-greek.tex greek.ldf - $(RUBBER) --jobname=test-greek-lgr test-greek.tex +test-greek.pdf: test-greek.tex greek.ldf + $(RUBBER) -m hyperref test-greek.tex test-greek-tu.pdf: test-greek.tex greek.ldf $(RUBBER) -m xelatex --jobname=test-greek-tu test-greek.tex -test-8bit-greek.pdf: test-8bit-greek.tex greek.ldf - $(RUBBER) -m hyperref test-8bit-greek.tex +# requires rubber >= 1.6, otherwise `-m lualatex` is ignored. +test-greek-8bitcompat.pdf: test-greek-8bitcompat.tex test-greek.tex greek.ldf + $(RUBBER) -m hyperref -m lualatex test-greek-8bitcompat.tex -test-tu-lgr.pdf: test-tu-lgr.tex greek.ldf - $(RUBBER) -m hyperref -m xelatex test-tu-lgr.tex +test-greek-ini.pdf: test-greek-ini.tex test-greek.tex greek.ldf + $(RUBBER) -m hyperref -m xelatex test-greek-ini.tex +test-case-changing.pdf: test-case-changing.tex greek.ldf + $(RUBBER) -m hyperref test-case-changing.tex -# Installation -# ============= +test-athnum.pdf: test-athnum.tex greek.ldf athnum.sty + $(RUBBER) test-athnum.tex -install: all - $(COPY) *.ldf $(DESTDIR) - #$(COPY) *.sty $(DESTDIR) +test-athnum-tu.pdf: test-athnum.tex greek.ldf athnum.sty + $(RUBBER) -m xelatex --jobname=test-athnum-tu test-athnum.tex + +test-greeknum.pdf: test-greeknum.tex greek.ldf + $(RUBBER) test-greeknum.tex + +test-greeknum-tu.pdf: test-greeknum.tex greek.ldf + $(RUBBER) -m xelatex --jobname=test-greeknum-tu test-greeknum.tex + +test-lgr-fixes.pdf: test-lgr-fixes.tex greek.ldf + $(RUBBER) -m hyperref -m index test-lgr-fixes.tex -install-doc: doc - $(COPY) README $(DOCDIR) - $(COPY) *.html $(DOCDIR) + +# Installation/Update +# =================== + +update: packages test + $(COPY) *.ldf $(DESTDIR) + $(COPY) *.sty $(DESTDIR) + +update-package: packages doc test + $(COPY) README.md $(DOCDIR) + $(COPY) babel-greek-doc.rst $(DOCDIR) + $(COPY) babel-greek-doc.html $(DOCDIR) + # selected PDFs + $(COPY) [!t]*.pdf $(DOCDIR) + $(COPY) test-greek.pdf $(DOCDIR) + $(COPY) test-athnum.pdf $(DOCDIR) + # also copy all sources $(COPY) *.dtx $(DOCDIR) $(COPY) *.ins $(DOCDIR) $(COPY) *.tex $(DOCDIR) - $(COPY) *.pdf $(DOCDIR) $(COPY) Makefile $(DOCDIR) + # Cleanup # ======= .PHONY: clean clean: - rm -f *.aux *.log *.toc *.out *~ + rm -f *~ *.aux *.bbl *.bcf *.blg *.run.xml *.glo *.gls \ + *.idx *.ilg *.ind *.log *.out *.rubbercache *.toc diff --git a/macros/latex/contrib/babel-contrib/greek/README b/macros/latex/contrib/babel-contrib/greek/README deleted file mode 100644 index 45ecf8f1d1..0000000000 --- a/macros/latex/contrib/babel-contrib/greek/README +++ /dev/null @@ -1,253 +0,0 @@ -babel-greek -*********** -Babel support for the Greek language and script -=============================================== - -:Copyright: © 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms, - © 2013 -- 2020 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. - -:Abstract: Babel-greek is a contributed package providing support for the - Greek language and script via the Babel_ system. - - The file ``greek.ldf`` provides options for the monotonic - (single-diacritic), polytonic (multiple-diacritic) and ancient - orthography of the Greek language. - - Since 2013-07-19, babel-greek supports also Unicode-aware TeX - engines (XeTeX/LuaTeX). - -News ----- - -.. class:: borderless - -===== ============ ============================================================ -1.4 2013-05-17 New maintainer. -.. The encoding definition file ``lgrenc.def`` moved to the - greek-fontenc_ package. - -1.5 2013-06-21 bugfixes and cleanup, -.. LICR macros in string definitions, -.. LGR font encoding not used with XeTeX/LuaTeX, -.. input "xgreek-fixes.def" from polyglossia_ with Xe/LuaTeX. -1.5a 2013-07-02 Fix LaTeX bugs babel/3707, `babel/4303`_ and `babel/4305`_ -1.6 2013-07-19 Experimental support for XeTeX/LuaTeX. -1.7 2013-09-09 CB-Fonts font definition files moved to CB-Fonts package. -.. Do not auto-load euenc.def with XeTeX/LuaTeX. -1.7a 2013-09-13 Fix bug `babel/4360`_: spurious ``\fi``. -1.7b 2013-10-01 bugfix: correct upcasing of babel strings with Xe/LuaTeX. -1.8 2013-12-02 Rename ``greek.dtx`` to ``babel-greek`` so that texdoc_ - shows the right documentation. -.. Compatibility with Xe/LuaTeX in Unicode and 8-bit mode. -1.8a 2013-12-03 Set ``\encodingdefault`` in ``\greekscript`` to fix - Greek in footnotes etc. with document language Greek. -1.9 2014-07-20 Added attribute for ancient Greek, load correct hyphenation - patterns: Patch by Claudio Beccari. Bugfix for Makeuppercase -1.9a 2014-09-12 Remove duplicate code, documentation review. -1.9b 2014-09-18 Remove spurious whitespace from "extrasgreek" definition. -.. Use named macros instead of non-standard short macros - for psili and dasia in the string definitions. -1.9c 2014-10-21 Fix dummy hyphenation language names (patch Ulrike Fischer). -1.9d 2015-09-04 Remove `grsymb` (macros for Greek symbols). - This package is outdated and obsoleted by greek-fontenc_ - (reported by Claudio Beccari). -.. Unicode uc/lc corrections now in greek-fontenc. -1.9e 2015-11-27 Fix bug in lccode-setting loop (patch by Enrico Gregorio). -1.9f 2016-02-04 Support for new standard Unicode text font encoding "TU". -1.9g 2016-09-07 Babel 3.9i deprecated ``\textlatin`` - and fixed ``\latinencoding``. -1.9h 2019-07-11 Move breathing composite commands to textalpha_. -1.9i 2020-02-28 Update test for Unicode fonts. - Fix accent in ``\seename`` and ``\alsoname``. -1.9j 2020-03-17 Fix ampersand in math mode. -1.10 2020-11-10 Use ``TU`` as ``\greekfontencoding`` for Xe/LuaTeX - (set by LaTeX as `default font encoding for Unicode - engines`_ since 2017/01/01). -.. Use zig-zagy ``\textkoppa`` for ``\greeknumeral{90}``. -.. PDF-string secure implementation of ``\greeknumeral`` - from hyperref_. -.. Load ``puenc-greek.def`` (from greek-fontenc_) - if used with hyperref (polytonic Greek in PDF-strings). -===== ============ ============================================================ - - -.. _babel/4303: http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4303 -.. _babel/4305: http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4305 -.. _babel/4360: http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4360 - -Files ------ - -`<babel-greek.dtx>`_; `<babel-greek.pdf>`_ - Source of the language definition file ``greek.ldf`` for use with Babel_. -`<athnum.dtx>`_; `<athnum.pdf>`_ - Athenian Numerals. -`<grmath.dtx>`_; `<grmath.pdf>`_ - Greek log-like Operators. -`<babel-greek.ins>`_ - DocStrip_ batch file. -`<test-greek.tex>`_ `<test-greek-lgr.pdf>`_ `<test-greek-tu.pdf>`_ - Test Babel-Greek features. -`<test-8bit-greek.tex>`_ `<test-8bit-greek.pdf>`_ - Additional tests and examples for 8-bit TeX. -`<test-tu-lgr.tex>`_ `<test-tu-lgr.pdf>`_ - Tests and Examples for XeTeX/LuaTeX with LGR 8-bit fonts. -`<usage.tex>`_ `<usage.pdf>`_ - Description of the `LGR Latin transliteration`_. - - -Requirements ------------- - -The "babel-greek" package requires the babel_ base package and font -definition files from the greek-fontenc_ package. The greek-inputenc_ -package is recommended when using 8-bit TeX engines. - -Typesetting Greek texts requires `Greek text fonts`_. - -Plain TeX is currently not supported. Patches are welcome. - - -Installation ------------- - -If possible, get this package from your distribution using its installation -manager. - -Otherwise, make sure LaTeX can find the required files: - -* Download and unpack `babel-greek.zip`. - -* Run ``tex`` or ``latex`` on the batch file ``babel-greek.ins``. - - This will generate the files ``greek.ldf``, ``athnum.sty``, and - ``grmath.sty`` in the current directory. [#]_ - -* Move all files ending in ``.ldf`` or ``.sty`` into a directory searched by - TeX. - -* To produce the documentation, run the file ``usage.tex`` and all files - ending in ``.dtx`` through LaTeX. - -.. [#] If these files already exist somewhere in the TeX-path, you will be - warned that they might be overwritten. You can ignore this - warning and answer `y` unless the *current directory* contains versions - of these files you want to keep. - - This is done by docstrip_. Try ``texdoc docstrip`` for details. - -Usage ------ - -Use the "greek" document option or pass the "greek" option to babel:: - - \usepackage[greek]{babel} - -For polytonic Greek, set the language attribute "polutoniko":: - - \usepackage[greek]{babel} - \languageattribute{greek}{polutoniko} - -or :: - - \usepackage[greek.polutoniko,english]{babel} - -Similarly, the attribute "ancient" selects the ancient Greek language -variant. - -For details see `<babel-greek.pdf>`_ and the babel_ documentation. - -Input of Greek characters is possible as literal characters (with the -greek-inputenc_ package or with XeTeX or LuaTeX) or the `LGR Latin -transliteration`_. See `<usage.pdf>`_ and the example files provided with -greek-fontenc_. - -Greek text fonts ----------------- - -A list of Greek text fonts for use with LaTeX is available at the CTAN -http://www.ctan.org/topic/font-greek - -With the XeTeX or LuaTeX engines, the user should ensure that the chosen -font contains the required glyphs: the default Latin Modern fonts miss -them. Warnings about missing charcters are only written to the log -file, not the console output! Select a suitable font with fontspec_. - -Examples for suitable fonts are the CM-unicode_ or the `Linux -Libertine`_ OpenType fonts as well as any system-wide installed OTF fonts -that support Greek (e.g. `Deja Vu`_). - -The LGR `font encoding`_ is the de-facto standard for typesetting Greek with -8-bit LaTeX. Fonts in this encoding include the `CB fonts`_ (matching CM), -grtimes_ (Greek Times), Kerkis_ (matching URW Bookman), and the `GFS font -collection`_. Setup of these fonts as Greek variant to matching Latin fonts -is facilitated by the substitutefont_ package. - -LGR Latin Transliteration -------------------------- - -The LGR font encoding allows input of Greek characters via an ASCII -transliteration. This enables simple input with a Latin keyboard. Characters -with diacritics may be selected with accent macros (cf. greek-fontenc_) or -via the ligature definitions in the font (see `<usage.pdf>`_). - -The following ASCII characters are converted to Greek symbols: - -= = = = = = = = = = = = = = = = = = = = = = = = = -A B G D E Z H J I K L M N X O P R S T U F Q Y W -Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω -- - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - -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 -α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ ς τ υ φ χ ψ ω -= = = = = = = = = = = = = = = = = = = = = = = = = - -Accent symbols and punctuation: - -================= ====== == ====================== ======== ==== -tonos ``'a`` ά semicolon ``;`` · -varia \`a ὰ question mark ``?`` ; -perispomeni ``~a`` ᾶ left apostrophe \` \` ‘ -dasia ``<a`` ἁ right apostrophe ``''`` ’ -psili ``>a`` ἀ left quotation mark ``((`` « -ypogegrammeni ``a|`` ᾳ right quotation mark ``))`` » -dialytika ``"i`` ϊ zero width non-joiner v -================= ====== == ====================== ======== ==== - -A major drawback of the LGR transliteration is that you cannot access Latin -letters and some symbols if LGR is the active font encoding (e.g. in -documents or parts of documents given the `Babel` language ``greek``). This -means that for every Latin-written word or acronym an explicit -language-switch is required. This problem can only be solved via a -font-encoding comprising both Latin and Greek like the hypothetical T7 or -Unicode (with XeTeX or LuaTeX). - -.. References - ---------- - -.. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt -.. _babel: http://www.ctan.org/pkg/babel -.. _docstrip: http://www.ctan.org/pkg/docstrip -.. _font encoding: http://mirror.ctan.org/macros/latex/base/encguide.pdf -.. _fontspec: http://www.ctan.org/pkg/fontspec -.. _fontenc: http://www.ctan.org/pkg/fontenc -.. _CB Fonts: http://www.ctan.org/pkg/cbgreek-complete -.. _CM-unicode: http://www.ctan.org/pkg/cm-unicode -.. _Deja Vu: http://dejavu-fonts.org -.. _e-TeX: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=etex -.. _grtimes: http://www.ctan.org/pkg/grtimes -.. _hyperref: http://www.ctan.org/pkg/hyperref -.. _textalpha: -.. _greek-fontenc: http://www.ctan.org/pkg/greek-fontenc -.. _greek-inputenc: http://www.ctan.org/pkg/greek-inputenc -.. _GFS font collection: http://www.ctan.org/pkg/gfs -.. _Kerkis: http://www.ctan.org/pkg/kerkis -.. _Linux Libertine: http://www.ctan.org/pkg/libertine -.. _polyglossia: http://www.ctan.org/pkg/polyglossia -.. _substitutefont: http://www.ctan.org/pkg/substitutefont -.. _texdoc: http://www.ctan.org/pkg/texdoc -.. _default font encoding for Unicode engines: - https://www.latex-project.org/news/latex2e-news/ltnews26.pdf diff --git a/macros/latex/contrib/babel-contrib/greek/README.html b/macros/latex/contrib/babel-contrib/greek/README.html deleted file mode 100644 index 5b098647b3..0000000000 --- a/macros/latex/contrib/babel-contrib/greek/README.html +++ /dev/null @@ -1,1136 +0,0 @@ -<!DOCTYPE html> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head> -<meta charset="utf-8"/> -<meta name="generator" content="Docutils 0.17b.dev: http://docutils.sourceforge.net/" /> -<title>babel-greek</title> -<meta name="dcterms.rights" content="© 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms, © 2013 – 2020 Günter Milde." /> -<link rel="schema.dcterms" href="http://purl.org/dc/terms/"/> -<style type="text/css"> - -/* Minimal style sheet for the HTML output of Docutils. */ -/* */ -/* :Author: Günter Milde, based on html4css1.css by David Goodger */ -/* :Id: $Id$ */ -/* :Copyright: © 2015 Günter Milde. */ -/* :License: Released under the terms of the `2-Clause BSD license`_, */ -/* in short: */ -/* */ -/* Copying and distribution of this file, with or without modification, */ -/* are permitted in any medium without royalty provided the copyright */ -/* notice and this notice are preserved. */ -/* */ -/* This file is offered as-is, without any warranty. */ -/* */ -/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */ - -/* This CSS2.1_ stylesheet defines rules for Docutils elements without */ -/* HTML equivalent. It is required to make the document semantic visible. */ -/* */ -/* .. _CSS2.1: http://www.w3.org/TR/CSS2 */ -/* .. _validates: http://jigsaw.w3.org/css-validator/validator$link */ - -/* alignment of text and inline objects inside block objects*/ -.align-left { text-align: left; } -.align-right { text-align: right; } -.align-center { clear: both; text-align: center; } -.align-top { vertical-align: top; } -.align-middle { vertical-align: middle; } -.align-bottom { vertical-align: bottom; } - -/* titles */ -h1.title, p.subtitle { - text-align: center; -} -p.topic-title, -p.sidebar-title, -p.rubric, -p.admonition-title, -p.system-message-title { - font-weight: bold; -} -h1 + p.subtitle, -h2 + p.section-subtitle { - font-size: 1.6em; -} -h3 + p.section-subtitle { - font-size: 1.28em; -} -p.subtitle, -p.section-subtitle, -p.sidebar-subtitle { - font-weight: bold; - margin-top: -0.5em; -} -p.sidebar-title { - font-size: larger; -} -p.rubric { - font-size: larger; - color: maroon; -} -a.toc-backref { - color: black; - text-decoration: none; } - -/* Warnings, Errors */ -div.system-messages h2, -span.problematic, -p.system-message-title { - color: red; -} - -/* inline literals */ -span.docutils.literal { - font-family: monospace; - white-space: pre-wrap; -} -/* do not wraph at hyphens and similar: */ -.literal > span.pre { white-space: nowrap; } - -/* Lists */ - -/* compact and simple lists: no margin between items */ -.simple li, .compact li, -.simple ul, .compact ul, -.simple ol, .compact ol, -.simple > li p, .compact > li p, -dl.simple > dd, dl.compact > dd { - margin-top: 0; - margin-bottom: 0; -} - -/* Table of Contents */ -div.topic.contents { margin: 0.5em 0; } -div.topic.contents ul { - list-style-type: none; - padding-left: 1.5em; -} - -/* Enumerated Lists */ -ol.arabic { list-style: decimal } -ol.loweralpha { list-style: lower-alpha } -ol.upperalpha { list-style: upper-alpha } -ol.lowerroman { list-style: lower-roman } -ol.upperroman { list-style: upper-roman } - -dt span.classifier { font-style: italic } -dt span.classifier:before { - font-style: normal; - margin: 0.5em; - content: ":"; -} - -/* Field Lists and drivatives */ -/* bold field name, content starts on the same line */ -dl.field-list > dt, -dl.option-list > dt, -dl.docinfo > dt, -dl.footnote > dt, -dl.citation > dt { - font-weight: bold; - clear: left; - float: left; - margin: 0; - padding: 0; - padding-right: 0.5em; -} -/* Offset for field content (corresponds to the --field-name-limit option) */ -dl.field-list > dd, -dl.option-list > dd, -dl.docinfo > dd { - margin-left: 9em; /* ca. 14 chars in the test examples */ -} -/* start field-body on a new line after long field names */ -dl.field-list > dd > *:first-child, -dl.option-list > dd > *:first-child -{ - display: inline-block; - width: 100%; - margin: 0; -} -/* field names followed by a colon */ -dl.field-list > dt:after, -dl.docinfo > dt:after { - content: ":"; -} - -/* Bibliographic Fields (docinfo) */ -pre.address { font: inherit; } -dd.authors > p { margin: 0; } - -/* Option Lists */ -dl.option-list { margin-left: 1.5em; } -dl.option-list > dt { font-weight: normal; } -span.option { white-space: nowrap; } - -/* Footnotes and Citations */ -dl.footnote.superscript > dd {margin-left: 1em; } -dl.footnote.brackets > dd {margin-left: 2em; } -dl > dt.label { font-weight: normal; } -a.footnote-reference.brackets:before, -dt.label > span.brackets:before { content: "["; } -a.footnote-reference.brackets:after, -dt.label > span.brackets:after { content: "]"; } -a.footnote-reference.superscript, -dl.footnote.superscript > dt.label { - vertical-align: super; - font-size: smaller; -} -dt.label > span.fn-backref { margin-left: 0.2em; } -dt.label > span.fn-backref > a { font-style: italic; } - -/* Line Blocks */ -div.line-block { display: block; } -div.line-block div.line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 40px; -} - -/* Figures, Images, and Tables */ -.figure.align-left, -figure.align-left, -img.align-left, -object.align-left, -table.align-left { - margin-right: auto; -} -.figure.align-center, -figure.align-center, -img.align-center, -object.align-center, -table.align-center { - margin-left: auto; - margin-right: auto; -} -.figure.align-right, -figure.align-right, -img.align-right, -object.align-right, -table.align-right { - margin-left: auto; -} -img.align-center, img.align-right, -object.align-center, object.align-right { - display: block; -} -/* reset inner alignment in figures and tables */ -.figure.align-left, .figure.align-right, -figure.align-left, figure.align-right, -table.align-left, table.align-center, table.align-right { - text-align: inherit; -} - -/* Sidebar */ -aside.sidebar { - width: 30%; - max-width: 26em; - float: right; - clear: right; -} - -/* Text Blocks */ -blockquote, -div.topic, -div.admonition, -div.system-message, -pre.literal-block, -pre.doctest-block, -pre.math, -pre.code { - margin-left: 1.5em; - margin-right: 1.5em; -} -pre.code .ln { color: gray; } /* line numbers */ - -/* Tables */ -table { border-collapse: collapse; } -td, th { - border-style: solid; - border-color: silver; - padding: 0 1ex; - border-width: thin; -} -td > p:first-child, th > p:first-child { margin-top: 0; } -td > p, th > p { margin-bottom: 0; } - -table > caption { - text-align: left; - margin-bottom: 0.25em -} - -table.borderless td, table.borderless th { - border: 0; - padding: 0; - padding-right: 0.5em /* separate table cells */ -} - -/* Document Header and Footer */ -header { border-bottom: 1px solid black; } -footer { border-top: 1px solid black; } - -/* new HTML5 block elements: set display for older browsers */ -header, section, footer, aside, nav, main, article, figure { - display: block; -} - -</style> -<style type="text/css"> - -/* CSS31_ style sheet for the output of Docutils HTML writers. */ -/* Rules for easy reading and pre-defined style variants. */ -/* */ -/* :Author: Günter Milde, based on html4css1.css by David Goodger */ -/* :Id: $Id$ */ -/* :Copyright: © 2015 Günter Milde. */ -/* :License: Released under the terms of the `2-Clause BSD license`_, */ -/* in short: */ -/* */ -/* Copying and distribution of this file, with or without modification, */ -/* are permitted in any medium without royalty provided the copyright */ -/* notice and this notice are preserved. */ -/* */ -/* This file is offered as-is, without any warranty. */ -/* */ -/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */ -/* .. _CSS3: http://www.w3.org/TR/CSS3 */ - - -/* Document Structure */ -/* ****************** */ - -/* "page layout" */ -body { - margin: 0; - background-color: #dbdbdb; -} -div.document, -main { - line-height:1.3; - counter-reset: table figure; - /* avoid long lines --> better reading */ - /* optimum is 45…75 characters/line <http://webtypography.net/2.1.2> */ - /* OTOH: lines should not be too short because of missing hyphenation, */ - max-width: 50em; - padding: 1px 2%; /* 1px on top avoids grey bar above title (mozilla) */ - margin: auto; - background-color: white; -} - -/* Sections */ - -/* Transitions */ - -hr.docutils { - width: 80%; - margin-top: 1em; - margin-bottom: 1em; - clear: both; -} - -/* Paragraphs */ -/* ========== */ - -/* vertical space (parskip) */ -p, ol, ul, dl, li, dd, -div.line-block, -div.topic, -table { - margin-top: 0.5em; - margin-bottom: 0.5em; -} -p:first-child { margin-top: 0; } -/* (:last-child is new in CSS 3) */ -p:last-child { margin-bottom: 0; } - -h1, h2, h3, h4, h5, h6, -dl > dd { - margin-bottom: 0.5em; -} - -/* Lists */ -/* ===== */ - -/* Separate list entries in compound lists */ -dl > dd, ol > li, - -/* Definition Lists */ -/* Indent lists nested in definition lists */ -/* (:only-child is new in CSS 3) */ -dd > ul:only-child, dd > ol:only-child { padding-left: 1em; } - -/* Description Lists */ -/* styled like in most dictionaries, encyclopedias etc. */ -dl.description > dt { - font-weight: bold; - clear: left; - float: left; - margin: 0; - padding: 0; - padding-right: 0.5em; -} - -/* Field Lists */ - -/* example for custom field-name width */ -dl.field-list.narrow > dd { - margin-left: 5em; -} -/* run-in: start field-body on same line after long field names */ -dl.field-list.run-in > dd p { - display: block; -} - -/* Bibliographic Fields */ - -/* generally, bibliographic fields use special definition list dl.docinfo */ -/* but dedication and abstract are placed into "topic" divs */ -div.abstract p.topic-title { - text-align: center; -} -div.dedication { - margin: 2em 5em; - text-align: center; - font-style: italic; -} -div.dedication p.topic-title { - font-style: normal; -} - -/* Citations */ -dl.citation dt.label { - font-weight: bold; -} -span.fn-backref { - font-weight: normal; -} - -/* Text Blocks */ -/* =========== */ - -/* Literal Blocks */ - -pre.literal-block, -pre.doctest-block, -pre.math, -pre.code { - font-family: monospace; -} - -/* Block Quotes */ - -blockquote > table, -div.topic > table { - margin-top: 0; - margin-bottom: 0; -} -blockquote p.attribution, -div.topic p.attribution { - text-align: right; - margin-left: 20%; -} - -/* Tables */ -/* ====== */ - -/* th { vertical-align: bottom; } */ - -table tr { text-align: left; } - -/* "booktabs" style (no vertical lines) */ -table.booktabs { - border: 0; - border-top: 2px solid; - border-bottom: 2px solid; - border-collapse: collapse; -} -table.booktabs * { - border: 0; -} -table.booktabs th { - border-bottom: thin solid; -} - -/* numbered tables (counter defined in div.document) */ -table.numbered > caption:before { - counter-increment: table; - content: "Table " counter(table) ": "; - font-weight: bold; -} - -/* Explicit Markup Blocks */ -/* ====================== */ - -/* Footnotes and Citations */ -/* ----------------------- */ - -/* line on the left */ -dl.footnote { - padding-left: 1ex; - border-left: solid; - border-left-width: thin; -} - -/* Directives */ -/* ---------- */ - -/* Body Elements */ -/* ~~~~~~~~~~~~~ */ - -/* Images and Figures */ - -/* let content flow to the side of aligned images and figures */ -.figure.align-left, -figure.align-left, -img.align-left, -object.align-left { - display: block; - clear: left; - float: left; - margin-right: 1em; -} -.figure.align-right, -figure.align-right, -img.align-right, -object.align-right { - display: block; - clear: right; - float: right; - margin-left: 1em; -} -/* Stop floating sidebars, images and figures at section level 1,2,3 */ -h1, h2, h3, h4 { clear: both; } - -/* Numbered figures */ -figure.numbered > figcaption > p:before { - counter-increment: figure; - content: "Figure " counter(figure) ": "; - font-weight: bold; -} - - -/* Admonitions and System Messages */ - -div.admonition, -div.system-message, -aside.sidebar { - border: medium outset; - margin: 1em 1.5em; - padding: 0.5em 1em; -} - -div.caution p.admonition-title, -div.attention p.admonition-title, -div.danger p.admonition-title, -div.error p.admonition-title, -div.warning p.admonition-title, -div.error { - color: red; -} - - -/* Sidebar */ - -/* Move right. In a layout with fixed margins, */ -/* it can be moved into the margin. */ -div.sidebar, -aside.sidebar { - width: 30%; - max-width: 26em; - margin-left: 1em; - margin-right: -2%; - background-color: #ffffee; -} - -/* Code */ - -pre.code { padding: 0.7ex } -pre.code, code { background-color: #eeeeee } -pre.code .ln { color: gray; } /* line numbers */ -/* basic highlighting: for a complete scheme, see */ -/* http://docutils.sourceforge.net/sandbox/stylesheets/ */ -pre.code .comment, code .comment { color: #5C6576 } -pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } -pre.code .literal.string, code .literal.string { color: #0C5404 } -pre.code .name.builtin, code .name.builtin { color: #352B84 } -pre.code .deleted, code .deleted { background-color: #DEB0A1} -pre.code .inserted, code .inserted { background-color: #A3D289} - -/* Math */ -/* styled separately (see math.css for math-output=HTML) */ - -/* Epigraph */ -/* Highlights */ -/* Pull-Quote */ -/* Compound Paragraph */ -/* Container */ - -/* Document Header and Footer */ - -footer, header { - font-size: smaller; - clear: both; - padding: 0.5em 2%; - background-color: #ebebee; - border: none; -} - -/* Inline Markup */ -/* ============= */ - -/* Emphasis */ -/* em */ -/* Strong Emphasis */ -/* strong */ -/* Interpreted Text */ -/* span.interpreted */ -/* Title Reference */ -/* cite */ - -/* Inline Literals */ -/* possible values: normal, nowrap, pre, pre-wrap, pre-line */ -/* span.docutils.literal { white-space: pre-wrap; } */ - -/* Hyperlink References */ -a { text-decoration: none; } - -/* External Targets */ -/* span.target.external */ -/* Internal Targets */ -/* span.target.internal */ -/* Footnote References */ -/* a.footnote-reference */ -/* Citation References */ -/* a.citation-reference */ - -</style> -</head> -<body> -<main id="babel-greek"> -<h1 class="title">babel-greek</h1> -<p class="subtitle" id="babel-support-for-the-greek-language-and-script">Babel support for the Greek language and script</p> -<dl class="docinfo simple"> -<dt class="copyright">Copyright</dt> -<dd class="copyright">© 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms, -© 2013 – 2020 Günter Milde.</dd> -<dt class="licence">Licence</dt> -<dd class="licence"><p>This work may be distributed and/or modified under the -conditions of the <a class="reference external" href="http://www.latex-project.org/lppl.txt">LaTeX Project Public License</a>, either -version 1.3 of this license or any later version.</p> -</dd> -</dl> -<div class="abstract topic"> -<p class="topic-title">Abstract</p> -<p>Babel-greek is a contributed package providing support for the -Greek language and script via the <a class="reference external" href="http://www.ctan.org/pkg/babel">Babel</a> system.</p> -<p>The file <span class="docutils literal">greek.ldf</span> provides options for the monotonic -(single-diacritic), polytonic (multiple-diacritic) and ancient -orthography of the Greek language.</p> -<p>Since 2013-07-19, babel-greek supports also Unicode-aware TeX -engines (XeTeX/LuaTeX).</p> -</div> -<section id="news"> -<h2>News</h2> -<table class="borderless"> -<colgroup> -<col style="width: 6%" /> -<col style="width: 16%" /> -<col style="width: 78%" /> -</colgroup> -<tbody> -<tr><td><p>1.4</p></td> -<td><p>2013-05-17</p></td> -<td><p>New maintainer.</p></td> -</tr> -<tr><td><!-- --> -</td> -<td></td> -<td><p>The encoding definition file <span class="docutils literal">lgrenc.def</span> moved to the -<a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a> package.</p></td> -</tr> -<tr><td><p>1.5</p></td> -<td><p>2013-06-21</p></td> -<td><p>bugfixes and cleanup,</p></td> -</tr> -<tr><td><!-- --> -</td> -<td></td> -<td><p>LICR macros in string definitions,</p></td> -</tr> -<tr><td><!-- --> -</td> -<td></td> -<td><p>LGR font encoding not used with XeTeX/LuaTeX,</p></td> -</tr> -<tr><td><!-- --> -</td> -<td></td> -<td><p>input “xgreek-fixes.def” from <a class="reference external" href="http://www.ctan.org/pkg/polyglossia">polyglossia</a> with Xe/LuaTeX.</p></td> -</tr> -<tr><td><p>1.5a</p></td> -<td><p>2013-07-02</p></td> -<td><p>Fix LaTeX bugs babel/3707, <a class="reference external" href="http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4303">babel/4303</a> and <a class="reference external" href="http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4305">babel/4305</a></p></td> -</tr> -<tr><td><p>1.6</p></td> -<td><p>2013-07-19</p></td> -<td><p>Experimental support for XeTeX/LuaTeX.</p></td> -</tr> -<tr><td><p>1.7</p></td> -<td><p>2013-09-09</p></td> -<td><p>CB-Fonts font definition files moved to CB-Fonts package.</p></td> -</tr> -<tr><td><!-- --> -</td> -<td></td> -<td><p>Do not auto-load euenc.def with XeTeX/LuaTeX.</p></td> -</tr> -<tr><td><p>1.7a</p></td> -<td><p>2013-09-13</p></td> -<td><p>Fix bug <a class="reference external" href="http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4360">babel/4360</a>: spurious <span class="docutils literal">\fi</span>.</p></td> -</tr> -<tr><td><p>1.7b</p></td> -<td><p>2013-10-01</p></td> -<td><p>bugfix: correct upcasing of babel strings with Xe/LuaTeX.</p></td> -</tr> -<tr><td><p>1.8</p></td> -<td><p>2013-12-02</p></td> -<td><p>Rename <span class="docutils literal">greek.dtx</span> to <span class="docutils literal"><span class="pre">babel-greek</span></span> so that <a class="reference external" href="http://www.ctan.org/pkg/texdoc">texdoc</a> -shows the right documentation.</p></td> -</tr> -<tr><td><!-- --> -</td> -<td></td> -<td><p>Compatibility with Xe/LuaTeX in Unicode and 8-bit mode.</p></td> -</tr> -<tr><td><p>1.8a</p></td> -<td><p>2013-12-03</p></td> -<td><p>Set <span class="docutils literal">\encodingdefault</span> in <span class="docutils literal">\greekscript</span> to fix -Greek in footnotes etc. with document language Greek.</p></td> -</tr> -<tr><td><p>1.9</p></td> -<td><p>2014-07-20</p></td> -<td><p>Added attribute for ancient Greek, load correct hyphenation -patterns: Patch by Claudio Beccari. Bugfix for Makeuppercase</p></td> -</tr> -<tr><td><p>1.9a</p></td> -<td><p>2014-09-12</p></td> -<td><p>Remove duplicate code, documentation review.</p></td> -</tr> -<tr><td><p>1.9b</p></td> -<td><p>2014-09-18</p></td> -<td><p>Remove spurious whitespace from “extrasgreek” definition.</p></td> -</tr> -<tr><td><!-- --> -</td> -<td></td> -<td><p>Use named macros instead of non-standard short macros -for psili and dasia in the string definitions.</p></td> -</tr> -<tr><td><p>1.9c</p></td> -<td><p>2014-10-21</p></td> -<td><p>Fix dummy hyphenation language names (patch Ulrike Fischer).</p></td> -</tr> -<tr><td><p>1.9d</p></td> -<td><p>2015-09-04</p></td> -<td><p>Remove <cite>grsymb</cite> (macros for Greek symbols). -This package is outdated and obsoleted by <a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a> -(reported by Claudio Beccari).</p></td> -</tr> -<tr><td><!-- --> -</td> -<td></td> -<td><p>Unicode uc/lc corrections now in greek-fontenc.</p></td> -</tr> -<tr><td><p>1.9e</p></td> -<td><p>2015-11-27</p></td> -<td><p>Fix bug in lccode-setting loop (patch by Enrico Gregorio).</p></td> -</tr> -<tr><td><p>1.9f</p></td> -<td><p>2016-02-04</p></td> -<td><p>Support for new standard Unicode text font encoding “TU”.</p></td> -</tr> -<tr><td><p>1.9g</p></td> -<td><p>2016-09-07</p></td> -<td><p>Babel 3.9i deprecated <span class="docutils literal">\textlatin</span> -and fixed <span class="docutils literal">\latinencoding</span>.</p></td> -</tr> -<tr><td><p>1.9h</p></td> -<td><p>2019-07-11</p></td> -<td><p>Move breathing composite commands to <a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">textalpha</a>.</p></td> -</tr> -<tr><td><p>1.9i</p></td> -<td><p>2020-02-28</p></td> -<td><p>Update test for Unicode fonts. -Fix accent in <span class="docutils literal">\seename</span> and <span class="docutils literal">\alsoname</span>.</p></td> -</tr> -<tr><td><p>1.9j</p></td> -<td><p>2020-03-17</p></td> -<td><p>Fix ampersand in math mode.</p></td> -</tr> -<tr><td><p>1.10</p></td> -<td><p>2020-11-10</p></td> -<td><p>Use <span class="docutils literal">TU</span> as <span class="docutils literal">\greekfontencoding</span> for Xe/LuaTeX -(set by LaTeX as <a class="reference external" href="https://www.latex-project.org/news/latex2e-news/ltnews26.pdf">default font encoding for Unicode -engines</a> since 2017/01/01).</p></td> -</tr> -<tr><td><!-- --> -</td> -<td></td> -<td><p>Use zig-zagy <span class="docutils literal">\textkoppa</span> for <span class="docutils literal">\greeknumeral{90}</span>.</p></td> -</tr> -<tr><td><!-- --> -</td> -<td></td> -<td><p>PDF-string secure implementation of <span class="docutils literal">\greeknumeral</span> -from <a class="reference external" href="http://www.ctan.org/pkg/hyperref">hyperref</a>.</p></td> -</tr> -<tr><td><!-- --> -</td> -<td></td> -<td><p>Load <span class="docutils literal"><span class="pre">puenc-greek.def</span></span> (from <a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a>) -if used with hyperref (polytonic Greek in PDF-strings).</p></td> -</tr> -</tbody> -</table> -</section> -<section id="files"> -<h2>Files</h2> -<dl class="simple"> -<dt><a class="reference external" href="babel-greek.dtx">babel-greek.dtx</a>; <a class="reference external" href="babel-greek.pdf">babel-greek.pdf</a></dt> -<dd><p>Source of the language definition file <span class="docutils literal">greek.ldf</span> for use with <a class="reference external" href="http://www.ctan.org/pkg/babel">Babel</a>.</p> -</dd> -<dt><a class="reference external" href="athnum.dtx">athnum.dtx</a>; <a class="reference external" href="athnum.pdf">athnum.pdf</a></dt> -<dd><p>Athenian Numerals.</p> -</dd> -<dt><a class="reference external" href="grmath.dtx">grmath.dtx</a>; <a class="reference external" href="grmath.pdf">grmath.pdf</a></dt> -<dd><p>Greek log-like Operators.</p> -</dd> -<dt><a class="reference external" href="babel-greek.ins">babel-greek.ins</a></dt> -<dd><p><a class="reference external" href="http://www.ctan.org/pkg/docstrip">DocStrip</a> batch file.</p> -</dd> -<dt><a class="reference external" href="test-greek.tex">test-greek.tex</a> <a class="reference external" href="test-greek-lgr.pdf">test-greek-lgr.pdf</a> <a class="reference external" href="test-greek-tu.pdf">test-greek-tu.pdf</a></dt> -<dd><p>Test Babel-Greek features.</p> -</dd> -<dt><a class="reference external" href="test-8bit-greek.tex">test-8bit-greek.tex</a> <a class="reference external" href="test-8bit-greek.pdf">test-8bit-greek.pdf</a></dt> -<dd><p>Additional tests and examples for 8-bit TeX.</p> -</dd> -<dt><a class="reference external" href="test-tu-lgr.tex">test-tu-lgr.tex</a> <a class="reference external" href="test-tu-lgr.pdf">test-tu-lgr.pdf</a></dt> -<dd><p>Tests and Examples for XeTeX/LuaTeX with LGR 8-bit fonts.</p> -</dd> -<dt><a class="reference external" href="usage.tex">usage.tex</a> <a class="reference external" href="usage.pdf">usage.pdf</a></dt> -<dd><p>Description of the <a class="reference internal" href="#lgr-latin-transliteration">LGR Latin transliteration</a>.</p> -</dd> -</dl> -</section> -<section id="requirements"> -<h2>Requirements</h2> -<p>The “babel-greek” package requires the <a class="reference external" href="http://www.ctan.org/pkg/babel">babel</a> base package and font -definition files from the <a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a> package. The <a class="reference external" href="http://www.ctan.org/pkg/greek-inputenc">greek-inputenc</a> -package is recommended when using 8-bit TeX engines.</p> -<p>Typesetting Greek texts requires <a class="reference internal" href="#greek-text-fonts">Greek text fonts</a>.</p> -<p>Plain TeX is currently not supported. Patches are welcome.</p> -</section> -<section id="installation"> -<h2>Installation</h2> -<p>If possible, get this package from your distribution using its installation -manager.</p> -<p>Otherwise, make sure LaTeX can find the required files:</p> -<ul> -<li><p>Download and unpack <cite>babel-greek.zip</cite>.</p></li> -<li><p>Run <span class="docutils literal">tex</span> or <span class="docutils literal">latex</span> on the batch file <span class="docutils literal"><span class="pre">babel-greek.ins</span></span>.</p> -<p>This will generate the files <span class="docutils literal">greek.ldf</span>, <span class="docutils literal">athnum.sty</span>, and -<span class="docutils literal">grmath.sty</span> in the current directory.<a class="footnote-reference superscript" href="#id2" id="id1">1</a></p> -</li> -<li><p>Move all files ending in <span class="docutils literal">.ldf</span> or <span class="docutils literal">.sty</span> into a directory searched by -TeX.</p></li> -<li><p>To produce the documentation, run the file <span class="docutils literal">usage.tex</span> and all files -ending in <span class="docutils literal">.dtx</span> through LaTeX.</p></li> -</ul> -<dl class="footnote superscript"> -<dt class="label" id="id2"><span class="superscript"><a class="fn-backref" href="#id1">1</a></span></dt> -<dd><p>If these files already exist somewhere in the TeX-path, you will be -warned that they might be overwritten. You can ignore this -warning and answer <cite>y</cite> unless the <em>current directory</em> contains versions -of these files you want to keep.</p> -<p>This is done by <a class="reference external" href="http://www.ctan.org/pkg/docstrip">docstrip</a>. Try <span class="docutils literal">texdoc docstrip</span> for details.</p> -</dd> -</dl> -</section> -<section id="usage"> -<h2>Usage</h2> -<p>Use the “greek” document option or pass the “greek” option to babel:</p> -<pre class="literal-block">\usepackage[greek]{babel}</pre> -<p>For polytonic Greek, set the language attribute “polutoniko”:</p> -<pre class="literal-block">\usepackage[greek]{babel} -\languageattribute{greek}{polutoniko}</pre> -<p>or</p> -<pre class="literal-block">\usepackage[greek.polutoniko,english]{babel}</pre> -<p>Similarly, the attribute “ancient” selects the ancient Greek language -variant.</p> -<p>For details see <a class="reference external" href="babel-greek.pdf">babel-greek.pdf</a> and the <a class="reference external" href="http://www.ctan.org/pkg/babel">babel</a> documentation.</p> -<p>Input of Greek characters is possible as literal characters (with the -<a class="reference external" href="http://www.ctan.org/pkg/greek-inputenc">greek-inputenc</a> package or with XeTeX or LuaTeX) or the <a class="reference internal" href="#lgr-latin-transliteration">LGR Latin -transliteration</a>. See <a class="reference external" href="usage.pdf">usage.pdf</a> and the example files provided with -<a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a>.</p> -</section> -<section id="greek-text-fonts"> -<h2>Greek text fonts</h2> -<p>A list of Greek text fonts for use with LaTeX is available at the CTAN -<a class="reference external" href="http://www.ctan.org/topic/font-greek">http://www.ctan.org/topic/font-greek</a></p> -<p>With the XeTeX or LuaTeX engines, the user should ensure that the chosen -font contains the required glyphs: the default Latin Modern fonts miss -them. Warnings about missing charcters are only written to the log -file, not the console output! Select a suitable font with <a class="reference external" href="http://www.ctan.org/pkg/fontspec">fontspec</a>.</p> -<p>Examples for suitable fonts are the <a class="reference external" href="http://www.ctan.org/pkg/cm-unicode">CM-unicode</a> or the <a class="reference external" href="http://www.ctan.org/pkg/libertine">Linux -Libertine</a> OpenType fonts as well as any system-wide installed OTF fonts -that support Greek (e.g. <a class="reference external" href="http://dejavu-fonts.org">Deja Vu</a>).</p> -<p>The LGR <a class="reference external" href="http://mirror.ctan.org/macros/latex/base/encguide.pdf">font encoding</a> is the de-facto standard for typesetting Greek with -8-bit LaTeX. Fonts in this encoding include the <a class="reference external" href="http://www.ctan.org/pkg/cbgreek-complete">CB fonts</a> (matching CM), -<a class="reference external" href="http://www.ctan.org/pkg/grtimes">grtimes</a> (Greek Times), <a class="reference external" href="http://www.ctan.org/pkg/kerkis">Kerkis</a> (matching URW Bookman), and the <a class="reference external" href="http://www.ctan.org/pkg/gfs">GFS font -collection</a>. Setup of these fonts as Greek variant to matching Latin fonts -is facilitated by the <a class="reference external" href="http://www.ctan.org/pkg/substitutefont">substitutefont</a> package.</p> -</section> -<section id="lgr-latin-transliteration"> -<h2>LGR Latin Transliteration</h2> -<p>The LGR font encoding allows input of Greek characters via an ASCII -transliteration. This enables simple input with a Latin keyboard. Characters -with diacritics may be selected with accent macros (cf. <a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a>) or -via the ligature definitions in the font (see <a class="reference external" href="usage.pdf">usage.pdf</a>).</p> -<p>The following ASCII characters are converted to Greek symbols:</p> -<table> -<colgroup> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -<col style="width: 4%" /> -</colgroup> -<tbody> -<tr><td><p>A</p></td> -<td><p>B</p></td> -<td><p>G</p></td> -<td><p>D</p></td> -<td><p>E</p></td> -<td><p>Z</p></td> -<td><p>H</p></td> -<td><p>J</p></td> -<td><p>I</p></td> -<td><p>K</p></td> -<td><p>L</p></td> -<td><p>M</p></td> -<td><p>N</p></td> -<td><p>X</p></td> -<td><p>O</p></td> -<td><p>P</p></td> -<td><p>R</p></td> -<td><p>S</p></td> -<td></td> -<td><p>T</p></td> -<td><p>U</p></td> -<td><p>F</p></td> -<td><p>Q</p></td> -<td><p>Y</p></td> -<td><p>W</p></td> -</tr> -<tr><td><p>Α</p></td> -<td><p>Β</p></td> -<td><p>Γ</p></td> -<td><p>Δ</p></td> -<td><p>Ε</p></td> -<td><p>Ζ</p></td> -<td><p>Η</p></td> -<td><p>Θ</p></td> -<td><p>Ι</p></td> -<td><p>Κ</p></td> -<td><p>Λ</p></td> -<td><p>Μ</p></td> -<td><p>Ν</p></td> -<td><p>Ξ</p></td> -<td><p>Ο</p></td> -<td><p>Π</p></td> -<td><p>Ρ</p></td> -<td><p>Σ</p></td> -<td></td> -<td><p>Τ</p></td> -<td><p>Υ</p></td> -<td><p>Φ</p></td> -<td><p>Χ</p></td> -<td><p>Ψ</p></td> -<td><p>Ω</p></td> -</tr> -<tr><td></td> -<td></td> -<td></td> -<td></td> -<td></td> -<td></td> -<td></td> -<td></td> -<td></td> -<td></td> -<td></td> -<td></td> -<td></td> -<td></td> -<td></td> -<td></td> -<td></td> -<td></td> -<td></td> -<td></td> -<td></td> -<td></td> -<td></td> -<td></td> -<td></td> -</tr> -<tr><td><p>a</p></td> -<td><p>b</p></td> -<td><p>g</p></td> -<td><p>d</p></td> -<td><p>e</p></td> -<td><p>z</p></td> -<td><p>h</p></td> -<td><p>j</p></td> -<td><p>i</p></td> -<td><p>k</p></td> -<td><p>l</p></td> -<td><p>m</p></td> -<td><p>n</p></td> -<td><p>x</p></td> -<td><p>o</p></td> -<td><p>p</p></td> -<td><p>r</p></td> -<td><p>s</p></td> -<td><p>c</p></td> -<td><p>t</p></td> -<td><p>u</p></td> -<td><p>f</p></td> -<td><p>q</p></td> -<td><p>y</p></td> -<td><p>w</p></td> -</tr> -<tr><td><p>α</p></td> -<td><p>β</p></td> -<td><p>γ</p></td> -<td><p>δ</p></td> -<td><p>ε</p></td> -<td><p>ζ</p></td> -<td><p>η</p></td> -<td><p>θ</p></td> -<td><p>ι</p></td> -<td><p>κ</p></td> -<td><p>λ</p></td> -<td><p>μ</p></td> -<td><p>ν</p></td> -<td><p>ξ</p></td> -<td><p>ο</p></td> -<td><p>π</p></td> -<td><p>ρ</p></td> -<td><p>σ</p></td> -<td><p>ς</p></td> -<td><p>τ</p></td> -<td><p>υ</p></td> -<td><p>φ</p></td> -<td><p>χ</p></td> -<td><p>ψ</p></td> -<td><p>ω</p></td> -</tr> -</tbody> -</table> -<p>Accent symbols and punctuation:</p> -<table> -<colgroup> -<col style="width: 29%" /> -<col style="width: 10%" /> -<col style="width: 3%" /> -<col style="width: 37%" /> -<col style="width: 14%" /> -<col style="width: 7%" /> -</colgroup> -<tbody> -<tr><td><p>tonos</p></td> -<td><p><span class="docutils literal">'a</span></p></td> -<td><p>ά</p></td> -<td><p>semicolon</p></td> -<td><p><span class="docutils literal">;</span></p></td> -<td><p>·</p></td> -</tr> -<tr><td><p>varia</p></td> -<td><p>`a</p></td> -<td><p>ὰ</p></td> -<td><p>question mark</p></td> -<td><p><span class="docutils literal">?</span></p></td> -<td><p>;</p></td> -</tr> -<tr><td><p>perispomeni</p></td> -<td><p><span class="docutils literal">~a</span></p></td> -<td><p>ᾶ</p></td> -<td><p>left apostrophe</p></td> -<td><p>` `</p></td> -<td><p>‘</p></td> -</tr> -<tr><td><p>dasia</p></td> -<td><p><span class="docutils literal"><a</span></p></td> -<td><p>ἁ</p></td> -<td><p>right apostrophe</p></td> -<td><p><span class="docutils literal">''</span></p></td> -<td><p>’</p></td> -</tr> -<tr><td><p>psili</p></td> -<td><p><span class="docutils literal">>a</span></p></td> -<td><p>ἀ</p></td> -<td><p>left quotation mark</p></td> -<td><p><span class="docutils literal">((</span></p></td> -<td><p>«</p></td> -</tr> -<tr><td><p>ypogegrammeni</p></td> -<td><p><span class="docutils literal">a|</span></p></td> -<td><p>ᾳ</p></td> -<td><p>right quotation mark</p></td> -<td><p><span class="docutils literal">))</span></p></td> -<td><p>»</p></td> -</tr> -<tr><td><p>dialytika</p></td> -<td><p><span class="docutils literal">"i</span></p></td> -<td><p>ϊ</p></td> -<td><p>zero width non-joiner</p></td> -<td><p>v</p></td> -<td></td> -</tr> -</tbody> -</table> -<p>A major drawback of the LGR transliteration is that you cannot access Latin -letters and some symbols if LGR is the active font encoding (e.g. in -documents or parts of documents given the <cite>Babel</cite> language <span class="docutils literal">greek</span>). This -means that for every Latin-written word or acronym an explicit -language-switch is required. This problem can only be solved via a -font-encoding comprising both Latin and Greek like the hypothetical T7 or -Unicode (with XeTeX or LuaTeX).</p> -<!-- References -- - - - - - - - - - --> -</section> -</main> -</body> -</html> diff --git a/macros/latex/contrib/babel-contrib/greek/README.md b/macros/latex/contrib/babel-contrib/greek/README.md new file mode 100644 index 0000000000..652a58975d --- /dev/null +++ b/macros/latex/contrib/babel-contrib/greek/README.md @@ -0,0 +1,35 @@ +babel-greek +=========== +Babel support for the Greek language +------------------------------------ + +Comprehensive support for the Greek language and script with +[Babel](https://ctan.org/pkg/babel). + +**Version**: 1.12 ([changelog][1]) + +**Copyright**: © 1997 Apostles Syropoulos, Claudio Beccari, Johannes Brahms, + © 2013 - 2023 Günter Milde. + +**License**: + This work may be distributed and/or modified under the conditions of the + [LaTeX Project Public License](http://www.latex-project.org/lppl.txt), + either version 1.3 of this license or any later version. + +**Home**: <https://codeberg.org/milde/greek-tex> + +**Latest Release**: <https://ctan.org/pkg/babel-greek> + +**Requires**: [greek-fontenc](https://ctan.org/pkg/greek-fontenc), + [text fonts supporting the Greek script][2] + +**Recommends**: [greek-inputenc](https://ctan.org/pkg/greek-inputenc) + (when used with 8-bit TeX/pdfTeX) + +See [babel-greek-doc][3] ([babel-greek-doc.rst][4]) for a detailed overview. + + +[1]: babel-greek-doc.html#changelog +[2]: babel-greek-doc.html#greek-text-fonts +[3]: babel-greek-doc.html +[4]: babel-greek-doc.rst diff --git a/macros/latex/contrib/babel-contrib/greek/athnum.dtx b/macros/latex/contrib/babel-contrib/greek/athnum.dtx index 3ea1f5325a..3c1f3f4636 100644 --- a/macros/latex/contrib/babel-contrib/greek/athnum.dtx +++ b/macros/latex/contrib/babel-contrib/greek/athnum.dtx @@ -1,11 +1,8 @@ % \iffalse meta-comment % -% Copyright 1989-2008 Johannes L. Braams and any individual authors -% listed elsewhere in this file. All rights reserved. -% -% This file is part of the Babel system. -% -------------------------------------- -% +% This file is part of the babel-greek package. +% --------------------------------------------- +% % It 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. @@ -13,33 +10,19 @@ % http://www.latex-project.org/lppl.txt % and version 1.3 or later is part of all distributions of LaTeX % version 2003/12/01 or later. -% +% % This work has the LPPL maintenance status "maintained". -% -% The Current Maintainer of this work is Johannes Braams. -% -% The list of all files belonging to the Babel system is -% given in the file `manifest.bbl. See also `legal.bbl' for additional -% information. -% -% The list of derived (unpacked) files belonging to the distribution -% and covered by LPPL is defined by the unpacking scripts (with -% extension .ins) which are part of the distribution. +% +% The Current Maintainer of this work is Günter Milde <milde@users.sf.net>. +% % \fi -%% \CheckSum{125} +%% \CheckSum{150} %\iffalse % %% This is file `athnum.dtx' %% (c) 1997-2007 Apostolos Syropoulos. +%% Changes in version 2.0 © 2022 Günter Milde %% All rights reserved. -% -% Please report errors or suggestions for improvement to -% -% Apostolos Syropoulos -% 366, 28th October Str. -% GR-671 00 Xanthi, GREECE -% apostolo at platon.ee.duth.gr or apostolo at obelix.ee.duth.gr -% %\fi % % \iffalse @@ -62,26 +45,25 @@ %</driver> % \end{macrocode} % \fi -% -%\title{Athenian Numerals II\footnote{The documentation of this -% package is essentially the same as that of the package `grnumalt'. -% The `II' serves as a means to distinguish the two documents.}} +%\title{Attic (or Athenian) Numerals} % \author{Apostolos Syropoulos\\366, 28th October Str.\\ % GR-671 00 Xanthi, HELLAS\\ Email:\texttt{apostolo@platon.ee.duth.gr}} % \date{2003/08/24} %\maketitle -% +% %\MakeShortVerb{\|} % %\section{Introduction} -% -% This \LaTeX\ package implements the macro +% +% This \LaTeX\ package implements the macro % \DescribeMacro{\athnum} % |\athnum|. The macro transforms an Arabic numeral, i.e., the kind % of numerals we all use (e.g., 1, 5, 789 etc), to the corresponding -% {\itshape Athenian} numeral. Athenian numerals were in use only in -% ancient Athens. The package can be used only in conjunction with the -% |greek| option of the |babel| package. +% {\itshape Athenian} (or \emph{Attic} numeral. Athenian numerals were in +% use mainly in ancient Athens. The package requires a Greek text font and +% the |greek-fontenc| package.\footnote{% +% Up to version 1.1, `athnum' required that Babel was loaded with the +% |greek| option. Version 2.0 sets up Greek font support autonomously.} % %\section{The Numbering System} % @@ -95,57 +77,92 @@ % \item $\Pi$ denotes the number five (5) % \item $\Delta$ denotes the number ten (10) % \item H denotes the number one hundred (100) -% \item X denotes the number one thousand (1000) +% \item X denotes the number one thousand (1000) % \item M denotes the number ten thousands (10000) %\end{itemize} -% Moreover, the letters $\Delta$, H, X, and M under the letter $\Pi$, -% denote five times their original value, e.g., the symbol -% \PiIt{X}, denotes the number 5000, and the symbol +% Moreover, the letters $\Delta$, H, X, and M under the letter $\Pi$, +% denote five times their original value, e.g., the symbol +% \PiIt{X}, denotes the number 5000, and the symbol % \PiIt{$\Delta$}, denotes the number 50. It must be noted that % the numbering system does not provide negative numerals or a symbol for -% zero. +% zero. % % The Athenian numbering system is described, among others, in an article in % Encyclopedia $\Delta o\mu\acute{\eta}$, Vol. 2, page 280, 7th edition, % Athens, October 2, 1975. % -% \section{The Code} +% \section{The Code} +% +% \changes{athnum-2.0}{2022/12/08}{% +% Do not require Babel to be loaded with the |greek| option.\\ +% Use LICR macros instead of the Latin transliteration for Greek letters +% to fix working with Unicode fonts.\\ +% Drop the backwards compatibility definitions for PiDelta, PiEta, +% PiChi, and PiMu.} +% % Before we do anything further, we have to identify the package. % \StopEventually % % \begin{macrocode} %<*package> \NeedsTeXFormat{LaTeX2e}[1996/01/01] -\ProvidesPackage{athnum}[2003/08/24\space v1.1] -\typeout{Package: `athnum' v1.1\space <2003/08/24> (A. Syropoulos)} -% \end{macrocode} -% Next we check to see if the |babel| package is loaded with at least -% the |greek| option. In case it isn't, we opt to produce an error message. -% \begin{macrocode} -\@ifpackagewith{babel}{greek}{}{% - \@ifpackagewith{babel}{polutonikogreek}{}{% - \PackageError{athnum}{% - `greek' option of the `babel'\MessageBreak - package hasn't been loaded}{% - The commands provided by this package\MessageBreak - are specially designed for greek language\MessageBreak - typesetting with the `babel' package. Load\MessageBreak - it with at least the `greek' option.}\relax - }} +\ProvidesPackage{athnum}[2022/12/08\space v2.0] +\typeout{Package: `athnum' v2.0\space <2022/12/08> (A. Syropoulos)} % \end{macrocode} +% \section{Font setup} +% +% Typesetting Greek texts requires a font with Greek characters: +% +% For 8-bit LaTeX, this package uses fonts with the LGR font encoding. +% With the XeTeX or LuaTeX engines and Unicode fonts, the user must ensure +% that the selected font contains the required glyphs +% (only few fonts support the "GREEK ACROPHONIC ..." characters). +% LGR-encoded fonts can also be used alongside Unicode fonts with XeTeX/LuaTeX +% to enable the input of Greek letters via the Latin transliteration provided by +% this font encoding. % -% As it is mentioned in the introduction, the Athenian numerals employ -% some special digits. These digits are included in the |cb| fonts of -% Claudio Beccari, and so we must provide access commands. +% \DescribeMacro\greekfontencoding +% We test for available font encodings and set |\greekfontencoding| +% and the internal macro |\athnum@greek@fontencdef| with the name of the +% font definition file that defines the required Greek LICR macros. +% The default is LGR for 8-bit TeX engines and TU for Xe/LuaTeX. % \begin{macrocode} -\DeclareTextCommand{\PiDelta}{LGR}{\char"02\relax} -\DeclareTextCommand{\PiEta}{LGR}{\char"03\relax} -\DeclareTextCommand{\PiChi}{LGR}{\char"04\relax} -\DeclareTextCommand{\PiMu}{LGR}{\char"05\relax} +\ifdefined \UnicodeEncodingName % set by LaTeX for XeTeX/LuaTeX + \providecommand*{\greekfontencoding}{\UnicodeEncodingName} + \providecommand*{\athnum@greek@fontencdef}{tuenc-greek} +\else + \providecommand*{\greekfontencoding}{LGR} + \providecommand*{\athnum@greek@fontencdef}{lgrenc} +\fi % \end{macrocode} -%\begin{macro}{\@@athnum} -% Now, we turn our attention to the definition of the macro -% |\@@athnum|. This macro uses one integer variable (or counter in +% Ensure that the Greek LICR macros are available: +% \begin{macrocode} +\@ifl@aded{def}{\athnum@greek@fontencdef}{} +{% else + \InputIfFileExists{\athnum@greek@fontencdef .def}{}{% else + \PackageError{athnum}{Font support for the Greek script missing.\\ + can't typeset Greek symbols.\\ + Install the "greek-fontenc" package\\ + or use XeTeX/LuaTeX.} + {I can't find the \athnum@greek@fontencdef .def file + for the Greek fonts (encoding \greekfontencoding)} + \@@end + } +} +% \end{macrocode} +% \begin{macro}{\ensuregreek} +% The TextCommand |\ensuregreek| sets it argument in |\greekfontencoding| +% if the current font encoding does not provide a (typically empty) local +% variant. +% \begin{macrocode} +\ProvideTextCommandDefault{\ensuregreek}[1]{% + \leavevmode{\fontencoding{\greekfontencoding}\selectfont #1}} +% \end{macrocode} +% \end{macro} +% +%\begin{macro}{\@@athnum} +% Now, we turn our attention to the definition of the macro +% |\@@athnum|. This macro uses one integer variable (or counter in % \TeX's jargon.) % \begin{macrocode} \newcount\@ath@num @@ -154,18 +171,18 @@ % \begin{macrocode} \DeclareRobustCommand*{\@@athnum}[1]{% % \end{macrocode} -% After assigning to variable |\@ath@num| the value of the macro's argument, +% After assigning to variable |\@ath@num| the value of the macro's argument, %we make sure that the argument is in the expected range, i.e., it is greater -% than zero, and less or equal to $249999$. In case it isn't, we simply +% than zero, and less or equal to $249999$. In case it isn't, we simply % produce a |\space|, warn the user about it and quit. Although, the % |\athnum| macro is capable to produce an Athenian numeral for even greater % intergers, the following argument by Claudio Beccari convised me to place % this above upper limit: -% \begin{quote} +% \begin{quote} % According to psychological perception studies (that ancient Athenians % and Romans perfectly knew without needing to study Freud and Jung) % living beings (which includes at least all vertebrates, not only -% humans) can perceive up to four randomly set objects of the same kind +% humans) can perceive up to four randomly set objects of the same kind % without the need of counting, the latter activity being a specific % acquired ability of human kind; the biquinary numbering notation % used by the Athenians and the Romans exploits this natural @@ -187,61 +204,64 @@ % computation. If the number is greater than $49999$, then it certainly % has at least one \PiIt{M} ``digit''. We find all such digits by continuously % subtracting $50000$ from |\@ath@num|, until |\@ath@num| becomes less than -% $50000$. +% $50000$. % \begin{macrocode} \@whilenum\@ath@num>49999\do{% - \PiMu\advance\@ath@num-50000}% + \textpentemuria\advance\@ath@num-50000}% % \end{macrocode} % We now check for tens of thousands. % \begin{macrocode} \@whilenum\@ath@num>9999\do{% - M\advance\@ath@num-\@M}% + \textMu\advance\@ath@num-\@M}% % \end{macrocode} -% Since a number can have only one \PiIt{X} ``digit'' (equivalent to 5000), it +% Since a number can have only one \PiIt{X} ``digit'' (equivalent to 5000), it % is easy to check it out and produce the corresponding numeral in case it does % have one. % \begin{macrocode} \ifnum\@ath@num>4999% - \PiChi\advance\@ath@num-5000% + \textpenteqilioi\advance\@ath@num-5000% \fi\relax % \end{macrocode} % Next, we check for thousands, the same way we checked for tens of thousands. % \begin{macrocode} \@whilenum\@ath@num>999\do{% - Q\advance\@ath@num-\@m}% + \textChi\advance\@ath@num-\@m}% % \end{macrocode} % Like the five thousands, a numeral can have at most one \PiIt{H} ``digit'' % (equivalent to 500). % \begin{macrocode} \ifnum\@ath@num>499% - \PiEta\advance\@ath@num-500% + \textpentehekaton\advance\@ath@num-500% \fi\relax % \end{macrocode} % It is time to check hundreds, which follow the same pattern as thousands % \begin{macrocode} \@whilenum\@ath@num>99\do{% - H\advance\@ath@num-100}% + \textEta\advance\@ath@num-100}% % \end{macrocode} % A numeral can have only one \PiIt{$\Delta$} ``digit'' (equivalent to 50). -% \begin{macrocode} +% \begin{macrocode} \ifnum\@ath@num>49% - \PiDelta\advance\@ath@num-50% + \textpentedeka\advance\@ath@num-50% \fi\relax % \end{macrocode} % Let's check now decades. -% \begin{macrocode} +% \begin{macrocode} \@whilenum\@ath@num>9\do{% - D\advance\@ath@num by-10}% + \textDelta\advance\@ath@num by-10}% % \end{macrocode} % We check for five and, finally, for the digits 1, 2, 3, and 4. % \begin{macrocode} \@whilenum\@ath@num>4\do{% - P\advance\@ath@num-5}% - \ifcase\@ath@num\or I\or II\or III\or IIII\fi% + \textPi\advance\@ath@num-5}% + \ifcase\@ath@num \or \textIota + \or \textIota\textIota + \or \textIota\textIota\textIota + \or \textIota\textIota\textIota\textIota\fi% \fi\fi} % \end{macrocode} %\end{macro} -% +% %\begin{macro}{\@athnum} % The command |\@athnum| has one argument, which % is a counter. It calls the command |\@@athnum| to process the value of @@ -255,11 +275,13 @@ % The command |\athnum| is a wrapper that declares % a new counter in a local scope, assigns to it the argument of the command % and calls the macro |\@athnum|. This way the command can process correctly -% either a number or a counter. +% either a number or a counter. % \begin{macrocode} \def\athnum#1{% - \@ath@num#1\relax - \@athnum{\@ath@num}} + \ensuregreek{% + \@ath@num#1\relax + \@athnum{\@ath@num}}% + } %</package> % \end{macrocode} %\end{macro} @@ -268,9 +290,9 @@ % I would like to thank Claudio Beccari for reading the documentation % and for his very helpful suggestions. In addition, Antonis Tsolomitis % spotted a bug in the first version, which is corrected in the present -% version. +% version. % \section*{Dedication} -% I would like to dedicate this piece of work to my son +% I would like to dedicate this piece of work to my son % \begin{center}Demetrios-Georgios.\end{center} % \Finale % diff --git a/macros/latex/contrib/babel-contrib/greek/athnum.pdf b/macros/latex/contrib/babel-contrib/greek/athnum.pdf Binary files differindex 6301b00730..060d16210b 100644 --- a/macros/latex/contrib/babel-contrib/greek/athnum.pdf +++ b/macros/latex/contrib/babel-contrib/greek/athnum.pdf diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.html b/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.html new file mode 100644 index 0000000000..0e108edc12 --- /dev/null +++ b/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.html @@ -0,0 +1,1387 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta charset="utf-8" /> +<meta name="generator" content="Docutils 0.20b.dev: https://docutils.sourceforge.io/" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<meta name="dcterms.rights" content="© 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms, © 2013 – 2022 Günter Milde." /> +<title>babel-greek</title> +<link rel="schema.dcterms" href="http://purl.org/dc/terms/"/> +<style type="text/css"> + +/* Minimal style sheet for the HTML output of Docutils. */ +/* */ +/* :Author: Günter Milde, based on html4css1.css by David Goodger */ +/* :Id: $Id$ */ +/* :Copyright: © 2015, 2021 Günter Milde. */ +/* :License: Released under the terms of the `2-Clause BSD license`_, */ +/* in short: */ +/* */ +/* Copying and distribution of this file, with or without modification, */ +/* are permitted in any medium without royalty provided the copyright */ +/* notice and this notice are preserved. */ +/* */ +/* This file is offered as-is, without any warranty. */ +/* */ +/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */ + +/* This CSS3 stylesheet defines rules for Docutils elements without */ +/* HTML equivalent. It is required to make the document semantics visible. */ +/* */ +/* .. _validates: http://jigsaw.w3.org/css-validator/validator$link */ + +/* titles */ +p.topic-title, +p.admonition-title, +p.system-message-title { + font-weight: bold; +} +p.sidebar-title, +p.rubric { + font-weight: bold; + font-size: larger; +} +p.rubric { + color: maroon; +} +p.subtitle, +p.section-subtitle, +p.sidebar-subtitle { + font-weight: bold; + margin-top: -0.5em; +} +h1 + p.subtitle { + font-size: 1.6em; +} +a.toc-backref { + color: inherit; + text-decoration: none; +} + +/* Warnings, Errors */ +.system-messages h2, +.system-message-title, +span.problematic { + color: red; +} + +/* Inline Literals */ +.docutils.literal { + font-family: monospace; + white-space: pre-wrap; +} +/* do not wrap at hyphens and similar: */ +.literal > span.pre { white-space: nowrap; } + +/* Lists */ + +/* compact and simple lists: no margin between items */ +.simple li, .simple ul, .simple ol, +.compact li, .compact ul, .compact ol, +.simple > li p, dl.simple > dd, +.compact > li p, dl.compact > dd { + margin-top: 0; + margin-bottom: 0; +} +/* Nested Paragraphs */ +p:first-child { margin-top: 0; } +p:last-child { margin-bottom: 0; } +details > p:last-child { margin-bottom: 1em; } + +/* Table of Contents */ +.contents ul.auto-toc { /* section numbers present */ + list-style-type: none; +} + +/* Enumerated Lists */ +ol.arabic { list-style: decimal } +ol.loweralpha { list-style: lower-alpha } +ol.upperalpha { list-style: upper-alpha } +ol.lowerroman { list-style: lower-roman } +ol.upperroman { list-style: upper-roman } + +/* Definition Lists and Derivatives */ +dt .classifier { font-style: italic } +dt .classifier:before { + font-style: normal; + margin: 0.5em; + content: ":"; +} +/* Field Lists and similar */ +/* bold field name, content starts on the same line */ +dl.field-list, +dl.option-list, +dl.docinfo { + display: flow-root; +} +dl.field-list > dt, +dl.option-list > dt, +dl.docinfo > dt { + font-weight: bold; + clear: left; + float: left; + margin: 0; + padding: 0; + padding-right: 0.2em; +} +/* Offset for field content (corresponds to the --field-name-limit option) */ +dl.field-list > dd, +dl.option-list > dd, +dl.docinfo > dd { + margin-left: 9em; /* ca. 14 chars in the test examples, fit all Docinfo fields */ +} +/* start nested lists on new line */ +dd > dl:first-child, +dd > ul:first-child, +dd > ol:first-child { + clear: left; +} +/* start field-body on a new line after long field names */ +dl.field-list > dd > *:first-child, +dl.option-list > dd > *:first-child +{ + display: inline-block; + width: 100%; + margin: 0; +} + +/* Bibliographic Fields (docinfo) */ +dl.docinfo pre.address { + font: inherit; + margin: 0.5em 0; +} +dl.docinfo > dd.authors > p { margin: 0; } + +/* Option Lists */ +dl.option-list > dt { font-weight: normal; } +span.option { white-space: nowrap; } + +/* Footnotes and Citations */ + +.footnote, .citation { margin: 1em 0; } /* default paragraph skip (Firefox) */ +/* hanging indent */ +.citation { padding-left: 2em; } +.footnote { padding-left: 1.7em; } +.footnote.superscript { padding-left: 1.0em; } +.citation > .label { margin-left: -2em; } +.footnote > .label { margin-left: -1.7em; } +.footnote.superscript > .label { margin-left: -1.0em; } + +.footnote > .label + *, +.citation > .label + * { + display: inline-block; + margin-top: 0; + vertical-align: top; +} +.footnote > .backrefs + *, +.citation > .backrefs + * { + margin-top: 0; +} +.footnote > .label + p, .footnote > .backrefs + p, +.citation > .label + p, .citation > .backrefs + p { + display: inline; + vertical-align: inherit; +} + +.backrefs { user-select: none; } +.backrefs > a { font-style: italic; } + +/* superscript footnotes */ +a[role="doc-noteref"].superscript, +.footnote.superscript > .label, +.footnote.superscript > .backrefs { + vertical-align: super; + font-size: smaller; + line-height: 1; +} +a[role="doc-noteref"].superscript > .fn-bracket, +.footnote.superscript > .label > .fn-bracket { + /* hide brackets in display but leave for copy/paste */ + display: inline-block; + width: 0; + overflow: hidden; +} +[role="doc-noteref"].superscript + [role="doc-noteref"].superscript { + padding-left: 0.15em; /* separate consecutive footnote references */ + /* TODO: unfortunately, "+" also selects with text between the references. */ +} + +/* Alignment */ +.align-left { + text-align: left; + margin-right: auto; +} +.align-center { + text-align: center; + margin-left: auto; + margin-right: auto; +} +.align-right { + text-align: right; + margin-left: auto; +} +.align-top { vertical-align: top; } +.align-middle { vertical-align: middle; } +.align-bottom { vertical-align: bottom; } + +/* reset inner alignment in figures and tables */ +figure.align-left, figure.align-right, +table.align-left, table.align-center, table.align-right { + text-align: inherit; +} + +/* Text Blocks */ +.topic { margin: 1em 2em; } +.sidebar, +.admonition, +.system-message { + margin: 1em 2em; + border: thin solid; + padding: 0.5em 1em; +} +div.line-block { display: block; } +div.line-block div.line-block, pre { margin-left: 2em; } + +/* Code line numbers: dropped when copying text from the page */ +pre.code .ln { display: none; } +pre.code code:before { + content: attr(data-lineno); /* …, none) fallback not supported by any browser */ + color: gray; +} + +/* Tables */ +table { + border-collapse: collapse; +} +td, th { + border: thin solid silver; + padding: 0 1ex; +} +.borderless td, .borderless th { + border: 0; + padding: 0; + padding-right: 0.5em /* separate table cells */ +} + +table > caption { + text-align: left; + margin-top: 0.2em; + margin-bottom: 0.2em; +} +table.captionbelow { + caption-side: bottom; +} + +/* Document Header and Footer */ +header { border-bottom: 1px solid black; } +footer { border-top: 1px solid black; } + +/* Images are block-level by default in Docutils */ +/* New HTML5 block elements: set display for older browsers */ +img, header, footer, main, aside, nav, section, figure, video, details { + display: block; +} +/* inline images */ +p img, p video, figure img, figure video { + display: inline; +} + +</style> +<style type="text/css"> + +/* CSS3_ style sheet for the output of Docutils HTML5 writer. */ +/* Generic responsive design for all screen sizes. */ +/* */ +/* :Author: Günter Milde */ +/* */ +/* :Id: $Id$ */ +/* :Copyright: © 2021 Günter Milde. */ +/* :License: Released under the terms of the `2-Clause BSD license`_, */ +/* in short: */ +/* */ +/* Copying and distribution of this file, with or without modification, */ +/* are permitted in any medium without royalty provided the copyright */ +/* notice and this notice are preserved. */ +/* */ +/* This file is offered as-is, without any warranty. */ +/* */ +/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */ +/* .. _CSS3: https://www.w3.org/Style/CSS/ */ + +/* Note: */ +/* This style sheet is provisional: */ +/* the API is not settled and may change with any minor Docutils version. */ + + + +/* General Settings */ +/* ================ */ + + +* { box-sizing: border-box; } + +body { + background-color: #fafaf6; + margin: auto; + --field-indent: 6.6em; /* indent of fields in field lists */ + --sidebar-margin-right: 0; /* adapted in media queries below */ +} +main { + counter-reset: figure table; +} +body > * { + background-color: white; + line-height: 1.6; + padding: 0.5rem calc(29% - 7.2rem); /* go from 5% to 15% (8.15em/54em) */ + margin: auto; + max-width: 100rem; +} +sup, sub { /* avoid additional inter-line space for lines with sup/sub */ + line-height: 1; +} + +/* Vertical Space (Parskip) */ +p, ol, ul, dl, li, +div.line-block, +.topic, +.footnote, .citation, +div > math, +table { + margin-top: 0.5em; + margin-bottom: 0.5em; +} +h1, h2, h3, h4, h5, h6, +dl > dd, details > p:last-child { + margin-bottom: 0.5em; +} + +/* Indented Blocks */ +blockquote, figure, .topic { + margin: 1em 2%; + padding-left: 1em; +} +div.line-block div.line-block, +pre, dd, dl.option-list { + margin-left: calc(2% + 1em); +} + +/* Object styling */ +/* ============== */ + +footer, header { + font-size: small; +} + +/* Frontmatter */ +div.dedication { + padding: 0; + margin: 1.4em 0; + font-style: italic; + font-size: large; +} +.dedication p.topic-title { + display: none; +} + +blockquote p.attribution, +.topic p.attribution { + text-align: right; +} + +/* Table of Contents */ +nav.contents ul { + padding-left: 1em; +} +ul.auto-toc > li > p { /* hanging indent */ + padding-left: 1em; + text-indent: -1em; +} +main > nav.contents ul:not(.auto-toc) { + list-style-type: square; +} +main > nav.contents ul ul:not(.auto-toc) { + list-style-type: disc; +} +main > nav.contents ul ul ul:not(.auto-toc) { + list-style-type: '\2B29\ '; +} +main > nav.contents ul ul ul ul:not(.auto-toc) { + list-style-type: '\2B1D\ '; +} +main > nav.contents ul ul ul ul ul:not(.auto-toc) { + list-style-type: '\2B2A\ '; +} +nav.contents ul > li::marker { + color: grey; +} + +/* Transitions */ +hr { + margin: 1em 10%; +} + +/* Lists */ + +ul, ol { + padding-left: 1.1em; /* indent by bullet width (Firefox, DejaVu fonts) */ +} +dl.field-list > dd, +dl.docinfo > dd { + margin-left: var(--field-indent); /* adapted in media queries or HTML */ +} +dl.option-list > dd { + margin-left: 20%; +} +/* run-in: start field-body on same line after long field names */ +dl.field-list.run-in > dd p { + display: block; +} +/* "description style" like in most dictionaries, encyclopedias etc. */ +dl.description { + display: flow-root; +} +dl.description > dt { + clear: left; + float: left; + margin: 0; + padding: 0; + padding-right: 0.3em; + font-weight: bold; +} +dl.description > dd:after { + display: table; + content: ""; + clear: left; /* clearfix for empty descriptions */ +} +/* start lists nested in description/field lists on new line */ +dd > dl:first-child, +dd > ul:first-child, +dd > ol:first-child { + clear: left; +} + +/* disclosures */ +details { padding-left: 1em; } +summary { margin-left: -1em; } + +/* Footnotes and Citations */ +.footnote { + font-size: small; +} + +/* Images, Figures, and Tables */ +img { + display: block; +} +p > img, p > a > img, +figure > img, figure > a > img { + display: inline; +} + +figcaption, +table > caption { + /* font-size: small; */ + font-style: italic; +} +figcaption > .legend { + font-size: small; + font-style: initial; +} +figure.numbered > figcaption > p:before { + counter-increment: figure; + content: "Figure " counter(figure) ": "; + font-weight: bold; + font-style: initial; +} + +table tr { + text-align: left; + vertical-align: baseline; +} +table.booktabs { /* "booktabs" style (no vertical lines) */ + border-top: 2px solid; + border-bottom: 2px solid; +} +table.booktabs * { + border: 0; +} +table.booktabs th { + border-bottom: thin solid; +} +table.numbered > caption:before { + counter-increment: table; + content: "Table " counter(table) ": "; + font-weight: bold; + font-style: initial; +} + +/* Admonitions and System Messages */ +.admonition, +div.system-message { + border: thin solid silver; + margin: 1em 2%; + padding: 0.5em 1em; +} +.caution p.admonition-title, +.attention p.admonition-title, +.danger p.admonition-title, +.warning p.admonition-title, +div.error { + color: maroon; +} +div.system-message > p > span.literal { + overflow-wrap: break-word; +} + +/* Literal and Code */ +pre.literal-block, pre.doctest{ + padding: 0.2em; + overflow-x: auto; +} +.literal-block, .doctest, span.literal { + background-color: #f6f9f8; +} +.system-message span.literal { + background-color: inherit; +} + +/* basic highlighting: for a complete scheme, see */ +/* https://docutils.sourceforge.io/sandbox/stylesheets/ */ +pre.code .comment, code .comment { color: #5C6576 } +pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } +pre.code .literal.string, code .literal.string { color: #0C5404 } +pre.code .name.builtin, code .name.builtin { color: #352B84 } +pre.code .deleted, code .deleted { background-color: #DEB0A1} +pre.code .inserted, code .inserted { background-color: #A3D289} + +/* Hyperlink References */ +a { + text-decoration: none; /* for chromium */ + /* Wrap links at any place, if this is the only way to prevent overflow */ + overflow-wrap: break-word; +} +.contents a, a.toc-backref, a.citation-reference { + overflow-wrap: inherit; +} +/* Undecorated Links (see also minimal.css) */ +/* a.citation-reference, */ +.citation a.fn-backref { + color: inherit; +} +a:hover { + text-decoration: underline; +} +*:hover > a.toc-backref:after { + content: " \2191"; /* ↑ UPWARDS ARROW */ + color: grey; +} +*:hover > a.self-link:after { + content: "\1F517"; /* LINK SYMBOL */ + color: grey; + font-size: smaller; + margin-left: 0.2em; +} +/* highlight the target of the current URL */ +section:target > h2, section:target > h3, section:target > h4, +section:target > h5, section:target > h6, +.contents :target, +.contents:target > .topic-title, +[role="doc-biblioentry"]:target > .label, +[role="doc-biblioref"]:target, +[role="note"]:target, /* Docutils 0.18 ... 0.19 */ +[role="doc-footnote"]:target, /* Docutils >= 0.20 */ +[role="doc-noteref"]:target { + background-color: #d2e6ec; +} + +/* Block Alignment */ +/* Let content flow to the side of aligned images and figures */ + +/* no floats around this elements */ +footer, header, hr, +h1, h2, h3 { + clear: both; +} + +img.align-left, +video.align-left, +figure.align-left, +table.align-left { + margin-left: 0; + padding-left: 0; + margin-right: 0.5em; + clear: left; + float: left; +} +img.align-right, +video.align-right, +figure.align-right, +table.align-right { + margin-left: 0.5em; + margin-right: 0; + clear: right; + float: right; +} + +/* Margin Elements */ +/* see below for screen size dependent rules */ +.sidebar, +.marginal, +.admonition.marginal { + max-width: 40%; + border: none; + background-color: #efefea; + margin: 0.5em var(--sidebar-margin-right) 0.5em 1em; + padding: 0.5em; + padding-left: 0.7em; + clear: right; + float: right; + font-size: small; +} +.sidebar { + width: 40%; +} + +/* Math */ +/* for math-output=MathML (for math-output=HTML, see math.css) */ +math .boldsymbol { + font-weight: bold; +} +mstyle.mathscr, mi.mathscr { + font-family: STIX; +} + +/* Adaptive page layout */ +/* ==================== */ + +@media (max-width: 30em) { + /* Smaller margins and no floating elements for small screens */ + /* (main text less than 40 characters/line) */ + body > * { + padding: 0.5rem 5%; + line-height: 1.4 + } + .sidebar, + .marginal, + .admonition.marginal { + width: auto; + max-width: 100%; + float: none; + } + dl.option-list, + pre { + margin-left: 0; + } + body { + --field-indent: 4em; + } + dl.field-list.narrow, dl.docinfo, dl.option-list { + --field-indent: 2.4em; + } + pre, pre * { + font-size: 0.9em; + /* overflow: auto; */ + } +} + +@media (min-width: 54em) { + /* Move ToC to the left */ + /* Main text width before: 70% ≙ 35em ≙ 75…95 chrs (Dejavu/Times) */ + /* after: ≳ 30em ≙ 54…70 chrs (Dejavu/Times) */ + body.with-toc { + padding-left: 8%; + } + body.with-toc > * { + margin-left: 0; + padding-left: 22rem; /* fallback for webkit */ + padding-left: min(22%, 22rem); + padding-right: 7%; + } + main > nav.contents { /* global ToC */ + position: fixed; + top: 0; + left: 0; + width: min(25%, 25em); + height: 100vh; + margin: 0; + background-color: #fafaf6; + padding: 1em 2% 0 2%; + overflow: auto; + } + main > nav.contents > * { + padding-left: 0; + line-height: 1.4; + } + main > nav.contents a { + color: inherit; + } +} + +@media (min-width: 70em) { + body { + --field-indent: 9em; + } +} + +@media (min-width: 77em) { + /* Move marginalia to 6rem from right border */ + /* .sidebar, */ + /* .marginal, */ + /* .admonition.marginal { */ + /* margin-right: calc(6rem - 15%); */ + /* } */ + /* BUG: margin is calculated for break point width */ + /* workaround: variable + many breakpoints */ + body > * { + padding-left: 18%; + padding-right: 28%; /* fallback for webkit */ + padding-right: min(28%, 28rem); + --sidebar-margin-right: -20rem; + } + /* limit main text to ~ 50em ≙ 85…100 characters DejaVu rsp. …120 Times */ + body.with-toc > * { + padding-left: min(22%, 22rem); + padding-right: calc(78% - 50rem); /* fallback for webkit */ + padding-right: min(78% - 50rem, 28rem); + --sidebar-margin-right: 0; + } +} + +@media (min-width: 85em) { + body.with-toc > * { + --sidebar-margin-right: -9rem; + } +} + +@media (min-width: 90em) { + /* move marginalia into the margin */ + body > * { + padding-left: min(22%, 22rem); + --sidebar-margin-right: -23rem; + } + body.with-toc > * { + --sidebar-margin-right: -14rem; + } +} + +@media (min-width: 99em) { + /* move marginalia out of main text area */ + body.with-toc > * { + --sidebar-margin-right: -20rem; + } + body > *, body.with-toc > * { /* for webkit */ + padding-left: 22rem; + padding-right: 28rem; + } + .admonition.marginal, + .marginal { + width: 40%; /* make marginal figures, ... "full width" */ + } +} + +@media (min-width: 104em) { + body.with-toc > * { + --sidebar-margin-right: -23rem; + } +} + +</style> +</head> +<body class="with-toc"> +<main id="babel-greek"> +<h1 class="title">babel-greek</h1> +<p class="subtitle" id="babel-support-for-the-greek-language-and-script">Babel support for the Greek language and script</p> +<dl class="docinfo simple"> +<dt class="copyright">Copyright<span class="colon">:</span></dt> +<dd class="copyright">© 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms, +© 2013 – 2022 Günter Milde.</dd> +<dt class="licence">Licence<span class="colon">:</span></dt> +<dd class="licence"><p>This work may be distributed and/or modified under the +conditions of the <a class="reference external" href="http://www.latex-project.org/lppl.txt">LaTeX Project Public License</a>, either +version 1.3 of this license or any later version.</p> +</dd> +<dt class="home">Home<span class="colon">:</span></dt> +<dd class="home"><p><a class="reference external" href="https://codeberg.org/milde/greek-tex">https://codeberg.org/milde/greek-tex</a></p> +</dd> +<dt class="latest-release">Latest Release<span class="colon">:</span></dt> +<dd class="latest-release"><p><a class="reference external" href="https://ctan.org/pkg/babel-greek">https://ctan.org/pkg/babel-greek</a></p> +</dd> +</dl> +<div class="topic abstract" role="doc-abstract"> +<p class="topic-title">Abstract</p> +<p><cite>babel-greek</cite> is a contributed package providing comprehensive +support for the Greek language and script via the <a class="reference external" href="https://ctan.org/pkg/babel">Babel</a> system. +Document authors can select between the <em>monotonic</em> +(single-diacritic), <em>polytonic</em> (multiple-diacritic) and +<em>ancient</em> orthography of the Greek language.</p> +</div> +<nav class="contents" id="contents" role="doc-toc"> +<p class="topic-title">Contents</p> +<ul class="simple"> +<li><p><a class="reference internal" href="#files" id="toc-entry-1">Files</a></p></li> +<li><p><a class="reference internal" href="#requirements" id="toc-entry-2">Requirements</a></p></li> +<li><p><a class="reference internal" href="#download-and-installation" id="toc-entry-3">Download and Installation</a></p></li> +<li><p><a class="reference internal" href="#usage" id="toc-entry-4">Usage</a></p></li> +<li><p><a class="reference internal" href="#greek-text-fonts" id="toc-entry-5">Greek text fonts</a></p></li> +<li><p><a class="reference internal" href="#lgr-latin-transliteration" id="toc-entry-6">LGR Latin Transliteration</a></p></li> +<li><p><a class="reference internal" href="#greek-numerals" id="toc-entry-7">Greek Numerals</a></p></li> +<li><p><a class="reference internal" href="#changelog" id="toc-entry-8">Changelog</a></p></li> +<li><p><a class="reference internal" href="#references" id="toc-entry-9">References</a></p></li> +</ul> +</nav> +<section id="files"> +<h2><a class="toc-backref" href="#toc-entry-1" role="doc-backlink">Files</a></h2> +<dl class="simple"> +<dt><a class="reference external" href="babel-greek.dtx">babel-greek.dtx</a></dt> +<dd><p>Source of the language definition file <span class="docutils literal">greek.ldf</span> for use with <a class="reference external" href="https://ctan.org/pkg/babel">Babel</a>. +[<a class="reference external" href="babel-greek.pdf">babel-greek.pdf</a>]</p> +</dd> +<dt><a class="reference external" href="athnum.dtx">athnum.dtx</a></dt> +<dd><p>Athenian (Attic, Herodianic, or acrophonic) Numerals. [<a class="reference external" href="athnum.pdf">athnum.pdf</a>]</p> +</dd> +<dt><a class="reference external" href="grmath.dtx">grmath.dtx</a></dt> +<dd><p>Greek log-like Operators. [<a class="reference external" href="grmath.pdf">grmath.pdf</a>]</p> +</dd> +<dt><a class="reference external" href="babel-greek.ins">babel-greek.ins</a></dt> +<dd><p><a class="reference external" href="https://ctan.org/pkg/docstrip">DocStrip</a> batch file.</p> +</dd> +<dt><a class="reference external" href="usage.tex">usage.tex</a></dt> +<dd><p>Description of the <a class="reference internal" href="#lgr-latin-transliteration">LGR Latin transliteration</a> and the <a class="reference internal" href="#greek-numerals">Greek numerals</a>. +[<a class="reference external" href="usage.pdf">usage.pdf</a>]</p> +</dd> +<dt>test-*</dt> +<dd><p>Documented test sample documents.</p> +</dd> +</dl> +</section> +<section id="requirements"> +<h2><a class="toc-backref" href="#toc-entry-2" role="doc-backlink">Requirements</a></h2> +<p>The <cite>babel-greek</cite> package requires the <a class="reference external" href="https://ctan.org/pkg/babel">Babel</a> package and font +definition files from the <a class="reference external" href="https://ctan.org/pkg/greek-fontenc">greek-fontenc</a> package. The <a class="reference external" href="https://ctan.org/pkg/greek-inputenc">greek-inputenc</a> +package is recommended when using 8-bit TeX engines.</p> +<p>Typesetting Greek texts requires <a class="reference internal" href="#greek-text-fonts">Greek text fonts</a>.</p> +<p>Plain TeX is currently not supported. Patches are welcome.</p> +</section> +<section id="download-and-installation"> +<h2><a class="toc-backref" href="#toc-entry-3" role="doc-backlink">Download and Installation</a></h2> +<p>The simplest way is to get and install this package from your +distribution using its installation manager.</p> +<p>Alternatively:</p> +<ul> +<li><p>Download the latest <a class="reference external" href="https://mirrors.ctan.org/macros/latex/contrib/babel-contrib/greek.zip">release</a> from the package’s <a class="reference external" href="https://www.ctan.org/pkg/babel-greek">CTAN page</a> or a +<a class="reference external" href="https://codeberg.org/milde/greek-tex/archive/master.zip">snapshot</a> of the <a class="reference external" href="https://codeberg.org/milde/greek-tex/">greek-tex</a> repository.</p></li> +<li><p>Unpack the source archive to a temporary location.</p></li> +<li><p>From the <span class="docutils literal"><span class="pre">babel-greek</span></span> directory, +run <span class="docutils literal">tex</span> or <span class="docutils literal">latex</span> on the batch file <span class="docutils literal"><span class="pre">babel-greek.ins</span></span>.</p> +<p>This will generate the files <span class="docutils literal">greek.ldf</span>, <span class="docutils literal">athnum.sty</span>, and +<span class="docutils literal">grmath.sty</span> in the current directory.</p> +</li> +<li><p>Move all files ending in <span class="docutils literal">.ldf</span> or <span class="docutils literal">.sty</span> into a directory +in the TeX search path.</p></li> +<li><p>To produce the documentation, run the file <span class="docutils literal">usage.tex</span> and all files +ending in <span class="docutils literal">.dtx</span> through LaTeX.</p></li> +</ul> +<p>The last steps can be automated using the Unix <a class="reference external" href="https://en.wikipedia.org/wiki/Make_(software)">make</a> tool. +The provided <a class="reference external" href="Makefile">Makefile</a> defines the targets</p> +<dl class="field-list simple"> +<dt><span class="docutils literal">all</span><span class="colon">:</span></dt> +<dd><p>(re)build packages, documentation, and tests,</p> +</dd> +<dt><span class="docutils literal">packages</span><span class="colon">:</span></dt> +<dd><p>(re)build the packages,</p> +</dd> +<dt><span class="docutils literal">doc</span><span class="colon">:</span></dt> +<dd><p>(re)generate HTML and PDF documentation files,</p> +</dd> +<dt><span class="docutils literal">test</span><span class="colon">:</span></dt> +<dd><p>run LaTeX on the test documents,</p> +</dd> +<dt><span class="docutils literal">update</span><span class="colon">:</span></dt> +<dd><p>copy packages into a local TeX tree,<a class="footnote-reference superscript" href="#update" id="footnote-reference-1" role="doc-noteref"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></a></p> +</dd> +<dt><span class="docutils literal"><span class="pre">update-package</span></span><span class="colon">:</span></dt> +<dd><p>copy documentation and sources into a local +TeX tree,<a class="footnote-reference superscript" href="#update" id="footnote-reference-2" role="doc-noteref"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></a></p> +</dd> +<dt><span class="docutils literal">clean</span><span class="colon">:</span></dt> +<dd><p>delete auxiliary files.</p> +</dd> +</dl> +<aside class="footnote-list superscript"> +<aside class="footnote superscript" id="update" role="doc-footnote"> +<span class="label"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></span> +<span class="backrefs">(<a role="doc-backlink" href="#footnote-reference-1">1</a>,<a role="doc-backlink" href="#footnote-reference-2">2</a>)</span> +<p>This is a simple <span class="docutils literal">cp <span class="pre">--update</span></span> to a pre-set path. +The destination directory must exist. Files no longer present in the +package are not removed.</p> +</aside> +</aside> +</section> +<section id="usage"> +<h2><a class="toc-backref" href="#toc-entry-4" role="doc-backlink">Usage</a></h2> +<p>Use the “greek” document option or pass the “greek” option to Babel,<a class="footnote-reference superscript" href="#footnote-1" id="footnote-reference-3" role="doc-noteref"><span class="fn-bracket">[</span>2<span class="fn-bracket">]</span></a> +e.g.:</p> +<pre class="code latex literal-block"><code><span class="keyword">\usepackage</span><span class="name attribute">[greek,english]</span><span class="name builtin">{</span>babel<span class="name builtin">}</span></code></pre> +<p>For polytonic Greek, set the language attribute “polutoniko”, either +after loading Babel</p> +<pre class="code latex literal-block"><code><span class="keyword">\usepackage</span><span class="name attribute">[greek,english]</span><span class="name builtin">{</span>babel<span class="name builtin">}</span> +<span class="keyword">\languageattribute</span><span class="name builtin">{</span>greek<span class="name builtin">}{</span>polutoniko<span class="name builtin">}</span></code></pre> +<p>or as modifier</p> +<pre class="code latex literal-block"><code><span class="keyword">\usepackage</span><span class="name attribute">[greek.polutoniko,english]</span><span class="name builtin">{</span>babel<span class="name builtin">}</span></code></pre> +<p>Similarly, the attribute “ancient” selects the ancient Greek language +variant.</p> +<p>For details see <a class="citation-reference" href="#" id="citation-reference-1" role="doc-biblioref">[babel-greek.pdf]</a> and the <a class="reference external" href="https://ctan.org/pkg/babel">babel</a> documentation.</p> +<p>Input of Greek characters is possible as literal characters (α … Ω)<a class="footnote-reference superscript" href="#footnote-2" id="footnote-reference-4" role="doc-noteref"><span class="fn-bracket">[</span>3<span class="fn-bracket">]</span></a>, as LICR macro (<span class="docutils literal">\textalpha{} ... \textOmega</span>), or via the <a class="reference internal" href="#lgr-latin-transliteration">LGR +Latin transliteration</a> (a … W)<a class="footnote-reference superscript" href="#footnote-3" id="footnote-reference-5" role="doc-noteref"><span class="fn-bracket">[</span>4<span class="fn-bracket">]</span></a>. See +<a class="citation-reference" href="#" id="citation-reference-2" role="doc-biblioref">[usage.pdf]</a> and the example files provided with <a class="reference external" href="https://ctan.org/pkg/greek-fontenc">greek-fontenc</a>.</p> +<aside class="footnote-list superscript"> +<aside class="footnote superscript" id="footnote-1" role="doc-footnote"> +<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#footnote-reference-3">2</a><span class="fn-bracket">]</span></span> +<p>Alongside other languages that will be used in the document. +The <em>last</em> language option sets the document’s main language.</p> +</aside> +<aside class="footnote superscript" id="footnote-2" role="doc-footnote"> +<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#footnote-reference-4">3</a><span class="fn-bracket">]</span></span> +<p>with the <a class="reference external" href="https://ctan.org/pkg/greek-inputenc">greek-inputenc</a> package or XeTeX/LuaTeX</p> +</aside> +<aside class="footnote superscript" id="footnote-3" role="doc-footnote"> +<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#footnote-reference-5">4</a><span class="fn-bracket">]</span></span> +<p>only with LGR fonts</p> +</aside> +</aside> +</section> +<section id="greek-text-fonts"> +<h2><a class="toc-backref" href="#toc-entry-5" role="doc-backlink">Greek text fonts</a></h2> +<p>A list of <a class="reference external" href="https://ctan.org/topic/font-greek">Greek text fonts for use with LaTeX</a> is available at CTAN.</p> +<p>The non-standard LGR <a class="reference external" href="https://mirrors.ctan.org/macros/latex/base/encguide.pdf">font encoding</a> is used for typesetting Greek with +“traditional” 8-bit TeX engines (pdfTeX). Fonts in this encoding include +the <a class="reference external" href="https://ctan.org/pkg/cbgreek-complete">CB fonts</a> (matching CM), <a class="reference external" href="https://ctan.org/pkg/grtimes">grtimes</a> (Greek Times), <a class="reference external" href="https://ctan.org/pkg/kerkis">Kerkis</a> (matching +URW Bookman), and the <a class="reference external" href="https://ctan.org/pkg/gfs">GFS font collection</a>. +The package <a class="reference external" href="https://ctan.org/pkg/cbfonts-fd">cbfonts-fd</a> registers the CB fonts as Greek substitute for +the Computer Modern and Latin Modern font families. For other font +families, declaring Greek fonts as supplement for matching Latin font +families can be done with the <code class="latex">\DeclareFontFamilySubstitution</code> +macro (see section <cite>Providing font family substitutions</cite> in <a class="citation-reference" href="#fntguide" id="citation-reference-3" role="doc-biblioref">[fntguide]</a>).</p> +<p>Unicode fonts used with XeTeX or LuaTeX provide slots for all Unicode +characters in one font but commonly only a subset of the actual glyphs.</p> +<aside class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>The default <strong>Latin Modern contains only a few Greek letters!</strong> +Unsupported characters are silently dropped from the output. +Warnings about missing glyphs are written to the log +file only, not to the console.</p> +</aside> +<p>Select a suitable font with <a class="reference external" href="https://ctan.org/pkg/babel">Babel</a>’s font selecting framework or +directly with <a class="reference external" href="https://ctan.org/pkg/fontspec">fontspec</a>. Examples for suitable fonts are <a class="reference external" href="https://ctan.org/pkg/cm-unicode">CM-unicode</a> +or <a class="reference external" href="https://ctan.org/pkg/libertine">Linux Libertine</a> as well as any system-wide installed OTF font +that supports Greek (e.g. <a class="reference external" href="http://dejavu-fonts.org">Deja Vu</a>). See, e.g., the list of free +<a class="reference external" href="https://fontinfo.opensuse.org/scripts/script-Greek.html">fonts supporting Greek script</a> by openSUSE’s fontinfo.</p> +</section> +<section id="lgr-latin-transliteration"> +<h2><a class="toc-backref" href="#toc-entry-6" role="doc-backlink">LGR Latin Transliteration</a></h2> +<p>The LGR font encoding allows input of Greek characters via a Latin +transliteration. This enables simple input with a Latin keyboard. Characters +with diacritics may be selected with accent macros (cf. <a class="reference external" href="https://ctan.org/pkg/greek-fontenc">greek-fontenc</a>) or +via the ligature definitions in the font (see <a class="citation-reference" href="#" id="citation-reference-4" role="doc-biblioref">[usage.pdf]</a>).</p> +<p>The following ASCII characters are converted to Greek symbols:</p> +<table> +<tbody> +<tr><td><p>A</p></td> +<td><p>B</p></td> +<td><p>G</p></td> +<td><p>D</p></td> +<td><p>E</p></td> +<td><p>Z</p></td> +<td><p>H</p></td> +<td><p>J</p></td> +<td><p>I</p></td> +<td><p>K</p></td> +<td><p>L</p></td> +<td><p>M</p></td> +<td><p>N</p></td> +<td><p>X</p></td> +<td><p>O</p></td> +<td><p>P</p></td> +<td><p>R</p></td> +<td><p>S</p></td> +<td></td> +<td><p>T</p></td> +<td><p>U</p></td> +<td><p>F</p></td> +<td><p>Q</p></td> +<td><p>Y</p></td> +<td><p>W</p></td> +</tr> +<tr><td><p>Α</p></td> +<td><p>Β</p></td> +<td><p>Γ</p></td> +<td><p>Δ</p></td> +<td><p>Ε</p></td> +<td><p>Ζ</p></td> +<td><p>Η</p></td> +<td><p>Θ</p></td> +<td><p>Ι</p></td> +<td><p>Κ</p></td> +<td><p>Λ</p></td> +<td><p>Μ</p></td> +<td><p>Ν</p></td> +<td><p>Ξ</p></td> +<td><p>Ο</p></td> +<td><p>Π</p></td> +<td><p>Ρ</p></td> +<td><p>Σ</p></td> +<td></td> +<td><p>Τ</p></td> +<td><p>Υ</p></td> +<td><p>Φ</p></td> +<td><p>Χ</p></td> +<td><p>Ψ</p></td> +<td><p>Ω</p></td> +</tr> +<tr><td><p>a</p></td> +<td><p>b</p></td> +<td><p>g</p></td> +<td><p>d</p></td> +<td><p>e</p></td> +<td><p>z</p></td> +<td><p>h</p></td> +<td><p>j</p></td> +<td><p>i</p></td> +<td><p>k</p></td> +<td><p>l</p></td> +<td><p>m</p></td> +<td><p>n</p></td> +<td><p>x</p></td> +<td><p>o</p></td> +<td><p>p</p></td> +<td><p>r</p></td> +<td><p>s</p></td> +<td><p>c</p></td> +<td><p>t</p></td> +<td><p>u</p></td> +<td><p>f</p></td> +<td><p>q</p></td> +<td><p>y</p></td> +<td><p>w</p></td> +</tr> +<tr><td><p>α</p></td> +<td><p>β</p></td> +<td><p>γ</p></td> +<td><p>δ</p></td> +<td><p>ε</p></td> +<td><p>ζ</p></td> +<td><p>η</p></td> +<td><p>θ</p></td> +<td><p>ι</p></td> +<td><p>κ</p></td> +<td><p>λ</p></td> +<td><p>μ</p></td> +<td><p>ν</p></td> +<td><p>ξ</p></td> +<td><p>ο</p></td> +<td><p>π</p></td> +<td><p>ρ</p></td> +<td><p>σ</p></td> +<td><p>ς</p></td> +<td><p>τ</p></td> +<td><p>υ</p></td> +<td><p>φ</p></td> +<td><p>χ</p></td> +<td><p>ψ</p></td> +<td><p>ω</p></td> +</tr> +</tbody> +</table> +<p>Accent symbols and punctuation:</p> +<table> +<tbody> +<tr><td><p>tonos</p></td> +<td><p><span class="docutils literal">'a</span></p></td> +<td><p>ά</p></td> +<td><p>right apostrophe</p></td> +<td><p><span class="docutils literal">''</span></p></td> +<td><p>’</p></td> +</tr> +<tr><td><p>varia</p></td> +<td><p><span class="docutils literal">`a</span></p></td> +<td><p>ὰ</p></td> +<td><p>left apostrophe</p></td> +<td><p>``</p></td> +<td><p>‘</p></td> +</tr> +<tr><td><p>dasia</p></td> +<td><p><span class="docutils literal"><a</span></p></td> +<td><p>ἁ</p></td> +<td><p>left quotation mark</p></td> +<td><p><span class="docutils literal">((</span></p></td> +<td><p>«</p></td> +</tr> +<tr><td><p>psili</p></td> +<td><p><span class="docutils literal">>a</span></p></td> +<td><p>ἀ</p></td> +<td><p>right quotation mark</p></td> +<td><p><span class="docutils literal">))</span></p></td> +<td><p>»</p></td> +</tr> +<tr><td><p>perispomeni</p></td> +<td><p><span class="docutils literal">\~a</span></p></td> +<td><p>ᾶ</p></td> +<td><p>erotimatiko</p></td> +<td><p><span class="docutils literal">?</span></p></td> +<td><p>;</p></td> +</tr> +<tr><td><p>dialytika</p></td> +<td><p><span class="docutils literal">"i</span></p></td> +<td><p>ϊ</p></td> +<td><p>middle dot</p></td> +<td><p><span class="docutils literal">;</span></p></td> +<td><p>·</p></td> +</tr> +<tr><td><p>ypogegrammeni</p></td> +<td><p><span class="docutils literal">a|</span></p></td> +<td><p>ᾳ</p></td> +<td><p>zero width non-joiner</p></td> +<td><p><span class="docutils literal">av|</span></p></td> +<td><p>αͺ</p></td> +</tr> +</tbody> +</table> +<p>The downside is, that you cannot print Latin letters and some symbols if +LGR is the active font encoding. This means that for every Latin-written +word or acronym in a Greek text part, an explicit font encoding switch is +required.</p> +</section> +<section id="greek-numerals"> +<h2><a class="toc-backref" href="#toc-entry-7" role="doc-backlink">Greek Numerals</a></h2> +<p><cite>babel-greek</cite> provides the macros <code class="latex">\greeknumeral</code> and +<code class="latex">\Greeknumeral</code> to transform a number into its corresponding +<a class="reference external" href="https://en.wikipedia.org/wiki/Greek_numerals">Greek numeral</a> +(see also section <a class="reference external" href="http://mirrors.ctan.org/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf#greek-numbering">Greek numbering</a> in the PDF documentation).</p> +<p>The classic <cite>Greek numerals</cite>, also known as Ionic, Ionian, Milesian, or +Alexandrian numerals were introduced to Athens along with the Ionic alphabet +from the city of Miletus in Ionia replacing the <a class="reference external" href="https://en.wikipedia.org/wiki/Attic_numerals">Attic numerals</a>. +They are still used in everyday life for ordinal numbers and +more generally by the Orthodox church and certain scholars.</p> +<p>Greek numerals use several now obsolete letters: +<a class="reference external" href="https://en.wikipedia.org/wiki/Digamma">digamma</a> ϝ or <a class="reference external" href="https://en.wikipedia.org/wiki/Stigma_(ligature)">stigma</a> ϛ, <a class="reference external" href="https://en.wikipedia.org/wiki/Koppa_(letter)">koppa</a> ϟ or ϙ, and <a class="reference external" href="https://en.wikipedia.org/wiki/Sampi">sampi</a> ϡ <a class="citation-reference" href="#nicholas-05" id="citation-reference-5" role="doc-biblioref">[Nicholas-05]</a>.</p> +<ul> +<li><p>Standing for 6 is the <a class="reference external" href="https://en.wikipedia.org/wiki/Digamma">digamma</a> ϝ, the sixth letter of the Ionic +alphabet (just as its Latin equivalent F is the sixth letter of the +Latin alphabet). As Greek script turned to uncial and then lowercase, +the numeral changed its shape and became conflated with another, +similar sign: the ligature for sigma-tau <a class="reference external" href="https://en.wikipedia.org/wiki/Stigma_(ligature)">stigma</a> ϛ. +The letters στ are frequently used as replacement.</p> +<p>There is no significant tradition of ϝ being used as a numeral in +editions of classical texts, even though the Ancients clearly used +digamma rather than stigma as their numeral.</p> +</li> +<li><p>Three different signs are in use for the number 90: Classicists use the +“archaic <a class="reference external" href="https://en.wikipedia.org/wiki/Koppa_(letter)">koppa</a>” ϙ, and more rarely its uncial form (resembling the +“<a class="reference external" href="https://en.wikipedia.org/wiki/Koppa_(Cyrillic)">Cyrillic letter koppa</a>” ҁ or the “Gothic letter ninety” 𐍁). +Modern Greeks use the “Greek letter koppa” ϟ exclusively and +do not recognise ϙ at all, let alone as a glyph variant of ϟ.</p></li> +<li><p>The sign for the number 900 is the <a class="reference external" href="https://en.wikipedia.org/wiki/Sampi">sampi</a> ϡ. Its shape, developed +during its use in minuscule handwriting of the Byzantine era. Earlier +variants similar to the “archaic sampi” ͳ and the “Gothic Letter Nine +Hundred” 𐍊 are not used in Greek.</p></li> +</ul> +<p>Users can redefine the macros <code class="latex">\greeknumeralsix</code>, +<code class="latex">\greeknumeralSix</code>, <code class="latex">\greeknumeralninety</code>, and +<code class="latex">\greeknumeralNinety</code> to configure the used symbols, +for example</p> +<pre class="code latex literal-block"><code><span class="keyword">\renewcommand</span><span class="name builtin">{</span><span class="keyword">\greeknumeralninety</span><span class="name builtin">}{</span><span class="keyword">\textkoppa</span><span class="name builtin">}</span> +<span class="keyword">\renewcommand</span><span class="name builtin">{</span><span class="keyword">\greeknumeralNinety</span><span class="name builtin">}{</span><span class="keyword">\textKoppa</span><span class="name builtin">}</span> +<span class="keyword">\ifdefined</span> <span class="keyword">\textvarstigma</span> + <span class="keyword">\renewcommand</span><span class="name builtin">{</span><span class="keyword">\greeknumeralSix</span><span class="name builtin">}{</span><span class="keyword">\textvarstigma</span><span class="name builtin">}</span> +<span class="keyword">\fi</span></code></pre> +<p>sets the symbol for 90 to the “modern” koppa ϟ also for ancient Greek +and the “capital” 6 symbol to the variant stigma glyph (only defined in LGR).</p> +</section> +<section id="changelog"> +<h2><a class="toc-backref" href="#toc-entry-8" role="doc-backlink">Changelog</a></h2> +<dl class="simple"> +<dt>1.4 (2013-05-17)</dt> +<dd><ul class="simple"> +<li><p>New maintainer.</p></li> +<li><p>The encoding definition file <span class="docutils literal">lgrenc.def</span> moved to the +<a class="reference external" href="https://ctan.org/pkg/greek-fontenc">greek-fontenc</a> package.</p></li> +</ul> +</dd> +<dt>1.5 (2013-06-21)</dt> +<dd><ul class="simple"> +<li><p>Bugfixes and cleanup.</p></li> +<li><p>LICR macros in string definitions.</p></li> +<li><p>LGR font encoding not used with XeTeX/LuaTeX.</p></li> +<li><p>Input “xgreek-fixes.def” from <a class="reference external" href="https://ctan.org/pkg/polyglossia">polyglossia</a> with Xe/LuaTeX.</p></li> +</ul> +</dd> +<dt>1.5a (2013-07-02)</dt> +<dd><ul class="simple"> +<li><p>Fix LaTeX bugs babel/3707, <a class="reference external" href="http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4303">babel/4303</a> and <a class="reference external" href="http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4305">babel/4305</a></p></li> +</ul> +</dd> +<dt>1.6 (2013-07-19)</dt> +<dd><ul class="simple"> +<li><p>Experimental support for XeTeX/LuaTeX.</p></li> +</ul> +</dd> +<dt>1.7 (2013-09-09)</dt> +<dd><ul class="simple"> +<li><p>CB-Fonts font definition files moved to CB-Fonts package.</p></li> +<li><p>Do not auto-load euenc.def with XeTeX/LuaTeX.</p></li> +</ul> +</dd> +<dt>1.7a (2013-09-13)</dt> +<dd><ul class="simple"> +<li><p>Fix bug <a class="reference external" href="http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4360">babel/4360</a>: spurious <span class="docutils literal">\fi</span>.</p></li> +</ul> +</dd> +<dt>1.7b (2013-10-01)</dt> +<dd><ul class="simple"> +<li><p>Fix upcasing of babel strings with Xe/LuaTeX.</p></li> +</ul> +</dd> +<dt>1.8 (2013-12-02)</dt> +<dd><ul class="simple"> +<li><p>Rename <span class="docutils literal">greek.dtx</span> to <span class="docutils literal"><span class="pre">babel-greek</span></span> so that <a class="reference external" href="https://ctan.org/pkg/texdoc">texdoc</a> +shows the right documentation.</p></li> +<li><p>Compatibility with Xe/LuaTeX in Unicode and 8-bit mode.</p></li> +</ul> +</dd> +<dt>1.8a (2013-12-03)</dt> +<dd><ul class="simple"> +<li><p>Set <span class="docutils literal">\encodingdefault</span> in <span class="docutils literal">\greekscript</span> to fix Greek +in footnotes etc. with document language Greek.</p></li> +</ul> +</dd> +<dt>1.9 (2014-07-20)</dt> +<dd><ul class="simple"> +<li><p>New attribute for ancient Greek, load correct hyphenation +patterns (patch by Claudio Beccari).</p></li> +<li><p>Bugfix for <span class="docutils literal">\Makeuppercase</span></p></li> +</ul> +</dd> +<dt>1.9a (2014-09-12)</dt> +<dd><ul class="simple"> +<li><p>Remove duplicate code, documentation review.</p></li> +</ul> +</dd> +<dt>1.9b (2014-09-18)</dt> +<dd><ul class="simple"> +<li><p>Remove spurious whitespace from <span class="docutils literal">\extrasgreek</span> definition.</p></li> +<li><p>Use named macros instead of non-standard short macros +for <em>psili</em> and <em>dasia</em> in the string definitions.</p></li> +</ul> +</dd> +<dt>1.9c (2014-10-21)</dt> +<dd><ul class="simple"> +<li><p>Fix dummy hyphenation language names (patch by Ulrike Fischer).</p></li> +</ul> +</dd> +<dt>1.9d (2015-09-04)</dt> +<dd><ul class="simple"> +<li><p>Remove <cite>grsymb</cite> (macros for Greek symbols). +This package is outdated and obsoleted by <a class="reference external" href="https://ctan.org/pkg/greek-fontenc">greek-fontenc</a> +(reported by Claudio Beccari).</p></li> +<li><p>Unicode uc/lc corrections now in <cite>greek-fontenc</cite>.</p></li> +</ul> +</dd> +<dt>1.9e (2015-11-27)</dt> +<dd><ul class="simple"> +<li><p>Fix bug in lccode-setting loop (patch by Enrico Gregorio).</p></li> +</ul> +</dd> +<dt>1.9f (2016-02-04)</dt> +<dd><ul class="simple"> +<li><p>Support for new standard Unicode text font encoding “TU”.</p></li> +</ul> +</dd> +<dt>1.9g (2016-09-07)</dt> +<dd><ul class="simple"> +<li><p>Babel 3.9i deprecated <span class="docutils literal">\textlatin</span> and fixed <span class="docutils literal">\latinencoding</span>. +1.9h (2019-07-11)</p></li> +<li><p>Move breathing composite commands to <a class="reference external" href="https://ctan.org/pkg/greek-fontenc">textalpha</a>.</p></li> +</ul> +</dd> +<dt>1.9i (2020-02-28)</dt> +<dd><ul class="simple"> +<li><p>Update test for Unicode fonts.</p></li> +<li><p>Fix accent in <span class="docutils literal">\seename</span> and <span class="docutils literal">\alsoname</span>.</p></li> +</ul> +</dd> +<dt>1.9j (2020-03-17)</dt> +<dd><ul class="simple"> +<li><p>Fix ampersand in math mode.</p></li> +</ul> +</dd> +<dt>1.10 (2020-11-10)</dt> +<dd><ul class="simple"> +<li><p>Use <span class="docutils literal">TU</span> as <span class="docutils literal">\greekfontencoding</span> for Xe/LuaTeX (set by LaTeX as +<a class="reference external" href="https://www.latex-project.org/news/latex2e-news/ltnews26.pdf">default font encoding for Unicode engines</a> since 2017/01/01).</p></li> +<li><p>Use zig-zaggy <span class="docutils literal">\textkoppa</span> for <span class="docutils literal">\greeknumeral{90}</span>.</p></li> +<li><p>PDF-string secure implementation of <span class="docutils literal">\greeknumeral</span> from <a class="reference external" href="https://ctan.org/pkg/hyperref">hyperref</a>.</p></li> +<li><p>Load <span class="docutils literal"><span class="pre">puenc-greek.def</span></span> (from <a class="reference external" href="https://ctan.org/pkg/greek-fontenc">greek-fontenc</a>) if used with hyperref +(polytonic Greek in PDF-strings).</p></li> +</ul> +</dd> +<dt>1.11 (2020-11-20)</dt> +<dd><ul class="simple"> +<li><p>Configurable <a class="reference internal" href="#greek-numerals">Greek numerals</a> 6 and 90.</p></li> +<li><p>Save/restore previous font encoding instead of switching +to hard-coded <span class="docutils literal">\latinencoding</span> when leaving Greek.</p></li> +</ul> +</dd> +<dt>1.12 (2023-03-04)</dt> +<dd><ul class="simple"> +<li><p>Do not change the uccode values if the LaTeX version is newer than +2022/06. The new <span class="docutils literal">\MakeUppercase</span> definition ignores them and fails +with the “dummy” character 0x9f (cf. <a class="citation-reference" href="#ltnews35" id="citation-reference-6" role="doc-biblioref">[ltnews35]</a>, <a class="reference external" href="https://github.com/latex3/latex2e/issues/987">LaTeX issue 987</a>).</p></li> +<li><p>New modifiers <span class="docutils literal"><span class="pre">local-LGR-fixes</span></span> and <span class="docutils literal"><span class="pre">no-LGR-fixes</span></span> to address +indexing problmes with Roman numerals (<a class="reference external" href="https://github.com/latex3/babel/issues/170">Babel issue 170</a>). Provisional.</p></li> +<li><p>New TextCommand <span class="docutils literal">\EnsureStandardFontEncoding</span>.</p></li> +<li><p>Rename <span class="docutils literal">\textgreek</span> to <span class="docutils literal">\lgrfont</span> to avoid confusion with a +language changing command.</p></li> +<li><p>Documentation update and refactoring.</p></li> +<li><p>Drop LGR-local re-definition of <span class="docutils literal">\SS</span>.</p></li> +<li><p><a class="reference external" href="athnum.dtx">athnum.dtx</a> 2.0: +Don’t require Babel. +Use LICR macros instead of the Latin transliteration.</p></li> +</ul> +</dd> +</dl> +</section> +<section id="references"> +<h2><a class="toc-backref" href="#toc-entry-9" role="doc-backlink">References</a></h2> +<div role="list" class="citation-list"> +<div class="citation" id="fntguide" role="doc-biblioentry"> +<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-3">fntguide</a><span class="fn-bracket">]</span></span> +<p>LaTeX Project Team <cite>LaTeX2e font selection</cite>, December 2021. +<a class="reference external" href="https://www.latex-project.org/help/documentation/fntguide.pdf">https://www.latex-project.org/help/documentation/fntguide.pdf</a></p> +</div> +<div class="citation" id="ltnews35" role="doc-biblioentry"> +<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-6">ltnews35</a><span class="fn-bracket">]</span></span> +<p>LaTeX Project Team <cite>LaTeX News 35</cite>, June 2022. +<a class="reference external" href="https://www.latex-project.org/news/latex2e-news/ltnews35.pdf">https://www.latex-project.org/news/latex2e-news/ltnews35.pdf</a></p> +</div> +<div class="citation" id="nicholas-05" role="doc-biblioentry"> +<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-5">Nicholas-05</a><span class="fn-bracket">]</span></span> +<p>Nick Nicholas <cite>Numerals: Stigma, Koppa, Sampi</cite>, 2005. +<a class="reference external" href="https://opoudjis.net/unicode/numerals.html">https://opoudjis.net/unicode/numerals.html</a></p> +</div> +<div class="citation" id="vlachou-22" role="doc-biblioentry"> +<span class="label"><span class="fn-bracket">[</span>Vlachou-22<span class="fn-bracket">]</span></span> +<p>Irene Vlachou +<cite>Polytonic Greek: a guide for type designers</cite>, 2022. +<a class="reference external" href="https://irenevl.github.io/Polytonic-tutorial/">https://irenevl.github.io/Polytonic-tutorial/</a></p> +</div> +<div class="citation" id="haralambous-98" role="doc-biblioentry"> +<span class="label"><span class="fn-bracket">[</span>Haralambous-98<span class="fn-bracket">]</span></span> +<p>Yannis Haralambous +<cite>From Unicode to Typography, a Case Study: the Greek Script</cite>, 1998. +<a class="reference external" href="https://hal.science/hal-02101618">https://hal.science/hal-02101618</a></p> +</div> +</div> +</section> +</main> +</body> +</html> diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.rst b/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.rst new file mode 100644 index 0000000000..fe62a4ff66 --- /dev/null +++ b/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.rst @@ -0,0 +1,414 @@ +babel-greek +*********** +Babel support for the Greek language and script +=============================================== + +:Copyright: © 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms, + © 2013 -- 2022 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. + +:Home: https://codeberg.org/milde/greek-tex + +:Latest Release: https://ctan.org/pkg/babel-greek + +:Abstract: `babel-greek` is a contributed package providing comprehensive + support for the Greek language and script via the Babel_ system. + Document authors can select between the *monotonic* + (single-diacritic), *polytonic* (multiple-diacritic) and + *ancient* orthography of the Greek language. + +.. contents:: + +Files +----- + +`<babel-greek.dtx>`_ + Source of the language definition file ``greek.ldf`` for use with Babel_. + [`<babel-greek.pdf>`_] +`<athnum.dtx>`_ + Athenian (Attic, Herodianic, or acrophonic) Numerals. [`<athnum.pdf>`_] +`<grmath.dtx>`_ + Greek log-like Operators. [`<grmath.pdf>`_] +`<babel-greek.ins>`_ + DocStrip_ batch file. +`<usage.tex>`_ + Description of the `LGR Latin transliteration`_ and the `Greek numerals`_. + [`<usage.pdf>`_] +test-* + Documented test sample documents. + + +Requirements +------------ + +The `babel-greek` package requires the Babel_ package and font +definition files from the greek-fontenc_ package. The greek-inputenc_ +package is recommended when using 8-bit TeX engines. + +Typesetting Greek texts requires `Greek text fonts`_. + +Plain TeX is currently not supported. Patches are welcome. + + +Download and Installation +------------------------- + +The simplest way is to get and install this package from your +distribution using its installation manager. + +Alternatively: + +* Download the latest `release`_ from the package's `CTAN page`_ or a + snapshot_ of the `greek-tex`_ repository. + +* Unpack the source archive to a temporary location. + +* From the ``babel-greek`` directory, + run ``tex`` or ``latex`` on the batch file ``babel-greek.ins``. + + This will generate the files ``greek.ldf``, ``athnum.sty``, and + ``grmath.sty`` in the current directory. + +* Move all files ending in ``.ldf`` or ``.sty`` into a directory + in the TeX search path. + +* To produce the documentation, run the file ``usage.tex`` and all files + ending in ``.dtx`` through LaTeX. + +The last steps can be automated using the Unix `make`_ tool. +The provided `<Makefile>`_ defines the targets + +:``all``: (re)build packages, documentation, and tests, +:``packages``: (re)build the packages, +:``doc``: (re)generate HTML and PDF documentation files, +:``test``: run LaTeX on the test documents, +:``update``: copy packages into a local TeX tree, [#update]_ +:``update-package``: copy documentation and sources into a local + TeX tree, [#update]_ +:``clean``: delete auxiliary files. + +.. [#update] This is a simple ``cp --update`` to a pre-set path. + The destination directory must exist. Files no longer present in the + package are not removed. + +.. _release: + https://mirrors.ctan.org/macros/latex/contrib/babel-contrib/greek.zip +.. _CTAN page: https://www.ctan.org/pkg/babel-greek +.. _greek-tex: https://codeberg.org/milde/greek-tex/ +.. _snapshot: https://codeberg.org/milde/greek-tex/archive/master.zip +.. _make: https://en.wikipedia.org/wiki/Make_(software) + + +Usage +----- + +.. role:: latex(code) + +Use the "greek" document option or pass the "greek" option to Babel, [#]_ +e.g.: + +.. code:: latex + + \usepackage[greek,english]{babel} + +For polytonic Greek, set the language attribute "polutoniko", either +after loading Babel + +.. code:: latex + + \usepackage[greek,english]{babel} + \languageattribute{greek}{polutoniko} + +or as modifier + +.. code:: latex + + \usepackage[greek.polutoniko,english]{babel} + +Similarly, the attribute "ancient" selects the ancient Greek language +variant. + +For details see [babel-greek.pdf]_ and the babel_ documentation. + +Input of Greek characters is possible as literal characters (α ... Ω) +[#]_, as LICR macro (``\textalpha{} ... \textOmega``), or via the `LGR +Latin transliteration`_ (a ... W) [#]_. See +[usage.pdf]_ and the example files provided with greek-fontenc_. + +.. [#] Alongside other languages that will be used in the document. + The *last* language option sets the document's main language. +.. [#] with the greek-inputenc_ package or XeTeX/LuaTeX +.. [#] only with LGR fonts + +Greek text fonts +---------------- + +A list of `Greek text fonts for use with LaTeX`_ is available at CTAN. + +The non-standard LGR `font encoding`_ is used for typesetting Greek with +"traditional" 8-bit TeX engines (pdfTeX). Fonts in this encoding include +the `CB fonts`_ (matching CM), grtimes_ (Greek Times), Kerkis_ (matching +URW Bookman), and the `GFS font collection`_. +The package `cbfonts-fd`_ registers the CB fonts as Greek substitute for +the Computer Modern and Latin Modern font families. For other font +families, declaring Greek fonts as supplement for matching Latin font +families can be done with the :latex:`\DeclareFontFamilySubstitution` +macro (see section `Providing font family substitutions` in [fntguide]_). + +Unicode fonts used with XeTeX or LuaTeX provide slots for all Unicode +characters in one font but commonly only a subset of the actual glyphs. + +.. Warning:: + The default **Latin Modern contains only a few Greek letters!** + Unsupported characters are silently dropped from the output. + Warnings about missing glyphs are written to the log + file only, not to the console. + +Select a suitable font with Babel_'s font selecting framework or +directly with fontspec_. Examples for suitable fonts are CM-unicode_ +or `Linux Libertine`_ as well as any system-wide installed OTF font +that supports Greek (e.g. `Deja Vu`_). See, e.g., the list of free +`fonts supporting Greek script`_ by openSUSE's fontinfo. + +.. _Greek text fonts for use with LaTeX: https://ctan.org/topic/font-greek +.. _fonts supporting Greek script: + https://fontinfo.opensuse.org/scripts/script-Greek.html + + +LGR Latin Transliteration +------------------------- + +The LGR font encoding allows input of Greek characters via a Latin +transliteration. This enables simple input with a Latin keyboard. Characters +with diacritics may be selected with accent macros (cf. greek-fontenc_) or +via the ligature definitions in the font (see [usage.pdf]_). + +The following ASCII characters are converted to Greek symbols: + += = = = = = = = = = = = = = = = = = = = = = = = = +A B G D E Z H J I K L M N X O P R S T U F Q Y W +Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω +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 +α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ ς τ υ φ χ ψ ω += = = = = = = = = = = = = = = = = = = = = = = = = + +Accent symbols and punctuation: + +============== ======= == ====================== ======= == +tonos ``'a`` ά right apostrophe ``''`` ’ +varia ```a`` ὰ left apostrophe \`\` ‘ +dasia ``<a`` ἁ left quotation mark ``((`` « +psili ``>a`` ἀ right quotation mark ``))`` » +perispomeni ``\~a`` ᾶ erotimatiko ``?`` ; +dialytika ``"i`` ϊ middle dot ``;`` · +ypogegrammeni ``a|`` ᾳ zero width non-joiner ``av|`` αͺ +============== ======= == ====================== ======= == + +The downside is, that you cannot print Latin letters and some symbols if +LGR is the active font encoding. This means that for every Latin-written +word or acronym in a Greek text part, an explicit font encoding switch is +required. + + +Greek Numerals +-------------- + +`babel-greek` provides the macros :latex:`\greeknumeral` and +:latex:`\Greeknumeral` to transform a number into its corresponding +`Greek numeral <https://en.wikipedia.org/wiki/Greek_numerals>`__ +(see also section `Greek numbering`__ in the PDF documentation). + +__ http://mirrors.ctan.org/macros/latex/contrib/babel-contrib/ + greek/babel-greek.pdf#greek-numbering + + +The classic `Greek numerals`, also known as Ionic, Ionian, Milesian, or +Alexandrian numerals were introduced to Athens along with the Ionic alphabet +from the city of Miletus in Ionia replacing the `Attic numerals`_. +They are still used in everyday life for ordinal numbers and +more generally by the Orthodox church and certain scholars. + +Greek numerals use several now obsolete letters: +digamma_ ϝ or stigma_ ϛ, koppa_ ϟ or ϙ, and sampi_ ϡ [Nicholas-05]_. + +* Standing for 6 is the digamma_ ϝ, the sixth letter of the Ionic + alphabet (just as its Latin equivalent F is the sixth letter of the + Latin alphabet). As Greek script turned to uncial and then lowercase, + the numeral changed its shape and became conflated with another, + similar sign: the ligature for sigma-tau stigma_ ϛ. + The letters στ are frequently used as replacement. + + There is no significant tradition of ϝ being used as a numeral in + editions of classical texts, even though the Ancients clearly used + digamma rather than stigma as their numeral. + +* Three different signs are in use for the number 90: Classicists use the + "archaic koppa_" ϙ, and more rarely its uncial form (resembling the + "`Cyrillic letter koppa`_" ҁ or the "Gothic letter ninety" 𐍁). + Modern Greeks use the "Greek letter koppa" ϟ exclusively and + do not recognise ϙ at all, let alone as a glyph variant of ϟ. + +* The sign for the number 900 is the sampi_ ϡ. Its shape, developed + during its use in minuscule handwriting of the Byzantine era. Earlier + variants similar to the "archaic sampi" ͳ and the "Gothic Letter Nine + Hundred" 𐍊 are not used in Greek. + +Users can redefine the macros :latex:`\greeknumeralsix`, +:latex:`\greeknumeralSix`, :latex:`\greeknumeralninety`, and +:latex:`\greeknumeralNinety` to configure the used symbols, +for example + +.. code:: latex + + \renewcommand{\greeknumeralninety}{\textkoppa} + \renewcommand{\greeknumeralNinety}{\textKoppa} + \ifdefined \textvarstigma + \renewcommand{\greeknumeralSix}{\textvarstigma} + \fi + +sets the symbol for 90 to the "modern" koppa ϟ also for ancient Greek +and the "capital" 6 symbol to the variant stigma glyph (only defined in LGR). + +.. _digamma: https://en.wikipedia.org/wiki/Digamma +.. _stigma: https://en.wikipedia.org/wiki/Stigma_(ligature) +.. _koppa: https://en.wikipedia.org/wiki/Koppa_(letter) +.. _Cyrillic letter koppa: https://en.wikipedia.org/wiki/Koppa_(Cyrillic) +.. _sampi: https://en.wikipedia.org/wiki/Sampi +.. _Attic numerals: https://en.wikipedia.org/wiki/Attic_numerals + + +Changelog +--------- + +1.4 (2013-05-17) + - New maintainer. + - The encoding definition file ``lgrenc.def`` moved to the + greek-fontenc_ package. +1.5 (2013-06-21) + - Bugfixes and cleanup. + - LICR macros in string definitions. + - LGR font encoding not used with XeTeX/LuaTeX. + - Input "xgreek-fixes.def" from polyglossia_ with Xe/LuaTeX. +1.5a (2013-07-02) + - Fix LaTeX bugs babel/3707, `babel/4303`_ and `babel/4305`_ +1.6 (2013-07-19) + - Experimental support for XeTeX/LuaTeX. +1.7 (2013-09-09) + - CB-Fonts font definition files moved to CB-Fonts package. + - Do not auto-load euenc.def with XeTeX/LuaTeX. +1.7a (2013-09-13) + - Fix bug `babel/4360`_: spurious ``\fi``. +1.7b (2013-10-01) + - Fix upcasing of babel strings with Xe/LuaTeX. +1.8 (2013-12-02) + - Rename ``greek.dtx`` to ``babel-greek`` so that texdoc_ + shows the right documentation. + - Compatibility with Xe/LuaTeX in Unicode and 8-bit mode. +1.8a (2013-12-03) + - Set ``\encodingdefault`` in ``\greekscript`` to fix Greek + in footnotes etc. with document language Greek. +1.9 (2014-07-20) + - New attribute for ancient Greek, load correct hyphenation + patterns (patch by Claudio Beccari). + - Bugfix for ``\Makeuppercase`` +1.9a (2014-09-12) + - Remove duplicate code, documentation review. +1.9b (2014-09-18) + - Remove spurious whitespace from ``\extrasgreek`` definition. + - Use named macros instead of non-standard short macros + for *psili* and *dasia* in the string definitions. +1.9c (2014-10-21) + - Fix dummy hyphenation language names (patch by Ulrike Fischer). +1.9d (2015-09-04) + - Remove `grsymb` (macros for Greek symbols). + This package is outdated and obsoleted by greek-fontenc_ + (reported by Claudio Beccari). + - Unicode uc/lc corrections now in `greek-fontenc`. +1.9e (2015-11-27) + - Fix bug in lccode-setting loop (patch by Enrico Gregorio). +1.9f (2016-02-04) + - Support for new standard Unicode text font encoding "TU". +1.9g (2016-09-07) + - Babel 3.9i deprecated ``\textlatin`` and fixed ``\latinencoding``. + 1.9h (2019-07-11) + - Move breathing composite commands to textalpha_. +1.9i (2020-02-28) + - Update test for Unicode fonts. + - Fix accent in ``\seename`` and ``\alsoname``. +1.9j (2020-03-17) + - Fix ampersand in math mode. +1.10 (2020-11-10) + - Use ``TU`` as ``\greekfontencoding`` for Xe/LuaTeX (set by LaTeX as + `default font encoding for Unicode engines`_ since 2017/01/01). + - Use zig-zaggy ``\textkoppa`` for ``\greeknumeral{90}``. + - PDF-string secure implementation of ``\greeknumeral`` from hyperref_. + - Load ``puenc-greek.def`` (from greek-fontenc_) if used with hyperref + (polytonic Greek in PDF-strings). +1.11 (2020-11-20) + - Configurable `Greek numerals`_ 6 and 90. + - Save/restore previous font encoding instead of switching + to hard-coded ``\latinencoding`` when leaving Greek. +1.12 (2023-03-04) + - Do not change the uccode values if the LaTeX version is newer than + 2022/06. The new ``\MakeUppercase`` definition ignores them and fails + with the "dummy" character 0x9f (cf. [ltnews35]_, `LaTeX issue 987`_). + - New modifiers ``local-LGR-fixes`` and ``no-LGR-fixes`` to address + indexing problmes with Roman numerals (`Babel issue 170`_). Provisional. + - New TextCommand ``\EnsureStandardFontEncoding``. + - Rename ``\textgreek`` to ``\lgrfont`` to avoid confusion with a + language changing command. + - Documentation update and refactoring. + - Drop LGR-local re-definition of ``\SS``. + - `athnum.dtx`_ 2.0: + Don't require Babel. + Use LICR macros instead of the Latin transliteration. + +.. _babel/4303: http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4303 +.. _babel/4305: http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4305 +.. _babel/4360: http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4360 +.. _Babel issue 170: https://github.com/latex3/babel/issues/170 +.. _LaTeX issue 987: https://github.com/latex3/latex2e/issues/987 +.. _default font encoding for Unicode engines: + https://www.latex-project.org/news/latex2e-news/ltnews26.pdf + + +References +---------- + +.. [fntguide] LaTeX Project Team `LaTeX2e font selection`, December 2021. + https://www.latex-project.org/help/documentation/fntguide.pdf +.. [ltnews35] LaTeX Project Team `LaTeX News 35`, June 2022. + https://www.latex-project.org/news/latex2e-news/ltnews35.pdf +.. [Nicholas-05] Nick Nicholas `Numerals: Stigma, Koppa, Sampi`, 2005. + https://opoudjis.net/unicode/numerals.html +.. [Vlachou-22] Irene Vlachou + `Polytonic Greek: a guide for type designers`, 2022. + https://irenevl.github.io/Polytonic-tutorial/ +.. [Haralambous-98] Yannis Haralambous + `From Unicode to Typography, a Case Study: the Greek Script`, 1998. + https://hal.science/hal-02101618 + +.. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt +.. _babel: https://ctan.org/pkg/babel +.. _docstrip: https://ctan.org/pkg/docstrip +.. _font encoding: https://mirrors.ctan.org/macros/latex/base/encguide.pdf +.. _fontspec: https://ctan.org/pkg/fontspec +.. _fontenc: https://ctan.org/pkg/fontenc +.. _CB Fonts: https://ctan.org/pkg/cbgreek-complete +.. _cbfonts-fd: https://ctan.org/pkg/cbfonts-fd +.. _CM-unicode: https://ctan.org/pkg/cm-unicode +.. _Deja Vu: http://dejavu-fonts.org +.. _e-TeX: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=etex +.. _grtimes: https://ctan.org/pkg/grtimes +.. _hyperref: https://ctan.org/pkg/hyperref +.. _textalpha: +.. _greek-fontenc: https://ctan.org/pkg/greek-fontenc +.. _greek-inputenc: https://ctan.org/pkg/greek-inputenc +.. _GFS font collection: https://ctan.org/pkg/gfs +.. _Kerkis: https://ctan.org/pkg/kerkis +.. _Linux Libertine: https://ctan.org/pkg/libertine +.. _polyglossia: https://ctan.org/pkg/polyglossia +.. _substitutefont: https://ctan.org/pkg/substitutefont +.. _texdoc: https://ctan.org/pkg/texdoc diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek.dtx b/macros/latex/contrib/babel-contrib/greek/babel-greek.dtx index 9224df9769..328aee6de2 100644 --- a/macros/latex/contrib/babel-contrib/greek/babel-greek.dtx +++ b/macros/latex/contrib/babel-contrib/greek/babel-greek.dtx @@ -20,13 +20,13 @@ % The Current Maintainer of this work is Günter Milde <milde@users.sf.net>. % % Babel-greek is a contributed package providing support for the Greek -% language and script via the Babel system (http://www.ctan.org/pkg/babel). +% language and script via the Babel system (https://ctan.org/pkg/babel). % % The list of derived (unpacked) files belonging to this work % and covered by LPPL is defined by the unpacking script (babel-greek.ins) % which is part of the package. % \fi -% \CheckSum{1547} +% \CheckSum{1651} % % \iffalse % Tell the \LaTeX\ system who we are and write an entry on the @@ -37,12 +37,12 @@ %<code>\ProvidesLanguage{greek} %\fi %\ProvidesFile{babel-greek.dtx} - [2020/11/10 v1.10 Greek support for the babel system] + [2023/03/04 1.12 Greek support for the babel system] %\iffalse %% File `babel-greek.dtx' %% Greek language Definition File %% Copyright © 1997, 2005 Apostolos Syropoulos, Johannes Braams -%% Copyright © 2013, 2019 Günter Milde +%% Copyright © 2013 -- 2020 Günter Milde % %% Please report errors to: Günter Milde <milde@users.sf.net> % @@ -50,19 +50,17 @@ % code for the greek language definition file. The original % version of this file was written by Apostolos Syropoulos. % It was then enhanced by adding code from kdgreek.sty from David -% Kastrup <dak@gnu.org> with his -% consent. +% Kastrup <dak@gnu.org> with his consent. %<*filedriver> \documentclass{ltxdoc} -% \usepackage{lmodern} -\usepackage[utf8]{inputenc} +\usepackage{lmodern} \usepackage{hyperref} \hypersetup{colorlinks=true,linkcolor=blue,urlcolor=blue,citecolor=black} -\newcommand*{\babel}{\textsf{babel}} -\newcommand*{\note}[1]{} \newcommand*{\Lopt}[1]{\textsf{#1}} \newcommand*{\file}[1]{\texttt{#1}} -\newcommand*{\pkg}[1]{\texttt{#1}} +\newcommand*{\pkg}[1]{\textsf{#1}} +\newcommand*{\pkgref}[1]{\textsf{\href{https://ctan.org/pkg/#1}{#1}}} +\RecordChanges % Write index file with \changes entries \begin{document} \DocInput{babel-greek.dtx} \end{document} @@ -98,56 +96,31 @@ % load LICR macro definitions for Xe/LuaTeX.} % \changes{greek-1.7}{2013/09/09}{Do not load euenc.def with XeTeX/LuaTeX. % Prevent re-loading lgrenc.def.} -% \changes{greek-1.7a}{2013/09/13}{bugfix: remove spurious ``fi''.} -% \changes{greek-1.7b}{2013/10/01}{bugfix: correct upcasing of babel strings +% \changes{greek-1.7a}{2013/09/13}{Remove spurious ``fi''.} +% \changes{greek-1.7b}{2013/10/01}{Correct upcasing of babel strings % with Xe/LuaTeX.} -% \changes{babel-greek-1.8}{2013/11/27}{Rename to ``babel-greek.dtx''. -% Restore compatibility with Xe/LuaTeX in 8-bit and Unicode mode. -% Load ``euenc.def'' if EU1 or EU2 font encoding is detected. -% New TextCommands ``greekscript'' and ``ensuregreek''.} -% \changes{babel-greek-1.8a}{2013/12/03}{Set `encodingdefault' in `greekscript' -% to fix Greek in footnotes etc. with document language Greek.} -% \changes{babel-greek-1.9}{2014/07/20}{Added attribute for ancient Greek. -% Load correct hyphenation patterns. Patch by Claudio Beccari.} -% \changes{babel-greek-1.9b}{2014/09/18}{Remove spurious whitespace from -% `extrasgreek' definition (report Eike Schmidt). -% Use named macros instead of non-standard short accent macros for -% psili and dasia.} -% \changes{babel-greek-1.9c}{2014/10/21}{Fix dummy hyphenation language names -% (report/patch Ulrike Fischer).} -% \changes{babel-greek-1.9d}{2015/07/06}{uc-/lccode corrections from xgreek are now -% in greek-euenc.def (the polyglossia version has bugs).} -% \changes{babel-greek-1.9e}{2015/11/27}{Fix bug in lccode-setting loop -% (patch by Enrico Gregorio).} -% \changes{babel-greek-1.9f}{2016/02/04}{Support for standard -% Unicode text encoding ``TU'' (new in fontspec v2.5a).} -% \changes{babel-greek-1.9g}{2016/09/07}{Babel 3.9i deprecated textlatin -% and fixed latinencoding.} -% \changes{babel-greek-1.9h}{2019/07/11}{Move breathing composite commands -% to textalpha.} -% \changes{babel-greek-1.9i}{2020/02/28}{Update test for Unicode fonts. -% Fix accent in seename and alsoname.} -% \changes{babel-greek-1.9j}{2020/03/17}{Fix ampersand in math mode.} -% \changes{babel-greek-1.10}{2020/11/10}{Use TU as \cs{greekfontencoding} -% for Xe/LuaTeX. TU is the default font encoding there since 2017/01/01. -% PDF-string secure implementation of \cs{greeknumeral} -% (taken from ``hyperref''). -% Use zig-zagy \cs{textkoppa} for \cs{greeknumeral{90}}. -% This is what it looked originally and what it looks -% in current (not classical or medieval) Greek typography. -% Load ``puenc-greek.def`` (from greek-fontenc_) if used with hyperref.} +% \changes{greek-1.8}{2013/11/27}{Renamed to `babel-greek'.} +% \changes{babel-greek-1.08}{2013/11/27}{\file{greek.dtx} renamed to +% \file{babel-greek.dtx} (but still generates \file{greek.ldf}).} +% \changes{babel-greek-1.08}{2013/11/27}{ +% Restore compatibility with Xe/LuaTeX in 8-bit and Unicode mode.} +% \changes{babel-greek-1.09g}{2016/09/07}{Babel 3.9i deprecated +% \cs{textlatin} and fixed \cs{latinencoding}.} +% \changes{babel-greek-1.09i}{2020/02/28}{ +% Fix accent in \cs{seename} and \cs{alsoname}.} +% \changes{babel-greek-1.12}{2023/03/04}{ +% Update and restructure documentation.} % % \title{Babel support for the Greek language} % \author{Apostolos Syropoulos, Günter Milde} % \maketitle % % Babel-greek is a contributed package providing support for the Greek -% language and script via the \href{http://www.ctan.org/pkg/babel}{Babel} -% system. See the \href{README.html}{README} file for an overwiew of the +% language and script via the \pkgref{babel} system. +% See the \href{README.html}{README} file for an overwiew of the % \pkg{babel-greek} package and links to requirements and related packages. % -% The file \file{\filename}% -% \footnote{ +% The file \file{\filename}\footnote{ % The file described in this section has version number \fileversion\ % and was last revised on \filedate. % The original author is Apostolos Syropoulos, code from \file{kdgreek.sty} @@ -155,212 +128,289 @@ % is the literate source for the Babel language definition file % \file{greek.ldf}. % +% \tableofcontents +% % \section{Requirements} % -% Typesetting Greek with Babel requires (of course) the -% \href{http://www.ctan.org/pkg/babel}{Babel core}, support for Greek font -% encodings (\href{http://www.ctan.org/pkg/greek-fontenc}{greek-fontenc}) +% Typesetting Greek with Babel requires (of course) the \pkgref{babel} +% package, support for Greek font encodings (\pkgref{greek-fontenc}) % and a \href{README.html#greek-text-fonts}{text font supporting the % Greek script}. % -% The \href{http://www.ctan.org/pkg/cbgreek-complete}{CB Greek fonts} +% The \href{https://ctan.org/pkg/cbgreek-complete}{CB Greek fonts} % created by \textsc{Claudio Beccari}\footnote{Apostolos Syropoulos % wishes to thank Claudio Beccari for his % patience, collaboration, comments and suggestions.} -% are a complete set of 8-bit TeX fonts matching \textsc{Knuth}'s +% are a complete set of 8-bit \TeX{} fonts matching \textsc{Knuth}'s % Computer Modern. -% The package \pkg{\href{http://www.ctan.org/pkg/cbfonts-fd}{cbfonts-fd}} -% sets them up as Greek substitute for the Computer Modern and Latin Modern -% font families. -% The \pkg{\href{http://www.ctan.org/pkg/substitutefont}{substitutefont}} -% package can be used to set up Greek supplements for other -% font families (like Times or Palatino). -% -% The \href{http://ctan.org/pkg/lm}{Latin Modern} OpenType font that is the -% default font for XeTeX/LuaTeX does not support the Greek script. The user -% needs to set up an alternative font like CM Unicode, Linux Libertine or -% DejaVu with \pkg{\href{http://www.ctan.org/pkg/fontspec}{fontspec}}. +% The package \pkgref{cbfonts-fd} sets them up as Greek substitute +% for the Computer Modern and Latin Modern font families. +% The standard |\DeclareFontFamilySubstitution| macro can be used to set up +% Greek supplements for other \TeX{} font families (like Times or Palatino). +% +% Unicode fonts (used with XeTeX or LuaTeX) provide slots for all Unicode +% characters in one font but commonly only a subset of the actual glyphs. +% \textbf{Many Unicode fonts, including the default +% \href{https://ctan.org/pkg/lm}{Latin Modern}, +% do not support the Greek script!} +% Authors need to set up an alternative font like CM Unicode, Linux Libertine, +% or DejaVu with \pkgref{fontspec} or the \pkgref{babel} font configuration +% system. +% +% With 8-bit TeX and XeTeX, hyphenation patterns must be +% pre-loaded in the format file. +% This is a limitation by TeX, common to all languages. +% The LuaTeX engine loads hyphenation patterns dynamically. +% % % \section{Usage} % -% To activate Greek support with babel, specify the option -% \Lopt{greek}, either as global option or as option to the -% \pkg{babel} package. Remember, that the \emph{last} language -% option determines the document language, e.g. -% \begin{verbatim} -% \usepackage[greek,english]{babel}\end{verbatim} -% activates support for Greek in an English document. -% The default is modern ``monotonic'' Greek, while -% \begin{verbatim} -% \usepackage[english,greek]{babel} -% \languageattribute{greek}{polutoniko} -% \end{verbatim} -% sets the document language to modern Greek with ``polytonic'' -% spelling and -% \begin{verbatim} -% \usepackage[english,greek]{babel} -% \languageattribute{greek}{ancient} -% \end{verbatim} -% sets the document language to ancient Greek. +% To activate Greek language support with babel, specify the option +% \Lopt{greek}, either as global option or as option to the +% \pkg{babel} package. Remember, that the \emph{last} language +% option determines the document language, e.g. +% \begin{verbatim} +% \usepackage[greek,english]{babel}\end{verbatim} +% activates support for Greek text parts in an English document. % -% Both attributes may also be used as modifiers as in -% \begin{verbatim} -% \usepackage[greek.polutoniko,english]{babel} -% \end{verbatim} -% and similarly -% \begin{verbatim} -% \usepackage[greek.ancient,english]{babel} -% \end{verbatim} -% -% By default, -% \pkg{babel-greek} activates the modern Greek monotonic hyphenation; -% the attribute/modifier |polutoniko| activates the modern Greek -% polytonic hyphenation and the attribute/modifier |ancient| activates -% the ancient Greek hyphenation. 8-bit TeX and XeTeX require the -% hyphenation patterns to be pre-loaded in the format file. -% This is a limitation by TeX, common to all languages. -% The LuaTeX engine loads hyphenation patterns on demand. -% -% \DescribeMacro\selectlanguage -% \DescribeMacro\foreignlanguage +% \DescribeMacro\selectlanguage % The Babel core provides two commands to switch the active language: % The declaration |\selectlanguage{greek}| switches to the Greek language. +% \DescribeMacro\foreignlanguage % The macro \verb|\foreignlanguage{greek}{<some text>}| sets its second % argument in the Greek language. This is intended for short text parts. -% For details see the \href{http://www.ctan.org/pkg/babel}{Babel} -% documentation. +% For details see the \pkgref{babel} documentation. +% +% +% \subsection{Language attributes} +% +% The attributes \Lopt{monotoniko}, \Lopt{polutoniko}^^A +% \footnote{with the alias \Lopt{polytonic}}, +% and \Lopt{ancient} allow the specification of the used orthography. +% The language variant affects automatic hyphenation, spelling of +% auto-generated strings and support for multi-accented letters. +% +% The default is modern \emph{monotonic} Greek, while +% \begin{verbatim} +% \usepackage[english,greek]{babel} +% \languageattribute{greek}{polutoniko}\end{verbatim} +% sets the document language to modern Greek with +% \emph{\href{https://en.wikipedia.org/wiki/Greek_diacritics}{polytonic}} +% spelling and +% \begin{verbatim} +% \usepackage[english,greek]{babel} +% \languageattribute{greek}{ancient}\end{verbatim} +% sets the document language to \emph{ancient} Greek. +% +% Both attributes may also be used as modifiers as in +% \begin{verbatim} +% \usepackage[greek.polutoniko,english]{babel}\end{verbatim} +% and similarly +% \begin{verbatim} +% \usepackage[greek.ancient,english]{babel}\end{verbatim} +% +% +% \subsection{Modifiers \label{sec:modifiers}} +% +% \changes{babel-greek-1.12}{2023/03/04}{ +% New modifiers \Lopt{local-LGR-fixes} and \Lopt{no-LGR-fixes}.} +% +% The following modifiers cannot be set with |\languageattribute|. +% Misspelled modifiers are ignored without warning! +% \medskip +% +% Some workarounds for the non-standard LGR font encoding may have +% serious side-effects. +% The \texttt{local-LGR-fixes} \emph{modifier} restricts the re-definitions +% in section~\ref{sec:lgr-redefinitions} to text parts using the Greek +% language. +% The \texttt{no-LGR-fixes} \emph{modifier} disables them completely. +% You may try, e.g., +% \begin{verbatim} +% \usepackage[greek.local-LGR-fixes,english]{babel}\end{verbatim} +% as a last ressort if the workarounds make a document uncompilable +% and using Xe/LuaTeX with Unicode fonts is not an option. +% Check for problems with enumerations in Greek text parts and with +% Roman and Greek numerals everywhere (especially in the ToC). +% +% These modifiers are provisional, naming and behaviour may change. +% +% \subsection{Language hooks \label{sec:language-hooks}} +% +% \DescribeMacro\extrasgreek +% The macro |\extrasgreek| is called by \pkgref{babel} on every switch +% of the active language to Greek. +% \DescribeMacro\noextrasgreek +% The macro |\noextrasgreek| is called when switching away from Greek. +% Package and document authors can add setup and tear-down code +% to the hooks with the help of the |\addto| command provided by \pkg{babel}. +% The first call of |\addto\<hookname>{<code>}| initializes the hook, +% subsequent calls append |<code>| to its definition. +% +% \pkg{Babel-greek} uses these hooks to, e.g, select correct hyphenation +% patterns (cf.\ section~\ref{sec:hyphenation-patterns}) or ensure a font +% encoding supporting the Greek script is used for Greek text parts +% (cf.\ section~\ref{sec:font-setup}). % -% For backwards compatibility, ``polytonic'' spelling can also be -% selected via the dummy language \Lopt{polutonikogreek}. In this -% case, the language name \Lopt{polutonikogreek} must also be -% used for language switches with |\selectlanguage| or -% |\foreignlanguage|. However, it is not possible to use -% both options, \Lopt{greek} and \Lopt{polutonikogreek} in one document. % % \subsection{Input of Greek text} % % There are several alternatives to write Greek text. % \begin{itemize} -% \item With the packages \pkg{inputenc} and -% \pkg{\href{http://www.ctan.org/pkg/greek-inputenc}{greek-inputenc}}, -% literal Greek characters can be input using the utf-8, iso-8859-7, -% or macgreek encoding. +% \item Literal input using the UTF-8 encoding is the standard input +% method. With 8-bit TeX, this requires the package +% \pkgref{greek-inputenc}. % -% Literal input using the utf-8 encoding is also the standard input -% method if compiling with the XeTeX and LuaTeX engines. +% With the packages \pkgref{inputenc} and \pkgref{greek-inputenc}, +% literal Greek characters can also be input using the legacy encodings +% \emph{iso-8859-7} and \emph{macgreek}. % % \item The Latin transliteration defined by the LGR font encoding % is explained in the file \file{\href{usage.pdf}{usage.pdf}}. % -% \item The package -% \pkg{\href{http://www.ctan.org/pkg/greek-fontenc}{greek-fontenc}} +% \item The package \pkgref{greek-fontenc} % defines \emph{LaTeX internal character representation} (LICR) macros -% for Greek letters and text symbols. It is required by \pkg{babel-greek}, -% so the |\textAlpha| \ldots |\textomega| -% macros are a safe but cumbersome method to input Greek characters. +% for Greek letters and text symbols. It is required by \pkg{babel-greek}. +% The LICR macros |\textAlpha| \ldots |\textomega| +% are a safe but cumbersome method to input Greek characters. % -% \item The \pkg{alphabeta} package bundled with -% \href{http://www.ctan.org/pkg/greek-fontenc}{greek-fontenc} makes the -% short macro names |\Alpha| \ldots |\omega| available in text mode, too. +% \item The \pkg{alphabeta} package, bundled with \pkgref{greek-fontenc}, +% makes the short macro names |\Alpha| \ldots |\omega| available +% in both, text and math mode. % \end{itemize} -% The \href{http://www.ctan.org/pkg/greek-fontenc}{greek-fontenc} bundle -% has details and examples for all these input methods. % % \subsection{Greek vs. Latin script} % When switching the language to Greek, \pkg{babel-greek} ensures that the % Greek script is supported. -% With 8-bit LaTeX, Greek text fonts use a non-standard -% font encoding\footnote{LaTeX font encodings are described in -% the \emph{LaTeX font guide} (fntguide.pdf).} -% (LGR) that misses Latin letters. Latin characters in the source are -% instead interpreted as a transcription for Greek characters. -% The following macros allow the use of Greek vs. Latin script without -% changing the active language. +% The following macros allow the use of Greek vs.\ Latin script without +% changing the active language: +% % \DescribeMacro\greekscript -% \DescribeMacro\greektext % The \emph{TextCommand}\footnote{For a discussion of TextCommands, see -% the \emph{LaTeX font guide} (fntguide.pdf), too.} +% the \emph{LaTeX font guide}, too.} % |\greekscript| switches to a font encoding % supporting the Greek script. +% \DescribeMacro\greektext % The declaration |\greektext| always switches the font encoding % to LGR. Both declarations do not change the active language. +% % \DescribeMacro\latintext -% |\latintext| (defined by the Babel -% core) can be used to switch back to an encoding supporting the Latin -% script (deprecated since Babel 3.9i from March 2014). +% |\latintext| (defined by the Babel core, deprecated since March 2014) +% can be used to switch back to an encoding supporting the Latin script. % % \DescribeMacro\ensuregreek -% \DescribeMacro\textgreek -% The macros |\ensuregreek| and |\textgreek| take one argument -% which is typeset using a font encoding supporting the Greek -% script. While |\ensuregreek| only switches the -% font encoding if required, |\textgreek| always uses the LGR font -% encoding. -% \DescribeMacro\textlatin -% The Babel core defines a corresponding |\textlatin| macro -% (deprecated in favour of |\ensureascii| in Babel 3.9i from March 2014). -% -% \section{Greek numbering} -% -% The Greek alphabetical numbering system, like the Roman one, is -% still used in everyday life for short enumerations. Unfortunately -% most Greeks don't know how to write Greek numbers bigger than 20 or -% 30. Nevertheless, in official editions of the last century and -% beginning of this century this numbering system was also used for -% dates and numbers in the range of several thousands. Nowadays -% this numbering system is primary used by the Eastern Orthodox -% Church and by certain scholars. It is hence necessary to be able -% to typeset any Greek numeral up to \hbox{999\,999}. Here are the -% conventions: +% The function |\ensuregreek| takes one argument which +% is typeset using a font encoding supporting the Greek script. +% It only switches the font encoding if required (i.e. if the current +% font encoding does not support Greek letters and symbols). +% +% \DescribeMacro\lgrfont +% The function |\lgrfont|^^A +% \footnote{The legacy name \cs{textgreek} is available as alias.} +% switches to the non-standard Greek 8-bit font encoding LGR. +% Hint: Use |\lgrfont|, if you want to use the +% \emph{Latin transliteration} input method and |\ensuregreek| else. +% +% \DescribeMacro\ensureascii +% The Babel core defines |\ensureascii| that typesets its +% argument using an ASCII-compatible ``standard text font encoding''. +% It is the recommended way for text parts requiring Latin letters +% but no language switch. +% +% +% \subsection{Greek numbering \label{sec:greek-numbering}} +% The \href{https://en.wikipedia.org/wiki/Greek_numerals} +% {Greek (Milesian) alphabetical numbering system}\footnote{ +% Attic numerals, which predate the Milesian numerals +% are implemented in package |athnum|.} +% is still used in everyday life for short enumerations. +% It was used for dates and numbers in the range of several thousands +% in official editions up to the beginning of the 20th century and +% is still used by the Eastern Orthodox Church and certain scholars. +% Unfortunately, most Greeks don't know how to write Greek numbers +% bigger than 20 or 30. +% +% \DescribeMacro{\greeknumeral} +% The command |\greeknumeral| makes it possible to typeset Greek +% numerals for numbers up to \hbox{999\,999}. +% \DescribeMacro{\Greeknumeral} +% |\Greeknumeral| is the ``uppercase'' version of this macro. +% Here are the conventions: % \begin{itemize} % \item There is no Greek numeral for any number less than or equal % to $0$. -% \item Numbers from $1$ to $9$ are denoted by letters alpha, beta, -% gamma, delta, epsilon, stigma, zeta, eta, theta, followed by a -% mark similar to the mathematical symbol ``prime''. (Nowadays -% instead of letter stigma the digraph sigma tau is used for number -% $6$. Mainly because the letter stigma is not always available, so -% people opt to write down the first two letters of its name as an -% alternative. In our implementation we produce the letter stigma, -% not the digraph sigma tau.) -% \item Decades from $10$ to $90$ are denoted by letters iota, -% kappa, lambda, mu, nu, xi, omikron, pi, qoppa, again followed by -% the numeric mark. The qoppa used for this purpose has a special -% zig-zag form, which doesn't resemble at all the original -% `q'-like qoppa. -% \item Hundreds from $100$ to $900$ are denoted by letters rho, -% sigma, tau, upsilon, phi, chi, psi, omega, sampi, followed by the +% \item Numbers from $1$ to $9$ are denoted by letters +% \emph{alpha}, \emph{beta}, \emph{gamma}, \emph{delta}, \emph{epsilon}, +% \emph{stigma}\footnote{ +% cf.\ \hyperref[greeknumeralsix]{\cs{greeknumeralsix}}}, +% \emph{zeta}, \emph{eta}, \emph{theta}, followed by a \emph{keraia}, +% a mark similar to the mathematical symbol ``prime''. +% \item Decades from $10$ to $90$ are denoted by letters \emph{iota}, +% \emph{kappa}, \emph{lambda}, \emph{mu}, \emph{nu}, \emph{xi}, +% \emph{omikron}, \emph{pi}, \emph{koppa}\footnote{ +% cf.\ \hyperref[greeknumeralninety]{\cs{greeknumeralninety}}}, +% again followed by the numeric mark. +% \item Hundreds from $100$ to $900$ are denoted by letters \emph{rho}, +% \emph{sigma}, \emph{tau}, \emph{upsilon}, \emph{phi}, \emph{chi}, +% \emph{psi}, \emph{omega}, \emph{sampi}, followed by the % numeric mark. % \item Any number between $1$ and $999$ is obtained by a group of % letters denoting the hundreds decades and units, followed by a % numeric mark. % \item To denote thousands one uses the same method, but this time -% the mark is placed in front of the letter, and under the baseline -% (it is inverted by 180 degrees). When a group of letters denoting -% thousands is followed by a group of letters denoting a number -% under $1000$, then both marks are used. +% the mark is an \emph{aristeri keraia}, a prime inverted by 180 degrees +% and placed in front of the letter, under the baseline. +% When a group of letters denoting thousands is followed by a group of +% letters denoting a number under $1000$, both marks are used. % \end{itemize} -% -% Using these conventions one obtains numbers up to \hbox{999\,999}. -% \DescribeMacro{\greeknumeral} -% The command |\greeknumeral| makes it possible to typeset Greek -% numerals. There is also an -% \DescribeMacro{\Greeknumeral} -% ``uppercase'' version of this macro: |\Greeknumeral|. -% -% Another system which was in wide use only in Athens, could -% express any positive number. This system is implemented in -% package |athnum|. +% The shape of the obsolete characters used for number 6 +% (\emph{digamma}/\emph{stigma}) and 90 (\emph{koppa}) evolved over time +% and different characters are in use for them today. +% The following four macros can be re-defined to configure +% |\greeknumeral| and |\Greeknumeral| respectively: +% +% \DescribeMacro\greeknumeralsix +% \phantomsection\label{greeknumeralsix} +% Originally, the sixth letter of the alphabet, standing for 6, was the +% \emph{digamma} -- just as its Latin equivalent F is the sixth letter of +% the Latin alphabet. +% As Greek script turned to uncial and then lowercase, digamma changed its +% shape – it became similar to the ligature for sigma-tau (\emph{stigma}). +% People started using the stigma or the digraph sigma tau\footnote{ +% Mainly because the letter stigma is not always available, so people +% opted to write down the first two letters of its name instead.}. +% The macro |\greeknumeralsix| allows configuring the symbol for the +% number 6 in |\greeknumeral|, +% \DescribeMacro\greeknumeralSix +% the macro |\greeknumeralSix| does the same for |\Greeknumeral|. +% The default values are |\textstigma| and |\textStigma|. +% +% \DescribeMacro\greeknumeralninety +% \phantomsection\label{greeknumeralninety} +% Three symbols are in use for the number 90: +% Classicists prefer the q-like ``archaic'' \emph{koppa} +% and, more rarely, its uncial form\footnote{ +% resembling CYRILLIC LETTER KOPPA or GOTHIC LETTER NINETY}, +% modern Greek uses the zig-zag shaped ``modern'' \emph{koppa} +% exclusively. The macro |\greeknumeralninety| allows configuring +% the symbol for the number 90 in |\greeknumeral|, +% \DescribeMacro\greeknumeralNinety +% the macro |\greeknumeralNinety| does the same for |\Greeknumeral|. +% The default values are |\textkoppa| and |\textKoppa| for modern Greek +% and |\textqoppa| and |\textqoppa| for ancient Greek. +% +% There is no such variation in the shape of the \emph{sampi} +% used for the number 900. % % \StopEventually{} % -% \section{Implementation} % +% \section{Implementation} % The macro |\LdfInit| takes care of preventing that this file is % loaded more than once, checking the category code of the % \texttt{@} sign, etc. -% \changes{greek-1.0b}{1996/11/02}{Now use \cs{LdfInit} to perform -% initial checks} +% \changes{greek-1.0b}{1996/11/02}{ +% Use \cs{LdfInit} to perform initial checks.} % \begin{macrocode} %<*code> \LdfInit\CurrentOption{captions\CurrentOption} @@ -371,134 +421,221 @@ \gdef\CurrentOption{greek} % \end{macrocode} % -% Hyphenation patterns: +% +% \subsection{Hyphenation patterns \label{sec:hyphenation-patterns}} +% % When this file is read as an option, i.e. by the |\usepackage| % command, \texttt{greek} could be an `unknown' language in % which case we have to make it known. So we check for the % existence of the three variants of the Greek language -% |\l@greek|, |\l@monogreek|, and |l@ancientgreek| to see whether -% we have to do something here. -% \changes{greek-1.9}{2014/07/20}{Support all 3 language (hyphenation) -% variants.} +% |\l@greek|, |\l@monogreek|, and |l@ancientgreek| +% and set the hyphenation to |\language0| for the missing ones. +% \changes{babel-greek-1.09}{2014/07/20}{ +% Load correct hyphenation patterns (patch by Claudio Beccari).} +% \changes{babel-greek-1.09c}{2014/10/21}{ +% Fix dummy hyphenation language names (patch Ulrike Fischer).} % \begin{macrocode} \ifx\l@greek\@undefined \@nopatterns{greek} - \adddialect\l@greek 0\fi + \adddialect\l@greek 0 +\fi \ifx\l@monogreek\@undefined - \adddialect\l@monogreek 0\fi + \@nopatterns{greek} + \adddialect\l@monogreek 0 +\fi \ifx\l@ancientgreek\@undefined - \adddialect\l@ancientgreek 0\fi + \@nopatterns{greek} + \adddialect\l@ancientgreek 0 +\fi \newcount\bbl@monogreek \bbl@monogreek=\l@monogreek \newcount\bbl@polygreek \bbl@polygreek=\l@greek -\newcount\bbl@ancientgreek \bbl@ancientgreek=\l@ancientgreek +\newcount\bbl@ancientgreek \bbl@ancientgreek=\l@ancientgreek % \end{macrocode} -% The |\extrasgreek| macro is called when switching the language to Greek. -% We collect code for polytonic and ancient greek in the macros -% |extraspolutonikogreek| and |extrasancientgreek| and add it later to -% |extrasgreek|. +% Use the \emph{language hooks} (cf.\ section~\ref{sec:language-hooks}) +% to set the correct hyphenation patterns. +% (We collect setup code for the language variants \Lopt{polutoniko} and +% \Lopt{ancient} in |\extraspolutonikogreek| and |\extrasancientgreek|; +% \DescribeMacro\extraspolutonikogreek +% their content is added to |\extrasgreek| by the respective language +% attributes, cf.\ section~\ref{sec:language-variants}). +% \DescribeMacro\extrasancientgreek +% ^^A TODO: Move the |\let\l@greek=...| definitions to the language +% ^^A attribute functions (as we only have one language variant per document) +% ^^A or use the hooks to allow more than one language variant? +% \changes{greek-1.5a}{2013/06/27}{provide ``extraspolutonikogreek'' also +% for Xe/LuaTeX.} % \begin{macrocode} -\addto\extrasgreek{\let\l@greek\bbl@monogreek\relax} +\addto\extrasgreek{\let\l@greek=\bbl@monogreek} \addto\extraspolutonikogreek{\l@greek=\bbl@polygreek} \addto\extrasancientgreek{\l@greek=\bbl@ancientgreek} % \end{macrocode} % -% Now we declare the |polutoniko| language attribute. +% \begin{macro}{\providehyphenmins} +% \changes{greek-1.3h}{2000/09/22}{Now use \cs{providehyphenmins} to +% provide a default value} +% The macro |\providehyphenmins| is used to set the correct values of +% the hyphenation parameters |\lefthyphenmin| and |\righthyphenmin|. +% Yannis Haralambous has suggested the value 1. % \begin{macrocode} -\bbl@declare@ttribute{greek}{polutoniko}{% +\providehyphenmins{\CurrentOption}{\@ne\@ne} % \end{macrocode} +% \end{macro} +% +% +% \subsection{Language variants \label{sec:language-variants}} +% +% The Babel core provides the command |\bbl@declare@ttribute| for the +% declaration of language attributes in language definition files. +% It takes three arguments: +% the name of the language, the attribute to be defined, +% and the code to be executed when the attribute is to be used. +% If the language attribute is selected, the third argument is executed +% after reading the *.ldf file. +% +% \subsubsection{\Lopt{polutoniko}} +% The |polutoniko| language attribute selects the ``polytonic'' spelling. % This code adds the expansion of |\extraspolutonikogreek| to -% |\extrasgreek| and changes the definition of |\today| for Greek -% to produce polytonic month names (by re-defining |\gr@month|). +% |\extrasgreek| to set up support for multi-accented characters +% and hyphenation patterns for the polytonic orthography. % \begin{macrocode} +\bbl@declare@ttribute{greek}{polutoniko}{% \expandafter\addto\expandafter\extrasgreek \expandafter{\extraspolutonikogreek}% +% \end{macrocode} +% It also uses polytonic spelling for auto-strings +% (captions and month names). +% \begin{macrocode} \let\captionsgreek\captionspolutonikogreek - \let\gr@month\gr@c@month + \let\gr@month\gr@polutoniko@month % \end{macrocode} -% We need to take some extra precautions in order not to break -% older documents which still use the old \Lopt{polutonikogreek} -% pseuso-language option: language switching commands like -% |\selectlanguage{polutonikogreek}|, call the -% |extraspolutonikogreek| macro, set the language to |\l@polutonikogreek| -% and use |\datepolutonikogreek| for |\today|. We define aliases: -% \changes{greek-1.3f}{1999/09/29}{Added some code to make older -% documents work} -% \changes{greek-1.3g}{2000/02/04}{\cs{noextraspolutonikogreek} was -% missing} +% +% For backwards compatibility, ``polytonic'' spelling can also be +% selected via the dummy language \Lopt{polutonikogreek}. +% However, it is not possible to use both options, +% \Lopt{greek} and \Lopt{polutonikogreek} in one document. +% We also define aliases to allow language switching commands using +% the language name |polutonikogreek|: +% \changes{greek-1.3f}{1999/09/29}{ +% Added some code to make older documents work.} +% \changes{greek-1.3g}{2000/02/04}{\cs{noextraspolutonikogreek} was missing.} % \begin{macrocode} \let\l@polutonikogreek\l@greek \let\datepolutonikogreek\dategreek \let\extraspolutonikogreek\extrasgreek \let\noextraspolutonikogreek\noextrasgreek - } +} % \end{macrocode} -% The |ancient| language attribute is used for classical Greek. -% \changes{greek-1.9}{2014/07/20}{Add support for ancient Greek.} +% +% \subsubsection{\Lopt{polytonic}} +% +% \changes{babel-greek-1.12}{2023/03/04}{ +% New language attribute \Lopt{polytonic} (alias for \Lopt{polutoniko}).} +% +% The |polytonic| language attribute is an alias for the +% attribute |polutoniko| matching the spelling for this orthography +% variant in \pkg{polyglossia} and Babel |*.ini| files. % \begin{macrocode} -\bbl@declare@ttribute{greek}{ancient}{% +\bbl@declare@ttribute{greek}{polytonic}{% + \expandafter\addto\expandafter\extrasgreek + \expandafter{\extraspolutonikogreek}% + \let\captionsgreek\captionspolutonikogreek + \let\gr@month\gr@polutoniko@month +} % \end{macrocode} -% This attribute adds the expansion of |\extraspolutonikogreek| and -% |\extrasancientgreek| to |\extrasgreek| to set up support for -% multi-accented characters and ancient hyphenation patterns. -% Auto-strings (captions) are specific to ancient Greek while |\today| -% uses modern polytonic month names (as there existed incompatible -% sets of month names and no common calendar in ancient Greece. +% +% \subsubsection{\Lopt{ancient}} +% +% \changes{babel-greek-1.09}{2014/07/20}{Add support for ancient Greek.} +% +% The \Lopt{ancient} language attribute is used for classical Greek. +% This attribute adds the expansion of |\extraspolutonikogreek| and +% |\extrasancientgreek| to |\extrasgreek| to set up support for +% multi-accented characters and ancient hyphenation patterns. % \begin{macrocode} +\bbl@declare@ttribute{greek}{ancient}{% \expandafter\addto\expandafter\extrasgreek \expandafter{\extraspolutonikogreek}% multi-accented letters \expandafter\addto\expandafter\extrasgreek \expandafter{\extrasancientgreek}% +% \end{macrocode} +% Auto-strings (captions) are specific to ancient Greek while |\today| +% uses modern polytonic month names (as there existed incompatible +% sets of month names and no common calendar in ancient Greece). +% \begin{macrocode} \let\captionsgreek\captionsancientgreek - \let\gr@month\gr@c@month % (modern) polytonic month names - } + \let\gr@month\gr@polutoniko@month % (modern) polytonic month names +% \end{macrocode} +% Classicists tend to use the Q-like ``archaic'' koppa for the number 90. +% Thus, for classical Greek, we set the default to the ``archaic'' koppa +% (cf.\ section~\ref{sec:greek-numbering}). +% \begin{macrocode} + \renewcommand{\greeknumeralninety}{\textqoppa}% + \renewcommand{\greeknumeralNinety}{\textQoppa}% +} % \end{macrocode} % -% \section{Font setup} % -% Typesetting Greek texts requires a font with Greek characters: +% \subsection{Font setup \label{sec:font-setup}} % -% For 8-bit LaTeX, this package uses fonts with the -% \href{http://www.ctan.org/pkg/greek-fontenc}{LGR font encoding}. -% With the XeTeX or LuaTeX engines and Unicode fonts, the user must ensure -% that the selected font contains the required glyphs. -% LGR-encoded fonts can also be used alongside Unicode fonts with XeTeX/LuaTeX -% to enable the input of Greek letters via the Latin transcription provided by -% this font encoding. +% \subsubsection{Greek font encoding \label{sec:greekfontencoding}} % -% \changes{greek-1.2a}{1997/10/31}{filename \file{lgrenc.def} now -% lowercase} -% \changes{greek-1.4}{2013/05/17}{\file{lgrenc.def} moved to the -% separate package `greek-fontenc'} +% \changes{babel-greek-1.08}{2013/11/27}{ +% Load \file{euenc.def} if EU1 or EU2 font encoding is detected.} +% \changes{greek-1.2a}{1997/10/31}{filename \file{lgrenc.def} now lowercase} +% \changes{greek-1.4}{2013/05/17}{ +% \file{lgrenc.def} moved to the separate package `greek-fontenc'} % \changes{greek-1.5}{2013/06/21}{LGR setup skipped with XeTeX/LuaTeX} % \changes{greek-1.7}{2013/09/09}{Do not load euenc.def with XeTeX/LuaTeX -% (too complicated to get it right).} -% \changes{greek-1.8}{2013/11/30}{Check for EU1/EU2 font encoding -% instead of engine} -% \changes{babel-greek-1.9f}{2016/02/04}{Check also for TU font encoding.} -% \changes{babel-greek-1.9i}{2020/02/27}{Update check for Unicode fonts.} +% (too complicated to get it right).} +% \changes{babel-greek-1.08}{2013/11/30}{ +% Check for EU1/EU2 font encoding instead of engine} +% \changes{babel-greek-1.09f}{2016/02/04}{Check also for standard +% Unicode text encoding ``TU'' (new in fontspec v2.5a).} +% \changes{babel-greek-1.09i}{2020/02/27}{Update check for Unicode fonts.} % \changes{babel-greek-1.10}{2020/11/10}{Use TU with Xe/LuaTeX.} -% -% \DescribeMacro\greekfontencoding -% We test for available font encodings and set |\greekfontencoding| -% and the internal macro |\bbl@greek@fontencdef| with the name of the -% font definition file with Greek LICR macros. -% The default is LGR for 8-bit TeX engines and TU for Xe/LuaTeX. -% (TODO: The font encoding definition file was renamed to tuenc-greek.def -% in \emph{greek-fontenc} 0.14 (2020-02-28).) +% \begin{macro}{\greekfontencoding} +% The macro |\greekfontencoding| holds the name of the font +% encoding\footnote{cf.\ +% \href{https://mirrors.ctan.org/macros/latex/base/encguide.pdf} +% {encguide.pdf}} +% used to ensure support of the Greek script. +% The default is LGR for 8-bit TeX and TU for Xe/LuaTeX.\footnote{ +% Document authors must ensure that the selected font actually contains +% the required glyphs. +% +% LGR-encoded fonts can be used alongside Unicode fonts with +% XeTeX/LuaTeX to enable the input of Greek letters via the Latin +% transliteration (with some limitations, see \file{test-greek.tex}).} +% It can be overridden defining |\greekfontencoding| with a custom value +% before loading \pkg{babel}. +% +% Also store the name of the \emph{encoding definition file}\footnote{ +% see \href{https://www.latex-project.org/help/documentation/fntguide.pdf} +% {fntguide.pdf}} +% with the extended Greek setup for the Greek font encoding. % \begin{macrocode} -\ifdefined \UnicodeEncodingName % set by LaTeX for Unicode-aware engines +\ifdefined\UnicodeEncodingName % set by XeTeX/LuaTeX \providecommand*{\greekfontencoding}{\UnicodeEncodingName} \providecommand*{\bbl@greek@fontencdef}{tuenc-greek} \else \providecommand*{\greekfontencoding}{LGR} \providecommand*{\bbl@greek@fontencdef}{lgrenc} + % TODO the more generic version fails :( + % \edef\bbl@greek@fontencdef{\lowercase{\greekfontencoding}enc} \fi % \end{macrocode} -% Ensure that the Greek LICR macros are available: +% \end{macro} +% +% \subsubsection{Ensure loading of Greek font encoding definitions. +% \label{load-greek-font-encoding-definitions}} +% +% If the \emph{encoding definition file} for |\greekfontencoding| is not yet +% loaded, do this now: % \begin{macrocode} \@ifl@aded{def}{\bbl@greek@fontencdef}{} {% else - \InputIfFileExists{\bbl@greek@fontencdef .def}{}{% else + \InputIfFileExists{\bbl@greek@fontencdef .def}{} + {% else \bbl@error{Font support for the Greek script missing.\\ babel-greek can't typeset Greek.\\ Install the "greek-fontenc" package\\ @@ -509,111 +646,117 @@ } } % \end{macrocode} +% If the PU font encoding is defined (by \pkgref{hyperref}), load extended +% Greek support for it. Do this in the |\AtBeginDocument| hook because +% documents may load \pkg{hyperref} after \pkg{babel}. +% We cannot rely on |@| being a letter when the hook is called and we must +% not use |\makeatother| in the hook +% (\href{https://tex.stackexchange.com/questions/62583/is-it-really-bad-to-use-makeatletter-and-makeatother-in-a-package-or-class-fil} +% {explanation at stackexchange}). +% We use a temporary function to save and restore the previous catcode. +% \changes{babel-greek-1.10}{2020/11/10}{Load \file{puenc-greek.def} +% from \pkg{greek-fontenc} if used with hyperref.} +% \changes{babel-greek-1.12}{2023/03/04}{ +% Don't use \cs{makeatother} in \cs{AtBeginDocument}.} +% \begin{macrocode} +\AtBeginDocument{% + \@ifl@aded{def}{puenc}% + {\@ifl@aded{def}{puenc-greek} + {}% + {\edef\RestoreAtCatcode{\catcode`@=\the\catcode`@\relax}% + \makeatletter + \InputIfFileExists{puenc-greek.def}% + {}% + {\bbl@warning{I cannot find the "puenc" Greek fixes + from "greek-fontenc".}% + }% + \RestoreAtCatcode + }% + }% end "puenc.def loaded" branch + {}% empty "puenc.def not loaded" branch +} +% \end{macrocode} +% +% \subsubsection{Font encoding switches \label{sec:font-encoding-switches}} % \begin{macro}{\greekscript} -% The TextCommand |\greekscript| is a declaration that switches the font -% encoding to |\greekfontencoding| if the current font encoding does not -% provide a (typically empty) local variant. -% \changes{greek-1.8.1}{2013/12/03}{Set `encodingdefault' in `greekscript' -% to fix Greek in titles, footnotes, etc. with document language Greek.} +% The TextCommand\footnote{See +% \href{https://www.latex-project.org/help/documentation/fntguide.pdf} +% {fntguide.pdf} for more info about \emph{TextCommands}.} +% |\greekscript| is a declaration that switches the font +% encoding to |\greekfontencoding|. +% The extended Greek font encoding definitions from \pkgref{greek-fontenc} +% define empty local variants for TU, LGR, and PU, so that the declaration +% does nothing if the active font encoding supports the Greek script. +% \changes{babel-greek-1.08}{2013/11/27}{ +% New TextCommands ``greekscript'' and ``ensuregreek''.} +% \changes{babel-greek-1.08a}{2013/12/03}{Set `encodingdefault' +% to fix Greek in footnotes etc. with document language Greek.} % \begin{macrocode} \ProvideTextCommandDefault{\greekscript}{% \fontencoding{\greekfontencoding}\selectfont - \def\encodingdefault{\greekfontencoding}} + \def\encodingdefault{\greekfontencoding}} % \end{macrocode} % \end{macro} % \begin{macro}{\ensuregreek} -% The TextCommand |\ensuregreek| sets it argument in |\greekfontencoding| +% The TextCommand |\ensuregreek| sets its argument in |\greekfontencoding| % if the current font encoding does not provide a (typically empty) local % variant. % \begin{macrocode} \ProvideTextCommandDefault{\ensuregreek}[1]{% - \leavevmode{\greekscript #1}} + \leavevmode {\greekscript #1}} % \end{macrocode} % \end{macro} -% -% The package hyperref defines the PU font encoding which supports -% monotonic Greek. Load support for polytonic greek, archaic symbols, -% and the |\greekscript| and |\ensuregreek| TextCommands: -% \begin{macrocode} -\AtBeginDocument{ - \@ifl@aded{def}{puenc}{ - \makeatletter % required inside \AtBeginDocument - \InputIfFileExists{puenc-greek.def}{}{% else - \bbl@warning{I can't find the file puenc-greek.def from "greek-fontenc".} - } - \makeatother - }{} +% \begin{macro}{\BabelGreekRestoreFontEncoding} +% The declaration |\BabelGreekRestoreFontEncoding| changes the font encoding +% to the value it had before the switch to the Greek language. It does +% nothing, if the language switch did not trigger a font encoding switch. +% \changes{babel-greek-1.12}{2023/03/04}{New macro.} +% \begin{macrocode} +\def\BabelGreekRestoreFontEncoding{% + \ifx\cf@encoding\BabelGreekPreviousFontEncoding + \else + \let\encodingdefault\BabelGreekPreviousFontEncoding + \fontencoding{\encodingdefault}\selectfont + \fi } -% \end{macrocode} -% -% \subsection{Fixes for the LGR font encoding} -% +% \end{macrocode} +% \end{macro} +% Add font encoding switches to the language hooks +% (cf.\ section~\ref{sec:language-hooks}) to ensure a font encoding +% supporting the Greek script is used in Greek text parts: +% \changes{greek-1.5}{2013/06/21}{LGR not used with XeTeX/LuaTeX.} +% \changes{babel-greek-1.08}{2013/11/27}{ +% Use EU1 or EU2 for Latin script if available} +% \changes{babel-greek-1.11}{2020/11/20}{Save/restore previous font encoding +% instead of switching to \cs{latinencoding} when leaving Greek.} +% \changes{babel-greek-1.12}{2023/03/04}{Save previous font encoding +% in \cs{BabelGreekPreviousFontEncoding}.} % \begin{macrocode} -\@ifl@aded{def}{lgrenc}{% +\addto\extrasgreek{% + \let\BabelGreekPreviousFontEncoding\cf@encoding + \greekscript} +\addto\noextrasgreek{\BabelGreekRestoreFontEncoding} % \end{macrocode} % -% We redefine a few commands in the LGR encoding to work around problems -% because LGR is no \emph{standard text encoding} but has Greek letters in -% the places of Latin ones. -% The ampersand must work in text and math mode. We provide the text -% command |\textampersand| and re-define |\&| to use it in text mode. -% \changes{greekfdd-2.2c}{1999/04/05}{Fixed typos, \cs{textrademark} -% misses a `t', \cs{copyright} should be \cs{textcopyright}} -% \changes{greekfdd-2.2d}{1999/04/25}{removed redefinition of \cs{\&}} -% \changes{greek-1.4}{2013/05/17}{moved here from \file{lgrenc.def} because -% the definitions require the \texttt{\textbackslash latintext} macro -% defined by Babel.} -% \changes{greek-1.5}{2013/05/27}{enable use of "textcomp" characters -% for "textcopyright" and "textregistered" macros} -% \changes{greek-1.5}{2013/06/15}{\textbackslash & made TextCommand} -% \changes{babel-greek-1.9j}{2020/03/17}{Fix ampersand in math.} +% \subsubsection{Additional commands for the LGR font encoding} % -% \begin{macrocode} - \ProvideTextCommand{\textcopyright}{LGR}{\ensureascii{\textcopyright}} - \ProvideTextCommand{\textregistered}{LGR}{\ensureascii{\textregistered}} - \ProvideTextCommand{\texttrademark}{LGR}{\ensureascii{\texttrademark}} - \let\ltx@amp\& - \ProvideTextCommandDefault{\textampersand}{\ltx@amp} - \ProvideTextCommand{\textampersand}{LGR}{\ensureascii{\ltx@amp}} - \DeclareRobustCommand{\&}{\ifmmode\ltx@amp\else\textampersand\fi} - \ProvideTextCommand{\SS}{LGR}{\ensureascii{\SS}} -% \end{macrocode} +% The actions in this section add ``harmless'' setup steps for the LGR +% font encoding that cannot be done in the \file{lgrenc.def} +% encoding definition file. % -% \begin{macro}{\greek@roman} -% \begin{macro}{\greek@Roman} -% \changes{greek-1.2e}{1999/04/16}{Moved redefinition of \cs{@roman} -% back to the language specific file} -% \changes{greek-1.3d}{1999/08/27}{\cs{@roman} and \cs{@Roman} need to -% be added to \cs{extraspolutonikogreek}} -% \changes{greek-1.3e}{1999/09/24}{\cs{@roman} and \cs{@Roman} need -% \emph{not} be in \cs{extraspolutonikogreek} when they are already -% in \cs{extrasgreek}} -% \changes{greek-1.5}{2013/06/15}{\cs{@roman} and \cs{@Roman} as TextCommands -% (BUG: this extended the expansion problem to all languages!)} -% \changes{greek-1.6}{2013/07/19}{apply a patch by Enrico Gregorio. -% Thanks to Claudio Beccari for testing and reporting.} -% -% To prevent roman numerals being typeset in greek letters we need -% to adopt the internal \LaTeX\ commands |\@roman| and -% |\@Roman|. \emph{Up to version 1.5, the definition caused errors where -% |\@roman| ends up in a situation where the argument needs to be expanded -% (e.g. Roman page numbers in the ToC).} +% We do this only, if the LGR font encoding is defined (either by \pkg{fontenc} +% or \pkg{babel-greek}), but also if it is not the |\greekfontencoding|: % \begin{macrocode} - \def\@roman#1{\expandafter\ensureascii\expandafter{\romannumeral#1}} - \def\@Roman#1{\expandafter\ensureascii\expandafter{% - \expandafter\@slowromancap\romannumeral#1@}} +\@ifl@aded{def}{lgrenc}{% % \end{macrocode} -% \end{macro} -% \end{macro} -% -% Now we define two commands that switch -% to the LGR font encoding. The Babel core defines corresponding commands -% to switch to a Latin font encoding. % % \begin{macro}{\greektext} -% The declaration |\greektext| switches to LGR. -% For shorter pieces of text the |\textgreek| macro should be -% used. +% The declaration |\greektext| switches to LGR. Use this if you explicitly +% require LGR (e.g. to use the Latin transliteration or special fonts). +% Use |\greekscript| instead, if you want to avoid a font encoding change +% if the current font encoding already supports the Greek script (e.g. TU). +% For shorter pieces of text, the |\lgrfont| (see below) or |\ensuregreek| +% commands should be used. Cf.\ section~\ref{sec:font-encoding-switches}. % \begin{macrocode} \DeclareRobustCommand{\greektext}{% \fontencoding{LGR}\selectfont @@ -621,59 +764,190 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\textgreek} -% This command takes an argument which is then typeset using the -% LGR font encoding. In order to avoid many encoding switches -% it operates in a local scope. +% \begin{macro}{\lgrfont} +% This command takes an argument which is typeset using the +% LGR font encoding. +% +% The original name |\textgreek| is deprecated because of its ambiguitiy: +% The command does not change the text \emph{language} but only the +% font encoding, which allows the use of the Greek \emph{script} +% but does not activate Greek hyphenation and case-changing rules. % \changes{greek-1.0b}{1996/09/23}{Added a level of braces to keep -% encoding change local} +% encoding change local} % \changes{greek-1.3k}{2003/03/19}{Added \cs{leavevmode} as was done -% with \cs{latintext}} +% with \cs{latintext}} +% \changes{babel-greek-1.12}{2023/03/04}{^^A +% Simplified implementation using \cs{\DeclareTextFontCommand}. +% Name changed from \cs{textgreek} to \cs{lgrfont}.} % \begin{macrocode} - \DeclareRobustCommand{\textgreek}[1]{\leavevmode{\greektext #1}} + \DeclareTextFontCommand{\lgrfont}{\greektext} + \let\textgreek\lgrfont % \end{macrocode} % \end{macro} % % \begin{macro}{\textol} -% The \href{http://www.ctan.org/pkg/cbgreek-complete}{CB Greek fonts} +% The \href{https://ctan.org/pkg/cbgreek-complete}{CB Greek fonts} % contain an outline family. In order to make it available, % we define the command |\textol|. (This font-specific macro does not -% fit in a language defintion file is and only kept for backwards +% fit in a language definition file and is only kept for backwards % compatibility.) % \begin{macrocode} \def\outlfamily{\usefont{LGR}{cmro}{m}{n}} \DeclareTextFontCommand{\textol}{\outlfamily} -}{} % End of LGR fixes. % \end{macrocode} % \end{macro} +% Add LGR-specific variants to some \emph{TextCommands} +% that use Latin characters in their default definition. +% These definitions cannot be done in \file{lgrenc.def} because they rely +% on |\ensureascii| (defined by \pkg{babel}). +% \changes{greekfdd-2.2c}{1999/04/05}{Fixed typos, \cs{textrademark} +% misses a `t', \cs{copyright} should be \cs{textcopyright}} +% \changes{greekfdd-2.2d}{1999/04/25}{removed redefinition of \cs{\&}} +% \changes{greek-1.4}{2013/05/17}{moved here from \file{lgrenc.def} because +% the definitions require the \cs{latintext} macro defined by Babel.} +% \changes{greek-1.5}{2013/05/27}{enable use of "textcomp" characters +% for "textcopyright" and "textregistered" macros} +% \changes{babel-greek-1.08}{2013/11/27}{ +% Use font-encoding specific TextCommands.} +% \changes{babel-greek-1.12}{2023/03/04}{Drop definition for \cs{\SS}.} +% \begin{macrocode} + \ProvideTextCommand{\textcopyright}{LGR}{\ensureascii{\textcopyright}} + \ProvideTextCommand{\textregistered}{LGR}{\ensureascii{% + \textregistered}} + \ProvideTextCommand{\texttrademark}{LGR}{\ensureascii{\texttrademark}} +% \end{macrocode} % -% \section{Definitions for the Greek language} -% -% The next step consists in defining commands to switch to (and -% from) the Greek language. -% -% \begin{macro}{\greekhyphenmins} -% This macro is used to store the correct values of the hyphenation -% parameters |\lefthyphenmin| and |\righthyphenmin|. -% \changes{greek-1.3h}{2000/09/22}{Now use \cs{providehyphenmins} to -% provide a default value} +% \begin{macro}{\textampersand} +% LGR has a ``middle dot'' glyph at the place of the ampersand. +% Provide the \emph{TextCommand} |\textampersand| and an LGR-specific +% version. It is used in the next section to define a version of |\&| +% that also works in LGR. +% \changes{greek-1.5}{2013/06/15}{Make \cs{\&} a TextCommand} +% \changes{babel-greek-1.09j}{2020/03/17}{Fix ampersand in math.} % \begin{macrocode} -% Yannis Haralambous has suggested this value -\providehyphenmins{\CurrentOption}{\@ne\@ne} + \let\bbl@greek@original@amp\& + \ProvideTextCommandDefault{\textampersand}{\bbl@greek@original@amp} + \ProvideTextCommand{\textampersand}{LGR}{% + \ensureascii{\bbl@greek@original@amp}} % \end{macrocode} % \end{macro} +% \begin{macro}{\EnsureStandardFontEncoding} +% The TextCommand |\EnsureStandardFontEncoding| can be used to make +% existing commands ``LGR-proof''. It makes sure its argument is typeset +% using a \href{https://mirrors.ctan.org/macros/latex/base/encguide.pdf} +% {standard text font encoding}. +% The default is an empty command: almost all commonly used font encodings +% are standard text encodings -- LGR is the notable exception. +% The local LGR variant uses |\ensureascii| from the Babel core that comes +% with elaborate heuristics to select a suitable standard font encoding. +% A special clause for \pkg{hyperref} avoids warnings from this package. +% \changes{babel-greek-1.12}{2023/03/04}{New TextCommand.} +% \begin{macrocode} + \ProvideTextCommandDefault{\EnsureStandardFontEncoding}{\@firstofone} + \ProvideTextCommand{\EnsureStandardFontEncoding}{LGR}[1]{% + \ensureascii{#1}} + \AtBeginDocument{\@ifpackageloaded{hyperref} + {\pdfstringdefDisableCommands{% + \let\EnsureStandardFontEncoding\@firstofone}} + {}} +% \end{macrocode} +% \end{macro} +% End the LGR additions block: +% \begin{macrocode} +}{} +% \end{macrocode} + +% \subsubsection{LGR workarounds \label{sec:lgr-redefinitions}} +% +% The following redefinitions work around problems with the +% non-standard LGR font encoding. +% As they may have serious side-effects, they are only done if LGR is the +% default Greek font encoding (cf.\ section~\ref{sec:greekfontencoding}). +% +% As an emergency measure, the \Lopt{local-LGR-fixes} or \Lopt{no-LGR-fixes} +% modifiers (cf.\ section \ref{sec:modifiers}) can be used to restrict +% the ``roman'' redefinitions to text parts using the Greek language or skip +% them completely. +% +% To prevent Roman numerals being typeset with Greek letters in text parts +% using the LGR font encoding, they must be wrapped in |\ensureascii|. +% However, Roman numerals are also auto generated by LaTeX and +% used in moving arguments.\footnote{ +% For example, Roman page numbers are generated at ``unpredictable'' +% positions and can move to the ToC, (hyper)references, or an index.} +% These ``moving'' Roman numbers must be LGR-proofed also if they originate +% from a text part using a standard font encoding. This can only be ensured by +% a global re-definition of the generating functions |\@roman| and |\@Roman|. +% On the other hand, the re-definition breaks the assumption by +% MakeIndex, that page numbers are plain character sequences. +% \pkg{Hyperref} assumes that |\thepage| is expandable and doesn't +% contain formatting instructions (cf.\ +% \href{https://github.com/latex3/babel/issues/170}{Babel issue \#170}). +% \changes{greek-1.2e}{1999/04/16}{Moved redefinition of \cs{@roman} +% back to the language specific file} +% \changes{greek-1.3d}{1999/08/27}{\cs{@roman} and \cs{@Roman} need to +% be added to \cs{extraspolutonikogreek}} +% \changes{greek-1.3e}{1999/09/24}{\cs{@roman} and \cs{@Roman} need +% \emph{not} be in \cs{extraspolutonikogreek} when they are +% already in \cs{extrasgreek}} +% \changes{greek-1.5}{2013/06/15}{\cs{@roman} and \cs{@Roman} as TextCommands +% (BUG: this extended the expansion problem to all languages!)} +% \changes{greek-1.6}{2013/07/19}{Apply a patch by Enrico Gregorio. +% Thanks to Claudio Beccari for testing and reporting.} +% +% The ampersand macro |\&| is used in both, text and math mode. +% Let it use the new defined \emph{TextCommand} |\textampersand| +% in text mode. +% \begin{macrocode} +\def\bbl@tempa{LGR} +\ifx\greekfontencoding\bbl@tempa + \def\bbl@greek@roman#1{\expandafter\EnsureStandardFontEncoding% + \expandafter{\romannumeral#1}} + \def\bbl@greek@Roman#1{\expandafter\EnsureStandardFontEncoding% + \expandafter{\expandafter\@slowromancap\romannumeral#1@}} + \DeclareRobustCommand{\bbl@greek@ampersand}{% + \ifmmode\bbl@greek@original@amp\else\textampersand\fi} + \bbl@xin@{,no-LGR-fixes,}{,\BabelModifiers,}% + \ifin@ + % skip re-definitions + \else + \bbl@xin@{,local-LGR-fixes,}{,\BabelModifiers,}% + \ifin@ + \addto\extrasgreek{% + \babel@save\@roman + \babel@save\@Roman + \let\@roman\bbl@greek@roman + \let\@Roman\bbl@greek@Roman + \babel@save\&% + \let\&\bbl@greek@ampersand% + } + \else + \let\@roman\bbl@greek@roman + \let\@Roman\bbl@greek@Roman + \let\&\bbl@greek@ampersand + \fi + \fi +\fi +% \end{macrocode} % +% +% \subsection{Definitions for the Greek language} +% +% The next step consists in defining macros for the requirements of Greek +% typesetting which will later be added to the language switch hooks. +% +% \subsubsection{Auto-strings for Greek} % \changes{greek-1.1e}{1997/10/12}{Added caption name for proof} % \changes{greek-1.3d}{1999/08/28}{Fixed typo, \texttt{bl'epe ep'ishc} -% instead of \texttt{bl'pe ep'ishc}} +% instead of \texttt{bl'pe ep'ishc}} % % \begin{macro}{\captionsgreek} % The macro |\captionsgreek| defines all strings used in the % four standard document classes provided with \LaTeX. % \changes{greek-1.3h}{2000/09/20}{Added \cs{glossaryname}} % \changes{greek-1.3i}{2000/10/02}{The final sigma in all names appears -% as `s' instead of `c'.} -% \changes{babel-greek-1.9i}{2020/02/27}{Fix accent in seename and alsoname.} +% as `s' instead of `c'.} +% \changes{babel-greek-1.09i}{2020/02/27}{Fix accent in seename and alsoname.} % \begin{macrocode} \addto\captionsgreek{% \def\prefacename{\textPi\textrho\acctonos\textomicron\textlambda @@ -682,8 +956,9 @@ \textphi\textomicron\textrho\acctonos\textepsilon\textfinalsigma}% \def\abstractname{\textPi\textepsilon\textrho\acctonos\textiota \textlambda\texteta\textpsi\texteta}% - \def\bibname{\textBeta\textiota\textbeta\textlambda\textiota\textomicron - \textgamma\textrho\textalpha\textphi\acctonos\textiota\textalpha}% + \def\bibname{\textBeta\textiota\textbeta\textlambda\textiota + \textomicron\textgamma\textrho\textalpha\textphi\acctonos + \textiota\textalpha}% \def\chaptername{\textKappa\textepsilon\textphi\acctonos\textalpha \textlambda\textalpha\textiota\textomicron}% \def\appendixname{\textPi\textalpha\textrho\acctonos\textalpha\textrho @@ -697,7 +972,8 @@ \textomega\textnu}% \def\listtablename{\textKappa\textalpha\texttau\acctonos\textalpha \textlambda\textomicron\textgamma\textomicron\textfinalsigma{} - \textPi\textiota\textnu\acctonos\textalpha\textkappa\textomega\textnu}% + \textPi\textiota\textnu\acctonos\textalpha\textkappa\textomega + \textnu}% \def\indexname{\textEpsilon\textupsilon\textrho\textepsilon \texttau\acctonos\texteta\textrho\textiota\textomicron}% \def\figurename{\textSigma\textchi\acctonos\texteta\textmu\textalpha}% @@ -712,27 +988,31 @@ \def\headtoname{\textPi\textrho\textomicron\textfinalsigma}% \def\pagename{\textSigma\textepsilon\textlambda\acctonos\textiota \textdelta\textalpha}% - \def\seename{\textbeta\textlambda\acctonos\textepsilon\textpi\textepsilon}% - \def\alsoname{\textbeta\textlambda\acctonos\textepsilon\textpi\textepsilon{} - \textepsilon\textpi\acctonos\textiota\textsigma\texteta\textfinalsigma}% + \def\seename{\textbeta\textlambda\acctonos\textepsilon\textpi + \textepsilon}% + \def\alsoname{\textbeta\textlambda\acctonos\textepsilon\textpi + \textepsilon{} \textepsilon\textpi\acctonos\textiota\textsigma + \texteta\textfinalsigma}% \def\proofname{\textAlpha\textpi\acctonos\textomicron \textdelta\textepsilon\textiota\textxi\texteta}% \def\glossaryname{\textGamma\textlambda\textomega\textsigma \textsigma\acctonos\textalpha\textrho\textiota}% - } +} % \end{macrocode} % \end{macro} +% +% \subsubsection{Auto-strings for polytonic Greek} % \changes{greek-1.2}{1997/10/28}{Added caption names for -% \cs{polutonikogreek}} +% \cs{polutonikogreek}} % \changes{greek-1.3d}{1999/08/28}{Fixed typo, \texttt{bl'epe >ep'ishc} -% instead of \texttt{bl'pe >ep'ishc}} -% +% instead of \texttt{bl'pe >ep'ishc}} % \begin{macro}{\captionspolutonikogreek} -% For texts written in the $\pi o\lambda\upsilon\tau -% o\nu\kappa\acute{o}$ (polytonic greek) the translations are +% For texts written in polytonic greek, the translations are % the same as above, but some words are spelled differently. For % now we just add extra definitions to |\captionsgreek| in order to % override the earlier definitions. +% \changes{babel-greek-1.09b}{2014/09/18}{Use named macros instead of +% non-standard short accent macros for psili and dasia.} % \begin{macrocode} \let\captionspolutonikogreek\captionsgreek \addto\captionspolutonikogreek{% @@ -740,82 +1020,85 @@ \textphi\textomicron\textrho\accvaria\textepsilon\textfinalsigma}% \def\indexname{\textEpsilon\accdasia\textupsilon\textrho\textepsilon \texttau\acctonos\texteta\textrho\textiota\textomicron}% - \def\figurename{\textSigma\textchi\accperispomeni\texteta\textmu\textalpha}% + \def\figurename{\textSigma\textchi\accperispomeni\texteta\textmu + \textalpha}% \def\headtoname{\textPi\textrho\accvaria\textomicron\textfinalsigma}% - \def\alsoname{\textbeta\textlambda\acctonos\textepsilon\textpi\textepsilon{} - \accpsili\textepsilon\textpi\acctonos\textiota\textsigma\texteta\textfinalsigma}% + \def\alsoname{\textbeta\textlambda\acctonos\textepsilon\textpi + \textepsilon{} \accpsili\textepsilon\textpi\acctonos\textiota + \textsigma\texteta\textfinalsigma}% \def\proofname{\accpsili\textAlpha\textpi\acctonos\textomicron \textdelta\textepsilon\textiota\textxi\texteta}% } % \end{macrocode} % \end{macro} % -% \changes{babel-greek-1.9}{2014/07/20}{Added caption names for -% \cs{ancientgreek}} -% +% \subsubsection{Auto-strings for ancient Greek} +% \changes{babel-greek-1.09}{2014/07/20}{Added caption names for +% \cs{ancientgreek}} % \begin{macro}{\captionsancientgreek} -% For texts written in ancient Greek, we took -% the translations from Apostolos Syropoulos' |xgreek| package. For -% now we just add extra definitions to |\captionsgreek| in order to -% override the earlier definitions. +% For texts written in ancient Greek, we took the translations +% from Apostolos Syropoulos' \pkgref{xgreek} package. +% For now we just add extra definitions to |\captionsgreek| +% in order to override the earlier definitions. % \begin{macrocode} \let\captionsancientgreek\captionsgreek \addto\captionsancientgreek{% - \def\prefacename{\textPi\textrho\textomicron\textomicron\acctonos\textiota\textmu - \textiota\textomicron\textnu}% - \def\refname{\accpsili\textAlpha\textnu\textalpha\textphi\textomicron\textrho - \textalpha\accvaria\textiota}% - \def\abstractname{\textPi\textepsilon\textrho\acctonos\textiota\textlambda\texteta - \textpsi\textiota\textvarsigma}% - \def\bibname{\textBeta\textiota\textbeta\textlambda\textiota\textomicron - \textgamma\textrho\textalpha\textphi\acctonos\textiota\textalpha}% - \def\chaptername{\textKappa\textepsilon\textphi\acctonos\textalpha\textlambda - \textalpha\textiota\textomicron\textnu}% - \def\appendixname{\textPi\textalpha\textrho\acctonos\textalpha\textrho\texttau - \texteta\textmu\textalpha}% - \def\contentsname{\textPi\textepsilon\textrho\textiota\textepsilon\textchi - \acctonos\textomicron\textmu\textepsilon\textnu\textalpha}% - \def\listfigurename{\textKappa\textalpha\texttau\acctonos\textalpha\textlambda - \textomicron\textgamma\textomicron\textvarsigma{} - \textsigma\textchi\texteta\textmu\acctonos\textalpha\texttau\textomega\textnu}% - \def\listtablename{\textKappa\textalpha\texttau\acctonos\textalpha\textlambda - \textomicron\textgamma\textomicron\textvarsigma{} - \textpi\textiota\textnu\acctonos\textalpha\textkappa\textomega\textnu}% - \def\indexname{\textEpsilon\accdasia\textupsilon\textrho\textepsilon\texttau - \acctonos\texteta\textrho\textiota\textomicron\textnu}% - \def\figurename{\textSigma\textchi\accperispomeni\texteta\textmu\textalpha}% + \def\prefacename{\textPi\textrho\textomicron\textomicron + \acctonos\textiota\textmu\textiota\textomicron\textnu}% + \def\refname{\accpsili\textAlpha\textnu\textalpha\textphi\textomicron + \textrho\textalpha\accvaria\textiota}% + \def\abstractname{\textPi\textepsilon\textrho\acctonos\textiota + \textlambda\texteta\textpsi\textiota\textvarsigma}% + \def\bibname{\textBeta\textiota\textbeta\textlambda\textiota + \textomicron\textgamma\textrho\textalpha\textphi + \acctonos\textiota\textalpha}% + \def\chaptername{\textKappa\textepsilon\textphi\acctonos\textalpha + \textlambda\textalpha\textiota\textomicron\textnu}% + \def\appendixname{\textPi\textalpha\textrho\acctonos\textalpha + \textrho\texttau\texteta\textmu\textalpha}% + \def\contentsname{\textPi\textepsilon\textrho\textiota\textepsilon + \textchi\acctonos\textomicron\textmu\textepsilon\textnu\textalpha}% + \def\listfigurename{\textKappa\textalpha\texttau\acctonos\textalpha + \textlambda\textomicron\textgamma\textomicron\textvarsigma{} + \textsigma\textchi\texteta\textmu\acctonos\textalpha\texttau + \textomega\textnu}% + \def\listtablename{\textKappa\textalpha\texttau\acctonos\textalpha + \textlambda\textomicron\textgamma\textomicron\textvarsigma{} + \textpi\textiota\textnu\acctonos\textalpha\textkappa + \textomega\textnu}% + \def\indexname{\textEpsilon\accdasia\textupsilon\textrho\textepsilon + \texttau\acctonos\texteta\textrho\textiota\textomicron\textnu}% + \def\figurename{\textSigma\textchi\accperispomeni\texteta\textmu + \textalpha}% \def\tablename{\textPi\acctonos\textiota\textnu\textalpha\textxi}% - \def\partname{\textMu\acctonos\textepsilon\textrho\textomicron\textvarsigma}% + \def\partname{\textMu\acctonos\textepsilon\textrho\textomicron + \textvarsigma}% \def\enclname{\textSigma\textupsilon\textnu\texteta\textmu\textmu \acctonos\textepsilon\textnu\textomega\textvarsigma}% \def\ccname{\textKappa\textomicron\textiota\textnu\textomicron\textpi - \textomicron\acctonos\textiota\texteta\textsigma\textiota\textvarsigma}% + \textomicron\acctonos\textiota\texteta\textsigma\textiota + \textvarsigma}% \def\headtoname{\textPi\textrho\accvaria\textomicron\textvarsigma}% - \def\pagename{\textSigma\textepsilon\textlambda\accvaria\textiota\textvarsigma}% + \def\pagename{\textSigma\textepsilon\textlambda\accvaria\textiota + \textvarsigma}% \def\seename{\accdasiaoxia\textomicron\textrho\textalpha}% - \def\alsoname{\accdasiaoxia\textomicron\textrho\textalpha{} \accdasia\textomega\textsigma - \textalpha\acctonos\textupsilon\texttau\textomega\textvarsigma}% - \def\proofname{\accpsili\textAlpha\textpi\acctonos\textomicron\textdelta\textepsilon - \textiota\textxi\textiota\textvarsigma}% + \def\alsoname{\accdasiaoxia\textomicron\textrho\textalpha{} + \accdasia\textomega\textsigma\textalpha\acctonos\textupsilon + \texttau\textomega\textvarsigma}% + \def\proofname{\accpsili\textAlpha\textpi\acctonos\textomicron + \textdelta\textepsilon\textiota\textxi\textiota\textvarsigma}% \def\glossaryname{\textGamma\textlambda\textomega\textsigma\textsigma \acctonos\textalpha\textrho\textiota\textomicron\textnu}% - } +} % \end{macrocode} % \end{macro} % +% \subsubsection{Date specification} +% % \begin{macro}{\gr@month} +% The auxiliary macro |\gr@month| returns Greek month names in +% monotonic spelling. % \changes{greek-1.1e}{1997/10/12}{Macro added} -% \begin{macro}{\dategreek} -% The macro |\dategreek| redefines the command |\today| to -% produce greek dates. The name of the month is now produced -% by the macro |\gr@month| since it is needed in the definition -% of the macro |\Grtoday|. -% \changes{greek-1.1a}{1997/03/03}{Fixed typo, \texttt{Oktwbr'iou} -% instead of \texttt{Oktobr'iou}} -% \changes{greek-1.1d}{1997/10/12}{Macro \cs{gr@month} now produces -% the name of the month} -% \changes{greek-1.2a}{1997/10/31}{Use \cs{edef} to define \cs{today}} -% \changes{greek-1.2b}{1998/03/28}{use \cs{def} instead of \cs{edef}} % \begin{macrocode} \def\gr@month{% \ifcase\month\or @@ -823,8 +1106,9 @@ \textrho\acctonos\textiota\textomicron\textupsilon \or \textPhi\textepsilon\textbeta\textrho\textomicron\textupsilon \textalpha\textrho\acctonos\textiota\textomicron\textupsilon \or - \textMu\textalpha\textrho\texttau\acctonos\textiota\textomicron\textupsilon - \or \textAlpha\textpi\textrho\textiota\textlambda\acctonos\textiota + \textMu\textalpha\textrho\texttau\acctonos\textiota\textomicron + \textupsilon \or + \textAlpha\textpi\textrho\textiota\textlambda\acctonos\textiota \textomicron\textupsilon \or \textMu\textalpha\'"\textiota\textomicron\textupsilon \or \textIota\textomicron\textupsilon\textnu\acctonos\textiota @@ -843,30 +1127,28 @@ \textrho\acctonos\textiota\textomicron\textupsilon \fi } -\def\dategreek{% - \def\today{\number\day \space \gr@month\space \number\year}} % \end{macrocode} % \end{macro} -% \end{macro} % -% \begin{macro}{\gr@c@greek} +% \begin{macro}{\gr@polutoniko@month} +% The auxiliary macro |\gr@polutoniko@month| returns Greek month names in +% polytonic spelling. It is activated by the |polutoniko| language option. % \changes{greek-1.2}{1997/10/28}{Added macro \cs{gr@cl@month}} -% \changes{greek-1.2}{1997/10/28}{Added macro -% \cs{datepolutonikogreek}} -% \changes{greek-1.3a}{1997/10/28}{removed macro -% \cs{datepolutonikogreek}} +% \changes{greek-1.2}{1997/10/28}{Added macro \cs{datepolutonikogreek}} +% \changes{greek-1.3a}{1997/10/28}{removed macro \cs{datepolutonikogreek}} % \begin{macrocode} -\def\gr@c@month{% +\def\gr@polutoniko@month{% \ifcase\month\or - \accpsili\textIota\textalpha\textnu\textomicron\textupsilon\textalpha - \textrho\acctonos\textiota\textomicron\textupsilon \or + \accpsili\textIota\textalpha\textnu\textomicron\textupsilon + \textalpha\textrho\acctonos\textiota\textomicron\textupsilon \or \textPhi\textepsilon\textbeta\textrho\textomicron\textupsilon \textalpha\textrho\acctonos\textiota\textomicron\textupsilon \or \textMu\textalpha\textrho\texttau\acctonos\textiota\textomicron \textupsilon \or \accpsili\textAlpha\textpi\textrho\textiota\textlambda \acctonos\textiota\textomicron\textupsilon \or - \textMu\textalpha\"'\textiota\textomicron\textupsilon \or + \textMu\textalpha\accdialytikatonos\textiota\textomicron + \textupsilon \or \accpsili\textIota\textomicron\textupsilon\textnu \acctonos\textiota\textomicron\textupsilon \or \accpsili\textIota\textomicron\textupsilon\textlambda @@ -886,49 +1168,79 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\dategreek} +% The macro |\dategreek| redefines the command |\today| to +% produce greek dates. The name of the month is produced +% by the macro |\gr@month| since it is also needed in the definition +% of the macro |\Grtoday|. +% \changes{greek-1.1a}{1997/03/03}{Fixed typo, \texttt{Oktwbr'iou} +% instead of \texttt{Oktobr'iou}} +% \changes{greek-1.1d}{1997/10/12}{Macro \cs{gr@month} now produces +% the name of the month} +% \changes{greek-1.2a}{1997/10/31}{Use \cs{edef} to define \cs{today}} +% \changes{greek-1.2b}{1998/03/28}{use \cs{def} instead of \cs{edef}} +% \begin{macrocode} +\def\dategreek{% + \def\today{\number\day \space \gr@month\space \number\year}} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\Grtoday} % \changes{greek-1.1}{1996/10/28}{Added macro \cs{Grtoday}} -% The macro |\Grtoday| produces the current date, only that the -% month and the day are shown as greek numerals instead of arabic -% as it is usually the case. +% The macro |\Grtoday| produces the current date, only that the +% month and the day are shown as greek numerals instead of arabic +% as it is usually the case. % \begin{macrocode} \def\Grtoday{% \expandafter\Greeknumeral\expandafter{\the\day}\space - \gr@c@month \space + \gr@polutoniko@month \space \expandafter\Greeknumeral\expandafter{\the\year}} % \end{macrocode} % \end{macro} % -% \begin{macro}{\extrasgreek} -% \begin{macro}{\noextrasgreek} -% The macro |\extrasgreek| will perform all the extra definitions -% needed for the Greek language. The macro |\noextrasgreek| is used -% to cancel the actions of |\extrasgreek|. For the moment these -% macros switch the fontencoding (with 8-bit TeX) and the definition of -% the internal macros |\@alph| and |\@Alph| because in Greek we do use -% the Greek numerals. -% \changes{greek-1.5}{2013/06/21}{LGR not used with XeTeX/LuaTeX.} -% \changes{greek-1.8}{2013/11/27}{use font-encoding specific TextCommands. -% Use EU1 or EU2 for Latin script if available} +% \subsubsection{Greek numerals \label{sec:Greek numerals}} +% +% \begin{macro}{\greeknumeralsix} +% \begin{macro}{\greeknumeralSix} +% \begin{macro}{\greeknumeralninety} +% \begin{macro}{\greeknumeralNinety} +% The shape of the obsolete characters used for number 6 (digamma/stigma) +% and 90 (koppa) evolved over time and different characters are in use +% for them today. We define placeholders that allow configuration by +% the user or a package. +% \changes{babel-greek-1.10}{2020/11/10}{ +% Use zig-zagy \cs{textkoppa}. +% This is what it looks in current Greek typography.} % \begin{macrocode} -\addto\extrasgreek{\greekscript} -\addto\noextrasgreek{\latintext} +\providecommand*{\greeknumeralsix}{\textstigma} +\providecommand*{\greeknumeralSix}{\textStigma} +\providecommand*{\greeknumeralninety}{\textkoppa} +\providecommand*{\greeknumeralNinety}{\textKoppa} % \end{macrocode} -% TODO restore previous font encoding. +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\greeknumeral} +% The commands |\greeknumeral| and |\Greeknumeral| produce the lowercase +% and uppercase \href{https://en.wikipedia.org/wiki/Greek_numerals}{Greek +% numerals} respectively. +% % The command |\greeknumeral| needs to be \emph{fully} expandable % in order to get the right information in auxiliary % files. It should also be usable in PDF-strings. % Therefore we use the implementation from the \cs{HyPsd@GreekPatch} -% in \href{https://ctan.org/pkg/hyperref}{hyperref} -% (version 7.00e 2020-05-15). +% in \pkgref{hyperref} (version 7.00e 2020-05-15). +% % \changes{babel-greek-1.10}{2020/11/10}{PDF-string secure implementation -% taken from ``hyperref'' (collaboration with Ulrike Fischer).} +% taken from ``hyperref'' (thanks to Ulrike Fischer).} +% \changes{babel-greek-1.11}{2020/11/20}{Configurable shapes for 6 and 90. +% 90 defaults to \cs{textqoppa} for ancient Greek.} % \begin{macrocode} \def\greeknumeral#1{% {\greekscript - \bbl@greek@GreekNum\@firstoftwo{#1}}% + \bbl@greek@GreekNum\@firstoftwo{#1}}% } % \end{macrocode} % \end{macro} @@ -937,7 +1249,7 @@ % \begin{macrocode} \def\Greeknumeral#1{% {\greekscript - \bbl@greek@GreekNum\@secondoftwo{#1}}% + \bbl@greek@GreekNum\@secondoftwo{#1}}% } % \end{macrocode} % \end{macro} @@ -1018,7 +1330,7 @@ \or\textgamma\textGamma \or\textdelta\textDelta \or\textepsilon\textEpsilon - \or\textstigmagreek\textStigmagreek + \or\greeknumeralsix\greeknumeralSix % stigma or digamma \or\textzeta\textZeta \or\texteta\textEta \or\texttheta\textTheta @@ -1043,7 +1355,7 @@ \or\textxi\textXi \or\textomicron\textOmicron \or\textpi\textPi - \or\textkoppa\textKoppa + \or\greeknumeralninety\greeknumeralNinety % koppa or qoppa \else {}{}% \fi @@ -1096,19 +1408,13 @@ % % \begin{macro}{\greek@alph} % \begin{macro}{\greek@Alph} -% In the previous release of this language definition the +% In the previous release of this language definition file the % commands |\greek@aplh| and |\greek@Alph| were kept just for % reasons of compatibility. Here again they become meaningful macros. -% They are definited in a way that even page numbering with greek -% numerals is possible. Since the macros |\@alph| and |\@Alph| will -% lose their original meaning while the Greek option is active, we -% must save their original value. -% macros |\@alph| -% \begin{macrocode} -\let\latin@alph\@alph -\let\latin@Alph\@Alph -% \end{macrocode} -% Then we define the Greek versions; the additional |\expandafter|s +% They are defined in a way that even page numbering with greek +% numerals is possible. +% +% We define the Greek versions; the additional |\expandafter|s % are needed in order to make sure the table of contents will be % correct, e.g., when we have appendixes. % \begin{macrocode} @@ -1116,100 +1422,103 @@ \def\greek@Alph#1{\expandafter\Greeknumeral\expandafter{\the#1}} % \end{macrocode} % -% Now we can set up the switching. -% \changes{greek-1.1a}{1997/03/03}{removed two superfluous @'s which -% made \cs{@alph} undefined} +% Redefine the internal macros |\@alph| and |\@Alph| in the +% language hook, so that we use Greek numerals\footnote{ +% cf.\ section \ref{sec:Greek numerals}} +% instead of the Latin alphabet\footnote{ +% Eventually interpreted as Latin transliteration and converted +% to Greek letters in a ``strange'' order.} +% in Greek text parts. +% \changes{greek-1.1a}{1997/03/03}{ +% removed two superfluous @'s which made \cs{@alph} undefined} +% \changes{babel-greek-1.12}{2023/03/04}{ +% Save/restore previous expansion of \cs{\@alph} and \cs{\@Alph} +% with every switch to/from Greek.} % \begin{macrocode} \addto\extrasgreek{% + \babel@save\@alph + \babel@save\@Alph \let\@alph\greek@alph - \let\@Alph\greek@Alph} -\addto\noextrasgreek{% - \let\@alph\latin@alph - \let\@Alph\latin@Alph} + \let\@Alph\greek@Alph +} % \end{macrocode} % \end{macro} % \end{macro} % % -% \section{Character codes} +% \subsection{Character codes} +% +% Greek letters drop diacritics (eccept dialytika and sub-iota) in +% UPPERCASE. This is not cared for by the Unicode standard. +% The file \file{greek-euenc.def} from \pkg{greek-fontenc} +% contains the required |\lccode| and |\uccode| corrections from the +% \pkgref{xgreek} package by Apostolos Syropoulos. It is loaded if the +% Greek font encoding is TU (i.e. with XeTeX/LuaTeX), +% see section~\ref{load-greek-font-encoding-definitions}. % -% Greek letters drop diacritics (eccept dialytika and sub-iota) in -% UPPERCASE. This is not cared for by the Unicode standard. -% The file \file{greek-euenc.def} from \pkg{greek-fontenc} -% contains the required |\lccode| and |\uccode| corrections from the -% \pkg{xgreek} package by Apostolos Syropoulos. +% If the Greek font encoding is LGR, character code changes are done here +% because they must be restricted to text parts using the LGR encoding. % \changes{greek-1.5}{2013/06/21}{Support XeTeX/LuaTeX.} -% \changes{greek-1.9d}{2015/07/06}{uclc fixes not included in greek-euenc.def} -% -% The LGR encoded fonts that are used to typeset Greek with 8-bit TeX -% define ligatures for characters with diacritics. In order for this to -% work, some characters need to be considered as letters. These -% characters are |<|, |>|, |~|, |`|, |'|, |"| and -% \verb=|=. Therefore, their |\lccode| is changed when Greek is in -% effect. In order to let |\uppercase| give correct results, the -% |\uccode| of these characters is set to a non-existing character -% to make them disappear. Of course not all characters are needed -% when typesetting ``modern'' $\mu o\nu o\tau o\nu -% \iota\kappa\acute{o}$. In that case we only need the |'| and |"| -% symbols which are treated in the proper way. -% -% \begin{macro}{\greek@tilde} -% \changes{greek-1.0c}{1997/02/19}{Added command} -% The Greek script uses a number of characters with more -% than one accent. In LGR encoded fonts combined diacritics can be -% obtained using Knuth's ligature mechanism (see usage.pdf). -% Characters we need to have ligatures with are the tilde, the -% acute and grave accent characters, the rough and smooth breathings, -% the subscript, and the double quote character. -% In text input the |~| is normally used to produce an -% unbreakable space. -% \changes{greek-1.3k}{2003/04/10}{Make sure the character `!' is not -% active during the definition of \cs{greek@tilde}} -% \changes{greek-1.4}{2013/05/17}{do not re-define the tilde accent macro: -% it works as expected with \file{lgrenc.def} from \pkg{greek-fontenc}.} +% \changes{babel-greek-1.09d}{2015/07/06}{uc-/lccode corrections from xgreek +% are now in greek-euenc.def (the polyglossia version has bugs).} +% \changes{babel-greek-1.12}{2023/03/04}{% +% Only change uc/lccodes if LGR is the \cs{greekfontencoding}.} % \begin{macrocode} -\@ifl@aded{def}{lgrenc}{% - \begingroup - \@ifundefined{active@char\string!}{}{\catcode`!=12\relax} - \catcode`\~=12% - \lccode`\!=`\~% - \lowercase{\def\x{\endgroup - \def\greek@tilde{!}}\x} +\def\bbl@tempa{LGR} +\ifx\greekfontencoding\bbl@tempa % \end{macrocode} -% \end{macro} -% In order to get correct hyphenation we need to set the lower case -% code of a number of characters. The `v' character has a special -% usage for the |cb| fonts: in fact this ligature mechanism detects -% the end of a word and assures that a final sigma is typeset with -% the proper sign wich is different from that of an initial or -% medial sigma; the `v 'after an \textit{isolated} sigma fools -% the ligature mechanism in order to typeset $\sigma$ in place of -% $\varsigma$. Because of this we make sure its lowercase code is -% not changed. For ``modern'' greek we have to deal only with |'| -% and |"| and so things are easy. +% In order to get correct hyphenation we need to set the lower case +% code of a number of characters. +% +% In LGR encoded fonts, diacritics can be obtained using Knuth's +% ligature mechanism (see usage.pdf). This means that the characters +% |<|, |>|, |~|, |`|, |'|, |"|, and \verb=|= may be part of a word. +% Therefore, their |\lccode| is changed when polytonic Greek is in +% effect. For monotonic Greek, we only need |'| and |"|. +% +% The `v' character has a special usage in LGR-encoded fonts: +% The LGR ligature mechanism detects the end of a word and assures that +% a final sigma ($\varsigma$) is used. The `v' after an `s' overrides this +% ligature mechanism so that it is possible to typeset an isolated $\sigma$ +% without it becoming a $\varsigma$. +% Because of this we make sure its lowercase code is not changed. % \changes{greek-1.1c}{1997/04/30}{fixed two typos} % \changes{greek-1.1e}{1997/10/12}{Added lowercase code for v} % \changes{greek-1.2}{1997/10/28}{Definitions for ``modern'' Greek are -% now the definitions of ``Polutoniko'' Greek} +% now the definitions of ``polutoniko'' Greek} % \changes{greek-1.2}{1997/10/28}{Added lowercase codes for ``modern'' % greek} % \changes{greek-1.3e}{1999/09/24}{\cs{extrasgreek} and % \cs{extraspolutonikogreek} should be complementary} -% \changes{babel-greek-1.9}{2014/07/20}{Added lc codes for chars 128 to 255} +% \changes{babel-greek-1.09}{2014/07/20}{Added lc codes for chars 128 to 255} +% \changes{babel-greek-1.09b}{2014/09/18}{Remove spurious whitespace from +% `extrasgreek' definition (report Eike Schmidt).} +% \begin{macrocode} + \addto\extrasgreek{% + \babel@savevariable{\lccode`v}\lccode`v=`v% + \babel@savevariable{\lccode`\'}\lccode`\'=`\'% + \babel@savevariable{\lccode`\"}\lccode`\"=`\"% + } + \addto\extraspolutonikogreek{% + % \l@greek=\bbl@polygreek + \babel@savevariable{\lccode`\<}\lccode`\<=`\<% + \babel@savevariable{\lccode`\>}\lccode`\>=`\>% + \babel@savevariable{\lccode`\~}\lccode`\~=`\~% + \babel@savevariable{\lccode`\|}\lccode`\|=`\|% + \babel@savevariable{\lccode`\`}\lccode`\`=`\`% + } +% \end{macrocode} % In order to process the suitable characters and in such a way that % hyphenation patterns work also with precomposed characters, it is -% necessary to declare the lc code for all characters, that can be part +% necessary to declare the lc code for all characters that can be part % of a word. We do this in |\extrasgreek| because this is a feature of -% the LGR font encoding (which is the same in all language variants). +% the LGR font encoding (used in all language variants). % This means that multi-accented characters are regarded parts of a word % (and not non-word characters) also in monotonic spelling. -% \changes{babel-greek-1.9e}{2015/11/27}{Fix bug in lccode-setting loop +% \changes{babel-greek-1.09e}{2015/11/27}{Fix bug in lccode-setting loop % (patch by Enrico Gregorio).} % \begin{macrocode} \addto\extrasgreek{% - \babel@savevariable{\lccode`v}\lccode`v=`v% - \babel@savevariable{\lccode`\'}\lccode`\'=`\'% - \babel@savevariable{\lccode`\"}\lccode`\"=`\"% % ``high bit characters'': set in a loop and correct exceptions \@tempcnta=128% \@whilenum\@tempcnta<253\do{% @@ -1228,19 +1537,14 @@ \lccode219=240% GREEK CAPITAL LETTER IOTA WITH DIALYTIKA \lccode223=244% GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA } - - \addto\extraspolutonikogreek{% - % \l@greek=\bbl@polygreek - \babel@savevariable{\lccode`\<}\lccode`\<=`\<% - \babel@savevariable{\lccode`\>}\lccode`\>=`\>% - \babel@savevariable{\lccode`\~}\lccode`\~=`\~% - \babel@savevariable{\lccode`\|}\lccode`\|=`\|% - \babel@savevariable{\lccode`\`}\lccode`\`=`\`% - } % \end{macrocode} -% And in order to get rid of all accents and breathings when a -% string is |\uppercase|d we also change a number of uppercase -% codes. +% +% In order to drop diacritics (eccept dialytika and sub-iota) in +% UPPERCASE also with the ``input ligatures'' the |\uccode| of the +% relevant characters is set to a dummy character. +% This is only done, if LaTeX is older than 2022/06/01 because +% the |\MakeUppercase| implementation introduced in this version ignores +% uccodes and fails with the ``dummy'' character 0x9f. % \changes{greek-1.1b}{1997/03/06}{Added setting of \cs{uccode}s % (after \file{kdgreek.sty})} % \changes{greek-1.1e}{1997/10/12}{Added uppercase code for special @@ -1255,76 +1559,115 @@ % \indexbar{} to reflect recent changes in the cb fonts} % \changes{greek-1.3i}{2000/10/02}{uc code of `v' is switched to V % so that mixed text appears correctly in headers.} -% \changes{greek-1.3j}{2001/02/03}{Because other languages might -% make the caret active, we can't use the double caret notation -% here} +% \changes{greek-1.3j}{2001/02/03}{Don't use the double caret notation here, +% because other languages might make the caret active.} +% \changes{babel-greek-1.12}{2023/03/04}{ +% Don't change uccodes if LaTeX is from 2022/06/01 or newer.} % \begin{macrocode} - \addto\extrasgreek{% - \babel@savevariable{\uccode`\"}\uccode`\"=`\"% - \babel@savevariable{\uccode`\'}\uccode`\'=159% 159 == ^^9f - } - \addto\extraspolutonikogreek{% - \babel@savevariable{\uccode`\~}\uccode`\~=159% - \babel@savevariable{\uccode`\>}\uccode`\>=159% - \babel@savevariable{\uccode`\<}\uccode`\<=159% - \babel@savevariable{\uccode`\|}\uccode`\|=`\|% - \babel@savevariable{\uccode`\`}\uccode`\`=159% - } + % fallback for for LaTeX versions older than 2020-10-01 + \providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} + \IfFormatAtLeastTF{2022/06/01}% + {} + {% else + \addto\extrasgreek{% + \babel@savevariable{\uccode`\"}\uccode`\"=`\"% + \babel@savevariable{\uccode`\'}\uccode`\'=159% 159 == ^^9f + } + \addto\extraspolutonikogreek{% + \babel@savevariable{\uccode`\~}\uccode`\~=159% + \babel@savevariable{\uccode`\>}\uccode`\>=159% + \babel@savevariable{\uccode`\<}\uccode`\<=159% + \babel@savevariable{\uccode`\|}\uccode`\|=`\|% + \babel@savevariable{\uccode`\`}\uccode`\`=159% + } % \end{macrocode} -% For this to work we make the character |^^9f| a shorthand that -% expands to nothing. In order for this to work we need to make a -% character look like |^^9f| in \TeX's eyes. The trick is to have -% another character and assign it a different lowercase code. The -% execute the macros needed in a |\lowercase| environment. Usually -% the tilde |~| character is used for such purposes. Before we do -% this we save it's original lowercase code to restore it once -% we're done. -% \changes{greek-1.1b}{1997/03/06}{Added shorthand for \cs{char255}} -% \changes{greek-1.1e}{1997/10/12}{Shorthand is changed. Active -% character is now \cs{char159}} -% \changes{greek-1.2a}{1997/10/31}{Need shorthand to exist for -% ``monotoniko'' Greek, not ``polutoniko'' Greek} -% \changes{greek-1.3j}{2001/02/03}{Use the tilde as an alias for -% character 159} +% To avoid \pkg{inputenc} errors if the tilde is used as perispomeni +% (in polytonic or ancient Greek), we need to declare an expansion for +% the ``dummy'' character~0x9f = 159.\footnote{ +% Since UTF-8 became the default encoding (cf.\ +% \href{https://www.latex-project.org/news/latex2e-news/ltnews28.pdf} +% {LaTeX News~28}), an ``inputenc'' error is also thrown +% if the \pkg{inputenc} package is not loaded.} +% To be independent of \pkg{inputenc}, we do not use |\DeclareInputText| +% but code modelled after its definition to declare an empty expansion. +% \changes{greek-1.1b}{1997/03/06}{ +% Added shorthand for \cs{char255}} +% \changes{greek-1.1e}{1997/10/12}{ +% Shorthand is changed. Active character is now \cs{char159}} +% \changes{greek-1.2a}{1997/10/31}{ +% Need shorthand to exist for monotonic Greek, not polytonik Greek} +% \changes{greek-1.3j}{2001/02/03}{ +% Use the tilde as an alias for character 159} +% \changes{babel-greek-1.12}{2023/03/04}{ +% Declare char 159 expansion similar to the way it is done +% in \pkg{inputenc} to avoid ``inputenc error''.} % \begin{macrocode} - \@tempcnta=\lccode`\~ - \lccode`\~=159 - \lowercase{% - \initiate@active@char{~}% - \declare@shorthand{greek}{~}{}} - \lccode`\~=\@tempcnta + \bgroup + \uccode`\~159% + \uppercase{% + \egroup + \def~{}% + } % \end{macrocode} % Add composite commands, so that the dialytika is kept or put on the % following character of a diphthong with |\MakeUppercase| % (see lgrdef.enc from the the greek-fontenc package for details). % \changes{greek-1.4}{2013/05/17}{Add TextCompositeCommands for -% ``uppercase diacritics''.} +% ``uppercase diacritics''.} % \changes{greek-1.5}{2013/05/27}{Bugfix: @hiatus->LGR@hiatus} % \changes{greek-1.5a}{2013/07/02}{Replaced non-printable literal character -% with ^^-notation (thanks to Heiko Oberdiek for the hint).} -% \changes{greek-1.9}{2014/07/20}{The |^^|-notation seems to require lower case -% letters. |^^9F| failed.} +% with ^^-notation (thanks to Heiko Oberdiek for the hint).} +% \changes{babel-greek-1.09}{2014/07/20}{The |^^|-notation seems to require +% lower case letters. |^^9F| failed.} +% \changes{babel-greek-1.09h}{2019/07/11}{Move breathing composite commands +% to textalpha.} +% \begin{macrocode} + \DeclareTextCompositeCommand{\"}{LGR}{^^9f}{\accdialytika} + \DeclareTextCompositeCommand{\'}{LGR}{^^9f}{\LGR@hiatus} + \DeclareTextCompositeCommand{\`}{LGR}{^^9f}{\LGR@accdropped} +% \end{macrocode} +% If Unicode fonts are loaded together with LGR, we must also care for +% |\"'| and |\"`| in TU, because the \" is kept when upcasing. % \begin{macrocode} - \DeclareTextCompositeCommand{\"}{LGR}{^^9f}{\accdialytika} - \DeclareTextCompositeCommand{\'}{LGR}{^^9f}{\LGR@hiatus} - \DeclareTextCompositeCommand{\`}{LGR}{^^9f}{\LGR@hiatus} + \ifdefined\UnicodeEncodingName % set by XeTeX/LuaTeX + \DeclareTextCompositeCommand{\"}{TU}{^^9f}{\accdialytika} + \fi + }% end of the \IfFormatAtLeastTF else block % \end{macrocode} % -% We can also make the tilde character itself expand to a tilde with -% category code 12 to make the typing of texts easier. +% \begin{macro}{\greek@tilde} +% By default, the tilde produces an unbreakable space in text mode. +% In polytonic and ancient Greek, we change its meaning to allow +% using |~| in the Latin transliteration of characters with perispomeni. +% As the perispomeni is not required with monotonic Greek, this is +% only done for the variants ``polutoniko'' and ``ancient'' +% (in |\extraspolutonikogreek|). +% +% Let the tilde character expand to a tilde with category code 12. +% \changes{greek-1.0c}{1997/02/19}{Added command} % \changes{greek-1.1b}{1997/03/06}{Made tilde expand to a tilde with % \cs{catcode 12}.} -% \changes{greek-1.5a}{2013/06/27}{provide ``extraspolutonikogreek'' also -% for Xe/LuaTeX.} +% \changes{greek-1.3k}{2003/04/10}{Make sure the character `!' is not +% active during the definition of \cs{greek@tilde}} +% \changes{greek-1.4}{2013/05/17}{Do not re-define the tilde accent macro: +% it works as expected with \file{lgrenc.def} from \pkg{greek-fontenc}.} % \begin{macrocode} - \addto\extraspolutonikogreek{\languageshorthands{greek}}% + \begingroup + \@ifundefined{active@char\string!}{}{\catcode`!=12\relax} + \catcode`\~=12% + \lccode`\!=`\~% + \lowercase{\def\x{\endgroup + \def\greek@tilde{!}}\x} + \addto\extraspolutonikogreek{\languageshorthands{greek}} \declare@shorthand{greek}{~}{\greek@tilde} -}{} % End of LGR-specific code. % \end{macrocode} % \end{macro} -% \end{macro} +% \begin{macrocode} +\fi % End of LGR-specific code. +% \end{macrocode} % -% \section{symbol name aliases} +% +% \subsection{Symbol name aliases} % For backwards compatibility, we keep aliases for a few symbols. % \changes{greek-1.1c}{1997/03/10}{Added a couple of symbols, needed % for \cs{greeknumeral}} @@ -1335,9 +1678,9 @@ % the remaining symbol definitions have been moved here} % \changes{greek-1.5}{2013/06/11}{change symbol macros to aliases} % \changes{greek-1.10}{2020/11/10}{Fix: \cs{qoppa} is the legacy name of -% \cs{textkoppa} not \cs{textqoppa}! -% Provide fallbacks for makros required for greek numerals -% (added in greek-fontenc 1.0 2020-09-25).} +% \cs{textkoppa} not \cs{textqoppa}!} +% \changes{babel-greek-1.12}{2023/03/04}{Remove \cs{textKoppa} and +% \cs{textmu} (in greek-fontenc since version 1.0).} % \begin{macrocode} \providecommand*{\anwtonos}{\textdexiakeraia} \providecommand*{\katwtonos}{\textaristerikeraia} @@ -1350,20 +1693,11 @@ \providecommand*{\vardigamma}{\textvardigamma} \providecommand*{\euro}{\texteuro} \providecommand*{\permill}{\textperthousand} -% \end{macrocode} -% TODO remove the following lines once greek-fontenc 1.0 is in common use. -% \begin{macrocode} -\@ifl@aded{def}{lgrenc}{% - \ProvideTextCommand{\textKoppa}{LGR}{\textkoppa} - \ProvideTextCommand{\textmugreek}{LGR}{\textmu} -}{} \ProvideTextCommand{\textmugreek}{\greekfontencoding}{\textmu} % \end{macrocode} % -% \changes{greek-1.3l}{2004/02/19}{Commented these lines out as this -% change has made it into \LaTeX{} itself.} -% \changes{greek-1.8}{2013/11/27}{Remove the redefintion of fnum@figure -% and fnum@table.} +% \changes{babel-greek-1.08}{2013/11/27}{Remove redefinition of +% \cs{fnum@figure} and \cs{fnum@table}.} % % The macro |\ldf@finish| takes care of looking for a % configuration file, setting the main language to be switched on @@ -1375,6 +1709,8 @@ %</code> % \end{macrocode} % +% \PrintChanges +% % \Finale %\endinput %% \CharacterTable diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek.ins b/macros/latex/contrib/babel-contrib/greek/babel-greek.ins index 15e136d3ad..cb34837c8a 100644 --- a/macros/latex/contrib/babel-contrib/greek/babel-greek.ins +++ b/macros/latex/contrib/babel-contrib/greek/babel-greek.ins @@ -10,7 +10,7 @@ %% --------------------------------------------- %% %% Babel-greek is a contributed package providing support for the Greek -%% language and script via the Babel system (http://www.ctan.org/pkg/babel) +%% language and script via the Babel system (https://ctan.org/pkg/babel) %% %% It may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -30,7 +30,7 @@ %% %% --------------- start of docstrip commands ------------------ %% -\def\filedate{2015/07/06} +\def\filedate{2022/12/21} \def\batchfile{babel-greek.ins} \input docstrip.tex @@ -52,7 +52,7 @@ \declarepreamble\mainpreamble This is a generated file. -Copyright 1989-2008 Apostolos Syropoulos, Johannes L. Braams, Guenter Milde, +Copyright 1989-2008 Apostolos Syropoulos, Johannes L. Braams, Günter Milde, and the authors listed elsewhere in this file. All rights reserved. This file was generated from file(s) of the babel-greek package. @@ -71,7 +71,7 @@ This work has the LPPL maintenance status "maintained". The Current Maintainer of this work is Günter Milde <milde@users.sf.net>. Babel-greek is a contributed package providing support for the Greek -language and script via the Babel system (http://www.ctan.org/pkg/babel). +language and script via the Babel system (https://ctan.org/pkg/babel). The list of derived (unpacked) files belonging to this work and covered by LPPL is defined by the unpacking script (babel-greek.ins) @@ -80,6 +80,8 @@ which is part of the package. \keepsilent +% don't ask if generated files already exist somewhere on the system: +\askforoverwritefalse \usedir{macros/latex/contrib/babel-contrib/greek} diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf b/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf Binary files differindex be0ffa0243..067c3d11b1 100644 --- a/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf +++ b/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf diff --git a/macros/latex/contrib/babel-contrib/greek/grmath.dtx b/macros/latex/contrib/babel-contrib/greek/grmath.dtx index 000daadcd8..69168f4063 100644 --- a/macros/latex/contrib/babel-contrib/greek/grmath.dtx +++ b/macros/latex/contrib/babel-contrib/greek/grmath.dtx @@ -2,10 +2,10 @@ % % Copyright 1989-2008 Johannes L. Braams and any individual authors % listed elsewhere in this file. All rights reserved. -% +% % This file is part of the Babel system. % -------------------------------------- -% +% % It 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. @@ -13,15 +13,15 @@ % http://www.latex-project.org/lppl.txt % and version 1.3 or later is part of all distributions of LaTeX % version 2003/12/01 or later. -% +% % This work has the LPPL maintenance status "maintained". -% +% % The Current Maintainer of this work is Johannes Braams. -% +% % The list of all files belonging to the Babel system is % given in the file `manifest.bbl. See also `legal.bbl' for additional % information. -% +% % The list of derived (unpacked) files belonging to the distribution % and covered by LPPL is defined by the unpacking scripts (with % extension .ins) which are part of the distribution. @@ -37,11 +37,11 @@ % appears in the modified file. % % Please report errors or suggestions for improvement to -% +% % Apostolos Syropoulos % 366, 28th October Str. % GR-671 00 Xanthi, GREECE -% +% % apostolo at platon.ee.duth.gr or apostolo at obelix.ee.duth.gr % %\fi @@ -57,9 +57,9 @@ % \end{macrocode} %\fi % -% \changes{grmath-1.2}{2001/02/12}{Package provides options ``grlog'' +% \changes{grmath-1.2}{2001/02/12}{Package provides options ``grlog'' % (default) and ``enlog'' that create Greek and Latin names -% log functions} +% log functions} % % \title{Greek log-like Operators} % \author{Apostolos Syropoulos\\ @@ -71,10 +71,10 @@ % % \MakeShortVerb{|} % \section{What is this all about?} -% +% % In Greece, until recently, it was common practice to write down most -% log-like functions as abbreviations of their Greek names. Consequently, -% high school students and even university freshmen were not familiar with +% log-like functions as abbreviations of their Greek names. Consequently, +% high school students and even university freshmen were not familiar with % the Latin names employed in international literature. However, this practice % is fading away in universities but it is still in wide use in books for % high schools, mainly because the Latin names would produce nothing but @@ -82,7 +82,7 @@ % so that they produce the Greek name, instead of the Latin one. The package % can be used only in conjunction with the |greek| option of the |babel| % package. The new option |enlog| allows one to keep the Latin names for -% the log functions. +% the log functions. % \StopEventually % % \section{The Implementation} @@ -98,7 +98,7 @@ % The next thing we do is to process the options. The default option % ``grlog'' generates Greek names for log functions and the ``enlog'' % option generates Latin names for log functions. -% \begin{macrocode} +% \begin{macrocode} \DeclareOption{grlog}{% \def\log{\mathop{\mathgroup\symgroperators log_{10}}\nolimits} \def\ln{\mathop{\mathgroup\symgroperators log_% @@ -111,10 +111,10 @@ \ExecuteOptions{grlog} \ProcessOptions % \end{macrocode} -% +% % Now we check to see if the |babel| package is loaded with at least % the |greek| option. In case it isn't, we opt to produce an error message. -% \begin{macrocode} +% \begin{macrocode} \@ifpackagewith{babel}{greek}{}{% \@ifpackagewith{babel}{polutonikogreek}{}{% \PackageError{grmath}{% @@ -135,7 +135,7 @@ % \end{macrocode} % % We are now ready to proceed with the redefinitions of the log-like -% operator names. +% operator names. % \begin{macrocode} \def\sin{\mathop{\mathgroup\symgroperators hm}\nolimits} \def\cos{\mathop{\mathgroup\symgroperators sun}\nolimits} @@ -162,7 +162,7 @@ % \end{macrocode} % % \section*{Dedication} -% I would like to dedicate this piece of work to my son +% I would like to dedicate this piece of work to my son % \begin{center}Demetrios-Georgios.\end{center} % \Finale \endinput diff --git a/macros/latex/contrib/babel-contrib/greek/grmath.pdf b/macros/latex/contrib/babel-contrib/greek/grmath.pdf Binary files differindex b97893d195..aff6edf036 100644 --- a/macros/latex/contrib/babel-contrib/greek/grmath.pdf +++ b/macros/latex/contrib/babel-contrib/greek/grmath.pdf diff --git a/macros/latex/contrib/babel-contrib/greek/test-8bit-greek.pdf b/macros/latex/contrib/babel-contrib/greek/test-8bit-greek.pdf Binary files differdeleted file mode 100644 index 7fcbc9a0f5..0000000000 --- a/macros/latex/contrib/babel-contrib/greek/test-8bit-greek.pdf +++ /dev/null diff --git a/macros/latex/contrib/babel-contrib/greek/test-8bit-greek.tex b/macros/latex/contrib/babel-contrib/greek/test-8bit-greek.tex deleted file mode 100644 index ea8812b5b3..0000000000 --- a/macros/latex/contrib/babel-contrib/greek/test-8bit-greek.tex +++ /dev/null @@ -1,422 +0,0 @@ -\documentclass[a4paper]{article} - -\usepackage[LGR,T1]{fontenc} -\usepackage[utf8]{luainputenc} -% XeTeX in 8-bit compatibility mode fails :( -% LuaTeX in 8-bit compatibility mode: -% hyphenation in Greek text parts fails! -% (would require the 8-bit, a loader fix for luatex). - -% \usepackage{textalpha} -\usepackage{textcomp} -\usepackage[unicode]{hyperref} -% \usepackage{bookmark} -\usepackage{parskip} -\usepackage{booktabs} - -\usepackage{lmodern} -% \usepackage{kerkis} -% \usepackage{gfsdidot} -% \usepackage{dejavu} - -% Load the Babel package with Greek and English language definitions: -% -% Uncomment the desired language variant - -% Default: modern monotonic Greek -\usepackage[greek,english]{babel} -% Obsolete: used instead of `greek', kept for backwards compatibility: -% \usepackage[polutonikogreek,english]{babel} - -% For backwards compatibility, you can also use -% \selectlanguage{polutonikogreek} instead of \selectlanguage{greek} etc. -% if the (modern) polytonic Greek language variant is selected. - -% uncomment for modern polytonic Greek -% \languageattribute{greek}{polutoniko} - -% uncomment for ancient Greek -\languageattribute{greek}{ancient} - -% \message{Latin encoding is \latinencoding} - -\begin{document} - -\title{Test the Greek support for Babel} -\author{Günter Milde} -\date{2020/11/10} -\maketitle - -The babel option ``greek'' activates the support for the Greek language -defined in the file \texttt{greek.ldf} (source \texttt{greek.dtx}). - -\section{Language Switch} - -The declaration \verb|\selectlanguage| switches between languages. - -\begin{quote} - \selectlanguage{greek} - Τί φήις; Ἱδὼν ἐνθέδε παῖδ’ ἐλευθέραν - τὰς πλησίον Νύμφας στεφανοῦσαν, Σώστρατε, - ἐρῶν άπῆλθες εὐθύς; -\end{quote} - -The macro \verb|\foreignlanguage| sets its second argument in the specified -language. This is intended for short text parts or single words like -\foreignlanguage{greek}{Βιβλιοθήκη}. - -There should be no inserted space before or after the language switch (may -happen if there are unescaped linebreaks in the font or language definitions): - -\begin{quote} - Change script with \verb|ensuregreek|: |\ensuregreek{do\~ulos}|. Change - language with \verb|\foreignlanguage|: |\foreignlanguage{greek}{do\~ulos}|. -\end{quote} - -\section{Font Encoding} - -In Greek text parts, the font encoding is automatically set to LGR if an -8-bit TeX engine is used. (See \url{test-unicode-greek.tex} for usage of -babel-greek with XeTeX or LuaTeX.) - -LGR has Greek characters in the slots reserved in a TeX \emph{standard text -font encoding}. This means you need an explicit font encoding change for -every Latin letter and some other symbols if the current font encoding is -LGR. - -Babel defines the declaration \verb|\latintext| and the command -\verb|\textlatin| to switch to the T1 or OT1 font encoding or typeset the -argument using this encoding. - -Switching to a font encoding supporting the Greek script is possible without -switching the Babel language using the declarations \verb|\greekscript| (no -switch if the current encoding supports Greek script (e.g. the Unicode font -encoding TU)) or \verb|\greektext| (always switch to LGR) and the -corresponding macros \verb|\ensuregreek| or \verb|\textgreek|. These -commands do not start a new paragraph: - -\greekscript Φίλων τοῦ \textlatin{TeX} (ΕΦΤ) -- -\latintext Friends (\ensuregreek{F\'ilwn}) of TeX. - -\texttt{greek.ldf} has some workarounds, so that macros relying on Latin -characters in standard positions keep working. We test, that these -definitions do not overwrite the selection of pre-composed characters for -``copyright'' and ``registered trade mark'' by \emph{textcomp} (try copy and -paste from the PDF output): - -Latin: A \& O, © ® ™ \\ -Greek (LGR): \ensuregreek{Α \& Ω, © ® ™} -or input as macro \ensuregreek{\textAlpha{} \textampersand{} \textOmega{}, -\textcopyright{} \textregistered{} \texttrademark{}}. - -The ampersand should also work in mathematical mode: $ 1 \& 2 $ - -To prevent Roman numerals being typeset in Greek letters we need to adopt -the internal LaTeX commands. Note that this may cause errors when roman -numerals are used in a situation where the macros need to be expanded: - -\makeatletter -Latin: -\@roman{1}, \@roman{2}, \@roman{3}, \@roman{4}, \ldots, \@roman{1975} -\@Roman{1}, \@Roman{2}, \@Roman{3}, \@Roman{4}, \ldots, \@Roman{1975} - -Greek: \ensuregreek{ -\@roman{1}, \@roman{2}, \@roman{3}, \@roman{4}, \ldots, \@roman{1975} -\@Roman{1}, \@Roman{2}, \@Roman{3}, \@Roman{4}, \ldots, \@Roman{1975} -} -\makeatother - -\section{MakeUppercase, MakeLowercase} - -Capital Greek letters have diacritics (except the dialytika and sub-iota) to -the left (instead of above) and drop them in uppercase, e.g. -\ensuregreek{μαΐστρος $\mapsto$ \MakeUppercase{μαΐστρος}}. - -Upcased letters with diacritics keep the dialytika. This is implemented for -all input variants of diacritics with dialytika. (\texttt{greek.ldf} has -\emph{composite command} definitions to ensure this also works for accent -characters "upcased" to the charcter No 159.) - -\foreignlanguage{greek}{\"i \"'i \"`i \"~i \'"i \`"i \~"i - \"u \"\'u \"\`u \"\~u - ϊ ΐ ῒ ῗ ΐ ῒ ῗ ϋ ΰ ῢ ῧ - $\mapsto$ \MakeUppercase{\"i \"'i \"`i \"~i \'"i \`"i \~"i - \"u \"\'u \"\`u \"\~u - ϊ ΐ ῒ ῗ ΐ ῒ ῗ ϋ ΰ ῢ ῧ - } -} - - -Tonos and dasia mark a \emph{hiatus} (break-up of a diphthong) if -placed on the first vowel of a diphthong -(\ensuregreek{\'ai, \'au, \'ei, \'>ai, \'>au, \'>ei}). -A dialytika must be placed on the second vowel if they are dropped: -(\ensuregreek{\MakeUppercase{\'ai, \'au, \'ei, \'>ai, \'>au, \'>ei}}). - -\selectlanguage{greek} -% from teubner: άυλος/ΑΫΛΟΣ -\'aulos $\mapsto$ \MakeUppercase{\'aulos}, -\'>aulos $\mapsto$ \MakeUppercase{\'>aulos}, -% from http://diacritics.typo.cz/index.php?id=69 μάινα -> ΜΑΪΝΑ -m\'aina $\mapsto$ \MakeUppercase{m\'aina}, -% from http://de.wikipedia.org/wiki/Neugriechische_Orthographie#Das_Trema -% κέικ, ἀυπνία/αϋπνία -k\'eik, $\mapsto$ \MakeUppercase{k\'eik} -\accpsili{a}upn\'ia $\mapsto$ \MakeUppercase{\accpsili{a}upn\'ia} -\selectlanguage{english} - -There are several alternative styles for the capitalized sub-iota. - -In order to let the Up/Downcasing work also with the Latin transcription -defined by the LGR font encoding, ``babel-greek'' also defines lc/uccodes -for non-standard assignments: - -\selectlanguage{greek} -', ", `, >, <, | $\mapsto$ \MakeUppercase{', ", `, >, <, |} -\selectlanguage{english} - -The uppercase of the zero-width space at the place of ``v'' is kept to point -to the glyph at the position of ``V'', the Dasia-Oxia accent -(\ensuregreek{\MakeUppercase{v}}): - -\begin{quotation} - greek-1.3i 2000/10/02: uc code of `v' is switched to V - so that mixed text appears correctly in headers. -\end{quotation} - -Use \verb+\textcompwordmark+: -not \foreignlanguage{greek}{avu $\mapsto$ \MakeUppercase{avu}} but -\foreignlanguage{greek}{a\textcompwordmark u -$\mapsto$ \MakeUppercase{a\textcompwordmark u}} - -The following subsections test MakeUppercase and MakeLowercase with all -characters defined in lgrenc.dfu: - -\subsection{Greek and Coptic} - -\newcommand{\GreekAndCoptic}{\ensuregreek{ -ʹ͵ͺ; ΄ ΅Ά·ΈΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫϘϚϜϠ}} -\newcommand{\greekandcoptic}{\ensuregreek{ -άέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϙϛϝϟϡ}} - -Characters of the Greek and Coptic Unicode Block: - -\begin{quote} - \GreekAndCoptic\\ - \greekandcoptic -\end{quote} - -MakeUppercase: - -\begin{quote} - \MakeUppercase{\GreekAndCoptic}\\ - \MakeUppercase{\greekandcoptic} -\end{quote} -\end{document} - -Letters and sub-iota upcased, other diacritics except dialytika dropped. - -There is no capital Koppa in LGR, therefore \ensuregreek{ϟ} is left -unchanged with MakeUppercase. - - -MakeLowercase: - -\begin{quote} - \MakeLowercase{\GreekAndCoptic}\\ - \MakeLowercase{\greekandcoptic} -\end{quote} - -The lowercase of \ensuregreek{Σ} is the «auto-sigma» (\verb+\textautosigma+): -\ensuregreek{ΣΣ $\mapsto$ \MakeLowercase{ΣΣ}}. Add a ZWNJ or use the -\verb+\noboundary+ macro to prevent conversion to final sigma: -\ensuregreek{\MakeLowercase{ΣΣ}}. The lowercase of GREEK LETTER STIGMA -\ensuregreek{Ϛ} is \ensuregreek{\MakeLowercase{Ϛ}} not \verb|\textvarstigma| -(\ensuregreek\textvarstigma). - -% \newpage - -\subsection{Greek extended} - -Characters of the Greek extended Unicode block: - -\selectlanguage{greek} -ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\ -ἐ ἑ ἒ ἓ ἔ ἕ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ \\ -ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\ -ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\ -ὀ ὁ ὂ ὃ ὄ ὅ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ \\ -ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ Ὑ Ὓ Ὕ Ὗ \\ -ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ \\ -ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ \\ -ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\ -ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\ -ᾠ ᾡ ᾢ ᾣ ᾤ ᾥ ᾦ ᾧ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\ -ᾰ ᾱ ᾲ ᾳ ᾴ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\ -῀ ῁ ῂ ῃ ῄ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ \\ -ῐ ῑ ῒ ΐ ῖ ῗ Ῐ Ῑ Ὶ Ί ῝ ῞ ῟ \\ -ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` \\ - ῲ ῳ ῴ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ -\selectlanguage{english} - -MakeUppercase: - -\selectlanguage{greek} - -\MakeUppercase{ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ }\\ -\MakeUppercase{ ἐ ἑ ἒ ἓ ἔ ἕ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ }\\ -\MakeUppercase{ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ }\\ -\MakeUppercase{ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ }\\ -\MakeUppercase{ ὀ ὁ ὂ ὃ ὄ ὅ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ }\\ -\MakeUppercase{ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ Ὑ Ὓ Ὕ Ὗ }\\ -\MakeUppercase{ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ }\\ -\MakeUppercase{ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ }\\ -\MakeUppercase{ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ }\\ -\MakeUppercase{ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ }\\ -\MakeUppercase{ ᾠ ᾡ ᾢ ᾣ ᾤ ᾥ ᾦ ᾧ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ }\\ -\MakeUppercase{ ᾰ ᾱ ᾲ ᾳ ᾴ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ }\\ -\MakeUppercase{ ῀ ῁ ῂ ῃ ῄ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ }\\ -\MakeUppercase{ ῐ ῑ ῒ ΐ ῖ ῗ Ῐ Ῑ Ὶ Ί ῝ ῞ ῟ }\\ -\MakeUppercase{ ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` }\\ -\MakeUppercase{ ῲ ῳ ῴ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ } -\selectlanguage{english} - -MakeLowercase: - -\selectlanguage{greek} -\MakeLowercase{ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ }\\ -\MakeLowercase{ ἐ ἑ ἒ ἓ ἔ ἕ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ }\\ -\MakeLowercase{ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ }\\ -\MakeLowercase{ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ }\\ -\MakeLowercase{ ὀ ὁ ὂ ὃ ὄ ὅ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ }\\ -\MakeLowercase{ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ Ὑ Ὓ Ὕ Ὗ }\\ -\MakeLowercase{ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ }\\ -\MakeLowercase{ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ }\\ -\MakeLowercase{ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ }\\ -\MakeLowercase{ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ }\\ -\MakeLowercase{ ᾠ ᾡ ᾢ ᾣ ᾤ ᾥ ᾦ ᾧ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ }\\ -\MakeLowercase{ ᾰ ᾱ ᾲ ᾳ ᾴ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ }\\ -\MakeLowercase{ ῀ ῁ ῂ ῃ ῄ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ }\\ -\MakeLowercase{ ῐ ῑ ῒ ΐ ῖ ῗ Ῐ Ῑ Ὶ Ί ῝ ῞ ῟ }\\ -\MakeLowercase{ ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` }\\ -\MakeLowercase{ ῲ ῳ ῴ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ } -\selectlanguage{english} - -\section{Babel Strings} - -Babel defines macros for several autogenerated strings so that they may -appear in the choosen language. babel-greek uses LICRs in order to let the -string macros work independent of the font encoding, in both 8-bit and -Unicode-aware TeX. - -\subsection{Captions} - -\selectlanguage{greek} -\prefacename, -\refname, -\abstractname, -\bibname, -\chaptername, -\appendixname, -\contentsname, -\listfigurename , -\listtablename, -\indexname, -\figurename, -\tablename, -\partname, -\enclname, -\ccname, -\headtoname, -\pagename, -\seename, -\alsoname, -\proofname, -\glossaryname, -\selectlanguage{english} - - -\subsection{Months} - -\selectlanguage{greek} -\newcounter{foo} -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\selectlanguage{english} - -\section{Greek Numerals} - -See greek.pdf for the formation rules of Greek numerals. -Some examples: - -\selectlanguage{greek} - -\greeknumeral{1}, -\greeknumeral{2}, -\greeknumeral{3}, -\greeknumeral{4}, -\greeknumeral{5}, -\greeknumeral{6}, -\greeknumeral{7}, -\greeknumeral{8}, -\greeknumeral{9}, -\greeknumeral{10}, -\greeknumeral{11}, -\greeknumeral{12}, -\greeknumeral{20}, -\greeknumeral{345}, -\greeknumeral{500}, -\greeknumeral{1997}, -\greeknumeral{2013}, - -\Greeknumeral{1}, -\Greeknumeral{2}, -\Greeknumeral{3}, -\Greeknumeral{4}, -\Greeknumeral{5}, -\Greeknumeral{6}, -\Greeknumeral{7}, -\Greeknumeral{8}, -\Greeknumeral{9}, -\Greeknumeral{10}, -\Greeknumeral{11}, -\Greeknumeral{12}, -\Greeknumeral{20}, -\Greeknumeral{345}, -\Greeknumeral{500}, -\Greeknumeral{1997}, -\Greeknumeral{2013}, - -\selectlanguage{english} - -Enumerated lists use Greek numerals in the second and fourth level: - -\selectlanguage{greek} -\begin{enumerate} - \item \textlatin{Item} 1 - \begin{enumerate} - \item \textlatin{Item} 1.1 - \begin{enumerate} - \item \textlatin{Item} 1.1.1 - \begin{enumerate} - \item \textlatin{Item} 1.1.1.1 - \item \textlatin{Item} 1.1.1.2 - \end{enumerate} - \item \textlatin{Item} 1.1.2 - \end{enumerate} - \end{enumerate} -\end{enumerate} -\selectlanguage{english} - - -\end{document} diff --git a/macros/latex/contrib/babel-contrib/greek/test-athnum.pdf b/macros/latex/contrib/babel-contrib/greek/test-athnum.pdf Binary files differnew file mode 100644 index 0000000000..fa56892ffa --- /dev/null +++ b/macros/latex/contrib/babel-contrib/greek/test-athnum.pdf diff --git a/macros/latex/contrib/babel-contrib/greek/test-athnum.tex b/macros/latex/contrib/babel-contrib/greek/test-athnum.tex new file mode 100644 index 0000000000..0d8a6bfb6b --- /dev/null +++ b/macros/latex/contrib/babel-contrib/greek/test-athnum.tex @@ -0,0 +1,70 @@ +\documentclass[a4paper]{article} +\usepackage{ifthen} +\usepackage[LGR,T1]{fontenc} +\usepackage{booktabs} +\usepackage{longtable,ltcaption,array} +\usepackage[textwidth=14cm]{geometry} % to fit the number table +\setlength{\extrarowheight}{2pt} +\usepackage{parskip} + +\ifdefined \UnicodeEncodingName + \usepackage{fontspec} + % \setmainfont{Linux Libertine O} % no GREEK ACROPHONIC ATTIC numbers + % \setmainfont{Liberation Serif} % no GREEK ACROPHONIC ATTIC numbers + \setmainfont{FreeSerif} +\else + \usepackage{lmodern} +\fi + + +\usepackage{textalpha} +\usepackage{athnum} + +\begin{document} +\title{Test Attic numerals} +\author{Günter Milde} +\date{2022/12/08} +\maketitle + +The Greek font encoding is \greekfontencoding.\footnote{ + Since version 2.0 you can use \emph{athnum} also without + \emph{babel-greek} and with Unicode fonts (if they support the + ``Greek acrophonic attic'' number symbols for 50, 500, and 5000).} + +\begin{tabular}{rrrrrrrrr} +\toprule +1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \\ +\athnum{1} & \athnum{2} & \athnum{3} & \athnum{4} & +\athnum{5} & \athnum{6} & \athnum{7} & \athnum{8} & \athnum{9} \\ + +10 & 20 & 30 & 40 & 50 & 60 & 70 & 80 & 90 \\ +\athnum{10} & \athnum{20} & \athnum{30} & \athnum{40} & +\athnum{50} & \athnum{60} & \athnum{70} & \athnum{80} & \athnum{90} \\ + +100 & 200 & 300 & 400 & 500 & 600 & 700 & 800 & 900 \\ +\athnum{100} & \athnum{200} & \athnum{300} & \athnum{400} & +\athnum{500} & \athnum{600} & \athnum{700} & \athnum{800} & \athnum{900} \\ + +1000 & 2000 & 3000 & 4000 & 5000 & 6000 & 7000 & 8000 & 9000 \\ +\athnum{1000}& \athnum{2000}& \athnum{3000}& \athnum{4000}& +\athnum{5000}& \athnum{6000}& \athnum{7000}& \athnum{8000}& \athnum{9000} \\ + +10000 & 20000 & 30000 & 40000 & 50000 & 60000 & 70000 & 80000 & 90000 \\ +\athnum{10000}&\athnum{20000}&\athnum{30000}&\athnum{40000}& +\athnum{50000}&\athnum{60000}&\athnum{70000}&\athnum{80000}&\athnum{90000} \\ + +\bottomrule +\end{tabular} + +Some examples: + + +678 = \athnum{678}, 2022 = \athnum{2022} + +Largest ``canonical'' number: 9999 = \athnum{9999} + +Largest allowed number: 249999 = \athnum{249999} + +Hexadecimal input works, too: \texttt{"10} = \athnum{"10} + +\end{document} diff --git a/macros/latex/contrib/babel-contrib/greek/test-case-changing.tex b/macros/latex/contrib/babel-contrib/greek/test-case-changing.tex new file mode 100644 index 0000000000..c2b61596ad --- /dev/null +++ b/macros/latex/contrib/babel-contrib/greek/test-case-changing.tex @@ -0,0 +1,1048 @@ +% Backrolling does not work for \MakeUppercase (cf. LaTeX News 35) +% \RequirePackage{latexbug} +%\RequirePackage[2022-05-01]{latexrelease} + +\documentclass[a4paper]{article} + +\usepackage[LGR,T1]{fontenc} +\usepackage{lmodern} + +\ifdefined \UnicodeEncodingName + \usepackage{fontspec} + \setmainfont[Scale=0.92]{DejaVu Serif} + \newcommand*{\texengine}{Xe/LuaLaTeX} +\else + \usepackage{lmodern} + \newcommand*{\texengine}{pdfLaTeX} +\fi + +% Load encoding definitions +\usepackage[normalize-symbols]{textalpha} % "Greek script everywhere" + +% With TL22, the special handling of Greek UPPERCASE is only triggered +% if the text language is set to "greek" with Babel: +% +\usepackage[greek,english]{babel} % babel-greek +% \usepackage[greek,english,provide=*]{babel} % Babel's Greek "ini" +\languageattribute{greek}{polutoniko} % "modern" polytonic Greek + + +\usepackage[unicode,colorlinks,linkcolor=blue]{hyperref} +\usepackage{bookmark} + +% Auxiliary commands + +\newcommand{\langGreek}{\foreignlanguage{greek}} + +% print the selected language variant +\newcommand{\GreekLanguageVariant}{% + \ifx\captionsgreek\captionspolutonikogreek + \ifx\captionsgreek\captionsancientgreek + ancient% + \else + polutoniko% + \fi + \else + monotoniko% + \fi +} + +% ----------------------------------------------------------------------- + +\begin{document} + +\tableofcontents + +\section{Test case conversions of Greek letters} + +This document tests the combination of \verb|MakeUppercase| and Greek. + +\makeatletter +It is compiled with \texengine, format version \fmtversion{} patch-level +\patch@level{} and the L3 programming layer from \ExplFileDate{}. +\makeatother +The \verb|\greekfontencoding| is \greekfontencoding. + +\section{Unicode literals} + +\subsection{Greek and Coptic} + +Characters from the Greek and Coptic Unicode block that are supported by +\emph{greek-fontenc} and \emph{greek-inputenc}: + +\newcommand{\GreekAndCoptic}{ + \raggedright + ␣ ␣ ␣ ␣ ʹ ͵ ␣ ␣ ␣ ␣ ͺ ␣ ␣ ␣ ; ␣ \\ + ␣ ␣ ␣ ␣ ΄ ΅ Ά · Έ Ή Ί ␣ Ό ␣ Ύ Ώ \\ + ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο \\ + Π Ρ ␣ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί \\ + ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο \\ + π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ␣ \\ + ϐ ϑ ␣ ␣ ␣ ϕ ϖ ␣ Ϙ ϙ Ϛ ϛ Ϝ ϝ Ϟ ϟ \\ + Ϡ ϡ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ +} +\begin{quote} + \selectlanguage{greek} + \GreekAndCoptic +\end{quote} +% +MakeUppercase: +\begin{quote} + \selectlanguage{greek} + \MakeUppercase{\GreekAndCoptic} +\end{quote} +% +MakeLowercase: +\begin{quote} + \selectlanguage{greek} + \MakeLowercase{\GreekAndCoptic} +\end{quote} + +The lowercase of \langGreek{Σ} is the «auto-sigma» +(\verb|\textautosigma|): \langGreek{ΣΣ $\mapsto$ \MakeLowercase{ΣΣ}}. +Add a ZWNJ or use the \verb|\noboundary| macro to prevent conversion to +final sigma: \langGreek{\MakeLowercase{ΣΣ}}. + + +\subsection{Greek extended} + +Characters of the Greek Extended Unicode block: + +\newcommand{\GreekExtended}{\raggedright + ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\ + ἐ ἑ ἒ ἓ ἔ ἕ ␣ ␣ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ \\ + ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\ + ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\ + ὀ ὁ ὂ ὃ ὄ ὅ ␣ ␣ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ \\ + ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ ␣ Ὑ ␣ Ὓ ␣ Ὕ ␣ Ὗ \\ + ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ \\ + ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ \\ + ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\ + ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\ + ᾠ ᾡ ᾢ ᾣ ᾤ ᾦ ᾧ ᾥ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\ + ᾰ ᾱ ᾲ ᾳ ᾴ ␣ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\ + ῀ ῁ ῂ ῃ ῄ ␣ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ \\ + ῐ ῑ ῒ ΐ ␣ ␣ ῖ ῗ Ῐ Ῑ Ὶ Ί ␣ ῝ ῞ ῟ \\ + ῠ ῡ ῢ ΰ ␣ ␣ ῤ ῥ ῦ ῧ Ὺ Ύ Ῥ ῭ ΅ ` \\ + ␣ ␣ ῲ ῳ ῴ ␣ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ ␣ +} + +\begin{quote} + \selectlanguage{greek} + \GreekExtended +\end{quote} +% +MakeUppercase: +\begin{quote} + \selectlanguage{greek} + \MakeUppercase{\GreekExtended} +\end{quote} + +MakeLowercase: +\begin{quote} + \selectlanguage{greek} + \MakeLowercase{\GreekExtended} +\end{quote} + +% With TeXLive 2020 (old \verb|\Makeuppercase|), +% all accents except dialytika and prosgegrammeni are dropped in UPPERCASE +% and kept in lowercase. +% No errors. +% +% With current TeXLive: +% pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) +% LaTeX2e <2022-11-01> patch level 1 +% L3 programming layer <2023-02-22> +% +% Upcasing ``Unicode errors'' are resolved. +% +% Uppercase of character ';' 0x37E GREEK QUESTION MARK is a semicolon +% which is mapped to '·' 0x387 GREEK ANO TELEIA by LGR. :( +% +% Accents dropped with MakeUppercase (not for single letter ή) :) +% TODO: how to treat MakeUppercase of a single captial «΄Η»? +% +% The "Latin" accents macron and breve should be kept. (minor) +% +% Spacing prosgegrammeni (ι) turned to capital Iota. (minor) +% +% Spacing single diacritics are kept. (irrelevant, OK) +% Spacing combining diacritics are mapped to single diacritics. (irrelevant) +% +% Auto-Hiatus: ἀυπνία → ΑΥΠΝΙΑ (missing dialytika on the Upsilon). + +% With pdfLaTeX and LGR, a ZWNJ or the ``\noboundary`` macro can be used to +% prevent conversion of trailing Σ to a final sigma ς by ``\MakeLowercase``. +% This does not work with Unicode fonts (XeTeX/LuaTeX). + +% With XeTeX and Unicode fonts, +\subsubsection{hiatus} + +Tonos and dasia mark a \emph{hiatus} (break-up of a diphthong) if placed on +the first of two consecutive vowels (άι, άυ, έι, ἀυ, ἄι, ἄυ, ἔι). +A dialytika must be placed on the second vowel if they are dropped. + +Since the 2022/06 LaTeX release, it works with monotonic Unicode literals +(since 2023/02/10] also some polytonic but fails with psili): +\begin{quote} + \selectlanguage{greek} + \newcommand*{\hiatest}{άι, άυ, έι, ἄι, ἄυ, ἔι, ἀυ} + \hiatest{} $\mapsto$ \MakeUppercase{\hiatest} +\end{quote} + +Example \foreignlanguage{greek}{ἀυπνία $\mapsto$ \MakeUppercase{ἀυπνία}} +(missing dialytika on the Upsilon). + +\section{LICR macros} + +This section compares literal Unicode Greek characters to characters input +as LICR macros + +\subsection{Greek and Coptic} + +\subsubsection{short accent macros} + +\renewcommand{\GreekAndCoptic}{% only characters supported by LGR + \raggedright + ␣ ␣ ␣ ␣ ʹ ͵ ␣ ␣ ␣ ␣ ͺ ␣ ␣ ␣ ; ␣ \\ + ␣ ␣ ␣ ␣ \textnumeralsigngreek{} \textnumeralsignlowergreek{} + ␣ ␣ ␣ ␣ { }\ypogegrammeni{} ␣ ␣ ␣ \texterotimatiko\\ + + ␣ ␣ ␣ ␣ ΄ ΅ Ά · Έ Ή Ί ␣ Ό ␣ Ύ Ώ \\ + + ␣ ␣ ␣ ␣ \'{ } \"'{ } \'\textAlpha{} \textanoteleia{} + \'\textEpsilon{} \'\textEta{} \'\textIota{} + ␣ \'\textOmicron{} ␣ \'\textUpsilon{} \'\textOmega{} \\ + + ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο \\ + \'"\textiota{} \textAlpha{} \textBeta{} \textGamma{} \textDelta{} + \textEpsilon{} \textZeta{} \textEta{} \textTheta{} \textIota{} + \textKappa{} \textLambda{} \textMu{} \textNu{} \textXi{} \textOmicron{} \\ + + Π Ρ ␣ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί \\ + \textPi{} \textRho{} ␣ \textSigma{} \textTau{} \textUpsilon{} + \textPhi{} \textChi{} \textPsi{} \textOmega{} \"\textIota{} + \"\textUpsilon{} \'\textalpha{} \'\textepsilon{} \'\texteta{} + \'\textiota{} \\ + + ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο \\ + \"'\textupsilon{} \textalpha{} \textbeta{} \textgamma{} \textdelta{} + \textepsilon{} \textzeta{} \texteta{} \texttheta{} \textiota{} + \textkappa{} \textlambda{} \textmu{} \textnu{} \textxi{} \textomicron{} \\ + + π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ␣ \\ + \textpi{} \textrho{} \textfinalsigma{} \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{} ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ + \textkappasymbol{} \textrhosymbol{} \textThetasymbol{} \textepsilonsymbol +} + +No case change: + +\begin{quote} + \selectlanguage{greek} + \GreekAndCoptic +\end{quote} +% +MakeUppercase: +\begin{quote} + \selectlanguage{greek} + \MakeUppercase{\GreekAndCoptic} +\end{quote} +% +MakeLowercase: +\begin{quote} + \selectlanguage{greek} + \MakeLowercase{\GreekAndCoptic} +\end{quote} + +\subsubsection{named accent macros} + +\renewcommand{\GreekAndCoptic}{% only characters supported by LGR + \raggedright + ␣ ␣ ␣ ␣ ʹ ͵ ␣ ␣ ␣ ␣ ͺ ␣ ␣ ␣ ; ␣ \\ + ␣ ␣ ␣ ␣ \textnumeralsigngreek{} \textnumeralsignlowergreek{} + ␣ ␣ ␣ ␣ { }\ypogegrammeni{} ␣ ␣ ␣ \texterotimatiko\\ + + ␣ ␣ ␣ ␣ ΄ ΅ Ά · Έ Ή Ί ␣ Ό ␣ Ύ Ώ \\ + ␣ ␣ ␣ ␣ \acctonos{ } \accdialytikatonos{ } \acctonos\textAlpha{} + \textanoteleia{} \acctonos\textEpsilon{} \acctonos\textEta{} + \acctonos\textIota{} ␣ \acctonos\textOmicron{} ␣ \acctonos\textUpsilon{} + \acctonos\textOmega{} \\ + + ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο \\ + \accdialytikatonos\textiota{} \textAlpha{} \textBeta{} \textGamma{} + \textDelta{} \textEpsilon{} \textZeta{} \textEta{} \textTheta{} \textIota{} + \textKappa{} \textLambda{} \textMu{} \textNu{} \textXi{} \textOmicron{} \\ + + Π Ρ ␣ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί \\ + \textPi{} \textRho{} ␣ \textSigma{} \textTau{} \textUpsilon{} + \textPhi{} \textChi{} \textPsi{} \textOmega{} \accdialytika\textIota{} + \accdialytika\textUpsilon{} \acctonos\textalpha{} \acctonos\textepsilon{} + \acctonos\texteta{} \acctonos\textiota{} \\ + + ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο \\ + \accdialytikatonos\textupsilon{} \textalpha{} \textbeta{} \textgamma{} + \textdelta{} \textepsilon{} \textzeta{} \texteta{} \texttheta{} \textiota{} + \textkappa{} \textlambda{} \textmu{} \textnu{} \textxi{} \textomicron{} \\ + + π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ␣ \\ + \textpi{} \textrho{} \textfinalsigma{} \textsigma{} \texttau{} + \textupsilon{} \textphi{} \textchi{} \textpsi{} \textomega{} + \accdialytika\textiota{} \accdialytika\textupsilon{} + \acctonos\textomicron{} \acctonos\textupsilon{} \acctonos\textomega{} \\ + + ϐ ϑ ␣ ␣ ␣ ϕ ϖ ␣ Ϙ ϙ Ϛ ϛ Ϝ ϝ Ϟ ϟ \\ + \textbetasymbol{} \textthetasymbol{} ␣ ␣ ␣ \textphisymbol{} + \textpisymbol{} ␣ \textQoppa{} \textqoppa{} \textStigma{} \textstigma{} + \textDigamma{} \textdigamma{} \textKoppa{} \textkoppa{} \\ + + Ϡ ϡ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ϰ ϱ ϴ ϵ \\ + \textSampi{} \textsampi{} ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ + \textkappasymbol{} \textrhosymbol{} \textThetasymbol{} \textepsilonsymbol +} +No case change: +\begin{quote} + \selectlanguage{greek} + \GreekAndCoptic +\end{quote} +% +MakeUppercase: +\begin{quote} + \selectlanguage{greek} + \MakeUppercase{\GreekAndCoptic} +\end{quote} +% +MakeLowercase: +\begin{quote} + \selectlanguage{greek} + \MakeLowercase{\GreekAndCoptic} +\end{quote} + + +\subsection{Greek extended} + +\subsubsection{short accent macros} + +\renewcommand{\GreekExtended}{\raggedright + ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\ + \>\textalpha{} + \<\textalpha{} + \>`\textalpha{} + \<`\textalpha{} + \>'\textalpha{} + \<'\textalpha{} + \~>\textalpha{} + \~<\textalpha{} + \>\textAlpha{} + \<\textAlpha{} + \>`\textAlpha{} + \<`\textAlpha{} + \>'\textAlpha{} + \<'\textAlpha{} + \~>\textAlpha{} + \~<\textAlpha{} \\ + + ἐ ἑ ἒ ἓ ἔ ἕ ␣ ␣ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ \\ + \>\textepsilon{} + \<\textepsilon{} + \>`\textepsilon{} + \<`\textepsilon{} + \>'\textepsilon{} + \<'\textepsilon{} + ␣ ␣ \>\textEpsilon{} + \<\textEpsilon{} + \>`\textEpsilon{} + \<`\textEpsilon{} + \>'\textEpsilon{} + \<'\textEpsilon{}\\ + + ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\ + \>\texteta{} + \<\texteta{} + \>`\texteta{} + \<`\texteta{} + \>'\texteta{} + \<'\texteta{} + \~>\texteta{} + \~<\texteta{} + \>\textEta{} + \<\textEta{} + \>`\textEta{} + \<`\textEta{} + \>'\textEta{} + \<'\textEta{} + \~>\textEta{} + \~<\textEta{} \\ + + ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\ + \>\textiota{} + \<\textiota{} + \>`\textiota{} + \<`\textiota{} + \>'\textiota{} + \<'\textiota{} + \~>\textiota{} + \~<\textiota{} + \>\textIota{} + \<\textIota{} + \>`\textIota{} + \<`\textIota{} + \>'\textIota{} + \<'\textIota{} + \~>\textIota{} + \~<\textIota{} \\ + + ὀ ὁ ὂ ὃ ὄ ὅ ␣ ␣ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ \\ + \>\textomicron{} + \<\textomicron{} + \>`\textomicron{} + \<`\textomicron{} + \>'\textomicron{} + \<'\textomicron{} + ␣ ␣ \>\textOmicron{} + \<\textOmicron{} + \>`\textOmicron{} + \<`\textOmicron{} + \>'\textOmicron{} + \<'\textOmicron{} \\ + + ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ ␣ Ὑ ␣ Ὓ ␣ Ὕ ␣ Ὗ \\ + \>\textupsilon{} + \<\textupsilon{} + \>`\textupsilon{} + \<`\textupsilon{} + \>'\textupsilon{} + \<'\textupsilon{} + \~>\textupsilon{} + \~<\textupsilon{} + ␣ \<\textUpsilon{} + ␣ \<`\textUpsilon{} + ␣ \<'\textUpsilon{} + ␣ \~<\textUpsilon{} \\ + + ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ \\ + \>\textomega{} + \<\textomega{} + \>`\textomega{} + \<`\textomega{} + \>'\textomega{} + \<'\textomega{} + \~>\textomega{} + \~<\textomega{} + \>\textOmega{} + \<\textOmega{} + \>`\textOmega{} + \<`\textOmega{} + \>'\textOmega{} + \<'\textOmega{} + \~>\textOmega{} + \~<\textOmega{} \\ + + ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ \\ + \`\textalpha{} + \'\textalpha{} + \`\textepsilon{} + \'\textepsilon{} + \`\texteta{} + \'\texteta{} + \`\textiota{} + \'\textiota{} + \`\textomicron{} + \'\textomicron{} + \`\textupsilon{} + \'\textupsilon{} + \`\textomega{} + \'\textomega{} \\ + + ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\ + \>\textalpha\ypogegrammeni{} + \<\textalpha\ypogegrammeni{} + \>`\textalpha\ypogegrammeni{} + \<`\textalpha\ypogegrammeni{} + \>'\textalpha\ypogegrammeni{} + \<'\textalpha\ypogegrammeni{} + \~>\textalpha\ypogegrammeni{} + \~<\textalpha\ypogegrammeni{} + \>\textAlpha\ypogegrammeni{} + \<\textAlpha\ypogegrammeni{} + \>`\textAlpha\ypogegrammeni{} + \<`\textAlpha\ypogegrammeni{} + \>'\textAlpha\ypogegrammeni{} + \<'\textAlpha\ypogegrammeni{} + \~>\textAlpha\ypogegrammeni{} + \~<\textAlpha\ypogegrammeni{} \\ + + ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\ + \>\texteta\ypogegrammeni{} + \<\texteta\ypogegrammeni{} + \>`\texteta\ypogegrammeni{} + \<`\texteta\ypogegrammeni{} + \>'\texteta\ypogegrammeni{} + \<'\texteta\ypogegrammeni{} + \~>\texteta\ypogegrammeni{} + \~<\texteta\ypogegrammeni{} + \>\textEta\ypogegrammeni{} + \<\textEta\ypogegrammeni{} + \>`\textEta\ypogegrammeni{} + \<`\textEta\ypogegrammeni{} + \>'\textEta\ypogegrammeni{} + \<'\textEta\ypogegrammeni{} + \~>\textEta\ypogegrammeni{} + \~<\textEta\ypogegrammeni{} \\ + + ᾠ ᾡ ᾢ ᾣ ᾤ ᾦ ᾧ ᾥ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\ + \>\textomega\ypogegrammeni{} + \<\textomega\ypogegrammeni{} + \>`\textomega\ypogegrammeni{} + \<`\textomega\ypogegrammeni{} + \>'\textomega\ypogegrammeni{} + \<'\textomega\ypogegrammeni{} + \~>\textomega\ypogegrammeni{} + \~<\textomega\ypogegrammeni{} + \>\textOmega\ypogegrammeni{} + \<\textOmega\ypogegrammeni{} + \>`\textOmega\ypogegrammeni{} + \<`\textOmega\ypogegrammeni{} + \>'\textOmega\ypogegrammeni{} + \<'\textOmega\ypogegrammeni{} + \~>\textOmega\ypogegrammeni{} + \~<\textOmega\ypogegrammeni{} \\ + + ᾰ ᾱ ᾲ ᾳ ᾴ ␣ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\ + \u\textalpha{} + \=\textalpha{} + \`\textalpha\ypogegrammeni{} + \textalpha\ypogegrammeni{} + \'\textalpha\ypogegrammeni{} + ␣ \~\textalpha{} + \~\textalpha\ypogegrammeni{} + \u\textAlpha{} + \=\textAlpha{} + \`\textAlpha{} + \'\textAlpha{} + \textAlpha\ypogegrammeni{} + \>{} + \prosgegrammeni{} + \>{} \\ + + ῀ ῁ ῂ ῃ ῄ ␣ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ \\ + \~{} + \"\~{} + \`\texteta\ypogegrammeni{} + \texteta\ypogegrammeni{} + \'\texteta\ypogegrammeni{} + ␣ \~\texteta{} + \~\texteta\ypogegrammeni{} + \`\textEpsilon{} + \'\textEpsilon{} + \`\textEta{} + \'\textEta{} + \textEta\ypogegrammeni{} + \>`{} + \>'{} + \~>{} \\ + + ῐ ῑ ῒ ΐ ␣ ␣ ῖ ῗ Ῐ Ῑ Ὶ Ί ␣ ῝ ῞ ῟ \\ + \u\textiota{} + \=\textiota{} + \`"\textiota{} + \'"\textiota{} + ␣ ␣ \~\textiota{} + \~"\textiota{} + \u\textIota{} + \=\textIota{} + \`\textIota{} + \'\textIota{} + ␣ + \<`{} + \<'{} + \~<{} \\ + + ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` \\ + \u\textupsilon{} + \=\textupsilon{} + \`"\textupsilon{} + \'"\textupsilon{} + \>\textrho{} + \<\textrho{} + \~\textupsilon{} + \~"\textupsilon{} + \u\textUpsilon{} + \=\textUpsilon{} + \`\textUpsilon{} + \'\textUpsilon{} + \<\textRho{} + \`"{} + \'"{} + \`{} \\ + + ␣ ␣ ῲ ῳ ῴ ␣ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ ␣ \\ + + ␣ ␣ \`\textomega\ypogegrammeni{} + \textomega\ypogegrammeni{} + \'\textomega\ypogegrammeni{} + ␣ \~\textomega{} + \~\textomega\ypogegrammeni{} + \`\textOmicron{} + \'\textOmicron{} + \`\textOmega{} + \'\textOmega{} + \textOmega\ypogegrammeni{} + \'{} + \<{} ␣ +} + +No case change: +\begin{quote} + \selectlanguage{greek} + \GreekExtended +\end{quote} +% +MakeUppercase: +\begin{quote} + \selectlanguage{greek} + \MakeUppercase{\GreekExtended} +\end{quote} +% +MakeLowercase: +\begin{quote} + \selectlanguage{greek} + \MakeLowercase{\GreekExtended} +\end{quote} + + +\subsubsection{named accent macros} + +\renewcommand{\GreekExtended}{\raggedright + ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\ + \accpsili\textalpha{} + \accdasia\textalpha{} + \accpsilivaria\textalpha{} + \accdasiavaria\textalpha{} + \accpsilioxia\textalpha{} + \accdasiaoxia\textalpha{} + \accpsiliperispomeni\textalpha{} + \accdasiaperispomeni\textalpha{} + \accpsili\textAlpha{} + \accdasia\textAlpha{} + \accpsilivaria\textAlpha{} + \accdasiavaria\textAlpha{} + \accpsilioxia\textAlpha{} + \accdasiaoxia\textAlpha{} + \accpsiliperispomeni\textAlpha{} + \accdasiaperispomeni\textAlpha{} \\ + + ἐ ἑ ἒ ἓ ἔ ἕ ␣ ␣ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ \\ + \accpsili\textepsilon{} + \accdasia\textepsilon{} + \accpsilivaria\textepsilon{} + \accdasiavaria\textepsilon{} + \accpsilioxia\textepsilon{} + \accdasiaoxia\textepsilon{} + ␣ ␣ \accpsili\textEpsilon{} + \accdasia\textEpsilon{} + \accpsilivaria\textEpsilon{} + \accdasiavaria\textEpsilon{} + \accpsilioxia\textEpsilon{} + \accdasiaoxia\textEpsilon{}\\ + + ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\ + \accpsili\texteta{} + \accdasia\texteta{} + \accpsilivaria\texteta{} + \accdasiavaria\texteta{} + \accpsilioxia\texteta{} + \accdasiaoxia\texteta{} + \accpsiliperispomeni\texteta{} + \accdasiaperispomeni\texteta{} + \accpsili\textEta{} + \accdasia\textEta{} + \accpsilivaria\textEta{} + \accdasiavaria\textEta{} + \accpsilioxia\textEta{} + \accdasiaoxia\textEta{} + \accpsiliperispomeni\textEta{} + \accdasiaperispomeni\textEta{} \\ + + ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\ + \accpsili\textiota{} + \accdasia\textiota{} + \accpsilivaria\textiota{} + \accdasiavaria\textiota{} + \accpsilioxia\textiota{} + \accdasiaoxia\textiota{} + \accpsiliperispomeni\textiota{} + \accdasiaperispomeni\textiota{} + \accpsili\textIota{} + \accdasia\textIota{} + \accpsilivaria\textIota{} + \accdasiavaria\textIota{} + \accpsilioxia\textIota{} + \accdasiaoxia\textIota{} + \accpsiliperispomeni\textIota{} + \accdasiaperispomeni\textIota{} \\ + + ὀ ὁ ὂ ὃ ὄ ὅ ␣ ␣ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ \\ + \accpsili\textomicron{} + \accdasia\textomicron{} + \accpsilivaria\textomicron{} + \accdasiavaria\textomicron{} + \accpsilioxia\textomicron{} + \accdasiaoxia\textomicron{} + ␣ ␣ \accpsili\textOmicron{} + \accdasia\textOmicron{} + \accpsilivaria\textOmicron{} + \accdasiavaria\textOmicron{} + \accpsilioxia\textOmicron{} + \accdasiaoxia\textOmicron{} \\ + + ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ ␣ Ὑ ␣ Ὓ ␣ Ὕ ␣ Ὗ \\ + \accpsili\textupsilon{} + \accdasia\textupsilon{} + \accpsilivaria\textupsilon{} + \accdasiavaria\textupsilon{} + \accpsilioxia\textupsilon{} + \accdasiaoxia\textupsilon{} + \accpsiliperispomeni\textupsilon{} + \accdasiaperispomeni\textupsilon{} + ␣ \accdasia\textUpsilon{} + ␣ \accdasiavaria\textUpsilon{} + ␣ \accdasiaoxia\textUpsilon{} + ␣ \accdasiaperispomeni\textUpsilon{} \\ + + ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ \\ + \accpsili\textomega{} + \accdasia\textomega{} + \accpsilivaria\textomega{} + \accdasiavaria\textomega{} + \accpsilioxia\textomega{} + \accdasiaoxia\textomega{} + \accpsiliperispomeni\textomega{} + \accdasiaperispomeni\textomega{} + \accpsili\textOmega{} + \accdasia\textOmega{} + \accpsilivaria\textOmega{} + \accdasiavaria\textOmega{} + \accpsilioxia\textOmega{} + \accdasiaoxia\textOmega{} + \accpsiliperispomeni\textOmega{} + \accdasiaperispomeni\textOmega{} \\ + + ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ \\ + \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{} \\ + + ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\ + \accpsili\textalpha\ypogegrammeni{} + \accdasia\textalpha\ypogegrammeni{} + \accpsilivaria\textalpha\ypogegrammeni{} + \accdasiavaria\textalpha\ypogegrammeni{} + \accpsilioxia\textalpha\ypogegrammeni{} + \accdasiaoxia\textalpha\ypogegrammeni{} + \accpsiliperispomeni\textalpha\ypogegrammeni{} + \accdasiaperispomeni\textalpha\ypogegrammeni{} + \accpsili\textAlpha\ypogegrammeni{} + \accdasia\textAlpha\ypogegrammeni{} + \accpsilivaria\textAlpha\ypogegrammeni{} + \accdasiavaria\textAlpha\ypogegrammeni{} + \accpsilioxia\textAlpha\ypogegrammeni{} + \accdasiaoxia\textAlpha\ypogegrammeni{} + \accpsiliperispomeni\textAlpha\ypogegrammeni{} + \accdasiaperispomeni\textAlpha\ypogegrammeni{} \\ + + ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\ + \accpsili\texteta\ypogegrammeni{} + \accdasia\texteta\ypogegrammeni{} + \accpsilivaria\texteta\ypogegrammeni{} + \accdasiavaria\texteta\ypogegrammeni{} + \accpsilioxia\texteta\ypogegrammeni{} + \accdasiaoxia\texteta\ypogegrammeni{} + \accpsiliperispomeni\texteta\ypogegrammeni{} + \accdasiaperispomeni\texteta\ypogegrammeni{} + \accpsili\textEta\ypogegrammeni{} + \accdasia\textEta\ypogegrammeni{} + \accpsilivaria\textEta\ypogegrammeni{} + \accdasiavaria\textEta\ypogegrammeni{} + \accpsilioxia\textEta\ypogegrammeni{} + \accdasiaoxia\textEta\ypogegrammeni{} + \accpsiliperispomeni\textEta\ypogegrammeni{} + \accdasiaperispomeni\textEta\ypogegrammeni{} \\ + + ᾠ ᾡ ᾢ ᾣ ᾤ ᾦ ᾧ ᾥ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\ + \accpsili\textomega\ypogegrammeni{} + \accdasia\textomega\ypogegrammeni{} + \accpsilivaria\textomega\ypogegrammeni{} + \accdasiavaria\textomega\ypogegrammeni{} + \accpsilioxia\textomega\ypogegrammeni{} + \accdasiaoxia\textomega\ypogegrammeni{} + \accpsiliperispomeni\textomega\ypogegrammeni{} + \accdasiaperispomeni\textomega\ypogegrammeni{} + \accpsili\textOmega\ypogegrammeni{} + \accdasia\textOmega\ypogegrammeni{} + \accpsilivaria\textOmega\ypogegrammeni{} + \accdasiavaria\textOmega\ypogegrammeni{} + \accpsilioxia\textOmega\ypogegrammeni{} + \accdasiaoxia\textOmega\ypogegrammeni{} + \accpsiliperispomeni\textOmega\ypogegrammeni{} + \accdasiaperispomeni\textOmega\ypogegrammeni{} \\ + + ᾰ ᾱ ᾲ ᾳ ᾴ ␣ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\ + \u\textalpha{} + \=\textalpha{} + \accvaria\textalpha\ypogegrammeni{} + \textalpha\ypogegrammeni{} + \accoxia\textalpha\ypogegrammeni{} + ␣ \accperispomeni\textalpha{} + \accperispomeni\textalpha\ypogegrammeni{} + \u\textAlpha{} + \=\textAlpha{} + \accvaria\textAlpha{} + \accoxia\textAlpha{} + \textAlpha\ypogegrammeni{} + \accpsili{} + \prosgegrammeni{} + \accpsili{} \\ + + ῀ ῁ ῂ ῃ ῄ ␣ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ \\ + \accperispomeni{} + \accdialytikaperispomeni{} + \accvaria\texteta\ypogegrammeni{} + \texteta\ypogegrammeni{} + \accoxia\texteta\ypogegrammeni{} + ␣ \accperispomeni\texteta{} + \accperispomeni\texteta\ypogegrammeni{} + \accvaria\textEpsilon{} + \accoxia\textEpsilon{} + \accvaria\textEta{} + \accoxia\textEta{} + \textEta\ypogegrammeni{} + \accpsilivaria{} + \accpsilioxia{} + \accpsiliperispomeni{} \\ + + ῐ ῑ ῒ ΐ ␣ ␣ ῖ ῗ Ῐ Ῑ Ὶ Ί ␣ ῝ ῞ ῟ \\ + \u\textiota{} + \=\textiota{} + \accdialytikavaria\textiota{} + \accdialytikatonos\textiota{} + ␣ ␣ \accperispomeni\textiota{} + \accperispomeni"\textiota{} + \u\textIota{} + \=\textIota{} + \accvaria\textIota{} + \accoxia\textIota{} + ␣ + \accdasiavaria{} + \accdasiaoxia{} + \accdasiaperispomeni{} \\ + + ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` \\ + \u\textupsilon{} + \=\textupsilon{} + \accdialytikavaria\textupsilon{} + \accdialytikatonos\textupsilon{} + \accpsili\textrho{} + \accdasia\textrho{} + \accperispomeni\textupsilon{} + \accdialytikaperispomeni\textupsilon{} + \u\textUpsilon{} + \=\textUpsilon{} + \accvaria\textUpsilon{} + \accoxia\textUpsilon{} + \accdasia\textRho{} + \accdialytikavaria{} + \accdialytikatonos{} + \accvaria{} \\ + + ␣ ␣ ῲ ῳ ῴ ␣ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ ␣ \\ + + ␣ ␣ \accvaria\textomega\ypogegrammeni{} + \textomega\ypogegrammeni{} + \accoxia\textomega\ypogegrammeni{} + ␣ \accperispomeni\textomega{} + \accperispomeni\textomega\ypogegrammeni{} + \accvaria\textOmicron{} + \accoxia\textOmicron{} + \accvaria\textOmega{} + \accoxia\textOmega{} + \textOmega\ypogegrammeni{} + \accoxia{} + \accdasia{} ␣ +} + +No case change: +\begin{quote} + \selectlanguage{greek} + \GreekExtended +\end{quote} +% +MakeUppercase: +\begin{quote} + \selectlanguage{greek} + \MakeUppercase{\GreekExtended} +\end{quote} +% +MakeLowercase: +\begin{quote} + \selectlanguage{greek} + \MakeLowercase{\GreekExtended} +\end{quote} + + +\section{Latin transliteration} + +\ifdefined \UnicodeEncodingName % set by LaTeX for Unicode-aware engines + \textbf{Warning:} + As the uc/lccode re-definitions are not performed when Unicode fonts are + used, the accents are not dropped from upcased Latin transliterations. + Accent macros work fine also in Latin transliterations with Xe/LuaTeX. +\fi + +\subsection{Greek and Coptic} + +Every second line is input as Latin transliteration: + +\renewcommand{\GreekAndCoptic}{% + ͺ ; ␣ ␣ ΄ ΅ Ά · Έ Ή Ί ␣ Ό ␣ Ύ Ώ \\ + \lgrfont{ | ? ␣ ␣ ' "' 'A ; 'E 'H 'I ␣ 'O ␣ 'U 'W} \\ + ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο \\ + \lgrfont{'"i A B G D E Z H J I K L M N X O} \\ + Π Ρ ␣ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί \\ + \lgrfont{ P R ␣ S T U F Q Y W "I "U 'a 'e 'h 'i} \\ + ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο \\ + \lgrfont{'"u a b g d e z h j i k l m n x o} \\ + π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ␣ \\ + \lgrfont{ p r s s\textcompwordmark{} + t u f q y w "i "u 'o 'u 'w ␣} +} + +\begin{quote} + \selectlanguage{greek} + \GreekAndCoptic +\end{quote} +% +MakeUppercase: + +\begin{quote} + \selectlanguage{greek} + \MakeUppercase{\GreekAndCoptic} +\end{quote} +% +Letters upcased, dialytika and sub-iota unchanged, other diacritics dropped +(if \verb|\greekfontencoding| is LGR). + + +MakeLowercase: + +\begin{quote} + \selectlanguage{greek} + \MakeLowercase{\GreekAndCoptic} +\end{quote} +% +With LGR, the lowercase of \ensuregreek{Σ} is the «auto-sigma» +(\verb|\textautosigma|): \ensuregreek{ΣΣ $\mapsto$ \MakeLowercase{ΣΣ}}. +Add a ZWNJ or use the \verb|\noboundary| macro to prevent conversion to +final sigma: \ensuregreek{\MakeLowercase{ΣΣ}}. +The lowercase of GREEK LETTER STIGMA \ensuregreek{Ϛ} is +\ensuregreek{\MakeLowercase{Ϛ}}, not \verb|\textvarstigma|% +\ifdefined \UnicodeEncodingName \else + (\ensuregreek\textvarstigma)% +\fi . + +\subsection{Greek extended} + +Every second line is input as Latin transliteration. The current language +variant is \emph\GreekLanguageVariant. + +\renewcommand{\GreekExtended}{\raggedright + ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\ + \lgrfont{>a <a >`a <`a >'a <'a >~a <~a >A <A >`A <`A >'A <'A >~A <~A } \\ + ἐ ἑ ἒ ἓ ἔ ἕ ␣ ␣ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ \\ + \lgrfont{>e <e >`e <`e >'e <'e ␣ ␣ >E <E >`E <`E >'E <'E } \\ + ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\ + \lgrfont{>h <h >`h <`h >'h <'h >~h <~h >H <H >`H <`H >'H <'H >~H <~H } \\ + ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\ + \lgrfont{>i <i >`i <`i >'i <'i >~i <~i >I <I >`I <`I >'I <'I >~I <~I } \\ + ὀ ὁ ὂ ὃ ὄ ὅ ␣ ␣ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ \\ + \lgrfont{>o <o >`o <`o >'o <'o ␣ ␣ >O <O >`O <`O >'O <'O } \\ + ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ ␣ Ὑ ␣ Ὓ ␣ Ὕ ␣ Ὗ \\ + \lgrfont{>u <u >`u <`u >'u <'u >~u <~u ␣ <U ␣ <`U ␣ <'U ␣ <~U } \\ + ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ \\ + \lgrfont{>w <w >`w <`w >'w <'w >~w <~w >W <W >`W <`W >'W <'W >~W <~W } \\ + ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ \\ + \lgrfont{`a 'a `e 'e `h 'h `i 'i `o 'o `u 'u `w 'w } \\ + ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\ + \lgrfont{>a| <a| >`a| <`a| >'a| <'a| >~a| <~a| >A| <A| >`A| <`A| >'A| <'A| >~A| <~A|} \\ + ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\ + \lgrfont{>h| <h| >`h| <`h| >'h| <'h| >~h| <~h| >H| <H| >`H| <`H| >'H| <'H| >~H| <~H|} \\ + ᾠ ᾡ ᾢ ᾣ ᾤ ᾦ ᾧ ᾥ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\ + \lgrfont{>w| <w| >`w| <`w| >'w| <'w| >~w| <~w| >W| <W| >`W| <`W| >'W| <'W| >~W| <~W|} \\ + ᾰ ᾱ ᾲ ᾳ ᾴ ␣ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\ +\lgrfont{\u{a} \=a `a| a| 'a| ␣ ~a ~a| \u{A} \=A `A 'A A| > | > } \\ + ῀ ῁ ῂ ῃ ῄ ␣ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ \\ + \lgrfont{~ "~ `h| h| 'h| ␣ ~h ~h| `E 'E `H 'H H| >` >' ~> } \\ + ῐ ῑ ῒ ΐ ␣ ␣ ῖ ῗ Ῐ Ῑ Ὶ Ί ␣ ῝ ῞ ῟ \\ +\lgrfont{\u{i} \=i `"i '"i ␣ ␣ ~i ~"i \u{I} \=I `I 'I ␣ <` <' ~< } \\ + ῠ ῡ ῢ ΰ ␣ ␣ ῤ ῥ ῦ ῧ Ὺ Ύ Ῥ ῭ ΅ ` \\ +\lgrfont{\u{u} \=u `"u '"u ␣ ␣ >r <r ~u ~"u `U 'U <R `" '" ` } \\ + ␣ ␣ ῲ ῳ ῴ ␣ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ \\ + \lgrfont{ ␣ ␣ `w| w| 'w| ␣ ~w ~w| `O 'O `W 'W W| ' < } \\ +} + +\begin{quote} + \selectlanguage{greek} + \GreekExtended +\end{quote} + +With monotonic Greek or if the Greek font encoding is not LGR, the tilde +keeps its default expansion as NBSP and transliterations involving \verb|~| +fail. (The tilde accent \verb|\~| as well as combined accents involving the +tilde work in all language variants.) + +MakeUppercase: + +\begin{quote} + \selectlanguage{greek} + \MakeUppercase{\GreekExtended} +\end{quote} + +Breathings, combined accents and varia are re-mapped to the "empty" char +only with the language variants \emph{polutoniko} or \emph{ancient} +(currently \GreekLanguageVariant) as they are not required with monotonic +Greek and only if \verb|\greekfontencoding| is LGR. + +In literal input, the uppercase of spacing combining accents including a +dialytika \verb|"~ "` "'| appears as apostrophe, as a single \verb|"| stands +for an apostrophe in the LGR transliteration if followed by a space or empty +character. + +MakeLowercase: + +\begin{quote} + \selectlanguage{greek} + \MakeLowercase{\GreekExtended} +\end{quote} + + +\end{document} diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek-8bitcompat.tex b/macros/latex/contrib/babel-contrib/greek/test-greek-8bitcompat.tex new file mode 100644 index 0000000000..5fba328dc6 --- /dev/null +++ b/macros/latex/contrib/babel-contrib/greek/test-greek-8bitcompat.tex @@ -0,0 +1,37 @@ +% Test Babel-Greek with LuaTeX and 8-bit fonts +% © 2022 Günter Milde + +% Setup for LuaTeX with 8-bit fonts +\newcommand{\SETUP}{ + % LGR must be defined before loading "luainputenc" (bug in luainputenc?) + \usepackage[LGR,T1]{fontenc} + \usepackage{lmodern} + \usepackage[utf8]{luainputenc} + \newcommand*{\greekfontencoding}{LGR} % force LGR setup¹ + + \usepackage[greek, + % greek.local-LGR-fixes, + english]{babel} + % Uncomment the desired language variant + % \languageattribute{greek}{polutoniko} % "modern" polytonic Greek + \languageattribute{greek}{ancient} % ancient Greek +} + +\newcommand{\SETUPDOC}{% +This test is +\ifdefined\luatexversion compiled +\else intended for but \textbf{not} compiled +\fi +with LuaTeX in 8-bit compatibility mode. +It loads the \pkgref{luainputenc} package for UTF-8 decoding +and sets \texttt{\textbackslash greekfontencoding} to LGR. + +Hyphenation in Greek text parts fails (would require the +8-bit hyphenation patterns, i.a., a loader fix for LuaTeX). +} + +\input{test-greek.tex} + +% ¹TODO: Currently, defining \greekfontencoding must be done with +% \def or \newcommand* and fails with \newcommand because +% of the fragile string comparison using \ifx in greek.ldf! diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek-ini.tex b/macros/latex/contrib/babel-contrib/greek/test-greek-ini.tex new file mode 100644 index 0000000000..f6fe1e15be --- /dev/null +++ b/macros/latex/contrib/babel-contrib/greek/test-greek-ini.tex @@ -0,0 +1,60 @@ +% Test Babel's "ini" file for Greek +% © 2023 Günter Milde + +% Setup for Greek with localisation from the "ini" files. +\newcommand{\SETUP}{ + + \ifdefined\UnicodeEncodingName % set by XeTeX/LuaTeX + \else % 8-bit TeX + \usepackage{lmodern} + \usepackage[LGR,T1]{fontenc} + % \usepackage{textalpha} + \ProvideTextCommandDefault{\greekscript}{\fontencoding{LGR}\selectfont + \def\encodingdefault{\greekfontencoding}} + \ProvideTextCommandDefault{\ensuregreek}[1]{\leavevmode{\greekscript ##1}} + % Babel <= (3.84) misses the automatic font encoding switch to LGR + % \addto\extrasgreek{\greekscript} + % \addto\noextrasgreek{\latintext} + \fi + + \usepackage[greek, english, provide*=*]{babel} + + \ifdefined\UnicodeEncodingName % set by XeTeX/LuaTeX + \babelfont{rm}[Scale=0.92]{DejaVu Serif} + % The "ini" Greek setup does not load extended Greek definitions for TU. + % Load textalpha or provide dummy definitions: + % \usepackage{textalpha} + \ProvideTextCommand{\ensuregreek}{TU}[1]{##1} + \ProvideTextCommand{\greekscript}{TU}{} + \ProvideTextCommand{\textalpha}{TU}{\cs{textalpha}} + \ProvideTextCommand{\textOmega}{TU}{\cs{textOmega}} + \fi + + \usepackage{hyperref} + \hypersetup{unicode, colorlinks=true,linkcolor=blue,urlcolor=blue} + + % fallbacks for commands defined in babel-greek: + \providecommand*\greekfontencoding{None} + % \providecommand*\lgrfont[1]{\cs{lgrfont} \emph{missing}} + \ProvideTextCommandDefault{\textampersand}{\&} + \providecommand*\greeknumeral[1]{\{##1\}} +} + +\newcommand{\SETUPDOC}{% +This test uses Babel's built-in Greek support (``ini'' file, +cf. \href{https://latex3.github.io/babel/guides/locale-greek.html} +{Babel guides ``Greek''}). + +The following problems can be easily fixed by loading the \emph{textalpha} +package. +\begin{itemize} + \item Accents not dropped with old (pre 2022/06) \cs{MakeUppercase}. + \item Greek LICR macros unknown in TU. +\end{itemize} + +The new 2023/02/10 \cs{MakeUppercase} code fixes the UPPERCASE of Greek +Unicode literals (including a fix for the ``hiatus'' problem). + +} + +\input{test-greek.tex} diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek-lgr.pdf b/macros/latex/contrib/babel-contrib/greek/test-greek-lgr.pdf Binary files differdeleted file mode 100644 index c1e973315c..0000000000 --- a/macros/latex/contrib/babel-contrib/greek/test-greek-lgr.pdf +++ /dev/null diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek-tu.pdf b/macros/latex/contrib/babel-contrib/greek/test-greek-tu.pdf Binary files differdeleted file mode 100644 index c022976fbe..0000000000 --- a/macros/latex/contrib/babel-contrib/greek/test-greek-tu.pdf +++ /dev/null diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek.pdf b/macros/latex/contrib/babel-contrib/greek/test-greek.pdf Binary files differnew file mode 100644 index 0000000000..2abc4e024d --- /dev/null +++ b/macros/latex/contrib/babel-contrib/greek/test-greek.pdf diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek.tex b/macros/latex/contrib/babel-contrib/greek/test-greek.tex index 03dd9db4e3..8c72c355a6 100644 --- a/macros/latex/contrib/babel-contrib/greek/test-greek.tex +++ b/macros/latex/contrib/babel-contrib/greek/test-greek.tex @@ -1,30 +1,127 @@ +% Test document for Babel-Greek +% © 2013, 2022 Günter Milde + +% Configuration constants (see test-greek-8bit-luatex.tex for a use case) + +\providecommand{\SETUP}{ + \usepackage[LGR,T1]{fontenc} + \usepackage{lmodern} + % \usepackage{kerkis} + % \usepackage{gfsdidot} + % \usepackage{dejavu} + % \usepackage{textalpha} % support Greek literal chars and LICR "everywhere" + \ifdefined \UnicodeEncodingName + \usepackage{fontspec} + % \setmainfont[% + % ItalicFont=NewCM10-Italic.otf,% + % BoldFont=NewCM10-Bold.otf,% + % BoldItalicFont=NewCM10-BoldItalic.otf,% + % SmallCapsFeatures={Numbers=OldStyle}]{NewCM10-Regular.otf} + % \setsansfont[% + % ItalicFont=NewCMSans10-Oblique.otf,% + % BoldFont=NewCMSans10-Bold.otf,% + % BoldItalicFont=NewCMSans10-BoldOblique.otf,% + % SmallCapsFeatures={Numbers=OldStyle}]{NewCMSans10-Regular.otf} + % \setmonofont[% + % ItalicFont=NewCMMono10-Italic.otf,% + % BoldFont=NewCMMono10-Bold.otf,% + % BoldItalicFont=NewCMMono10-BoldOblique.otf,% + % SmallCapsFeatures={Numbers=OldStyle}]{NewCMMono10-Regular.otf} + % + \setmainfont[Scale=0.92]{DejaVu Serif} + \fi + + % Load and configure Babel: + + % Default: modern monotonic Greek + \usepackage[greek,% comment out "greek" to test the "basic support" + % greek.local-LGR-fixes, + english]{babel} + % Uncomment the desired language variant + \languageattribute{greek}{polutoniko} % "modern" polytonic Greek + % \languageattribute{greek}{ancient} % ancient Greek + + % The "polytonic" language attribute is an alias for "polutoniko" matching + % the spelling in polyglossia and Babel *.ini files. + % \languageattribute{greek}{polytonic} + + % Support for the pseudo-language "polutonikogreek", used instead of "greek", + % is kept for backwards compatibility: + % \usepackage[polutonikogreek,english]{babel} + + % For backwards compatibility, you can also use + % \selectlanguage{polutonikogreek} instead of \selectlanguage{greek} etc. + % if the "polutoniko" Greek language variant is selected. +} + +\providecommand{\SETUPDOC}{} + + \documentclass[a4paper]{article} -\usepackage[colorlinks=true,linkcolor=blue]{hyperref} + +\SETUP + +\usepackage{hyperref} +\hypersetup{unicode, colorlinks=true,linkcolor=blue,urlcolor=blue} +% \usepackage{bookmark} + \usepackage{parskip} -\usepackage[greek,english]{babel} -% \languageattribute{greek}{polutoniko} -% \languageattribute{greek}{ancient} +% Semantic styling: -\ifdefined \UnicodeEncodingName - \usepackage{fontspec} - \setmainfont{DejaVu Serif} -\fi +\newcommand{\file}{\texttt} +\newcommand{\cs}[1]{\texttt{\textbackslash#1}} +\newcommand{\pkgref}[1]{\emph{\href{https://ctan.org/pkg/#1}{#1}}} + + +% Auxiliary commands: + +% print the selected language variant +\newcommand{\GreekLanguageVariant}{% + \ifx\captionsgreek\captionspolutonikogreek + \ifx\captionsgreek\captionsancientgreek + ancient% + \else + polutoniko% + \fi + \else + monotoniko% + \fi +} + +% The paragraph after \showhyphenpar is printed with all words +% shown as hy-phen-ated. +% from https://tex.stackexchange.com/questions/55282/display-hyphenation-options-for-a-specific-word/55283#55283 +\def\showhyphenpar{\bgroup + \def\par{\setparams\endgraf\composelines} + \setbox0=\vbox\bgroup \noindent\hskip0pt\relax} +\def\setparams{\rightskip=0pt plus1fil + \linepenalty=1000 \pretolerance=-1 \hyphenpenalty=-10000} +\def\composelines{\setbox2=\hbox{}% + \loop \setbox0=\lastbox \unskip \unpenalty + \ifhbox0 % je už \vbox vyprázdněn? + \global\setbox2=\hbox{\unhbox0\unskip\unhbox2} + \repeat + \egroup % vyprázdněný \vbox ukončím + \exhyphenpenalty=10000 % \box2 vyšoupnu do vnějšího seznamu + \emergencystretch=4em \leavevmode\unhbox2 \endgraf\egroup} + +% -------------------------------------------------------------------------- \begin{document} -\title{Greek support for Babel} +\title{Test the Greek support for Babel} \author{Günter Milde} -\date{2020/11/10} +\date{\today} \maketitle -The babel option «greek» activates the support for the Greek language -defined in the file «greek.ldf» (source «greek.dtx»). +Test support for the Greek language as defined in the file +\file{greek.ldf} (source \file{greek.dtx}). + +\SETUPDOC % print additional setup information. + +\tableofcontents -Typesetting Greek texts requires a font containing Greek letters. With the -XeTeX or LuaTeX engines, the user must ensure that the selected font -contains the required glyphs (the default Latin Modern fonts miss most of -them). \section{Language Switch} @@ -38,172 +135,376 @@ The declaration \verb|\selectlanguage| switches between languages. \end{quote} The command \verb|\foreignlanguage| sets its second argument in the language -specified as first argument. This is intended for short text parts like -\foreignlanguage{greek}{Βιβλιοθήκη}. +specified as first argument. This is intended for short text parts or +single words like \foreignlanguage{greek}{Βιβλιοθήκη}. -\section{Font Encoding} +Input may use literal Greek characters (\foreignlanguage{greek}{α \ldots Ω}), +LICR macros (\foreignlanguage{greek}{\textalpha{} \ldots{} \textOmega}), +or the Latin transliteration (\foreignlanguage{greek}{a \ldots{} W}) defined +by the LGR font encoding (if LGR is used). -Every language switch to \texttt{greek} calls the \verb|\extrasgreek| -command which in turn calls \verb|\greekscript| to ensure a Greek-supporting -font encoding (LGR or TU). At this point, the «greekfontencoding» -is \texttt{\greekfontencoding}. +There should be no inserted space before or after the language switch (this +may happen if there are unescaped linebreaks in the font or language +definitions): +\begin{quotation} + Change script with \verb|ensuregreek|: |\ensuregreek{δοῦλος}|. + Change + language with \verb|\foreignlanguage|: |\foreignlanguage{greek}{δοῦλος}|. -LGR has Greek characters in the slots reserved in a TeX \emph{standard text -font encoding}. Therefore, the Babel core defines the declaration -\verb|\latintext| and the command \verb|\textlatin| to switch to the TU, T1 -or OT1 font encoding or typeset the argument using this encoding. At this -point, the «latinencoding» is \texttt{\latinencoding}. + Change language with \verb|\selectlanguage|: + |\selectlanguage{greek}δοῦλος\selectlanguage{english}|. +\end{quotation} -With the Unicode font encoding \texttt{TU}, -Latin characters can be used in Greek text parts and -input via the «LGR Latin transcription» is not possible. -The following quote mixes Latin transcription and Greek literal characters: +\section{Auto-strings} -\begin{quote} - \greekscript Φίλων τοῦ \textlatin{TeX} (ΕΦΤ) -- - \latintext Friends (\ensuregreek{F\'ilwn}) of TeX.% -\end{quote} - -\section{LICR Macros} - -Babel defines macros for several autogenerated strings so that they may -appear in the choosen language. \emph{babel-greek} uses LICR% +\emph{Babel} defines macros for several autogenerated strings so that they +may appear in the choosen language. \emph{Babel-greek} uses LICR% \footnote{LaTeX internal character representation} macros in order to let the string macros work independent of the font encoding. -If \verb|\greekfontencoding| is TU, \emph{babel-greek} loads Greek LICR -definitions from the file \texttt{tuenc-greek.def} provided by -\href{http://www.ctan.org/pkg/greek-fontenc}{greek-fontenc} -since version~0.14 (2020-02-28). +\selectlanguage{greek} +\begin{abstract} + \ensureascii{Look for the abstract name. Today is} \today. +\end{abstract} +\selectlanguage{english} -With this setup, it is also possible to use accent macros instead of -pre-composed Unicode characters for letters with diacritics% -\ifdefined \UnicodeEncodingName - : Τ\'ι φ\'ηις;, \`<ορα = \accdasiavaria{ο}ρα -\fi -. +Show the auto-strings for language variant ``\GreekLanguageVariant''. \subsection{Captions} +\newcommand{\AutoStrings}{% + \abstractname, + \alsoname, + \appendixname, + \bibname,\\ + \ccname, + \chaptername, + \contentsname, + \enclname,\\ + \figurename, + \glossaryname, + \headtoname, + \indexname,\\ + \listfigurename , + \listtablename,\\ + \pagename, + \partname, + \prefacename, + \proofname,\\ + \refname, + \seename, + \tablename +} \selectlanguage{greek} -\prefacename, -\refname, -\abstractname, -\bibname, -\chaptername, -\appendixname, -\contentsname, -\listfigurename , -\listtablename, -\indexname, -\figurename, -\tablename, -\partname, -\enclname, -\ccname, -\headtoname, -\pagename, -\seename, -\alsoname, -\proofname, -\glossaryname +\AutoStrings \selectlanguage{english} Test correct upcasing (dropping of accents): \selectlanguage{greek} -\MakeUppercase{ -\prefacename, -\refname, -\abstractname, -\bibname, -\chaptername, -\appendixname, -\contentsname, -\listfigurename, -\listtablename, -\indexname, -\figurename, -\tablename, -\partname, -\enclname, -\ccname, -\headtoname, -\pagename, -\seename, -\alsoname, -\proofname, -\glossaryname -} +\MakeUppercase{\AutoStrings} \selectlanguage{english} - \subsection{Months} -\selectlanguage{greek} -\newcounter{foo} -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\selectlanguage{english} -\section{Greek Numerals (\greeknumeral{1} to \Greeknumeral{999999})} +\begin{quotation} + \selectlanguage{greek} + \newcounter{origmonth} + \setcounter{origmonth}{\the\month} + \newcounter{foo} + \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today} -See greek.pdf for the formation rules of Greek numerals. -Some examples: + \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today} -\selectlanguage{greek} + \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today} -\greeknumeral{1}, -\greeknumeral{2}, -\greeknumeral{3}, -\greeknumeral{4}, -\greeknumeral{5}, -\greeknumeral{6}, -\greeknumeral{7}, -\greeknumeral{8}, -\greeknumeral{9}, -\greeknumeral{10}, -\greeknumeral{11}, -\greeknumeral{12}, -\greeknumeral{20}, -\greeknumeral{345}, -\greeknumeral{500}, -\greeknumeral{1997}, -\greeknumeral{2013} - -\Greeknumeral{1}, -\Greeknumeral{2}, -\Greeknumeral{3}, -\Greeknumeral{4}, -\Greeknumeral{5}, -\Greeknumeral{6}, -\Greeknumeral{7}, -\Greeknumeral{8}, -\Greeknumeral{9}, -\Greeknumeral{10}, -\Greeknumeral{11}, -\Greeknumeral{12}, -\Greeknumeral{20}, -\Greeknumeral{345}, -\Greeknumeral{500}, -\Greeknumeral{1997}, -\Greeknumeral{2013} -\selectlanguage{english} + \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today} + + \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today} + + \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today} + + \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today} + + \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today} + + \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today} + + \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today} + \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today} -Enumerated lists use Greek characters/numerals in the second and fourth level: + \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today} + \month=\value{origmonth} +\end{quotation} + + +\section{Hyphenation} + +Patterns for the Greek language variants: + +\makeatletter +monotonic: \verb|\l@monogreek| = \the\l@monogreek \\ +polytonic: \verb|\l@polygreek| = \the\l@polygreek \\ +ancient: \verb|\l@ancientgreek| = \the\l@ancientgreek + +current: \verb|\l@greek| = \the\l@greek +\makeatletter + +Greek paragraph: +\begin{quote} + \selectlanguage{greek} + \showhyphenpar + \ensureascii{monotonic:} Ευρετήριο, επίσης, Απόδειξη \\ + \ensureascii{polytonic:} Εὑρετήριο, ἐπίσης, Ἀπόδειξη \\ + \ensureascii{ancient:} Εὑρετήριον, ὡσαύτως, Ἀπόδειξις +\end{quote} + +English paragraph with Greek text (\verb|\foreignlanguage{greek}|): +\begin{quote} + \showhyphenpar + monotonic: \foreignlanguage{greek}{Ευρετήριο, επίσης, Απόδειξη } \\ + polytonic: \foreignlanguage{greek}{Εὑρετήριο, ἐπίσης, Ἀπόδειξη } \\ + ancient: \foreignlanguage{greek}{Εὑρετήριον, ὡσαύτως, Ἀπόδειξις} +\end{quote} + +English paragraph with Greek script (\verb|\ensuregreek|): no hypenation +\begin{quote} + \showhyphenpar + monotonic: \ensuregreek{Ευρετήριο, επίσης, Απόδειξη } \\ + polytonic: \ensuregreek{Εὑρετήριο, ἐπίσης, Ἀπόδειξη } \\ + ancient: \ensuregreek{Εὑρετήριον, ὡσαύτως, Ἀπόδειξις} +\end{quote} + +\section{Greek Numerals (\greeknumeral{1} \ldots{} \greeknumeral{999999})% + \label{sec:greek-numerals}} + +\emph{Babel-Greek} provides the macros \verb|\greeknumeral| and +\verb|\Greeknumeral| for the conversion of Arabic numbers from 1 to 999\,999 +into their Greek counterparts (\greeknumeral{1}, \greeknumeral{2}, +\greeknumeral{3}, \ldots, \greeknumeral{999999}). +See \file{babel-greek.pdf} for the formation rules and configuration +options and \file{test-greeknum.pdf} for samples. + +Examples: + +\newcommand*{\shownumeral}[2]{\mbox{#2 = \csname #1\endcsname{#2}}} +\newcommand*{\numeralsample}[1]{% + \shownumeral{#1}{36}\quad + \shownumeral{#1}{94}\quad + \shownumeral{#1}{678}\quad + \shownumeral{#1}{2002}\quad + \shownumeral{#1}{923090}} + +\numeralsample{greeknumeral} + +\numeralsample{Greeknumeral} + +Users can redefine the macros \verb`\greeknumeralsix` and +\verb`\greeknumeralSix` as well as \verb`\greeknumeralninety` +\verb`\greeknumeralNinety` to configure the used symbols. + +If a font misses glyphs for the Greek numeral signs, subsitute characters +may be defined with the macros +\cs{textdexiakeraia} and \cs{textaristerikeraia}. + +\ifdefined \greeknumeralsix + Example (use ``archaic kappa'', ``varstigma'' with pdftex and substitute + chars for the numeral signs with Xe/LuaTeX): + \renewcommand*{\greeknumeralninety}{\textqoppa} + \renewcommand*{\greeknumeralNinety}{\textQoppa} + \ifdefined\UnicodeEncodingName + \renewcommand*{\textdexiakeraia}{\textquoteright} + \renewcommand*{\textaristerikeraia}{\quotesinglbase} + \else + \renewcommand*{\greeknumeralSix}{\textvarstigma} + \fi + + \numeralsample{greeknumeral} + + \numeralsample{Greeknumeral} + + The macro \verb|\Grtoday| produces the current date with the month + and the day as greek numerals. Today is \ensuregreek{\Grtoday}. + + \subsection{Alphabetical counters} + + In line with Greek typographical tradition (and to avoid messed up + alphabetical counters with LGR fonts), \emph{babel-greek} changes + the internal LaTeX commands \cs{@alph} and \cs{@Alph} + to use Greek numerals inside Greek text parts + (see section~\ref{sec:LGR-redefinitions} for an example). + +\fi + +\section{Font Encoding} + +TeX's standard 8-bit text fonts don't provide for Greek characters. +Every language switch to \texttt{greek} calls the \verb|\extrasgreek| +language hook which in turn calls \verb|\greekscript| to ensure a +Greek-supporting font encoding (LGR or TU). +With the current setup, this document uses +\begin{itemize} + \item \greekfontencoding{} as \verb|\greekfontencoding|, + \item \latinencoding{} as \verb|\latinencoding|, and + \makeatletter \ensureascii{\cf@encoding} \makeatother + inside \verb|\ensureascii|. +\end{itemize} + +If \verb|\greekfontencoding| is LGR, \emph{babel-greek} performs additional +setup steps to fix issues with the Latin transliteration (see below). +If it is TU, \emph{babel-greek} loads Greek LICR definitions from the file +\file{tuenc-greek.def}\footnote{% + Provided by \pkgref{greek-fontenc} since version~0.14 (2020-02-28)}. +\ifdefined\UnicodeEncodingName + % + % Attention: \meaning\greekfontencoding\ != \meaning\UnicodeEncodingName + \expandafter\ifx\greekfontencoding\UnicodeEncodingName + With this setup, it is also possible to use accent macros instead of + pre-composed Unicode characters for letters with diacritics, + ὃρα = \`<ορα = \accdasiavaria{ο}ρα. + \fi +\fi + +\ifdefined\greekscript + Switching to a font encoding supporting the Greek script is possible without + switching the Babel language using the declarations \verb|\greekscript| (no + switch if the current encoding supports the Greek script (e.g. the Unicode + font encodings TU and PU) or \verb|\greektext| (always switch to LGR) and the + corresponding functions \verb|\ensuregreek| and \verb|\lgrfont|.% + \footnote{Hyphenation patterns are not changed, + check for wrong hyphenations.} + These commands also work in the middle of a paragraph or word: + \greekscript Φίλων τοῦ \textlatin{TeX} (ΕΦΤ) -- + \latintext Friends (\ensuregreek{F\'ilwn}) of TeX. +\fi + + +\subsection{LGR's \emph{Latin transliteration}} + +LGR has Greek characters in the slots reserved for Latin characters and +other symbols in a TeX \emph{standard text font encoding}. +This allows the use of a \emph{Latin transliteration} for the input of Greek +characters\footnote{see \file{usage.pdf}}, however, characters that should +be printed as Latin characters must be protected from conversion by a font +encoding switch, either selecting a different language or wrapping them with +\verb|\ensureascii| (provided by the Babel core), that sets its argument +using an ASCII-compatible font encoding. The legacy declaration +\verb|\latintext| switches the font encoding to \verb|\latinencoding|. + +With the Unicode font encoding TU, Latin characters can be used in Greek +text parts and the Latin transliteration does not work (but see the +last example below). + +The following quote (with the Babel language set to Greek) illustrates the +problem: + +Literal characters, words in the ``foreign'' script protected: +\begin{quote} + \selectlanguage{greek} + Φίλων τοῦ \textlatin{TeX} (ΕΦΤ) -- + \selectlanguage{english} + Friends (\ensuregreek{Φίλων}) of TeX. +\end{quote} + +Unprotected ASCII characters come out as Greek characters with LGR: +\begin{quote} + \selectlanguage{greek} + Φίλων τοῦ TeX (ΕΦΤ) -- Friends (Φίλων) of TeX. +\end{quote} + +The Latin transliteration works in LGR but not TU: +\begin{quote} + \selectlanguage{greek} + F'ilwn to\~u \ensureascii{TeX} (EFT) -- + \selectlanguage{english} + \latintext Friends (\ensuregreek{F\'ilwn}) of TeX. +\end{quote} + +\ifdefined\lgrfont + The Latin transliteration can be used with also with + Xe/LuaTeX, if the input text is wrapped in \cs{lgrfont} + \footnote{available, if the LGR encoding is loaded + with the \pkgref{fontenc} package} + but may result in non-matching fonts and wrong hyphenation: + \begin{quote} + \selectlanguage{greek} + \lgrfont{F'ilwn to\~u \ensureascii{TeX} (EFT)} -- + \selectlanguage{english} + \latintext Friends (\lgrfont{F\'ilwn}) of TeX. + \end{quote} +\fi + +\subsubsection{LGR-proofed macros} + +\emph{Babel-greek} provides LGR-local variants for some +\emph{TextCommand}s that rely on a standard text encoding.\footnote{% + These workarounds cannot be done in \file{lgrenc.def} from the + \pkgref{greek-fontenc} package because they are not allowed in a + ``font encoding definition file'' [\file{fntguide.pdf}].} +The fallback definitions for some \emph{textcomp} symbols compose the +symbols out of Latin letters. +The fixes must not overwrite the selection of pre-composed symbols +from \pkgref{textcomp} or TU (try copy and paste from the PDF output). + +LGR fonts have a middle dot glyph at the place of the ampersand. The new +\emph{TextCommand} \verb|\textampersand| always prints an ampersand. +\makeatletter \newcommand{\AsciiSymbolTest}{(\f@encoding) ©®™ + A\textampersand W} +\makeatother +\begin{quote} + English: \AsciiSymbolTest\\ + English: \ensuregreek{\AsciiSymbolTest}\\ + Greek: \foreignlanguage{greek}{\AsciiSymbolTest} +\end{quote} +% English (LGR), input as macro: +% \lgrfont{|\textcopyright|\textregistered|\texttrademark| +% A\textampersand W.} + +\ifdefined\lgrfont% babel-greek and LGR font encoding loaded + + \subsection{LGR re-definitions \label{sec:LGR-redefinitions}} + + The generic macro \verb|\&| is re-defined inside Greek text parts to use + the original definition in math mode and \cs{textampersand} in text + mode. + + \subsubsection{Roman numerals \label{sec:roman-numerals}} + + Without fixes, Roman numerals are printed according to the Latin + transliteration (including the conversion of ``v'' to a + ZERO WIDTH NON-JOINER) if the font encoding is LGR: + + \makeatletter + \newcommand{\RomanNumeralTest}{\f@encoding: + \romannumeral 1, \romannumeral 2, \romannumeral 3, + \romannumeral 4, \ldots, \romannumeral 1975} + \makeatother + \begin{quote} + \RomanNumeralTest\\ + \lgrfont{\RomanNumeralTest} + \end{quote} + + Roman numerals are used by the default document classes, e.g., in the third + level of enumerations or as page numbers in the frontmatter of a book. + They may move to auto-generated document parts like the ToC, + (hyper)references, or an index. + + As document authors cannot wrap page numbers in a ToC in \verb|\ensureascii|, + \emph{Babel-greek} redefines the internal LaTeX commands \verb|\@roman| and + \verb|\@Roman| to make Roman numberals LGR-proof. + Unfortunately, this breaks Makeindex (cf. \file{test-lgr-fixes.tex}). + +\fi + + +\subsubsection{Example} + +In Greek text parts, enumerated lists use Greek numerals in the second and +fourth level and ASCII-proofed Roman numerals in the third level. \selectlanguage{greek} \begin{enumerate} @@ -215,6 +516,7 @@ Enumerated lists use Greek characters/numerals in the second and fourth level: \begin{enumerate} \item item 1.1.1.1 \item item 1.1.1.2 + \item item 1.1.1.3 \label{item 1.1.1.3} \end{enumerate} \item item 1.1.2 \end{enumerate} @@ -222,20 +524,183 @@ Enumerated lists use Greek characters/numerals in the second and fourth level: \end{enumerate} \selectlanguage{english} +\selectlanguage{english} +Setting the language back to English should restore the alphabetic numbering: +\begin{enumerate} + \item item 1 + \begin{enumerate} + \item item 1.1 + \begin{enumerate} + \item item 1.1.1 + \begin{enumerate} + \item item 1.1.1.1 + \item item 1.1.1.2 + \item item 1.1.1.3 + \end{enumerate} + \item item 1.1.2 + \end{enumerate} + \end{enumerate} +\end{enumerate} -This may be problematic with fonts that only partially support Greek and -miss the numeral signs (dexiakeraia and aristerikeraia). +More test of the LGR-redefinitions are in \file{test-lgr-fixes.tex}. -You may redefine the commands \verb+\textdexiakeraia+ and -\verb+\textaristerikeraia+ to some substitute characters. -Or, if you prefer the ``normal'' enumeration, write in the preamble after -loading babel: +\ifdefined\lgrfont +\else + \end{document} +\fi -\begin{verbatim} - \makeatletter - \addto\extrasgreek{\let\@alph\latin@alph - \let\@Alph\latin@Alph} - \makeatother -\end{verbatim} +\section{Up- and downcasing in Greek} + +Capital Greek letters have diacritics (except the dialytika and sub-iota) to +the left (instead of above) and drop them in uppercase (except the +dialytika), e.g., \ensuregreek{μαΐστρος $\mapsto$ \MakeUppercase{μαΐστρος}}. +For literal Greek characters and accent macros, these rules are implemented +and tested in the required package \pkgref{greek-fontenc}. + +Tonos and dasia mark a \emph{hiatus} (break-up of a diphthong) if +placed on the first vowel of a diphthong. +A dialytika must be placed on the second vowel if they are dropped, e.g. +% +\newcommand{\HiatusLICR}{\acctonos\textalpha\textiota, + \acctonos\textalpha\textupsilon, + \acctonos\textepsilon\textiota, + \'>\textalpha\textiota, + \'>\textalpha\textupsilon, + \accpsili\textalpha\textupsilon, + \accdasiaoxia\textepsilon\textiota}% +\ensuregreek{\HiatusLICR\ $\mapsto$ \MakeUppercase{\HiatusLICR}}. + +Some affected words: +\begin{quotation} + \selectlanguage{greek} + \newcommand*{\aylos}{% from teubner.sty: άυλος → ΑΫΛΟΣ + \acctonos\textalpha\textupsilon\textlambda\textomicron\textfinalsigma} + \aylos{} $\mapsto$ \MakeUppercase{\aylos}, + \renewcommand*{\aylos}{% polytonic: ἄυλος → ΑΫΛΟΣ + \'>\textalpha\textupsilon\textlambda\textomicron\textfinalsigma} + \aylos{} $\mapsto$ \MakeUppercase{\aylos}, + + % from http://diacritics.typo.cz/index.php?id=69 + \newcommand*{\maina}{%μάινα → ΜΑΪΝΑ + \textmu\acctonos\textalpha\textiota\textnu\textalpha} + \maina{} $\mapsto$ \MakeUppercase{\maina}, + + % from http://de.wikipedia.org/wiki/Neugriechische_Orthographie#Das_Trema + \newcommand*{\keik}{% κέικ → ΚΕΪΚ + \textkappa\acctonos\textepsilon\textiota\textkappa} + \keik{} $\mapsto$ \MakeUppercase{\keik}, + + \newcommand*{\ahypnia}{% ἀυπνία → ΑΫΠΝΙΑ + \accpsili\textalpha\textupsilon\textpi\textnu\acctonos\textiota\textalpha} + \ahypnia{} $\mapsto$ \MakeUppercase{\ahypnia}, + + % from http://multilingualtypesetting.co.uk/blog/greek-typesetting-tips/ + \newcommand*{\romeika}{\textrho\textomega\textmu + \acctonos\textepsilon\textiota\textkappa\textalpha} + \romeika{} $\mapsto$ \MakeUppercase{\romeika}. +\end{quotation} + +With the pre-2022/06 \cs{MakeUppercase}, automatic upcasing of words with +\emph{hiatus} works correctly only if the accents are input as macro and the +letters as macro or via the Latin transliteration. + +With the current (2023/02/10) \cs{MakeUppercase}, it works for literal +Unicode input and named accents. The definitions in \texttt{*enc.def} files, +\texttt{uccode}s and the \texttt{@uclclist} are ignored. + +\subsection{Changed uccode/lccode values for LGR} + +LGR encoded fonts define ligatures for characters with diacritics. To enable +correct upcasing, \emph{babel-greek} changes the uc/lccodes of some +characters. Characters used to input diacritics are mapped to the ``empty'' +character 0x9f = 159. + +To minimise side-effects (see below), uc/lccodes are only changed: +\begin{itemize} + \item if \cs{greekfontencoding} is a ``short macro'' expanding to LGR,% + \footnote{i.e. not in documents using Unicode fonts unless + \cs{greekfontencoding} is explicitly set to \texttt{LGR} before + loading \emph{babel-greek}} + \item if the LaTeX version is older than 2022/06, as uccodes are ignored + by the \cs{MakeUppercase} implementation introduced in this version + \item for accents that are actually required in the selcected language + variant (i.e. only for the \emph{tonos}, if the language variant + is the default ``monotonic''. +\end{itemize} + +With \cs{greekfontencoding} \greekfontencoding, LaTeX version \fmtversion, +and language variant ``\GreekLanguageVariant'' we get for +dialytika\footnote{% + Unless followed by a to-be accented vowel, the quotation mark \texttt{"} + is converted to an upper right apostrophe by LGR.}, +sub-iota, tonos/oxia, varia, psili, and dasia: + +\newcommand{\AccentCharacters}{" | ' ` > <} +\begin{quote} + \selectlanguage{greek} + \AccentCharacters{} $\mapsto$ \MakeUppercase{\AccentCharacters} +\end{quote} + +\emph{Composite command} definitions ensure that combined accents +also work for accent characters ``upcased'' to the charcter +No 159 = 0x9f): + +\newcommand{\CombinedAccentSample}{ + \ifdefined \UnicodeEncodingName + % TODO: combined accents swallow whitespace after base char + % unless protected + \"'υ{} \"`υ{} \`"υ{} \'"υ{} \`<α{} \'<α{} + \else + \"'u \"`u \`"u \'"u \`<a \'<a \'<ai + \fi + \'<\textalpha\textiota +} +\begin{quote} + \selectlanguage{greek} + \CombinedAccentSample{} $\mapsto$ \MakeUppercase{\CombinedAccentSample} +\end{quote} + +With babel-greek versions up to 1.11, using the tilde for the +\emph{perispomeni} accent inside \verb|\MakeUppercase| led to a +\begin{quote} + \texttt{Package inputenc Error: Invalid UTF-8 byte "9F} +\end{quote} +(even without loading \emph{inputenc} and with \verb|\UseRawInputEncoding|).% +\footnote{cf. + \href{https://www.latex-project.org/news/latex2e-news/ltnews28.pdf}% + {LaTeX News 28}} +Version 1.12 fixes the issue so that all three input variants work again +(with LaTeX versions up to 2022/06)% +\footnote{There are new issues with the implementation of \cs{MakeUppercase} + introduced in the 2022/06 LaTeX release, cf.\ + \href{https://www.latex-project.org/news/latex2e-news/ltnews35.pdf}% + {LaTeX News 35}} +\begin{quote} + \selectlanguage{greek} + \greektext + ~u \~u \accperispomeni{u} $\mapsto$ \MakeUppercase{~u \~u \accperispomeni{u}} +\end{quote} + + +The changed uc/lccodes have strange effects on Latin text parts +in Greek paragraphs if only the encoding is switched: +\begin{quote} + \selectlanguage{greek} + \foreignlanguage{english}{English: + Let's see: \AccentCharacters{} $\mapsto$ + \MakeUppercase{Let's see: \AccentCharacters}}\\ + \ensureascii{\cs{ensureascii}: + Let's see: \AccentCharacters{} $\mapsto$ + \MakeUppercase{Let's see: \AccentCharacters}} +\end{quote} +% +To limit the effect on, e.g., section headings (which are printed +capitalised with the ``headings'' style), uccodes for ``v'' +(zero-width space) and ``c'' (final sigma) are not changed. +Use \verb|\textcompwordmark| instead of \texttt{v} and autosigma +(\texttt{s}) instead of \texttt{c} in text parts that could/should +become upcased, e.g., \lgrfont{a\textcompwordmark us $\mapsto$ +\MakeUppercase{a\textcompwordmark us}} +not \lgrfont{avuc $\mapsto$ \MakeUppercase{avuc}}. \end{document} diff --git a/macros/latex/contrib/babel-contrib/greek/test-greeknum.tex b/macros/latex/contrib/babel-contrib/greek/test-greeknum.tex new file mode 100644 index 0000000000..c04699d905 --- /dev/null +++ b/macros/latex/contrib/babel-contrib/greek/test-greeknum.tex @@ -0,0 +1,131 @@ +\documentclass[a4paper]{article} +\usepackage{ifthen} +\usepackage[LGR,T1]{fontenc} +\usepackage{booktabs} +\usepackage{longtable,ltcaption,array} +\usepackage[textwidth=14cm]{geometry} % to fit the number table +\setlength{\extrarowheight}{2pt} +\usepackage{parskip} +\pagestyle{empty} + +\ifdefined \UnicodeEncodingName + \usepackage{fontspec} + \setmainfont{Linux Libertine O} % no GREEK ACROPHONIC ATTIC numbers + % \setmainfont{Liberation Serif} % no GREEK ACROPHONIC ATTIC numbers + % \setmainfont{FreeSerif} +\else + \usepackage{lmodern} + % \usepackage{kerkis} % !! Data loss: \textStigma and \textSampi + % characters missing! + % \usepackage{gfsdidot} % !! Data loss: \textsampi, \textSampi, + % and \textStigma characters missing! + % \usepackage{dejavu} % !! Data loss: \textSampi character missing! + % Prevent dataloss with re-definitions, e.g: + % \renewcommand*{\greeknumeralSix}{\textSigma\textTau} % default \textStigma + % \renewcommand*{\greeknumeralNinety}{\textsampi} % default \textSampi +\fi + + +\usepackage[greek,english]{babel} + +\begin{document} +\section*{Test Greek (Milesian) numerals} +\author{Günter Milde} +\date{2023/01/06} + +Babel-greek defines the functions \verb|\greeknumeral| and +\verb|\Greeknumeral| that work similar to the TeX primitive +\verb|\romannumeral|. For details and configuration options, see +\texttt{babel-greek.pdf}. + +Examples: + +\newcommand*{\greeknumeralsample}[1]{\mbox{#1 = \greeknumeral{#1}}} +\newcommand*{\Greeknumeralsample}[1]{\mbox{#1 = \Greeknumeral{#1}}} + +\greeknumeralsample{16}\quad +\greeknumeralsample{32}\quad +\greeknumeralsample{64}\quad +\greeknumeralsample{678}\quad +\greeknumeralsample{2022}\quad +\greeknumeralsample{123456} + +\Greeknumeralsample{16}\quad +\Greeknumeralsample{32}\quad +\Greeknumeralsample{64}\quad +\Greeknumeralsample{678}\quad +\Greeknumeralsample{2022}\quad +\Greeknumeralsample{123456} + +Hexadecimal input works, too: \greeknumeralsample{"10} + +Largest supported number: \greeknumeralsample{999999} + +Values outside the supported range are printed as arabic decimal numbers +(a warning is issued): +\greeknumeralsample{-1}\quad +\greeknumeralsample{0}\quad +\greeknumeralsample{"1000000} + +All Ionic number symbols. +The Greek font encoding is \greekfontencoding. + +\begin{tabular}{rrrrrrrrr} +\toprule +1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \\ +\greeknumeral{1} & \greeknumeral{2} & \greeknumeral{3} & \greeknumeral{4} & +\greeknumeral{5} & \greeknumeral{6} & \greeknumeral{7} & \greeknumeral{8} & \greeknumeral{9} \\[0.3em] + +10 & 20 & 30 & 40 & 50 & 60 & 70 & 80 & 90 \\ +\greeknumeral{10} & \greeknumeral{20} & \greeknumeral{30} & \greeknumeral{40} & +\greeknumeral{50} & \greeknumeral{60} & \greeknumeral{70} & \greeknumeral{80} & \greeknumeral{90} \\[0.3em] + +100 & 200 & 300 & 400 & 500 & 600 & 700 & 800 & 900 \\ +\greeknumeral{100} & \greeknumeral{200} & \greeknumeral{300} & \greeknumeral{400} & +\greeknumeral{500} & \greeknumeral{600} & \greeknumeral{700} & \greeknumeral{800} & \greeknumeral{900} \\[0.3em] + +1000 & 2000 & 3000 & 4000 & 5000 & 6000 & 7000 & 8000 & 9000 \\ +\greeknumeral{1000}& \greeknumeral{2000}& \greeknumeral{3000}& \greeknumeral{4000}& +\greeknumeral{5000}& \greeknumeral{6000}& \greeknumeral{7000}& \greeknumeral{8000}& \greeknumeral{9000} \\[0.3em] + +10000 & 20000 & 30000 & 40000 & 50000 & 60000 & 70000 & 80000 & 90000 \\ +\greeknumeral{10000}&\greeknumeral{20000}&\greeknumeral{30000}&\greeknumeral{40000}& +\greeknumeral{50000}&\greeknumeral{60000}&\greeknumeral{70000}&\greeknumeral{80000}&\greeknumeral{90000} \\[0.3em] + +100000 & 200000 & 300000 & 400000 & 500000 & 600000 & 700000 & 800000 & 900000 \\ +\greeknumeral{100000}&\greeknumeral{200000}&\greeknumeral{300000}&\greeknumeral{400000}& +\greeknumeral{500000}&\greeknumeral{600000}&\greeknumeral{700000}&\greeknumeral{800000}&\greeknumeral{900000} \\[0.3em] + +\bottomrule +\end{tabular} + +\begin{tabular}{rrrrrrrrr} +\toprule +1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \\ +\Greeknumeral{1} & \Greeknumeral{2} & \Greeknumeral{3} & \Greeknumeral{4} & +\Greeknumeral{5} & \Greeknumeral{6} & \Greeknumeral{7} & \Greeknumeral{8} & \Greeknumeral{9} \\[0.3em] + +10 & 20 & 30 & 40 & 50 & 60 & 70 & 80 & 90 \\ +\Greeknumeral{10} & \Greeknumeral{20} & \Greeknumeral{30} & \Greeknumeral{40} & +\Greeknumeral{50} & \Greeknumeral{60} & \Greeknumeral{70} & \Greeknumeral{80} & \Greeknumeral{90} \\[0.3em] + +100 & 200 & 300 & 400 & 500 & 600 & 700 & 800 & 900 \\ +\Greeknumeral{100} & \Greeknumeral{200} & \Greeknumeral{300} & \Greeknumeral{400} & +\Greeknumeral{500} & \Greeknumeral{600} & \Greeknumeral{700} & \Greeknumeral{800} & \Greeknumeral{900} \\[0.3em] + +1000 & 2000 & 3000 & 4000 & 5000 & 6000 & 7000 & 8000 & 9000 \\ +\Greeknumeral{1000}& \Greeknumeral{2000}& \Greeknumeral{3000}& \Greeknumeral{4000}& +\Greeknumeral{5000}& \Greeknumeral{6000}& \Greeknumeral{7000}& \Greeknumeral{8000}& \Greeknumeral{9000} \\[0.3em] + +10000 & 20000 & 30000 & 40000 & 50000 & 60000 & 70000 & 80000 & 90000 \\ +\Greeknumeral{10000}&\Greeknumeral{20000}&\Greeknumeral{30000}&\Greeknumeral{40000}& +\Greeknumeral{50000}&\Greeknumeral{60000}&\Greeknumeral{70000}&\Greeknumeral{80000}&\Greeknumeral{90000} \\[0.3em] + +100000 & 200000 & 300000 & 400000 & 500000 & 600000 & 700000 & 800000 & 900000 \\ +\Greeknumeral{100000}&\Greeknumeral{200000}&\Greeknumeral{300000}&\Greeknumeral{400000}& +\Greeknumeral{500000}&\Greeknumeral{600000}&\Greeknumeral{700000}&\Greeknumeral{800000}&\Greeknumeral{900000} \\ + +\bottomrule +\end{tabular} + +\end{document} diff --git a/macros/latex/contrib/babel-contrib/greek/test-greeknumeral.pdf b/macros/latex/contrib/babel-contrib/greek/test-greeknumeral.pdf Binary files differdeleted file mode 100644 index fafe3a1a08..0000000000 --- a/macros/latex/contrib/babel-contrib/greek/test-greeknumeral.pdf +++ /dev/null diff --git a/macros/latex/contrib/babel-contrib/greek/test-greeknumeral.tex b/macros/latex/contrib/babel-contrib/greek/test-greeknumeral.tex deleted file mode 100644 index f60bcaff75..0000000000 --- a/macros/latex/contrib/babel-contrib/greek/test-greeknumeral.tex +++ /dev/null @@ -1,236 +0,0 @@ -\documentclass[a4paper]{scrartcl} - -% Load font packages depending on engine: -\ifdefined\luatexversion - \usepackage{fontspec} -\fi -\ifdefined\XeTeXrevision - \usepackage{fontspec} -\fi -\ifdefined \UTFencname % set by "fontspec.sty" - % Latin Modern misses most Greek characters. - \setmainfont{DejaVu Serif} - \setsansfont{DejaVu Sans} -\else - \usepackage[LGR,T1]{fontenc} - \usepackage[utf8]{inputenc} - \usepackage{lmodern} - % \usepackage{kerkis} % missing glyphs (Qoppa, in sans serif also koppa, Koppa) - % \usepackage{dejavu} missing glyphs (qoppa, Qoppa, Sampi) - % \usepackage{epigrafica} # many missing glyphs - % \usepackage{gentium} % missing glyphs (Qoppa, Sampi) - % \usepackage{gfsdidot} % sampi in place of qoppa, missing sampi Sampi - % \usepackage{gfsartemisia} % sampi in place of qoppa, missing sampi Sampi - % \usepackage{libertinegc} - % \usepackage{noto} - % \usepackage{OldStandard} - % \usepackage{roboto} -\fi - - -% Greek script support with textalpha (greek-fontec) or babel-greek: - -% \usepackage{textalpha} -\usepackage[greek,english]{babel} - -% Save the unpatched version -\let\origgreeknumeral\greeknumeral -\let\origGreeknumeral\Greeknumeral - -% uncomment, if you prefer Qoppa for Koppa -% \let\textKoppa\textQoppa -% \let\textkoppa\textqoppa - - -% Hyperref -% default PDFstring encoding is PD1 without Greek support: -% \usepackage[unicode]{hyperref} -% With option unicode, there is partial Greek support (no polytonic) -\usepackage[unicode]{hyperref} - - -\DeclareTextCommand{\greekscript}{PU}{} -\DeclareTextCommand{\ensuregreek}{PU}[1]{#1} -% Greek LICR names from "greek-fontenc" -\DeclareTextCommand{\textdexiakeraia}{PU}{\83\164}% U+0374 -\DeclareTextCommand{\textaristerikeraia}{PU}{\83\165}% U+0375 -\DeclareTextCommand{\textQoppa}{PU}{\83\330}% U+03D8 -\DeclareTextCommand{\textqoppa}{PU}{\83\331}% U+03D9 -\DeclareTextCommand{\textStigma}{PU}{\83\332}% U+03DA -\DeclareTextCommand{\textstigma}{PU}{\83\333}% U+03DB -\DeclareTextCommand{\textDigamma}{PU}{\83\334}% U+03DC -\DeclareTextCommand{\textdigamma}{PU}{\83\335}% U+03DD -\DeclareTextCommand{\textKoppa}{PU}{\83\336}% U+03DE -\DeclareTextCommand{\textkoppa}{PU}{\83\337}% U+03DF -\DeclareTextCommand{\textSampi}{PU}{\83\340}% U+03E0 -\DeclareTextCommand{\textsampi}{PU}{\83\341}% U+03E1 -% TODO: support polytonic Greek (Greek Extended Unicode block) - - - -\begin{document} - -% \textuppercase{Grüße} - -% \selectlanguage{greek} -% \selectlanguage{english} - - -\section{Test Hyperref-safe implementation of Greek numerals} - -Every number is set in 4 versions: - -1: lowercase Babel, -2: lowercase Hyperref-patched, - -3: uppercase Babel, -4: uppercase Hyperref-patched, - - -\DeclareRobustCommand{\numeraltest}[1]{ - \origgreeknumeral{#1} - \ensuregreek{\greeknumeral{#1}}\ - \origGreeknumeral{#1} - \ensuregreek{\Greeknumeral{#1}} -} - - -\noindent single numerals - -1-5 -\numeraltest{1} -\numeraltest{2} -\numeraltest{3} -\numeraltest{4} -\numeraltest{5} - -6-9 -\numeraltest{6} -\numeraltest{7} -\numeraltest{8} -\numeraltest{9} - -10-50 -\numeraltest{10} -\numeraltest{20} -\numeraltest{30} -\numeraltest{40} -\numeraltest{50} - -60-90 -\numeraltest{60} -\numeraltest{70} -\numeraltest{80} -\numeraltest{90} - -100-500 -\numeraltest{100} -\numeraltest{200} -\numeraltest{300} -\numeraltest{400} -\numeraltest{500} - -600-900 -\numeraltest{600} -\numeraltest{700} -\numeraltest{800} -\numeraltest{900} - -1000-5000 -\numeraltest{1000} -\numeraltest{2000} -\numeraltest{3000} -\numeraltest{4000} -\numeraltest{5000} - -6000-9000 -\numeraltest{6000} -\numeraltest{7000} -\numeraltest{8000} -\numeraltest{9000} - -10 000 - 900 000 -\numeraltest{10000} -\numeraltest{20000} -\numeraltest{800000} -\numeraltest{900000} - -\noindent compound numbers - -123-323 -\numeraltest{123} -\numeraltest{223} -\numeraltest{323} - -445-645 -\numeraltest{445} -\numeraltest{545} -\numeraltest{645} - -767-967 -\numeraltest{767} -\numeraltest{867} -\numeraltest{967} - -967021 \numeraltest{967021} - -\noindent outside of bounds - -Negative and zero -\greeknumeral{-1} -% \Greeknumeral{-1} -\greeknumeral{0} -%\Greeknumeral{0} - -Too large: -\greeknumeral{1000000} -% \Greeknumeral{1000000} - -\paragraph{Discussion} - -The new implementation gives identical results. - -\section{Greek numerals in PDF bookmarks} - -\section{ - \numeraltest{1} - \numeraltest{90} - \numeraltest{200} -} - -\section{ - \numeraltest{1000} - \numeraltest{90000} - \numeraltest{200000} -} -\section{ - \numeraltest{24} - \numeraltest{96} -} - -\section{ - \numeraltest{96} - \numeraltest{263} -} - -\section{ - \numeraltest{4695} -} - -\section{Original numeral: - \greekscript{\origgreeknumeral{1293}} - % \greekscript{\origGreeknumeral{1293}} -} - -Babels original lower case version works fine in text. However, use in a -section heading results in spurious numeral marks (dexia keraia) in the -PDF bookmark. and the warning -\begin{verbatim} - Package hyperref Warning: Token not allowed in a PDF string (Unicode): - (hyperref) removing `\@ifnextchar' on input line 353. -\end{verbatim} - -The upper case version fails because MakeUpercase is not defined for -PDFstrings. - -\end{document}, diff --git a/macros/latex/contrib/babel-contrib/greek/test-lgr-fixes.tex b/macros/latex/contrib/babel-contrib/greek/test-lgr-fixes.tex new file mode 100644 index 0000000000..88c628cbca --- /dev/null +++ b/macros/latex/contrib/babel-contrib/greek/test-lgr-fixes.tex @@ -0,0 +1,189 @@ +% Test fixes for the LGR font encoding +\documentclass[a4paper,oneside]{book} + +\pagestyle{headings} + +\usepackage[LGR,T1]{fontenc} +\usepackage{lmodern} + +% Play with the modifiers and watch the effects: +\newcommand*{\greeklanguagespecifier}{% + % greek% + greek.local-LGR-fixes% + % greek.no-LGR-fixes% +} + +\usepackage[\greeklanguagespecifier,english]{babel} + +% hyperref and makeindex both have special requirements for \@roman & \@Roman +\usepackage{hyperref} +\hypersetup{unicode, colorlinks=true,linkcolor=blue,urlcolor=blue} +\usepackage{makeidx} +\makeindex + + +\begin{document} + +% Pagenumbering uses Roman numerals in the front matter for "book" class +\frontmatter + +\tableofcontents +% Check Roman page numbers! + +\chapter{Preface \label{ch:preface}} + +This document tests workarounds for the non-standard LGR Greek text font +encoding for \emph{necessity}, \emph{effects}, and \emph{side-effects}. + +The ideal result would be that all Roman numerals came out as expeced +and the Index would contain two entries. + +The new language attributes \texttt{local-LGR-fixes} and +\texttt{no-LGR-fixes} provide a tradeoff: limiting the work-arounds to local +scope or skipping them completely helps with the index but breaks some of +the Roman numbers. This can help in documents using only small Greek text +parts. In the current compilation, Babel is called with the +\texttt{\greeklanguagespecifier} and \texttt{english} options. + +In this document, English text in Greek text parts is not protected against +the Greek transliteration (deliberately, to show clearly where Greek is the +active language). See the source \texttt{*.tex} file for the English +original. + +\begin{enumerate} + \item Problem + \begin{enumerate} + \item Roman numerals require Latin characters. + \item Alphabetic counters use Latin characters, too. + \item + In document parts using the LGR font encoding, this leads to errors. + \begin{enumerate} + \item While an ``i'' is still recognizable after conversion to a + small Iota, a ``v'', say, becomes an invisible no-break space. + \item The transliteration of ``a) b) c) d) e) f) g)'' + leads to strange results, too.% + \label{item with roman number} + \end{enumerate} + \end{enumerate} + \item Solution for (a): wrapping roman numbers in \verb|\ensureascii|. + \begin{enumerate} + \item However, some numbers, e.g. page numbers are auto-generated + at ``unpredictible'' places. + Other are used at places ``inaccessible'' to the author (e.g. the + page number of a Greek chapter in the ToC). + + → Re-define counter-formatting functions to make them LGR-proof. + + \item Moving arguments complicate the matter. + \begin{enumerate} + \item The proofing must be robust (to some degree) to fix, e.g., + a Roman page number of a Greek chapter in the ToC. + \item The proofing must be global to work reliably. + \end{enumerate} + \end{enumerate} + \item Side-effect: the proofing makes Makeindex fail if there are + index entries on pages with Roman numbering. + + \index{makeindex-problem} + Makeindex expects ``pagenumbers'' to be simple text strings, without + font encoding change or similar. Cf. + \href{https://github.com/latex3/babel/issues/170}{Babel issue~\#170}. + +\end{enumerate} + + +\selectlanguage{greek} +\chapter{Προλογος \label{ch:prologos}} + +\begin{enumerate} + \item Problem + \begin{enumerate} + \item Roman numerals require Latin characters. + \item Alphabetic counters use Latin characters, too. + \item + In document parts using the LGR font encoding, this leads to errors. + \begin{enumerate} + \item While an ``i'' is still recognizable after conversion to a + small Iota, a ``v'', say, becomes an invisible no-break space. + \index{invisible-v-problem} + \item A transliteration of ``a) b) c) d) e) f) g)'' + leads to strange results, too.% + \label{item with roman number greek} + \end{enumerate} + \end{enumerate} +\end{enumerate} + +% \newpage +% Second page of the Greek preface. + +\selectlanguage{english} + + +\mainmatter + +\chapter{First Chapter \label{ch:1}} + +\section{Page references} + +The ``preface'' is at page \pageref{ch:preface}. +The ``\ensuregreek{prologos}'' is at page \pageref{ch:prologos}. + +\section{Page references from a Greek text part} + +\selectlanguage{greek} + +Ο ''\ensureascii{preface}'' βρίσκεται στη σελίδα + \pageref{ch:preface}. +Ο ``πρόλογος'' βρίσκεται στη σελίδα \pageref{ch:prologos}. + +\selectlanguage{english} + +\begin{itemize} +\item With ``local-LGR-fixes'', the page number of the \ensuregreek{Προλογος} + comes out wrong. +\item Authors can fix it by wrapping the \verb|\pageref| function. + However, a change of the the default ``LGR fix scope'' to ``local'' + may break existing documents. +\end{itemize} + + +\section{References to items in an enumeration} + +See item \ref{item with roman number} in an English list. +See item \ref{item with roman number greek} in a Greek list. + +\section{References to items in an enumeration from a Greek text part} + +\selectlanguage{greek} + +See item \ref{item with roman number} in an English list. +See item \ref{item with roman number greek} in a Greek list. + +\selectlanguage{english} + +\begin{itemize} +\item The ``alph'' counter in the ``English'' list comes out wrong. + (This is also the behaviour in previous versions of babel-greek.) +\item Authors must treat references to non-Greek text parts similar to + non-Greek words and abbreviations (wrap in \verb|\ensureascii|). +\end{itemize} + +\section{The Index} + +The next page should show an Index with 2 entries +(see \texttt{test-lgr-fixes.idx}). + +\begin{itemize} +\item With global LGR fixes, no index entry is printed (both are rejected by + \texttt{makeindex} because of the font encoding change command + preceding the page number. +\item With ``local-LGR-fixes'', only ``makeindex-problem'' is rejected. + (The pagenumber is generated when the \verb|\chapter| command starts + the \ensuregreek{Prologos} on a new page. At this point, the active + language is Greek and the font encoding LGR.) +\end{itemize} + +\backmatter +\printindex + +\end{document} diff --git a/macros/latex/contrib/babel-contrib/greek/test-tu-lgr.pdf b/macros/latex/contrib/babel-contrib/greek/test-tu-lgr.pdf Binary files differdeleted file mode 100644 index c1ddae2a47..0000000000 --- a/macros/latex/contrib/babel-contrib/greek/test-tu-lgr.pdf +++ /dev/null diff --git a/macros/latex/contrib/babel-contrib/greek/test-tu-lgr.tex b/macros/latex/contrib/babel-contrib/greek/test-tu-lgr.tex deleted file mode 100644 index e1994f3136..0000000000 --- a/macros/latex/contrib/babel-contrib/greek/test-tu-lgr.tex +++ /dev/null @@ -1,264 +0,0 @@ -\documentclass[a4paper]{article} -% \usepackage{textcomp} -\usepackage{hyperref} -% \usepackage{bookmark} -\usepackage{parskip} - -% Declare the font encoding and Greek LICR definitions: -\usepackage[LGR]{fontenc} - -% Set up Latin Modern OpenType unicode font -\usepackage{fontspec} - -\usepackage[greek,english]{babel} -% \languageattribute{greek}{polutoniko} -% \languageattribute{greek}{ancient} - -% use LGR (8-bit CB-fonts) instead of Unicode fonts for Greek: -\addto{\extrasgreek}{\greektext} -% Alternative: -% \renewcommand*{\greekscript}{\fontencoding{LGR}\selectfont} - -\begin{document} - -\title{XeTeX/LuaTeX with LGR fonts} -\author{Günter Milde} -\date{2020/11/10} -\maketitle - -The babel option «greek» activates the support for the Greek language -defined in «greek.ldf» (source «greek.dtx»). - -Typesetting Greek texts requires a font containing Greek letters. With the -XeTeX or LuaTeX engines, the user must ensure that the selected font -contains the required glyphs (the default Latin Modern fonts miss them). - -Latin Modern can be combined with the matching CB-Greek 8-bit font. For the -setup, see the preamble of this document \texttt{test-unicode-lgr.tex} - -Caveat: Currently, hyphenation does not work with this setup. Use it only -for short Greek quotes or as a last ressort. - -\section{Language Switch} - -The declaration \verb|\selectlanguage| switches between languages. With -XeTeX or LuaTeX and LGR as \verb|\greekfontencoding|, Unicode input is not -possible. Instead, use the Latin transliteration or LICR macros: - -\begin{quote} - \selectlanguage{greek} - T'i f'hic? <Id`wn >enj'ede pa~id'' >eleuj'eran\\ - t`ac plhs'ion N'umfac stefano~usan, S'wstrate,\\ - >er~wn 'ap~hljec e>uj'uc? -\end{quote} - -The macro \verb|\foreignlanguage| sets its second argument in the specified -language. This is intended for short text parts like -\foreignlanguage{greek}{Biblioj'hkh}. - -\section{Font Encoding} - -Switching to a font encoding supporting the Greek script is possible without -switching the text language using the declarations \verb|\greekscript| or -\verb|\greektext| (always LGR) and the macros \verb|\ensuregreek| or -\verb|\textgreek|. These commands do not start a new paragraph. - -The Babel core defines the declaration \verb|\latintext| and the command -\verb|\textlatin| to switch to the T1 or OT1 font encoding or typeset the -argument using this encoding. \texttt{greek.ldf} adds a test for the Unicode -font encodings TU, EU1, and EU2. Here, \verb|\latinencoding| is -\latinencoding. - -With Unicode fonts, the macros \verb|\greektext| and \verb|\textgreek| are -only defined, if the LGR font encoding is loaded via the \texttt{fontenc} -package (see test-unicode-lgr.tex). - -% don't change the font encoding. -With LGR, Latin characters in Greek text parts are typeset as Greek characters -according to the Latin transcription defined in LGR.% - -\begin{quote} - \greektext F\'ilwn to\~u \textlatin{TeX} (EFT) -- - \latintext{Friends (\textgreek{F\'ilwn}) of TeX.}% -\end{quote} - -\section{MakeUppercase, MakeLowercase} - -Capital Greek letters have diacritics (except the dialytika and sub-iota) to -the left (instead of above) and drop them in uppercase. - -Tonos and dasia mark a \emph{hiatus} (break-up of a diphthong) if placed on -the first vowel of a diphthong (\textgreek{\'ai, \'au, \'ei, \'>ai, \'>au, -\'>ei}). A dialytika must be placed on the second vowel if they are dropped. -(\foreignlanguage{greek}{\MakeUppercase{\'ai, \'au, \'ei, \'>ai, \'>au, -\'>ei}}). - -\section{LICR Macros} - -Babel defines macros for several autogenerated strings so that they may -appear in the choosen language. \emph{babel-greek} uses LICR macros in -order to let the string macros work independent of the font encoding. - -If \texttt{fontspec} is loaded before babel, babel-greek loads Greek LICR -for TU from the file \texttt{tuenc-greek.def} provided with -\emph{greek-fontenc} since version~0.14 (2020-02-28). - -\subsection{Hiatus} - -The «hiatus» feature works with macro input: - -\selectlanguage{greek} -% from teubner: άυλος/ΑΫΛΟΣ -\acctonos\textalpha\textupsilon\textlambda\textomicron\textfinalsigma{} -$\mapsto$ -\MakeUppercase{\acctonos\textalpha\textupsilon\textlambda\textomicron\textfinalsigma}, -\'>\textalpha\textupsilon\textlambda\textomicron\textfinalsigma{} $\mapsto$ -\MakeUppercase{\'>\textalpha\textupsilon\textlambda\textomicron\textfinalsigma}, -% from http://diacritics.typo.cz/index.php?id=69 μάινα -> ΜΑΪΝΑ -\textmu\acctonos\textalpha\textiota\textnu\textalpha{} $\mapsto$ -\MakeUppercase{\textmu\acctonos\textalpha\textiota\textnu\textalpha}, -% from http://de.wikipedia.org/wiki/Neugriechische_Orthographie#Das_Trema -% κέικ, ἀυπνία/αϋπνία -\textkappa\acctonos\textepsilon\textiota\textkappa $\mapsto$ -\MakeUppercase{\textkappa\acctonos\textepsilon\textiota\textkappa}, -\accpsili\textalpha\textupsilon\textpi\textnu\'\textiota\textalpha{} $\mapsto$ -\MakeUppercase{\accpsili\textalpha\textupsilon\textpi\textnu\'\textiota\textalpha}. -\selectlanguage{english} - -\subsection{Captions} - -\selectlanguage{greek} -\prefacename, -\refname, -\abstractname, -\bibname, -\chaptername, -\appendixname, -\contentsname, -\listfigurename , -\listtablename, -\indexname, -\figurename, -\tablename, -\partname, -\enclname, -\ccname, -\headtoname, -\pagename, -\seename, -\alsoname, -\proofname, -\glossaryname -\selectlanguage{english} - -Test correct upcasing (dropping of accents): - -\selectlanguage{greek} -\MakeUppercase{ -\prefacename, -\refname, -\abstractname, -\bibname, -\chaptername, -\appendixname, -\contentsname, -\listfigurename, -\listtablename, -\indexname, -\figurename, -\tablename, -\partname, -\enclname, -\ccname, -\headtoname, -\pagename, -\seename, -\alsoname, -\proofname, -\glossaryname -} -\selectlanguage{english} - -\subsection{Months} - -\selectlanguage{greek} -\newcounter{foo} -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\stepcounter{foo} \month=\value{foo} \today \\ -\selectlanguage{english} - -\section{Greek Numerals} - -See greek.pdf for the formation rules of Greek numerals. -Some examples: - -\selectlanguage{greek} - -\greeknumeral{1}, -\greeknumeral{2}, -\greeknumeral{3}, -\greeknumeral{4}, -\greeknumeral{5}, -\greeknumeral{6}, -\greeknumeral{7}, -\greeknumeral{8}, -\greeknumeral{9}, -\greeknumeral{10}, -\greeknumeral{11}, -\greeknumeral{12}, -\greeknumeral{20}, -\greeknumeral{345}, -\greeknumeral{500}, -\greeknumeral{1997}, -\greeknumeral{2013}, - -\Greeknumeral{1}, -\Greeknumeral{2}, -\Greeknumeral{3}, -\Greeknumeral{4}, -\Greeknumeral{5}, -\Greeknumeral{6}, -\Greeknumeral{7}, -\Greeknumeral{8}, -\Greeknumeral{9}, -\Greeknumeral{10}, -\Greeknumeral{11}, -\Greeknumeral{12}, -\Greeknumeral{20}, -\Greeknumeral{345}, -\Greeknumeral{500}, -\Greeknumeral{1997}, -\Greeknumeral{2013}, - - -\selectlanguage{english} -Enumerated lists use Greek characters/numerals in the second and fourth level: - -\selectlanguage{greek} -\begin{enumerate} - \item \textlatin{item} 1 - \begin{enumerate} - \item \textlatin{item} 1.1 - \begin{enumerate} - \item \textlatin{item} 1.1.1 - \begin{enumerate} - \item \textlatin{item} 1.1.1.1 - \item \textlatin{item} 1.1.1.2 - \end{enumerate} - \item \textlatin{item} 1.1.2 - \end{enumerate} - \end{enumerate} -\end{enumerate} -\selectlanguage{english} - -\end{document} diff --git a/macros/latex/contrib/babel-contrib/greek/usage.pdf b/macros/latex/contrib/babel-contrib/greek/usage.pdf Binary files differindex 43a51a2053..884321bacf 100644 --- a/macros/latex/contrib/babel-contrib/greek/usage.pdf +++ b/macros/latex/contrib/babel-contrib/greek/usage.pdf diff --git a/macros/latex/contrib/babel-contrib/greek/usage.tex b/macros/latex/contrib/babel-contrib/greek/usage.tex index 519b721e5f..167bcca38c 100644 --- a/macros/latex/contrib/babel-contrib/greek/usage.tex +++ b/macros/latex/contrib/babel-contrib/greek/usage.tex @@ -1,11 +1,8 @@ -% \iffalse meta-comment +% Copyright 1997 Apostolos Syropoulos +% +% This file is part of the babel-greek package. +% --------------------------------------------- % -% Copyright 1989-2008 Johannes L. Braams and any individual authors -% listed elsewhere in this file. All rights reserved. -% -% This file is part of the Babel system. -% -------------------------------------- -% % It 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. @@ -13,22 +10,17 @@ % http://www.latex-project.org/lppl.txt % and version 1.3 or later is part of all distributions of LaTeX % version 2003/12/01 or later. -% +% % This work has the LPPL maintenance status "maintained". -% +% % The Current Maintainer of this work is Günter Milde. -% -% The list of all files belonging to the Babel system is -% given in the file `manifest.bbl. See also `legal.bbl' for additional -% information. -% -% The list of derived (unpacked) files belonging to the distribution -% and covered by LPPL is defined by the unpacking scripts (with -% extension .ins) which are part of the distribution. -% \fi + \documentclass[11pt]{article} \usepackage[american,greek]{babel} \languageattribute{greek}{polutoniko} +% \languageattribute{greek}{ancient} +\newcommand{\langGreek}{\foreignlanguage{greek}} + \usepackage{athnum,grmath} \newcommand{\sg}{\selectlanguage{greek}} \newcommand{\sa}{\selectlanguage{american}} @@ -49,8 +41,8 @@ \abstract{\noindent This document describes the use of the Latin transliteration for Greek that is defined by the LGR font encoding. Today, all modern LaTeX distributions -support literal input of Greek, which is the preferred method for new -documents. [G. Milde 2013/12/02]} +support literal input of Greek characters, which is the preferred method for +new documents. [G. Milde 2013/12/02]} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -59,11 +51,11 @@ documents. [G. Milde 2013/12/02]} The \texttt{greek} option of the \texttt{babel} package is an attempt to make it possible for someone to write Greek text with \LaTeX. The current version of the \texttt{greek} option supports the -\textgreek{monotonik'o} and \textgreek{polutonik'o} +\langGreek{monotonik'o} and \langGreek{polutonik'o} accentual systems of the Greek language. -Moreover, there is now support for Greek numerals. One can produce easily +Moreover, there is now support for Greek numerals. One can produce easily valid Greek numerals both in uppercase and lowercase forms, e.g, -\textgreek{\greeknumeral{1997}}\ and \textgreek{\Greeknumeral{1997}}. The +\langGreek{\greeknumeral{1997}}\ and \langGreek{\Greeknumeral{1997}}. The labels in second and fourth level enumerations are lowercase and uppercase Greek numerals correspondingly. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -78,60 +70,60 @@ which are mapped to their Greek ``counterparts'' by \TeX. The following table shows the transliteration employed: \begin{center} \begin{tabular}{|lllllllllllll|}\hline -\textgreek{a}& -\textgreek{b}& -\textgreek{g}& -\textgreek{d}& -\textgreek{e}& -\textgreek{z}& -\textgreek{h}& -\textgreek{j}& -\textgreek{i}& -\textgreek{k}& -\textgreek{l}& -\textgreek{m}& -\textgreek{n}\\ +\langGreek{a}& +\langGreek{b}& +\langGreek{g}& +\langGreek{d}& +\langGreek{e}& +\langGreek{z}& +\langGreek{h}& +\langGreek{j}& +\langGreek{i}& +\langGreek{k}& +\langGreek{l}& +\langGreek{m}& +\langGreek{n}\\ a& b& g& d& e& z& h& j& i& k& l& m& n\\ -\hline -\textgreek{x}& -\textgreek{o}& -\textgreek{p}& -\textgreek{r}& -\textgreek{sv}& -\textgreek{t}& -\textgreek{u}& -\textgreek{f}& -\textgreek{q}& -\textgreek{y}& -\textgreek{w}& -\textgreek{c}& \hbox{ } \\ -x& o& p& r& s& +\hline +\langGreek{x}& +\langGreek{o}& +\langGreek{p}& +\langGreek{r}& +\langGreek{sv}& +\langGreek{t}& +\langGreek{u}& +\langGreek{f}& +\langGreek{q}& +\langGreek{y}& +\langGreek{w}& +\langGreek{c}& \hbox{ } \\ +x& o& p& r& s& t& u& f& q& y& w& c& \hbox{ }\\ \hline \end{tabular} \end{center} -Please, note that in order to produce the letter \textgreek{sv} in isolation -on has to type \texttt{sv}. This feature is due to the strong ligature -that \TeX\ employs. -In the ``modern'' \textgreek{monotonik'o} accentual system only one accent is -used---\textgreek{oxe'ia} (acute). In the traditional \textgreek{polutonik'o} -accentual system we +Please, note that in order to produce the letter \langGreek{sv} in isolation +one has to type \texttt{sv}. This feature is due to the strong ligature +that \TeX\ employs. +In the ``modern'' \langGreek{monotonik'o} accentual system only one accent is +used---\langGreek{oxe'ia} (acute). In the traditional \langGreek{polutonik'o} +accentual system we need more accents and breathing signs. We can produce an accented letter by prefixing the letter with he symbol that denotes the accent, e.g., -\texttt{>a'erac} produces the word \sg >a'erac.\sa\footnote{For the +\texttt{>a'erac} produces the word \sg >a'erac.\sa\footnote{For the technically inclined reader, we must say that \TeX\ uses the ligature table of the font in order to determine the character that corresponds to the -input character sequence.} Here are the symbols that are recognized: +input character sequence.} Here are the symbols that are recognized: \begin{center} \begin{tabular}{cccc}\hline Accent & Symbol & Example & Output\\ \hline -acute & \texttt{'} & \texttt{g'ata} & \textgreek{g'ata}\\ -grave & \texttt{`} & \texttt{dad`i} & \textgreek{dad`i}\\ -circumflex & \verb+~+ & \verb+ful~hc+ & \sg\textgreek{ful~hc}\sa\\ -rough breathing & \verb+<+ & \verb+<'otan+ & \sg\textgreek{<'otan}\sa\\ -smooth breathing & \verb+>+ & \verb+>'aneu+ & \sg\textgreek{>'aneu}\sa\\ -subscript & \texttt{|} & \verb+>anate'ilh|+ & \sg\textgreek{>anate'ilh|}\\ -dieresis & \texttt{"}& \texttt{qa"ide'uh|c} & \sg\textgreek{qa"ide'uh|c}\\ +acute & \texttt{'} & \texttt{g'ata} & \langGreek{g'ata}\\ +grave & \texttt{`} & \texttt{dad`i} & \langGreek{dad`i}\\ +circumflex & \verb+~+ & \verb+ful~hc+ & \sg\langGreek{ful~hc}\sa\\ +rough breathing & \verb+<+ & \verb+<'otan+ & \sg\langGreek{<'otan}\sa\\ +smooth breathing & \verb+>+ & \verb+>'aneu+ & \sg\langGreek{>'aneu}\sa\\ +subscript & \texttt{|} & \verb+>anate'ilh|+ & \sg\langGreek{>anate'ilh|}\\ +dieresis & \texttt{"}& \texttt{qa"ide'uh|c} & \sg\langGreek{qa"ide'uh|c}\\ \hline \end{tabular} \end{center} @@ -141,21 +133,22 @@ text is the punctuation marks used in the language: \begin{center} \begin{tabular}{ccc}\hline Punctuation Sign & Symbol & Output\\ \hline -period & \texttt{.} & \sg\textgreek{.}\sa\\ -semicolon & \texttt{;} & \sg\textgreek{;}\sa\\ -exclamation mark & \texttt{!} & \sg\textgreek{!}\sa\\ -comma & \texttt{,} & \sg\textgreek{,}\sa\\ -colon & \texttt{:} & \sg\textgreek{:}\sa\\ -question mark & \texttt{?} & \sg\textgreek{?}\sa\\ -left apostrophe & \texttt{``} & \sg\textgreek{``}\sa\\ -right apostrophe & \texttt{''} & \sg\textgreek{''}\sa\\ -left quotation mark & \texttt{((} & \sg\textgreek{))}\sa\\ -right quotation mark & \texttt{))} & \sg\textgreek{))}\sa\\ \hline +period & \texttt{.} & \sg\langGreek{.}\sa\\ +semicolon & \texttt{;} & \sg\langGreek{;}\sa\\ +exclamation mark & \texttt{!} & \sg\langGreek{!}\sa\\ +comma & \texttt{,} & \sg\langGreek{,}\sa\\ +colon & \texttt{:} & \sg\langGreek{:}\sa\\ +question mark & \texttt{?} & \sg\langGreek{?}\sa\\ +left apostrophe & \texttt{``} & \sg\langGreek{``}\sa\\ +right apostrophe & \texttt{''} & \sg\langGreek{''}\sa\\ +right apostrophe (alias) & \texttt{"} & \sg\langGreek{"}\sa\\ +left quotation mark & \texttt{((} & \sg\langGreek{((}\sa\\ +right quotation mark & \texttt{))} & \sg\langGreek{))}\sa\\ \hline \end{tabular} \end{center} Using these conventions it is a straightforward exercise to write Greek -\textgreek{polutoniko} text. For example the following excerpt from -\textgreek{D'uskoloc} of \textgreek{M'enandroc} +\langGreek{polutoniko} text. For example the following excerpt from +\langGreek{D'uskoloc} of \langGreek{M'enandroc} \sg \begin{quote} T'i f'hic? <Id`wn >enj'ede pa~id'' >eleuj'eran\\ @@ -177,69 +170,76 @@ Once the Greek language is selected with the command \verb+\selectlanguage{greek}+ \end{center} whatever we type will be typeset with the Greek fonts. The command -\verb+\textlatin+ can be used for short passages in some language that -uses the Latin alphabet, while the the command \verb+\latintext+ changes -the base fonts to the ones used by languages that use the Latin alphabet. +\verb+\ensureascii+ can be used for short passages in some language that +uses the Latin alphabet. However, all words will be hyphenated by following the Greek hyphenation -rules! Similar commands are available once someone has selected some -other language. The commands \verb+\textgreek+ and \verb+\greektext+ -behave exactly like their ``latin'' counterparts. For example, the -word \textgreek{M'imhc} has been produced with the command -\verb+\textgreek{M'imhc}+. Please note that certain symbols cannot have -their expected result for Greek text, unless someone has selected the Greek +rules! Therefore it is better to switch to the other language +with \verb+\foreignlanguage+. The commands \verb+\lgrfont+ and +\verb+\greektext+ switch to the Greek LGR font encoding. +For example, the word \lgrfont{M'imhc} has been produced with the command +\verb+\lgrfont{M'imhc}+. Please note that Greek hyphenation and upcasing rules +are not applied and certain symbols cannot have +their expected result for Greek text, unless someone has selected the Greek language, e.g., \verb+~+ is such a symbol. As we have mentioned above this version of the \texttt{greek} option of the \texttt{babel} package supports the use of Greek numerals. The commands -\verb+\greeknumeral+ and \verb+\Greeknumeral+ produce the lowercase and -the uppercase Greek numeral, e.g., +\verb+\greeknumeral+ and \verb+\Greeknumeral+ produce the lowercase and +the uppercase Greek numeral, e.g., \begin{center} \begin{tabular}{cc}\hline Command & Output\\ \hline -\verb+\Greeknumeral{9999}+ & \sg\textgreek{\Greeknumeral{9999}}\\ -\verb+\greeknumeral{9999}+ & \sg\textgreek{\greeknumeral{9999}}\\ +\verb+\Greeknumeral{9999}+ & \sg\langGreek{\Greeknumeral{9999}}\\ +\verb+\greeknumeral{9999}+ & \sg\langGreek{\greeknumeral{9999}}\\ \hline \end{tabular} \end{center} In order to correctly typeset the greek numerals the greek option file -provides the following commands: +uses the following commands: \begin{center} \begin{tabular}{cc}\hline Command & Output\\ \hline -\verb+\textkoppa+ & \textgreek{\textkoppa}\\ -\verb+\textsampi+ & \textgreek{\textsampi}\\ -\verb+\textstigma+ & \textgreek{\textstigma}\\ -\verb+\textKoppa+ & \textgreek{\textKoppa}\\ -\verb+\textSampi+ & \textgreek{\textSampi}\\ -\verb+\textStigma+ & \textgreek{\textStigma}\\ +% symbol names updated to current defaults [GM] +% name used by package "greek-fontenc" % obsolete name +\verb+\textdexiakeraia+ & \langGreek{\textdexiakeraia}\\ % \anwtonos +\verb+\textaristerikeraia+ & \langGreek{\textaristerikeraia}\\ % \katwtonos +\verb+\textkoppa+ & \langGreek{\textkoppa}\\ % \qoppa +\verb+\textsampi+ & \langGreek{\textsampi}\\ % \sampi +\verb+\textstigma+ & \langGreek{\textstigma}\\ % \stigma +\verb+\textKoppa+ & \langGreek{\textKoppa}\\ % n.a. (\qoppa) +\verb+\textSampi+ & \langGreek{\textSampi}\\ +\verb+\textStigma+ & \langGreek{\textStigma}\\ \hline \end{tabular} \end{center} -In traditional Greek typography the first paragraph after a header is -always indented, contrary to the habit of, say, American typography. This -effect can be achieved by using the package \verb+indentfirst+. - Additional symbols are available: \begin{center} \begin{tabular}{cc}\hline Command & Output\\ \hline -\verb+\textDigamma+ & \textgreek{\textDigamma}\\ -\verb+\textdigamma+ & \textgreek{\textdigamma}\\ -\verb+\VarQoppa+ & \textgreek{\textQoppa}\\ -\verb+\textqoppa+ & \textgreek{\textqoppa}\\ -\verb+\texteuro+ & \textgreek{\euro}\\ -\verb+\textperthousand+ & \textgreek{\permill}\\ +% symbol names updated to current defaults [GM] +% name used by package "greek-fontenc" % obsolete name +\verb+\textDigamma+ & \langGreek{\textDigamma}\\ % \Digamma +\verb+\textdigamma+ & \langGreek{\textdigamma}\\ % \ddigamma +\verb+\textQoppa+ & \langGreek{\textQoppa}\\ % \varqoppa +\verb+\textqoppa+ & \langGreek{\textqoppa}\\ % \VarQoppa +\verb+\textvarstigma+ & \langGreek{\textvarstigma}\\ % \varstigma +\verb+\texteuro+ & \langGreek{\texteuro}\\ % \texteuro +\verb+\textperthousand+ & \langGreek{\textperthousand}\\ % \permill \hline \end{tabular} \end{center} +In traditional Greek typography the first paragraph after a header is +always indented, contrary to the habit of, say, American typography. This +effect can be achieved by using the package \verb+indentfirst+. + The package \verb|athnum| provides the command \verb|\athnum|, with which one can produce the so called \textit{Athenian numerals}: \begin{center} \begin{tabular}{cc}\hline Command & Output\\ \hline -\verb|\athnum{1997}| & \textgreek{\athnum{1997}}\\ +\verb|\athnum{1997}| & \langGreek{\athnum{1997}}\\ \hline \end{tabular} \end{center} diff --git a/macros/latex/contrib/sillypage/sillypage-example.pdf b/macros/latex/contrib/sillypage/sillypage-example.pdf Binary files differindex faee1580b7..3d8180932b 100644 --- a/macros/latex/contrib/sillypage/sillypage-example.pdf +++ b/macros/latex/contrib/sillypage/sillypage-example.pdf diff --git a/macros/latex/contrib/sillypage/sillypage.dtx b/macros/latex/contrib/sillypage/sillypage.dtx index 6a3b7dbcd3..86982db30d 100644 --- a/macros/latex/contrib/sillypage/sillypage.dtx +++ b/macros/latex/contrib/sillypage/sillypage.dtx @@ -1,5 +1,5 @@ % \iffalse meta-comment -% Copyright (C) 2022 +% Copyright (C) 2023 % by Phelype Oleinik <phelype.oleinik@latex-project.org> % Paulo Cereda <cereda.paulo@gmail.com> % samcarter <sam.carter8@aol.com> @@ -19,8 +19,8 @@ % by Phelype Oleinik, Paulo Cereda, samcarter and Ulrike Fischer. % %<*package> -\def\sillypageDate{2022-08-02} -\def\sillypageVersion{1.5} +\def\sillypageDate{2023-03-04} +\def\sillypageVersion{1.6} %</package> %<*driver> \documentclass[a4paper,full]{l3doc} diff --git a/macros/latex/contrib/sillypage/sillypage.ins b/macros/latex/contrib/sillypage/sillypage.ins index 8c3f6c6a2d..a17b063726 100644 --- a/macros/latex/contrib/sillypage/sillypage.ins +++ b/macros/latex/contrib/sillypage/sillypage.ins @@ -1,5 +1,5 @@ %% -%% Copyright (C) 2022 +%% Copyright (C) 2023 %% by Phelype Oleinik <phelype.oleinik@latex-project.org> %% Paulo Cereda <cereda.paulo@gmail.com> %% samcarter <sam.carter8@aol.com> @@ -33,7 +33,7 @@ This is a generated file. -Copyright 2022 Phelype Oleinik /phelype.oleinik@latex-project.org/ +Copyright 2023 Phelype Oleinik /phelype.oleinik@latex-project.org/ Paulo Cereda /cereda.paulo@gmail.com/ samcarter /sam.carter8@aol.com/ Ulrike Fischer /fischer@troubleshooting-tex.de/ diff --git a/macros/latex/contrib/sillypage/sillypage.pdf b/macros/latex/contrib/sillypage/sillypage.pdf Binary files differindex 3b1dcfa8fe..3efa13e7d7 100644 --- a/macros/latex/contrib/sillypage/sillypage.pdf +++ b/macros/latex/contrib/sillypage/sillypage.pdf diff --git a/macros/latex/contrib/sillypage/sillywalk-map.pdf b/macros/latex/contrib/sillypage/sillywalk-map.pdf Binary files differindex 1ef96bfca1..b9dc8a8ccf 100644 --- a/macros/latex/contrib/sillypage/sillywalk-map.pdf +++ b/macros/latex/contrib/sillypage/sillywalk-map.pdf diff --git a/macros/latex/contrib/tablestyles/README b/macros/latex/contrib/tablestyles/README deleted file mode 100644 index bc54d34775..0000000000 --- a/macros/latex/contrib/tablestyles/README +++ /dev/null @@ -1,24 +0,0 @@ -tablestyles -=========== -Styles for tables with new commands. - -== Description == - -This package tries introduce a separation of text and style -in tables by defining reusable table commands and a simple -interface to define a style for a table. -Furthermore the package defines common used column styles. - -== Contents == - -This work contains: -- The tablestyles files: - - tablestyles.dtx - - tablestyles.ins -- The documentation: - - tablestyles.pdf -- This README file - -== Maintained by == -Matthias Pospiech -matthias@pospiech.eu
\ No newline at end of file diff --git a/macros/latex/contrib/tablestyles/tablestyles.dtx b/macros/latex/contrib/tablestyles/tablestyles.dtx deleted file mode 100644 index e3366c9f52..0000000000 --- a/macros/latex/contrib/tablestyles/tablestyles.dtx +++ /dev/null @@ -1,1639 +0,0 @@ -% \iffalse meta-comment -% -% File: tablestyles.sty -% Version: 2014/06/27 v0.1 -% Author: Matthias Pospiech -% Email: <matthias.pospiech@gmx.de> -% -% Copyright (C) 2014 by Matthias Pospiech (matthias@pospiech.eu) -% --------------------------------------------------------------------------- -% 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 `maintained'. -% -% The Current Maintainer of this work is Matthias Pospiech. -% -% This work consists of the files tablestyles.dtx and tablestyles.ins -% and the derived filebase tablestyles.sty. -% -% -% \fi -% -% \iffalse -%<*driver> -\ProvidesFile{tablestyles.dtx} -%</driver> -%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01] -%<package>\ProvidesPackage{tablestyles} -%<*package> - [2014/06/27 0.1 enhanced table commands for configurable table layout] -%</package> -% -%<*driver> -\documentclass{ltxdoc} -\usepackage{hypdoc} -\RequirePackage[% - loadHyperref=true, - createIndexEntries=false, - applyLayout=true] -{doctools} % -% -\usepackage{tablestyles}[2014/06/27] -\EnableCrossrefs -\CodelineIndex -\RecordChanges -% -%%% Additional packages -\usepackage{soulutf8} -\usepackage[table]{xcolor} -\usepackage{enumitem} -\usepackage{tabu} -\usepackage{float} -\usepackage{ltxtable} -% -\listfiles -\begin{document} - \DocInput{tablestyles.dtx} - \PrintChanges - \PrintIndex -\end{document} -%</driver> -% \fi -% -% -% -% \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{0.1}{2014/06/27}{Initial version.} -% -% \DoNotIndex{\newcommand,\newenvironment} -% -% \providecommand*{\url}{\texttt} -% \GetFileInfo{tablestyles.dtx} -% \title{The \textsf{tablestyles} package} -% \author{Matthias Pospiech \\ \url{matthias.pospiech@gmx.de}} -% \date{\fileversion~from \filedate} -% -% \maketitle -% \begin{abstract}\noindent -% LaTeX unfortunately does not include a good separation of text and style in -% tables. This package tries to solve this problem by defining reusable table -% commands and an interface to define a style for table. Furthermore the -% package defines common used column styles and a bugfix command for lists in -% tables. -% \end{abstract} -% \tableofcontents -% -% \section{Introduction} -% -% This package provides commands to be used inside a tabular environment, -% which allow the user to define the style of a table once but apply it to -% every table using the commands defined by this package. -% The styles are divided into the head, subhead and the body of the table. -% Further this package introduces new column types and enhancing the -% typesetting of lists inside tables. -% -% \section{Usage} -% -% The usage is first described using a brief review of the possibilities -% to change the layout of a table using the font size, font color, -% line appearance and the background colors of special and -% alternating cells. The latter is based on the xcolor/colortab package. -% Subsequent the commands provided by the package are explained in detail -% followed by a description of the creation of new styles. -% -% \subsection{Loading} -% The package is loaded with -% \iffalse -%<*example> -% \fi -\begin{lstlisting}[style=lstDemoStyleLaTeXCode]% -\usepackage{tablestyles} -\end{lstlisting} -% \iffalse -%</example> -% \fi -% \noindent It should be loaded after the xcolor package and before the -% hyperref package. -% -% \subsection{Tutorial} -% -% The code listing~\ref{code:manualtable} shows a tabular with all commands -% necessary to set up the style of the table displayed below -% (table~\ref{tab:examplenostyle}). In this code the commands of this package -% are \emph{not} used. The equivalent code with the commands of this package -% is provided in the following code listing~\ref{code:tablewithstyle}. -% \iffalse -%<*example> -% \fi - -\colorlet{colorbody}{white!100} -\colorlet{colorsubhead}{gray!30} -\colorlet{colorhead}{gray!25} -\colorlet{colorrow}{gray!15.0} - -\begin{lstlisting}[style=lstDemoStyleLaTeXCode , basicstyle=\small\ttfamily, - captionpos=b,caption={example code for a table with manual changes to the appereance.},label={code:manualtable}] -\begin{table} -% -\small % fontsize -\sffamily % font family = sans serif -\centering % alignment of tabular -\renewcommand{\arraystretch}{1.4} % larger cell height -\rowcolors{1}{colorrow}{colorbody}% -% -\begin{tabular}{*{2}{p{0.45\textwidth}}} - \hline - \rowcolor{colorhead} - \bfseries header & - \bfseries header \\ - \hline - % - content & content \\ - content & content \\ - content & content \\ - content & content \\ - content & content \\ - % - \rowcolor{colorsubhead} - subhead & subhead \\ - % - content & content \\ - content & content \\ - \hline -\end{tabular} -\caption{table with bold header font} -\end{table} -\end{lstlisting} - -% \iffalse -%</example> -% \fi -% -% \begin{table}[H] -% % -% \small -% \sffamily -% \centering -% \renewcommand{\arraystretch}{1.4} -% \rowcolors{1}{colorrow}{colorbody} -% -% \begin{tabular}{*{2}{p{0.45\textwidth}}} -% \hline -% \rowcolor{colorhead} -% \bfseries header & -% \bfseries header \\ -% \hline -% content & content \\ -% content & content \\ -% content & content \\ -% content & content \\ -% content & content \\ -% \rowcolor{colorsubhead} -% subhead & subhead \\ -% content & content \\ -% content & content \\ -% \hline -% \end{tabular} -% -% \caption{table with bold header font} -% \label{tab:examplenostyle} -% \end{table} -% -% The aim of this package is to generalize the generation of such tabular -% styles. The code listing~\ref{code:tablewithstyle} demonstrates the usage, -% with the result shown in table~\ref{tab:examplestyle}, -% which is identical with the previous one (table~\ref{tab:examplenostyle}). -% -% \iffalse -%<*example> -% \fi - -\begin{lstlisting}[style=lstDemoStyleLaTeXCode , captionpos=b,caption={example code for a table with style commands.}, label={code:tablewithstyle}] -\begin{table} -% -\tablestyle[sansbold] -% -\begin{tabular}{*{2}{p{0.45\textwidth}}} -\theadstart - \thead header & - \thead header \\ -\tbody - % - content & content \\ - content & content \\ - content & content \\ - content & content \\ - content & content \\ - % - \tsubheadstart - \tsubhead subhead & - \tsubhead subhead \\ - % - content & content \\ - content & content \\ - \tend -\end{tabular} -\caption{table with bold header font using the styles by this package} -\end{table} -\end{lstlisting} - -% \iffalse -%</example> -% \fi -% -% \begin{table}[H] -% % -% \tablestyle[sansbold] -% -% \begin{tabular}{*{2}{p{0.45\textwidth}}} -% \theadstart -% \thead header & -% \thead header \\ -% \tbody -% % -% content & content \\ -% content & content \\ -% content & content \\ -% content & content \\ -% content & content \\ -% % -% \tsubheadstart -% \tsubhead subhead & -% \tsubhead subhead \\ -% % -% content & content \\ -% content & content \\ -% \tend -% \end{tabular} -% \caption{table with bold header font using the styles by this package} -% \label{tab:examplestyle} -% \end{table} -% -% The following sections show the possibilities of applying a style in general -% and how to style a heading or subheading -% -% \subsubsection{applying styles} -% -% The command \DescribeMacro{\tablestyle}\cs{tablestyle}\oarg{style} is used -% to choose the style of the table. It redefines all commands that apply -% changes to font, colors, lines, etc. It is required before the tabular -% environment to apply the changes to the complete table. -% If not inserted the last chosen layout, or if never applied the standard -% layout is used. -% -% To apply lines or any other elements at the top and bottom of a table the -% commands \DescribeMacro{\tbegin}\cs{tbegin} at the beginning -% \DescribeMacro{\tend}\cs{tend} at the end of the table are used. -% -% \iffalse -%<*example> -% \fi - -\begin{lstlisting}[style=lstDemoStyleLaTeXCode , captionpos=b,caption={code example with table style applied.}, label={code:tablestylebasic}] -\begin{table} -% -\tablestyle[stylename] -% -\begin{tabular}{*{2}{p{0.45\textwidth}}} -\tbegin - % - content & content \\ - content & content \\ -\tend -\end{tabular} -\end{table} -\end{lstlisting} - -% \iffalse -%</example> -% \fi -% -% \subsubsection{headings and subheadings} -% -% If a table starts with a header \cs{tbegin} is replaced by \cs{theadstart} -% and the following main table content starts with -% \DescribeMacro{\tbody}\cs{tbody} (as shown in the previous code -% listing~\ref{code:tablestylebasic}). In general the commands -% \DescribeMacro{\theadstart}\cs{theadstart} and -% \DescribeMacro{\tsubheadstart}\cs{tsubheadstart} set up -% the color of the heading row and print out a line by default. -% \DescribeMacro{\theadend}\cs{theadend} and -% \DescribeMacro{\tsubheadend}\cs{tsubheadend} can be used to print out a -% line afterwards (or apply any other useful properties at the end), but are -% empty by default. The properties of each cell in the heading are applied with -% \DescribeMacro{\thead}\cs{thead} and \DescribeMacro{\tsubhead}\cs{tsubhead}. -% Unfortunately the cell property command must be applied to each cell. The -% code listing~\ref{code:headings} demonstrates the implementation of -% heading and subheading. -% -% \iffalse -%<*example> -% \fi - -\begin{lstlisting}[style=lstDemoStyleLaTeXCode , captionpos=b,caption={code for heading and subheading.}, label={code:headings}] -\theadstart - \thead header & - \thead header \\ -\theadend % not necessary in default styles -\tbody - % - content & content \\ -... - content & content \\ - % - \tsubheadstart - \tsubhead subhead & - \tsubhead subhead \\ - \tsubheadend % not necessary in default styles - % -\end{lstlisting} - -% \iffalse -%</example> -% \fi -% -% If a heading or subheading shall span all columns of a table this can be -% achieved with the simplified commands -% \DescribeMacro{\theadrow}\cs{theadrow}\marg{number of cells}\marg{text} -% and the equivalent \DescribeMacro{\tsubheadrow}\cs{tsubheadrow}\marg{number -% of cells}\marg{text}. -% Note that these automatically insert a \cs{tabularnewline}. The first -% parameter therefore must match the number of columns in the table. -% -% \iffalse -%<*example> -% \fi - -\begin{lstlisting}[style=lstDemoStyleLaTeXCode , captionpos=b,caption={example for multi column rows.}, label={code:headrows}] -\theadstart -\theadrow{2}{full width header} -\tbody - % - content & content \\ - % -\tsubheadrow{2}{full width subheader} % -% - content & content \\ -\end{lstlisting} - -% \iffalse -%</example> -% \fi -% -% -% \subsection{Setup of styles} -% -% Style are applied to the table with the following commands -% \begin{itemize}[noitemsep] -% \item \cs{tbegin} -% \item \cs{tbody} -% \item \cs{tend} -% \item \cs{thead} -% \item \cs{theadstart} -% \item \cs{theadend} -% \item \cs{tsubheadstart} -% \item \cs{tsubheadend} -% \item \cs{tsubhead} -% \item \cs{theadrow} -% \item \cs{tsubheadrow} -% \end{itemize} -% which were described in the previous section. To define the style the following -% commands are used which define the font, the color, and other settings. -% -% -% \subsubsection{fontsize} -% Font sizes can be set up using \DescribeMacro{\setuptablefontsize} -% \cs{setuptablefontsize}\marg{name}\marg{size definition} and be retrieved with -% \DescribeMacro{\tablefontsize}\cs{tablefontsize}\marg{name}. Predefined are sizes -% for \emph{body} and \emph{head} -% -% \iffalse -%<*example> -% \fi - -\begin{lstlisting}[style=lstDemoStyleLaTeXCode , captionpos=b,caption={configuration and selection of font sizes .}, label={code:fontsizes}] -% definition -\setuptablefontsize{body}{\small} -... -% request size -\tablefontsize{body} % outputs \small -\end{lstlisting} - -% \iffalse -%</example> -% \fi -% -% \subsubsection{colors} -% Colors are defined and requested similar to font sizes, here with the -% commands \DescribeMacro{\setuptablecolor} -% \cs{setuptablecolor}\marg{color name}\marg{color definition} and -% \DescribeMacro{\tablecolor}\cs{tablecolor}\marg{color name}. The color -% definition % must be in the notation of xcolor. -% Predefined are colors for \emph{body}, \emph{head}, \emph{subhead} and -% \emph{row}. -% -% \iffalse -%<*example> -% \fi - -\begin{lstlisting}[style=lstDemoStyleLaTeXCode , captionpos=b,caption={configuration and selection of colors.}, label={code:colors}] -% definition -\setuptablecolor{body}{white!100} -... -% request color -\tablecolor{body} % outputs white!100 -\end{lstlisting} - -% \iffalse -%</example> -% \fi - -% \subsubsection{alternating row colors} -% -% Alternating rows are implemented using the \cs{rowcolors} command of the -% colortbl package (should be loaded by xcolor). -% Here the colors \emph{body} and \emph{row} are alternated. They are -% introduced using \DescribeMacro{\tablealtcolored}\cs{tablealtcolored} and -% can be disabled (until the style of tables is reset using \cs{tablestyle}) -% with \DescribeMacro{\disablealternatecolors}\cs{disablealternatecolors}. -% The examples below show the effect. -% -% \iffalse -%<*example> -% \fi - -\begin{minipage}[t]{0.48\linewidth} -\begin{lstlisting}[style=lstDemoStyleLaTeXCode , captionpos=b,caption={automatic alternating row colors.}, label={code:rowcolors}] -\begin{table}[H] -\tablestyle % using \tablealtcolored -\begin{tabular}{*{2}{p{0.25\textwidth}}} -\tbegin - content & content \\ - content & content \\ - content & content \\ - content & content \\ - \tend -\end{tabular} -\end{table} \end{lstlisting} -\end{minipage} -\hfill -\begin{minipage}[t]{0.48\linewidth} -\begin{table}[H] -\tablestyle -\begin{tabular}{*{2}{p{0.25\textwidth}}} -\tbegin - content & content \\ - content & content \\ - content & content \\ - content & content \\ - \tend -\end{tabular} -\end{table} -\end{minipage} \newline - -\begin{minipage}[t]{0.48\linewidth} -\begin{lstlisting}[style=lstDemoStyleLaTeXCode , captionpos=b,caption={disabled alternating row colors.}, label={code:norowcolors}] -\begin{table}[H] -\tablestyle -\disablealternatecolors -\begin{tabular}{*{2}{p{0.25\textwidth}}} -\tbegin - content & content \\ - content & content \\ - content & content \\ - content & content \\ - \tend -\end{tabular} -\end{table} -\end{lstlisting} -\end{minipage} -\hfill -\begin{minipage}[t]{0.48\linewidth} -\begin{table}[H] -\tablestyle -\disablealternatecolors -\begin{tabular}{*{2}{p{0.25\textwidth}}} -\tbegin - content & content \\ - content & content \\ - content & content \\ - content & content \\ - \tend -\end{tabular} -\end{table} -\end{minipage} \newline - -% \iffalse -%</example> -% \fi -% -% \subsubsection{colored lines in tables} -% -% Horizontal lines are inserted with \cs{hline} and vertical lines with -% \cs{vline}. These can be changed in color with -% \lstinline!\arrayrulecolor{red}\hline! and \lstinline!\color{red}\vline!. -% This package provides the commands -% \DescribeMacro{\coloredhline}\cs{coloredhline}\marg{color} and -% \DescribeMacro{\coloredvline}\cs{coloredvline}\marg{color} in order to -% generalise the setting of line colors. -% The code listing~\ref{code:coloredlines} shows an example of their usage. -% Note that this example uses tabularx and makes use of the new columnstyle -% `C'. -% -% \iffalse -%<*example> -% \fi - -\begin{lstlisting}[style=lstDemoStyleLaTeXCode , captionpos=b,caption={disabled alternating row colors.}, label={code:coloredlines}] -\colorlet{grayline}{gray!70} -\definecolor{blueline}{rgb}{0,0.27,0.55} - -\begin{table} -\tablestyle - % Overwriting style, instead of defining a new one - \renewcommand{\tbegin}{\coloredhline{blueline}} - \renewcommand{\tbody}{\coloredhline{blueline}} - \renewcommand{\tend}{\coloredhline{blueline}} -\begin{tabularx}{0.8\textwidth}{% -l!{\coloredvline{grayline}} -CC!{\coloredvline{grayline}} -CC!{\coloredvline{grayline}} -C -} -\theadstart -\thead header & -\multicolumn{2}{>{\columncolor{\tablecolor{head}}\thead} - c!{\coloredvline{grayline}}}{header} & -\multicolumn{2}{>{\columncolor{\tablecolor{head}}\thead} - c!{\coloredvline{grayline}}}{header} & -\multicolumn{1}{>{\columncolor{\tablecolor{head}}\thead}c} - {header} -% -\tabularnewline -\tbody -% -description & 0,3 & 0,35 & 0,5 & 0,65 & 0,80 \\ -description & 0,3 & 0,35 & 0,5 & 0,65 & 0,80 \\ -description & 0,3 & 0,35 & 0,5 & 0,65 & 0,80 \\ -description & 0,3 & 0,35 & 0,5 & 0,65 & 0,80 \\ -\tend -\end{tabularx} -\end{table} -\end{lstlisting} - -\colorlet{grayline}{gray!70} -\definecolor{blueline}{rgb}{0,0.27,0.55} - -\begin{table}[H] -\tablestyle - \renewcommand{\tlinetop}{\coloredhline{blueline}} - \renewcommand{\tlinemid}{\coloredhline{blueline}} - \renewcommand{\tlinebottom}{\coloredhline{blueline}} -\begin{tabularx}{0.8\textwidth}{% -l!{\coloredvline{grayline}} -ZZ!{\coloredvline{grayline}} -ZZ!{\coloredvline{grayline}} -Z -} -\theadstart -header & -\multicolumn{2}{>{\columncolor{\tablecolor{head}}\thead}c -!{\coloredvline{grayline}}} -{header} & -\multicolumn{2}{>{\columncolor{\tablecolor{head}}\thead}c -!{\coloredvline{grayline}}} -{header} & -\multicolumn{1}{>{\columncolor{\tablecolor{head}}\thead}c} -{header} -% -\tabularnewline -\tbody -% -description & 0,3 & 0,35 & 0,5 & 0,65 & 0,80\\ -description & 0,3 & 0,35 & 0,5 & 0,65 & 0,80\\ -description & 0,3 & 0,35 & 0,5 & 0,65 & 0,80\\ -description & 0,3 & 0,35 & 0,5 & 0,65 & 0,80\\ -\tend -\end{tabularx} -\caption{table with colored vertical and horizontal lines} -\label{tab:coloredlines} -\end{table} - -% \iffalse -%</example> -% \fi -% -% \subsubsection{Table styles} -% -% Complete styles are applied using -% \DescribeMacro{\tablestyle}\cs{tablestyle}\oarg{style name} -% and defined with \DescribeMacro{\setuptablestyle}\cs{setuptablestyle} -% \marg{style name}\marg{style definition}. If no argument is given for the -% command \cs{tablestyle} the style with name \emph{default} is used. -% Within the definition of styles the command \DescribeMacro{\resettablestyle} -% \cs{resettablestyle} has a special meaning. Its purpose is to reset a style -% before the actual style definitions are applied. Any change to this command -% has thus an influence to all styles using this command. -% -% The default style for example is defined by the code -% listing~\ref{code:setupdefaultstyle}. -% It sets up font sizes for body and head (used in \cs{head} and -% \cs{subhead}), defines the font style using the sans serif font family, -% redefines the \cs{arraystretch} and introduces alternating row colors with -% \cs{tablealtcolored}. -% \iffalse -%<*example> -% \fi - -\begin{lstlisting}[style=lstDemoStyleLaTeXCode , captionpos=b,caption={definition of the default style.}, label={code:setupdefaultstyle}] - \setuptablestyle{default}{% - \resettablestyle - \renewcommand{\arraystretch}{1.4} - \centering - \sffamily - \upshape% - \tablefontsize{body} - \tablealtcolored% - \renewcommand{\thead}{% -\tablefontsize{head}% -\ignorespaces% - } - \renewcommand{\tsubhead}{% -\tablefontsize{head}% -\ignorespaces% - } -} -\end{lstlisting} - -% \iffalse -%</example> -% \fi -% -% The package defines the styles -% \begin{itemize}[noitemsep] -% \item default (sans serif fonts, alternating row colors, -% header with gray background color) -% \item roman (as default style, but with roman fonts) -% \item sansbold (as default style, but with bold heading font) -% \item sansboldbw (as sansbold style, but with darker heading background) -% \end{itemize} -% -% These styles are demonstrated by the following tables -% \ref{tab:style:default} - \ref{tab:style:sansboldbw}. -% -% \iffalse -%<*example> -% \fi - -\begin{table}[H] -% -\tablestyle[default] -% -\begin{tabular}{*{2}{p{0.45\textwidth}}} -\theadstart - \thead header & - \thead header \\ -\tbody - % - content & content \\ - content & content \\ - content & content \\ - % - \tsubheadstart - \tsubhead subhead & - \tsubhead subhead \\ - % - content & content \\ - content & content \\ - \tend -\end{tabular} -\caption{default style} -\label{tab:style:default} -\end{table} - -\begin{table}[H] -% -\tablestyle[roman] -% -\begin{tabular}{*{2}{p{0.45\textwidth}}} -\theadstart - \thead header & - \thead header \\ -\tbody - % - content & content \\ - content & content \\ - content & content \\ - % - \tsubheadstart - \tsubhead subhead & - \tsubhead subhead \\ - % - content & content \\ - content & content \\ - \tend -\end{tabular} -\caption{roman style} -\label{tab:style:roman} -\end{table} - -\begin{table}[H] -% -\tablestyle[sansbold] -% -\begin{tabular}{*{2}{p{0.45\textwidth}}} -\theadstart - \thead header & - \thead header \\ -\tbody - % - content & content \\ - content & content \\ - content & content \\ - % - \tsubheadstart - \tsubhead subhead & - \tsubhead subhead \\ - % - content & content \\ - content & content \\ - \tend -\end{tabular} -\caption{sansbold style} -\label{tab:style:sansbold} -\end{table} - -\begin{table}[H] -% -\tablestyle[sansboldbw] -% -\begin{tabular}{*{2}{p{0.45\textwidth}}} -\theadstart% -\thead header & -\thead header \\ -\tbody - % - content & content \\ - content & content \\ - content & content \\ - % - \tsubheadstart - \tsubhead subhead & - \tsubhead subhead \\ - % - content & content \\ - content & content \\ - \tend -\end{tabular} -\caption{sansboldbw style} -\label{tab:style:sansboldbw} -\end{table} - -% \iffalse -%</example> -% \fi -% -% \subsection{Column type definitions} -% \DescribeMacro{l}\DescribeMacro{c}\DescribeMacro{r}\DescribeMacro{p} -% \LaTeX{} defines itself only the columntypes left (l), right(c) and center -% (c). Unfortunatley these do not automatically wrap text in cells. -% even if the text overrungs the width of the page. For fixed width columns -% this can be solved using the p-columntype. These default -% columntypes are shown in listing~\ref{code:ct:default} and table -% \ref{tab:ct:standard}. However a combination of paragraph like columns and -% non-justified alignment requires the definition of new column types, which -% are shown hereafter. -% -% \iffalse -%<*example> -% \fi - -\begin{lstlisting}[style=lstDemoStyleLaTeXCode , captionpos=b,caption={example of default column types.}, label={code:ct:default}] -\begin{table} -\tablestyle -% -\begin{tabular}{|l|c|r|p{0.3\linewidth}|} -\theadstart - \thead \centering header l & - \thead \centering header c & - \thead \centering header r & - \thead \centering header p \tabularnewline -\tbody -% -left & center & right & -text which is considerably longer than the width of the column \\ -\tend -\end{tabular} -\caption{standard column types (lcrp)} -\end{table} -\end{lstlisting} - -% \iffalse -%</example> -% \fi -% -% \begin{table}[H] -% \tablestyle -% \begin{tabular}{|l|c|r|p{0.3\linewidth}|} -% \theadstart -% \thead \centering header l & -% \thead \centering header c & -% \thead \centering header r & -% \thead \centering header p \tabularnewline -% \tbody -% left & center & right & -% text which is considerably longer than the width of the column \\ -% \tend -% \end{tabular} -% \caption{standard column types (lcrp)} -% \label{tab:ct:standard} -% \end{table} -% -% \DescribeMacro{m}\DescribeMacro{b} -% The array package provides further the column types middle (m) and bottom -% (b), which act like the p-type, but provide a different vertical alignment -% as demonstrated in listing~\ref{code:ct:pmb} and table \ref{tab:ct:pmb}. -% -% \iffalse -%<*example> -% \fi - -\begin{lstlisting}[style=lstDemoStyleLaTeXCode , captionpos=b,caption={example of paragraph column types.}, label={code:ct:pmb}] -\begin{table} -\tablestyle -% -\begin{tabular}{|p{0.3\linewidth}|m{0.3\linewidth}|b{0.3\linewidth}|} -\theadstart - \thead \centering header p & - \thead \centering header m & - \thead \centering header b \tabularnewline -\tbody -% -text which is considerably longer than the width of the column & -text which is considerably longer than the width of the column & -text which is considerably longer than the width of the column \\ -\tend -\end{tabular} -\caption{column types (pmb)} -\end{table} -\end{lstlisting} - -% \iffalse -%</example> -% \fi -% -% \begin{table}[H] -% \tablestyle -% \begin{tabular}{|p{0.3\linewidth}|m{0.3\linewidth}|b{0.3\linewidth}|} -% \theadstart -% \thead \centering header p & -% \thead \centering header m & -% \thead \centering header b \tabularnewline -% \tbody -% % -% text which is considerably longer than the width of the column & -% text which is considerably longer than the width of the column & -% text which is considerably longer than the width of the column \\ -% \tend -% \end{tabular} -% \caption{column types (pmb)} -% \label{tab:ct:pmb} -% \end{table} -% -% \DescribeMacro{X}\DescribeMacro{Z}\DescribeMacro{Y} -% The tabularx-package provides a further column type (X), which uses -% automatically calculated column width. -% This package defines additional column types bases on X for centered (Z) and -% right (Y) aligned columns, shown -% table~\ref{tab:ct:XCY}, which is using the column definition: -% -% \iffalse -%<*example> -% \fi - -\begin{lstlisting}[style=lstDemoStyleLaTeXCode , captionpos=b,caption={example of tabularx type columns.}, label={code:ct:XZY}] -\begin{table} -\tablestyle -\begin{tabularx}{\textwidth}{|X|Z|Y|} -... -\end{lstlisting} - -% \iffalse -%</example> -% \fi -% -% \begin{table}[H] -% \tablestyle -% \begin{tabularx}{\textwidth}{|X|Z|Y|} -% \theadstart -% \thead \centering header X & -% \thead \centering header Z & -% \thead \centering header Y \tabularnewline -% \tbody -% text which is considerably longer than the width of the column & -% text which is considerably longer than the width of the column & -% text which is considerably longer than the width of the column \\ -% \tend -% \end{tabularx} -% \caption{column types (XZY)} -% \label{tab:ct:XZY} -% \end{table} -% -% -% \DescribeMacro{L}\DescribeMacro{C}\DescribeMacro{R} -% Furthermore, this package provides additional column types with fixed with -% and left (L), centered (C) and right (R) aligned column, each derived from -% the p-columntype. In the example (table~\ref{tab:ct:LZR}) the advantage of -% using ragged text alignment (L) in tables over the justified alignment (p) -% is clearly visible. -% -% \begin{table}[H] -% \tablestyle -% \begin{tabularx}{\textwidth}{|p{0.17\linewidth}|L{0.17\linewidth}|C{0.17\linewidth}|R{0.17\linewidth}|X|} -% \theadstart -% \thead \centering header p & -% \thead \centering header L & -% \thead \centering header C & -% \thead \centering header R & -% \thead \centering header X \tabularnewline -% \tbody -% text which is considerably longer than the width of the column & -% text which is considerably longer than the width of the column & -% text which is considerably longer than the width of the column & -% text which is considerably longer than the width of the column & -% text which is considerably longer than the width of the column \\ -% \tend -% \end{tabularx} -% \caption{column types (LCR)} -% \label{tab:ct:LCR} -% \end{table} -% -% The column definition for table~\ref{tab:ct:LCR} is shown in -% listing~\ref{code:ct:LCR}: -% -% \iffalse -%<*example> -% \fi - -\begin{lstlisting}[style=lstDemoStyleLaTeXCode , captionpos=b,caption={example of new p-type columns.}, label={code:ct:LCR}] -\begin{table} -\tablestyle -\begin{tabularx}{\textwidth}{|p{0.17\linewidth}|L{0.17\linewidth}|C{0.17\linewidth}|R{0.17\linewidth}|X|} -... -\end{lstlisting} - -% \iffalse -%</example> -% \fi -% -% Further column definitions can be defined similar to the definitions used -% here. The implementation is demonstrated in -% section~\ref{sec:impl:columntypes}. -% -% \subsection{Items in tables} -% -% -% Itemized, enumerated or other list typically introduce a horizontal -% indentation which should not appear within a tabular environment. Therefore -% the command \DescribeMacro{\tableitemize}\cs{tableitemize} is introduced -% to remove the indentation. -% -% -% \begin{table}[H] -% \tablestyle -% \begin{tabularx}{1\textwidth}{|X|X|X|} -% \theadstart -% \thead \centering header X & -% \thead \centering header items (X) & -% \thead \centering header enums (X) \tabularnewline -% \tbody -% The \LaTeX{} document preparation system is a special version of Donald -% Knuth's \TeX{} program. \TeX{} is a sophisticated program designed to -% produce high-quality typesetting, especially for mathematical text. -% & -% \tableitemize -% \begin{itemize} -% \item The \LaTeX{} document preparation system is a special version of Donald -% Knuth's \TeX{} program. -% \item \TeX{} is a sophisticated program designed to produce high-quality typesetting, -% \item especially for mathematical text. -% \end{itemize} -% & -% \tableitemize -% \begin{enumerate} -% \item The \LaTeX{} document preparation system is a special version of Donald -% Knuth's \TeX{} program. -% \item \TeX{} is a sophisticated program designed to produce high-quality typesetting, -% \item especially for mathematical text. -% \end{enumerate} -% \tabularnewline -% \tend -% \end{tabularx} -% \caption{table item list using \texttt{tableitemize}} -% \label{tab:tableitemize} -%\end{table} -% -% In table~\ref{tab:tableitemize} this is realized by inserting the command -% \cs{tableitemize} directly before the beginning of a list, -% as shown in listing~\ref{code:tableitemize}. -% -% \iffalse -%<*example> -% \fi - -\begin{lstlisting}[style=lstDemoStyleLaTeXCode , captionpos=b,caption={example of tableitemize.}, label={code:tableitemize}] -... -The ... -& -\tableitemize % <--- -\begin{itemize} -\item The ... -\item \TeX{} is a ... -\item especially ... -\end{itemize} -& -\tableitemize % <--- -\begin{enumerate} -\item The ... -\item \TeX{} is a ... -\item especially ... -\end{enumerate} -\tabularnewline -... -\end{lstlisting} - -% \iffalse -%</example> -% \fi -% -% \StopEventually{} -% \clearpage -% \section{Implementation} -% -% \iffalse -%<*tablestyles.sty> -% \fi -% -% \subsection{Setup and packages} -% -% \begin{macrocode} -\NeedsTeXFormat{LaTeX2e}[1994/12/01] -\ProvidesPackage{tablestyles} - [2011/10/01 v0.1 tablestyles] -% \end{macrocode} -% -% The following packages are loaded by this package. array is required for -% most of the tables anyway, xcolor with the option `table' is required for -% the color definitions (table loads colortbl for all commands of colors in -% tables. ragged2e is used for the new columntypes and etoolbox for the -% implementation of the code. -% -% \begin{macrocode} -\RequirePackage{array} -\RequirePackage{etoolbox} -%% check that xcolor is not loaded -\@ifpackageloaded{xcolor}{% - \ifcsdef{rowcolors}{}{% - \PackageError{tablestyles}% - {% -\MessageBreak% -Package 'xcolor' must be loaded with the option\MessageBreak% -'tables'. Otherwise the command rowcolors\MessageBreak% -is not available. \MessageBreak% - }{}% - \endinput% - }% -}{% - % xcolor not loaded - \PassOptionsToPackage{table}{xcolor} - \RequirePackage{xcolor} -} -\RequirePackage{ragged2e} -\AtBeginDocument{% -\@ifpackageloaded{tabularx}{}{ - \PackageError{tablestyles}% - {% -\MessageBreak% -Package 'tabularx' must be loaded, otherwise tablestyles will not -work. - }% -}% end of ifpackageloaded -}% end of AtBeginDocument -% \end{macrocode} -% -% \subsection{Configuration commands} -% -% The heart of this package is the definition of the table styles, which are -% very simply only saved as a command sequence. -% An error are printed out if a style is requested, which has not been defined -% before. -% -% \begin{macro}{\setuptablestyle} -% \begin{macrocode} -%% define table styles (save the code) -\newcommand{\setuptablestyle}[2]{% - \ifcsdef{tsty@style@#1} - { - \PackageWarning{tablestyles}{ - \MessageBreak - table style `#1' is already defined. - }{} - }{} - \csdef{tsty@style@#1}{#2} -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\tablestyle} -% \begin{macrocode} -%% apply table styles (use the code) -\newcommand{\tablestyle}[1][default]{% - \ifcsdef{tsty@style@#1}{}{ - \PackageError{tablestyles}{ - \MessageBreak - table style `#1' is not defined. - \endinput% - }{} - } - \csuse{tsty@style@#1} -} -% \end{macrocode} -% \end{macro} -% -% Font sizes are save in a special command sequence, so that they can be -% reused, and identified using their names: -% -% \begin{macro}{\setuptablefontsize} -% \begin{macrocode} -%% save font size with name -\newcommand{\setuptablefontsize}[2]{ - \csdef{tsty@font@#1@size}{#2} -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\tablefontsize} -% \begin{macrocode} -%% apply font size with name -\newcommand{\tablefontsize}[1]{ - \ifcsdef{tsty@font@#1@size}% - {\csuse{tsty@font@#1@size}% - }{ % not defined - \PackageError{tablestyles}{ - \MessageBreak - table font size `#1' is not defined. - \endinput% - }{}% - }% -}% -% \end{macrocode} -% -% The default values for the predefined sizes \emph{body} and \emph{head} are -% set to \cs{small} since tables should -% always be printed slightly smaller than the normal text. -% -% \begin{macrocode} -%% define default font sizes -\setuptablefontsize{body}{\small} -\setuptablefontsize{head}{\small} -% \end{macrocode} -% \end{macro} -% -% The definition of colors is almost identical to the definition of font -% sizes. This definition is restricted to the xcolor way of defining colors. -% -% \begin{macro}{\setuptablecolor} -% \begin{macrocode} -%% save color with name -\newcommand{\setuptablecolor}[2]{% - \colorlet{tsty@color@#1}{#2}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\tablecolor} -% \begin{macrocode} -%% apply colorwith name -\newcommand{\tablecolor}[1]{tsty@color@#1} -% \end{macrocode} -% \end{macro} -% -% The default colors are defined as -% -% \begin{macro}{\tsty@defaultcolors} -% \begin{macrocode} -%% default colors -\newcommand{\tsty@defaultcolors}{ - \setuptablecolor{body}{white!100} - \setuptablecolor{row}{gray!10} - \setuptablecolor{head}{gray!25} - \setuptablecolor{subhead}{gray!30} -} -% \end{macrocode} -% \end{macro} -% -% and exectuted afterwards. -% -% \begin{macrocode} -%% exectuted default colors -\tsty@defaultcolors -% \end{macrocode} -% -% Alternating row colors are simplified with the command \cs{tablealtcolored}, -% which reuses the \cs{rowcolors} and the table color definitions for -% \emph{row} and \emph{body}. -% -% \begin{macro}{\tablealtcolored} -% \begin{macrocode} -%% shortcut for alternating rowcolors -\newcommand\tablealtcolored{% - \rowcolors{1}{\tablecolor{row}}{\tablecolor{body}}% -} -% \end{macrocode} -% \end{macro} -% -% The alternating rows are disabled by changing the row color identical to the -% body color. Since every tablestyle should load \cs{tsty@defaultcolors} this -% is reset at every applied tablestyle. -% -% \begin{macro}{\disablealternatecolors} -% \begin{macrocode} -%% disable alternating rowcolors by changing the colors -\newcommand{\disablealternatecolors}{% - \setuptablecolor{row}{\tablecolor{body}}% -} -% \end{macrocode} -% \end{macro} -% -% The \cs{coloredhline} uses the \cs{arrayrulecolor} of the colortlb-package. -% -% \begin{macro}{\coloredhline} -% \begin{macrocode} -%% colored horizontal lines (hlines) -\providecommand{\coloredhline}[1]{% - \arrayrulecolor{#1}\hline - \arrayrulecolor{black} -}% -% \end{macrocode} -% \end{macro} -% -% The \cs{coloredvline} applies the color to the \cs{vline} with a standard -% \cs{color} command. -% -% \begin{macro}{\coloredvline} -% \begin{macrocode} -%% colored vertical lines (vlines) -\providecommand{\coloredvline}[1]{% - \color{#1}\vline -}% -% \end{macrocode} -% \end{macro} -% \subsection{Style applying commands} -% -% The lines for the top (above the header), middle (below the header) and -% the bottom of the table (at the end) are defined with \cs{tlinetop}, -% \cs{tlinemid} and \cs{tlinebottom} -% -% \begin{macro}{\tlinetop} -% \begin{macrocode} -%% commands for the style of the lines -\newcommand{\tlinetop}{\coloredhline{black}} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\tlinemid} -% \begin{macrocode} -\newcommand{\tlinemid}{\coloredhline{black}} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\tlinebottom} -% \begin{macrocode} -\newcommand{\tlinebottom}{\coloredhline{black}} -% \end{macrocode} -% \end{macro} -% -% These are supposed to be inserted in the table with the commands -% \cs{tbegin}, % \cs{tbody} and % \cs{tend}, which prints out the last line -% and restores color, font and size. -% -% \begin{macro}{\tbegin} -% \begin{macrocode} -%% commands for the seperations (includes the lines) -\newcommand{\tbegin}{\tlinetop} -% \end{macrocode} -% \end{macro} -% \begin{macro}{tbody} -% \begin{macrocode} -\newcommand{\tbody}{\tlinemid} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\tend} -% \begin{macrocode} -\newcommand{\tend}{\tlinebottom} -% \end{macrocode} -% \end{macro} -% -% The predefined \cs{thead} includes only the -% font size. The same applies for \cs{tsubhead} -% \begin{macro}{\thead} -% \begin{macrocode} -%% default head style (only fontsize) -\newcommand\thead{% - \tablefontsize{head} -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\tsubhead} -% \begin{macrocode} -%% default subhead style (only fontsize) -\newcommand{\tsubhead}{% - \tablefontsize{head} -} -% \end{macrocode} -% \end{macro} -% -% Both head and subhead have a start and an end command. By default the start -% includes a hline and the rowcolor, whereas the end command does nothing. -% -% \begin{macro}{\theadstart} -% \begin{macrocode} -%% style of header start (line and row color) -\newcommand\theadstart{% - \tlinetop% - \rowcolor{\tablecolor{head}}% -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\theadend} -% \begin{macrocode} -%% style of header end - empty -\newcommand\theadend{} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\tsubheadstart} -% \begin{macrocode} -%% style of subheader start (row color) -\newcommand{\tsubheadstart}{% - \rowcolor{\tablecolor{subhead}} -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\tsubheadend} -% \begin{macrocode} -%% style of subheader end - empty -\newcommand\tsubheadend{} -% \end{macrocode} -% \end{macro} -% -% The commands \cs{theadrow} and the equivalent \cs{tsubheadrow} define a -% multicolumn row for the whole table width. -% It should be used to have a full width spanning header. This command -% includes the background color and the cell properties -% using \cs{thead} and \cs{tsubhead}. -% -% \begin{macro}{\theadrow} -% \begin{macrocode} -%% shortcut for multi column row in header -\newcommand{\theadrow}[2]{% - \multicolumn{#1}{>{\columncolor{\tablecolor{head}}}l}{% - \thead #2% - }% - \tabularnewline% -}% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\tsubheadrow} -% \begin{macrocode} -%% shortcut for multi column row in subheader -\newcommand{\tsubheadrow}[2]{% - \multicolumn{#1}{>{\columncolor{\tablecolor{subhead}}}l}{% - \tsubhead #2% - }% - \tabularnewline% -}% -% \end{macrocode} -% \end{macro} -% -% \subsection{Style definitions} -% -% The following \cs{resettablestyle} is meant to be used with in the -% definition of a table style. It resets most commands to a default value -% equivalent to what a table would look like without -% any style applied. New styles should be built on this basis. The content of -% this command can be changed. However it means that this changes are applied -% to all styles of this package. -% -% \begin{macro}{\resettablestyle} -% \begin{macrocode} -%% reset to default styles -\newcommand{\resettablestyle}{% - \normalcolor\normalfont\normalsize% - \renewcommand{\arraystretch}{1}% - \rmfamily% - \tsty@defaultcolors% - \renewcommand{\tlinetop}{\coloredhline{black}} - \renewcommand{\tlinemid}{\coloredhline{black}} - \renewcommand{\tlinebottom}{\coloredhline{black}} - \renewcommand{\theadstart}{\tlinetop\rowcolor{\tablecolor{head}}} - \renewcommand{\tbegin}{\tlinetop} - \renewcommand{\tbody}{\tlinemid} - \renewcommand{\tend}{\tlinebottom} -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{default} -% -% \begin{macrocode} -%% style: default -\setuptablestyle{default}{% - \resettablestyle - \renewcommand{\arraystretch}{1.4} - \centering - \sffamily - \upshape% - \tablefontsize{body} - \tablealtcolored% - \renewcommand{\thead}{% -\tablefontsize{head}% -\ignorespaces% - } - \renewcommand{\tsubhead}{% -\tablefontsize{head}% -\ignorespaces% - } -} -% \end{macrocode} -% -% \subsubsection{roman} -% This style differs from the default style only in the exchange of the -% \cs{sffamily} with \cs{rmfamily}. -% \begin{macrocode} -%% style: roman -\setuptablestyle{roman}{% - \resettablestyle - \renewcommand{\arraystretch}{1.4} - \centering - \rmfamily - \upshape% - \tablefontsize{body} - \tablealtcolored% - \renewcommand{\thead}{% -\tablefontsize{head}% -\ignorespaces% - } - \renewcommand{\tsubhead}{% -\tablefontsize{head}% -\ignorespaces% - } -} -% \end{macrocode} -% -% \subsubsection{sansbold} -% This style differs from the default style in the inclusion of \cs{bfseries} -% in the heading commands. -% -% \begin{macrocode} -%% style: sansbold -\setuptablestyle{sansbold}{% - \resettablestyle - \renewcommand{\arraystretch}{1.4} - \centering - \sffamily - \upshape% - \tablefontsize{body} - \tablealtcolored% - \renewcommand{\thead}{% -\tablefontsize{head}% -\bfseries -\upshape% -\ignorespaces% - } - \renewcommand{\tsubhead}{% -\tablefontsize{head}% -\upshape% -\ignorespaces% - } -} -% \end{macrocode} -% -% \subsubsection{sansboldbw} -% This style differs from the sansbold style in exchange of the table colors -% with much darker heading colors -% and a white heading font, which is printed slanted. -% -% \begin{macrocode} -%% style: sansboldbw -\setuptablestyle{sansboldbw}{% - \resettablestyle - \setuptablecolor{body}{white!100} - \setuptablecolor{row}{gray!15} - \setuptablecolor{head}{black!60} - \setuptablecolor{subhead}{gray!40} -% \end{macrocode} -% -% \begin{macrocode} - \renewcommand{\arraystretch}{1.4} - \centering - \sffamily - \upshape% - \tablefontsize{body} - \tablealtcolored% - \renewcommand{\thead}{% -\leavevmode\color{white} -\tablefontsize{head}% -\bfseries -\slshape -\ignorespaces% - } - \renewcommand{\tsubhead}{% -\tablefontsize{head}% -\bfseries -\ignorespaces% - } -} -% \end{macrocode} -% -% \subsection{Support for itemized lists in tables} -% -% \begin{macro}{\tsty@removeindentation} -% \begin{macrocode} -%% bugfix code for lists in tables -\newcommand{\tsty@removeindentation}{% - \leftmargini=\labelsep% - \advance\leftmargini by \labelsep% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\tableitemize} -% \begin{macrocode} -\newcommand\tableitemize{ - \@minipagetrue% - \tsty@removeindentation -} -% \end{macrocode} -% \end{macro} -% -% \subsection{New columntype definitions} -%\label{sec:impl:columntypes} -% -% The \cs{arraybackslash} is required to restore the definition of -% \lstinline!\\! after its redefinition. \cs{hspace}\{0pt\} is included to -% allow hyphenation also of the first word. -% -% New columntype definitions: -% -% \begin{macrocode} -%% New columntype definitions: -%% centered (X): -\newcolumntype{Z}{>{\centering\arraybackslash\hspace{0pt}}X} -%% right (X): -\newcolumntype{Y}{>{\RaggedLeft\arraybackslash\hspace{0pt}}X} -%% left (X): -\newcolumntype{W}{>{\RaggedRight\arraybackslash\hspace{0pt}}X} -%% left (p): -\newcolumntype{L}[1]{>{\RaggedRight\arraybackslash\hspace{0pt}}p{#1}} -%% right (p): -\newcolumntype{R}[1]{>{\RaggedLeft\arraybackslash\hspace{0pt}}p{#1}} -%% centered (p): -\newcolumntype{C}[1]{>{\Centering\arraybackslash\hspace{0pt}}p{#1}} -% \end{macrocode} -% -% -% \iffalse -%</tablestyles.sty> -% \fi -% -% \Finale -\endinput diff --git a/macros/latex/contrib/tablestyles/tablestyles.ins b/macros/latex/contrib/tablestyles/tablestyles.ins deleted file mode 100644 index b63aad4077..0000000000 --- a/macros/latex/contrib/tablestyles/tablestyles.ins +++ /dev/null @@ -1,29 +0,0 @@ -% See file 'tablestyles.dtx' for copyright and licence. -% -\input docstrip.tex -\keepsilent -\askforoverwritefalse - -\usedir{tex/latex/tablestyles} - -\generate{% - \file{tablestyles.sty}{\nopreamble\from{tablestyles.dtx}{tablestyles.sty}} -} - -\obeyspaces -\Msg{*************************************************************} -\Msg{* *} -\Msg{* To finish the installation you have to move the following *} -\Msg{* file into a directory searched by TeX: *} -\Msg{* *} -\Msg{* tablestyles.sty *} -\Msg{* *} -\Msg{* To produce the documentation run the file *} -\Msg{* tablestyles.dtx *} -\Msg{* through LaTeX. *} -\Msg{* *} -\Msg{* Happy TeXing! *} -\Msg{* *} -\Msg{*************************************************************} - -\endbatchfile diff --git a/macros/latex/contrib/tablestyles/tablestyles.pdf b/macros/latex/contrib/tablestyles/tablestyles.pdf Binary files differdeleted file mode 100644 index db636e7684..0000000000 --- a/macros/latex/contrib/tablestyles/tablestyles.pdf +++ /dev/null |