summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/lualatex/letgut
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-06-18 20:02:54 +0000
committerKarl Berry <karl@freefriends.org>2022-06-18 20:02:54 +0000
commit455420320e484b0f6697327807250c89a997e9f2 (patch)
treef5d1fe937a9442d5dac6e3dd1c5a3b2c57565b22 /Master/texmf-dist/source/lualatex/letgut
parentb7926a9649df6cfbf84fc0064bd097d8196b9116 (diff)
letgut (18jun22)
git-svn-id: svn://tug.org/texlive/trunk@63637 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/lualatex/letgut')
-rw-r--r--Master/texmf-dist/source/lualatex/letgut/HOWTO.md12
-rw-r--r--Master/texmf-dist/source/lualatex/letgut/letgut-banner.org190
-rw-r--r--Master/texmf-dist/source/lualatex/letgut/letgut.org5387
3 files changed, 4904 insertions, 685 deletions
diff --git a/Master/texmf-dist/source/lualatex/letgut/HOWTO.md b/Master/texmf-dist/source/lualatex/letgut/HOWTO.md
index 678ece4f0c1..b46c66817a1 100644
--- a/Master/texmf-dist/source/lualatex/letgut/HOWTO.md
+++ b/Master/texmf-dist/source/lualatex/letgut/HOWTO.md
@@ -6,18 +6,18 @@ In order to:
from the Org Mode source files `letgut.org` and `letgut-banner.org`:
-- it is necessary a reasonably recent version of Emacs,
-- it is then sufficient to run (in a directory containing the `letgut.el` file
+- it is necessary to have a reasonably recent version of Emacs,
+- it is then sufficient to run (in a directory containing the `build-letgut.el` file
to be found in the current directory):
- for the `letgut` class:
- emacs -Q letgut.org --batch -l letgut.el -f org-babel-tangle --kill
- emacs -Q letgut.org --batch -l letgut.el -f org-latex-export-to-pdf --kill
+ emacs -Q letgut.org --batch -l build-letgut.el -f org-babel-tangle --kill
+ emacs -Q letgut.org --batch -l build-letgut.el -f org-latex-export-to-pdf --kill
- for the `letgut-banner` package:
- emacs -Q letgut-banner.org --batch -l letgut.el -f org-babel-tangle --kill
- emacs -Q letgut-banner.org --batch -l letgut.el -f org-latex-export-to-pdf --kill
+ emacs -Q letgut-banner.org --batch -l build-letgut.el -f org-babel-tangle --kill
+ emacs -Q letgut-banner.org --batch -l build-letgut.el -f org-latex-export-to-pdf --kill
This creates the files `letgut.cls`, `letgut-banner.sty`, `letgut-code.tex` and
`letgut-banner-code.tex`.
diff --git a/Master/texmf-dist/source/lualatex/letgut/letgut-banner.org b/Master/texmf-dist/source/lualatex/letgut/letgut-banner.org
index 6769c179052..b9c59dcee83 100644
--- a/Master/texmf-dist/source/lualatex/letgut/letgut-banner.org
+++ b/Master/texmf-dist/source/lualatex/letgut/letgut-banner.org
@@ -1,6 +1,6 @@
# Hey, Emacs! This is a -*- mode: org -*- file!
-#+TITLE: Support for the banner of the newsletter “La Lettre de GUTenberg”
+#+TITLE: Support for the banner of the newsletter "La Lettre de GUTenberg"
#+AUTHOR: Association GUTenberg
#+EMAIL: secretariat@gutenberg.eu.org
#+DESCRIPTION: ...
@@ -19,24 +19,24 @@
# #+LaTeX_HEADER: \input{codehigh-conf}
# #+LaTeX_HEADER: \letgutsetup{editorial=false,final}
-#+PROPERTY: header-args :padline no :tangle letgut-banner.sty :exports both :noweb yes :eval always
-#+export_file_name: letgut-banner-code
+#+PROPERTY: header-args :padline no :tangle ../../../tex/lualatex/letgut/letgut-banner.sty :exports both :noweb yes :eval always
+#+export_file_name: ../../../doc/lualatex/letgut/letgut-banner-code
-* Readme file :noexport:
+* Readme file
-#+begin_src markdown :tangle README.md :exports none
+#+begin_src markdown :tangle no :exports none
letgut-banner - Support for the banner of the newsletter
- “La Lettre de GUTenberg”
+ "La Lettre de GUTenberg"
=============================================================
About
-------
- This package automatically draw the banner of the newsletter “La Lettre de
- GUTenberg” with the current main font.
+ This package automatically draw the banner of the newsletter "La Lettre de
+ GUTenberg" with the current main font.
Release
-------
- 2022-03-22 v0.9.1
+ 2022-03-17 v0.9
Development
-----------
@@ -44,39 +44,43 @@
https://framagit.org/gutenberg/classe-lettre-gut.
#+end_src
-* Identification
-
-#+begin_src latex
-% This is file `letgut.cls',
-% generated with the Emacs Org-babel utility.
-%
-% The original source file is letgut-banner.org
-%
-% -------------:| ---------------------------------------------------
-% letgut-banner:| Package for the banner of the newsletter
-% | “La Lettre GUTenberg”
-% Author:| Association GUTenberg
-% E-mail:| secretariat@gutenberg.eu.org
-% License:| Released under the LaTeX Project Public License
-% | v1.3c or later
-% See:| http://www.latex-project.org/lppl.txt
-%
-% Copyright (C) 1994-2022 by Association GUTenberg
-% <secretariat@gutenberg.eu.org>
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License (LPPL), either
-% version 1.3c of this license or (at your option) any later
-% version. The latest version of this license is in the file:
-%
-% http://www.latex-project.org/lppl.txt
-%
-% This work is “maintained” (as per LPPL maintenance status)
-% by Association GUTenberg.
+#+NAME: preamble
+#+begin_src
+-------:| ---------------------------------------------------
+ letgut:| Package for the banner of the newsletter
+ | "La Lettre de GUTenberg"
+ Author:| Association GUTenberg
+ E-mail:| secretariat@gutenberg.eu.org
+License:| Released under the LaTeX Project Public License
+ | v1.3c or later
+ See:| http://www.latex-project.org/lppl.txt
+
+Copyright (C) 1994-2022 by Association GUTenberg
+ <secretariat@gutenberg.eu.org>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License (LPPL), either
+version 1.3c of this license or (at your option) any later
+version. The latest version of this license is in the file:
+
+http://www.latex-project.org/lppl.txt
+
+This work is "maintained" (as per LPPL maintenance status)
+by Association GUTenberg.
#+end_src
* Implementation
+** Identification
+
+#+begin_src
+ This is file `letgut-banner.sty,
+ generated with the Emacs Org-babel utility.
+
+ The original source file is letgut-banner.org
+ %% <<preamble>>
+#+end_src
+
These document classes can only be used with \LaTeXe, so we make
sure that an appropriate message is displayed when another \TeX{}
format is used.
@@ -89,10 +93,10 @@ Now, we can announce the package name and its version:
#+begin_src latex
\ProvidesExplPackage{letgut-banner}
-{2022-03-22}
-{0.9.1}
+{2022-03-17}
+{0.9}
{
- Package for the banner of the newsletter “La Lettre de GUTenberg”
+ Package for the banner of the newsletter "La Lettre de GUTenberg"
}
#+end_src
@@ -122,7 +126,7 @@ reader who wants to copy the interesting text be able to select it (see below).
What follows has to be done at this end of the preamble, otherwise the font set
with ~\setmainfont~ in the preamble isn't taken in account in the banner.
-We define an option for the color of the text in the “L” (that has to be the
+We define an option for the color of the text in the "L" (that has to be the
same as the page color of the document).
#+begin_src latex
@@ -224,7 +228,7 @@ same as the page color of the document).
- Dimensions of the banner. If the present package is used with the
\class*{letgut}, they are borrowed from it. Otherwise, they are set to
default values.
- - Thickness of the “L”.
+ - Thickness of the "L".
#+begin_src latex
\dim_if_exist:NTF \c__letgut_banner_thickness_dim {
\dim_const:NV \c__letgutbanner_banner_thickness_dim
@@ -234,7 +238,7 @@ same as the page color of the document).
{ 4cm }
}
#+end_src
- - Height of the “L” (that of the text area plus 3cm).
+ - Height of the "L" (that of the text area plus 3cm).
#+begin_src latex
\dim_if_exist:NTF \c__letgut_banner_height_dim {
\dim_const:NV \c__letgutbanner_banner_height_dim
@@ -247,13 +251,13 @@ same as the page color of the document).
}
}
#+end_src
- - Initial padding of the text embedded in the vertical bar of the “L”.
+ - Initial padding of the text embedded in the vertical bar of the "L".
#+begin_src latex
\dim_const:Nn \c__letgutbanner_banner_padding_dim { .25cm }
#+end_src
- - Width of the “L” (the width ($w$) of the text zone plus the width ($l$) of
+ - Width of the "L" (the width ($w$) of the text zone plus the width ($l$) of
the left margin minus half the difference between the width of the left
- margin and the width ($d$) of the “L”: $=w+l-(l-d)/2=w+(l+d)/2$).
+ margin and the width ($d$) of the "L": $=w+l-(l-d)/2=w+(l+d)/2$).
#+begin_src latex
\dim_const:Nn \c__letgutbanner_banner_width_dim {
\c__letgutbanner_textwidth_dim
@@ -265,7 +269,7 @@ same as the page color of the document).
)/2
}
#+end_src
- - Initial width of the text embedded in the “L” vertical bar.
+ - Initial width of the text embedded in the "L" vertical bar.
#+begin_src latex
\dim_const:Nn
\c__letgutbanner_banner_vertical_contents_width_dim {
@@ -274,10 +278,10 @@ same as the page color of the document).
2\c__letgutbanner_banner_padding_dim
}
#+end_src
- - Width of the text embedded in the horizontal bar of the “L” (of the text
+ - Width of the text embedded in the horizontal bar of the "L" (of the text
area plus half the difference between that of the left margin and that of
- the thickness of the “L”, minus the padding -- and not 2 times the
- padding because this text will be stuck to its left “margin”).
+ the thickness of the "L", minus the padding -- and not 2 times the
+ padding because this text will be stuck to its left "margin").
#+begin_src latex
\dim_const:Nn
\c__letgutbanner_banner_horizontal_contents_width_dim {
@@ -294,7 +298,7 @@ same as the page color of the document).
*** Boxes
-New boxes, for each of the letters in the word “LETTRE” (!), and then for the
+New boxes, for each of the letters in the word "LETTRE" (!), and then for the
rest of the content listed in the banner.
#+begin_src latex
\box_new:N \g__letgutbanner_L_box
@@ -309,13 +313,13 @@ rest of the content listed in the banner.
*** Floating point numbers
-- Minimum percentage of the common height of the letters of the word “LETTRE”
+- Minimum percentage of the common height of the letters of the word "LETTRE"
that their line spacing must represent.
#+begin_src latex
\fp_const:Nn \c__letgutbanner_leading_minimum_percent_fp { 0.15 }
#+end_src
-- Factor applied to the line spacing between “La” and the 1st letter of
- “LETTRE” compared to that between the letters of “LETTRE”.
+- Factor applied to the line spacing between "La" and the 1st letter of
+ "LETTRE" compared to that between the letters of "LETTRE".
#+begin_src latex
\fp_const:Nn \c__letgutbanner_leading_La_factor_fp { 1.5 }
#+end_src
@@ -352,7 +356,7 @@ rest of the content listed in the banner.
** Computations
-Determination of the widths of each of the letter boxes of the word “LETTRE”.
+Determination of the widths of each of the letter boxes of the word "LETTRE".
#+begin_src latex
\dim_const:Nn \c__letgutbanner_L_width_dim {
\box_wd:N \g__letgutbanner_L_box
@@ -394,14 +398,14 @@ it were).
}
{ No~ idea! }
#+end_src
-Resize the box containing “GUTenberg” to the width of the text embedded in the
-horizontal bar of the “L”.
+Resize the box containing "GUTenberg" to the width of the text embedded in the
+horizontal bar of the "L".
#+begin_src latex
\box_gresize_to_wd:Nn \g__letgutbanner_GUTenberg_box {
\c__letgutbanner_banner_horizontal_contents_width_dim
}
#+end_src
-Determination of the height and depth of the box containing “GUTenberg” resized.
+Determination of the height and depth of the box containing "GUTenberg" resized.
#+begin_src latex
\dim_const:Nn \c__letgutbanner_GUTenberg_height_dim {
\box_ht:N \g__letgutbanner_GUTenberg_box
@@ -411,12 +415,12 @@ Determination of the height and depth of the box containing “GUTenberg” resi
}
#+end_src
Determining the size of the vertical offset of the box containing the resized
-“GUTenberg”, so that it is vertically centered in the horizontal bar of the “L”:
+"GUTenberg", so that it is vertically centered in the horizontal bar of the "L":
the box positioned in $0$ would be at the very bottom of the box containing the
-banner so with base line at the bottom the horizontal bar of the “L” so we raise
+banner so with base line at the bottom the horizontal bar of the "L" so we raise
it first by its depth ($d$) and then by half the difference between the heights
-($H$) of the horizontal bar of the “L” and ($h+d$) total of the box containing
-“GUTenberg” resized ($=d+H/2-(h+d)/2=(H-h+d)/2$).
+($H$) of the horizontal bar of the "L" and ($h+d$) total of the box containing
+"GUTenberg" resized ($=d+H/2-(h+d)/2=(H-h+d)/2$).
#+begin_src latex
\dim_const:Nn \c__letgutbanner_GUTenberg_yoffset_dim {
(
@@ -428,11 +432,11 @@ it first by its depth ($d$) and then by half the difference between the heights
)/2
}
#+end_src
-Once the height of the zone devoted to “La LETTRE” in the vertical bar of the
-“L” has been fixed, the line spacing between the letters of the word “LETTRE”
+Once the height of the zone devoted to "La LETTRE" in the vertical bar of the
+"L" has been fixed, the line spacing between the letters of the word "LETTRE"
depends in fact only on the width occupied by the widest of them, by definition
equal to the width allocated to the text embedded in the vertical bar of the
-“L”. The latter, stored in ~\g__letgutbanner_banner_vertical_contents_width_dim~, is
+"L". The latter, stored in ~\g__letgutbanner_banner_vertical_contents_width_dim~, is
initially fixed:
#+begin_src latex
\dim_gset:Nn
@@ -441,7 +445,7 @@ initially fixed:
#+end_src
but, to avoid this line spacing being too small (or even negative), we test that
it is greater than a certain threshold, equal to a certain minimum percentage of
-the height common to the letters of the word “LETTRE”, stored in:
+the height common to the letters of the word "LETTRE", stored in:
~\c__letgutbanner_leading_minimum_percent_fp~
@@ -461,7 +465,7 @@ and loop until it is the case.
\g__letgutbanner_largest_LETR_box_height_dim
}{
#+end_src
-Resize the largest of these boxes to the width of the text embedded in the “L”.
+Resize the largest of these boxes to the width of the text embedded in the "L".
#+begin_src latex
\box_gresize_to_wd:Nn \g__letgutbanner_largest_LETR_box {
\g__letgutbanner_banner_vertical_contents_width_dim
@@ -473,7 +477,7 @@ Height of this resized larger box.
\box_ht:N \g__letgutbanner_largest_LETR_box
}
#+end_src
-Resize the boxes for each of the letters in the word “LETTRE” so that they are
+Resize the boxes for each of the letters in the word "LETTRE" so that they are
all the same height as the widest of them.
#+begin_src latex
\box_gresize_to_ht:Nn \g__letgutbanner_L_box {
@@ -489,14 +493,14 @@ all the same height as the widest of them.
\g__letgutbanner_largest_LETR_box_height_dim
}
#+end_src
-Resize the box containing “La” to the width of the text embedded in the “L”
+Resize the box containing "La" to the width of the text embedded in the "L"
vertical bar.
#+begin_src latex
\box_gresize_to_wd:Nn \g__letgutbanner_La_box {
\g__letgutbanner_banner_vertical_contents_width_dim
}
#+end_src
-Determine the height ($h$) and depth ($d$) of the resized box containing “La”.
+Determine the height ($h$) and depth ($d$) of the resized box containing "La".
#+begin_src latex
\dim_gset:Nn \g__letgutbanner_La_height_dim {
\box_ht:N \g__letgutbanner_La_box
@@ -505,11 +509,11 @@ Determine the height ($h$) and depth ($d$) of the resized box containing “La
\box_dp:N \g__letgutbanner_La_box
}
#+end_src
-Determining the size of the vertical offset of the resized box containing “La”
-so that its top is, relative to the top of the “L”, offset by the same amount as
-the bottom of the box containing “GUTenberg” is offset from the bottom of the
-“L” (i.e., the distance from the top of the page to the top of “La” and the
-distance from the bottom of the page to the baseline of “GUTenberg” are
+Determining the size of the vertical offset of the resized box containing "La"
+so that its top is, relative to the top of the "L", offset by the same amount as
+the bottom of the box containing "GUTenberg" is offset from the bottom of the
+"L" (i.e., the distance from the top of the page to the top of "La" and the
+distance from the bottom of the page to the baseline of "GUTenberg" are
identical).
#+begin_src latex
\dim_gset:Nn \g__letgutbanner_La_yoffset_dim {
@@ -522,10 +526,10 @@ identical).
\g__letgutbanner_La_depth_dim
}
#+end_src
-For the following, the area containing the letters of the word “LETTRE” aligned
+For the following, the area containing the letters of the word "LETTRE" aligned
vertically is fixed, defined as follows:
- - its top is the baseline of “La”,
- - its bottom is the baseline of “GUTenberg”.
+ - its top is the baseline of "La",
+ - its bottom is the baseline of "GUTenberg".
Determination of the height of this area.
#+begin_src latex
\dim_gset:Nn \g__letgutbanner_area_height_dim {
@@ -536,22 +540,22 @@ Determination of the height of this area.
\c__letgutbanner_GUTenberg_yoffset_dim
}
#+end_src
-Determining the vertical jump ($s$) between the letters in the word “LETTRE”
+Determining the vertical jump ($s$) between the letters in the word "LETTRE"
with the constraints that:
- - the top of the 1st letter (“L”) is $3e/2$ below the top of the area (where
+ - the top of the 1st letter ("L") is $3e/2$ below the top of the area (where
$e$ is the common vertical space separating the letters of the word
- “LETTRE”),
- - the baseline of the last letter (“E”) is merged with the bottom of the area,
+ "LETTRE"),
+ - the baseline of the last letter ("E") is merged with the bottom of the area,
- this jump must not be less than 20 % of the common height $h$ to all these
letters i.e.:
~\g__letgutbanner_largest_LETR_box_height_dim~
otherwise the size of the largest of these boxes is reduced to less than the
- width of the text embedded in the “L”.
+ width of the text embedded in the "L".
The sum of :
- - the 5 vertical spaces ($5e$) between the letters in the word “LETTRE”,
+ - the 5 vertical spaces ($5e$) between the letters in the word "LETTRE",
- the 6 common heights ($6h$) to all these letters,
- $3e/2$,
must equal the height ($H$) of the zone. So we have $H=3e/2+5e+6h$, that is
@@ -585,7 +589,7 @@ $s=e+h$ that is $s=(2H+h)/13$. Therefore:
}
}
#+end_src
-The width allocated to the text embedded in the vertical bar of the “L” may have
+The width allocated to the text embedded in the vertical bar of the "L" may have
been re-evaluated, so the padding (which must be symmetrical) may have changed
as well.
#+begin_src latex
@@ -597,7 +601,7 @@ as well.
)/2
}
#+end_src
-4. Determination of the vertical offset of the 1st letter (“L”).
+4. Determination of the vertical offset of the 1st letter ("L").
#+begin_src latex
\dim_const:Nn \c__letgutbanner_first_letter_yoffset_dim {
\g__letgutbanner_La_yoffset_dim
@@ -616,7 +620,7 @@ as well.
\g__letgutbanner_largest_LETR_box_height_dim
}
#+end_src
-Resize the box containing “g” to the width of the text.
+Resize the box containing "g" to the width of the text.
#+begin_src latex
\box_gresize_to_wd:Nn \g__letgutbanner_g_box {
\c__letgutbanner_textwidth_dim
@@ -625,9 +629,9 @@ Resize the box containing “g” to the width of the text.
Calculates the size by which the height of the text box on the 1st page must be
reduced so that the banner does not encroach on the text. Relative to the top of
the page:
- - the top of the horizontal bar of “L” is at a distance equal to the sum of :
+ - the top of the horizontal bar of "L" is at a distance equal to the sum of :
- the distance between this top of page and the top of the vertical bar of
- “L”, equal to the height ($p$) of the paper minus the height ($l$) of “L”
+ "L", equal to the height ($p$) of the paper minus the height ($l$) of "L"
#+begin_src latex
\dim_gset:Nn \g__letgutbanner_first_page_shrink_dim {
\c__letgutbanner_tmargin_dim
@@ -652,7 +656,7 @@ reader who wants to copy the interesting text be able to select it.
#+begin_src latex
\BeginAccSupp{ActualText={}}
#+end_src
-We put now the big “L” at the right place.
+We put now the big "L" at the right place.
#+begin_src latex
\put(
.5\c__letgutbanner_lmargin_dim-.5\c__letgutbanner_banner_thickness_dim
@@ -770,7 +774,7 @@ We close ~\AddToHook{begindocument}~.
#+end_src
If the package is used with another class than \class{letgut}, we reduce the
-textheight of the first page of the height of the horizontal bar of the “L”.
+textheight of the first page of the height of the horizontal bar of the "L".
#+begin_src latex
\@ifclassloaded{letgut}{
@@ -786,7 +790,7 @@ textheight of the first page of the height of the horizontal bar of the “L”.
* Example file (=letgut-banner-example.tex=)
-#+begin_src latex :tangle letgut-banner-example.tex :exports both
+#+begin_src latex :tangle ../../../doc/lualatex/letgut/letgut-banner-example.tex :exports none
\documentclass[twoside]{article}
\usepackage{fontspec}
\usepackage[a4paper]{geometry}
diff --git a/Master/texmf-dist/source/lualatex/letgut/letgut.org b/Master/texmf-dist/source/lualatex/letgut/letgut.org
index b4244888a2f..39a3a2f6dbb 100644
--- a/Master/texmf-dist/source/lualatex/letgut/letgut.org
+++ b/Master/texmf-dist/source/lualatex/letgut/letgut.org
@@ -17,17 +17,18 @@
#+LaTeX_HEADER: \letgutsetup{editorial=false}
#+LaTeX_HEADER: \input{listings-conf}
# #+LaTeX_HEADER: \input{codehigh-conf}
+#+LaTeX_HEADER: \letgutsetup{detailedtoc}
# #+LaTeX_HEADER: \letgutsetup{editorial=false,final}
-#+PROPERTY: header-args :padline no :tangle letgut.cls :exports both :noweb yes :eval always
-#+export_file_name: letgut-code
+#+PROPERTY: header-args :padline no :mkdirp yes :tangle ../../../tex/lualatex/letgut/letgut.cls :exports both :noweb yes :eval always
+#+export_file_name: ../../../doc/lualatex/letgut/letgut-code
* Ctanomat file :noexport:
-We crete here a ~ctanomat~ description file in order to simplify the upload of
+We create here a ~ctanomat~ description file in order to simplify the upload of
new versions of the class on CTAN.
-#+begin_src markdown :tangle letgut.pkg
+#+begin_src markdown :tangle ../../../letgut.pkg
% This is a description file for ctan-o-mat.
% It manages uploads of a package to
% CTAN -- the Comprehensive TeX Archive Network.
@@ -50,7 +51,7 @@ new versions of the class on CTAN.
% This field contains the version of the package.
% The value is optional.
% The value is restricted to 32 characters.
- \version{0.9.1 2022-03-22}
+ \version{0.9.2 2022-06-18}
% -------------------------------------------------------------------------
% This field contains the name of the author(s).
% The value is optional.
@@ -89,7 +90,7 @@ new versions of the class on CTAN.
% The value is a URL.
% The value is restricted to 255 characters.
% Multiple values are allowed.
- \bugtracker{https://framagit.org/gutenberg/classe-lettre-gut/-/issues}
+ \bugtracker{https://framagit.org/gutenberg/letgut/-/issues}
% -------------------------------------------------------------------------
% This field contains the support channel.
% The value is optional.
@@ -103,14 +104,14 @@ new versions of the class on CTAN.
% The value is a URL.
% The value is restricted to 255 characters.
% Multiple values are allowed.
- \repository{https://framagit.org/gutenberg/classe-lettre-gut/}
+ \repository{https://framagit.org/gutenberg/letgut/}
% -------------------------------------------------------------------------
% This field contains the developer's channel.
% The value is optional.
% The value is a URL.
% The value is restricted to 255 characters.
% Multiple values are allowed.
- \development{https://framagit.org/gutenberg/classe-lettre-gut/-/merge_requests}
+ \development{https://framagit.org/gutenberg/letgut/-/merge_requests}
% -------------------------------------------------------------------------
% This field contains the update indicator; true for update.
% The value is optional.
@@ -127,6 +128,33 @@ new versions of the class on CTAN.
% The value is optional.
% The value is restricted to 8192 characters.
\begin{announcement}
+ ## [0.9.2] - 2022-06-18
+
+ ### Added
+ - Listings for commands in terminals.
+ - Aliases of frequently used commands.
+ - New commands for frequently used terms or expressions.
+ - Command for specifying LaTeX packages that benefit from syntax highlighting.
+ - Own ~listings~' language driver file for LaTeX packages syntax highlighting.
+ - Commands for keyboard keys of accentuated characters.
+ - ~detailedtoc~ option for Lettre's structure checking.
+ - Mimic the multiple option of the footmisc package.
+ - Command ~\inputarticle~ (instead of ~\input~) for the input of articles.
+ - ⅛ as a short equivalent of ~\lstinline~.
+ - Some tweaks and improvements.
+
+ ### Changed
+ - Last names of persons and authors not in small caps anymore.
+ - \tl isn't an acronym anymore and now typesets “TeX Live”.
+ - All the acronyms reset at the beginning of each ~\inputarticle~-ed article.
+ - All options now possibly load-time ones.
+ - Unlikely to change input files searched:
+ 1. in the parent directory if not in the current one,
+ 2. in the TDS.
+ - Right ISSN in case of “paper” version of la Lettre.
+
+ ### Fixed
+ Several bugs.
\end{announcement}
% -------------------------------------------------------------------------
% This field contains the one-liner for the package.
@@ -183,30 +211,58 @@ new versions of the class on CTAN.
* Changelog file :noexport:
-#+begin_src markdown :tangle CHANGELOG.md
+#+begin_src markdown :tangle ../../../doc/lualatex/letgut/CHANGELOG.md
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic
- Versioning](http://semver.org/spec/v2.0.0.html).
+ Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
+ ## [0.9.2] - 2022-06-18
+
+ ### Added
+ - Listings for commands in terminals.
+ - Aliases of frequently used commands.
+ - New commands for frequently used terms or expressions.
+ - Command for specifying LaTeX packages that benefit from syntax highlighting.
+ - Own ~listings~' language driver file for LaTeX packages syntax highlighting.
+ - Commands for keyboard keys of accentuated characters.
+ - ~detailedtoc~ option for Lettre's structure checking.
+ - Mimic the multiple option of the footmisc package.
+ - Command ~\inputarticle~ (instead of ~\input~) for the input of articles.
+ - ⅛ as a short equivalent of ~\lstinline~.
+ - Some tweaks and improvements.
+
+ ### Changed
+ - Last names of persons and authors not in small caps anymore.
+ - \tl isn't an acronym anymore and now typesets “TeX Live”.
+ - All the acronyms reset at the beginning of each ~\inputarticle~-ed article.
+ - All options now possibly load-time ones.
+ - Unlikely to change input files searched:
+ 1. in the parent directory if not in the current one,
+ 2. in the TDS.
+ - Right ISSN in case of “paper” version of la Lettre.
+
+ ### Fixed
+ Several bugs.
+
## [0.9.1] - 2022-03-22
### Changed
- File renamed (Karl Berry request)
+ File renamed (Karl Berry request).
## [0.9] - 2022-03-18
### Added
- First public testing release
+ First public testing release.
#+end_src
* Readme file :noexport:
-#+begin_src markdown :tangle README.md
+#+begin_src markdown :tangle ../../../doc/lualatex/letgut/README.md
letgut - Support for the newsletter “La Lettre GUTenberg”
=========================================================
@@ -217,12 +273,12 @@ to the newsletter “La Lettre GUTenberg” of GUTenberg, the French TeX User Gr
Release
-------
-2022-03-22 v0.9.1
+2022-06-18 v0.9.2
Development
-----------
Follow development, submit issues and suggest improvements at
-https://framagit.org/gutenberg/classe-lettre-gut.
+https://framagit.org/gutenberg/letgut.
#+end_src
* How to :noexport:
@@ -232,8 +288,8 @@ We explain in a \file*{HOWTO.md} file how to:
- tangle the \file*{letgut.cls} and \file*{letgut-banner.sty},
- build the:
- documented codes \file*{letgut-code.pdf} and \file*{letgut-banner-code.pdf}
- of the classe and the package,
- - \file*{letgut.pdf} of the class
+ of the class and the package,
+ - \file*{letgut.pdf} of the class,
from the \software[https://orgmode.org/]{Org Mode} source files
\file*{letgut.org} and \file*{letgut-banner.org}.
@@ -247,18 +303,18 @@ In order to:
from the Org Mode source files `letgut.org` and `letgut-banner.org`:
-- it is necessary a reasonably recent version of Emacs,
-- it is then sufficient to run (in a directory containing the `letgut.el` file
+- it is necessary to have a reasonably recent version of Emacs,
+- it is then sufficient to run (in a directory containing the `build-letgut.el` file
to be found in the current directory):
- for the `letgut` class:
- emacs -Q letgut.org --batch -l letgut.el -f org-babel-tangle --kill
- emacs -Q letgut.org --batch -l letgut.el -f org-latex-export-to-pdf --kill
+ emacs -Q letgut.org --batch -l build-letgut.el -f org-babel-tangle --kill
+ emacs -Q letgut.org --batch -l build-letgut.el -f org-latex-export-to-pdf --kill
- for the `letgut-banner` package:
- emacs -Q letgut-banner.org --batch -l letgut.el -f org-babel-tangle --kill
- emacs -Q letgut-banner.org --batch -l letgut.el -f org-latex-export-to-pdf --kill
+ emacs -Q letgut-banner.org --batch -l build-letgut.el -f org-babel-tangle --kill
+ emacs -Q letgut-banner.org --batch -l build-letgut.el -f org-latex-export-to-pdf --kill
This creates the files `letgut.cls`, `letgut-banner.sty`, `letgut-code.tex` and
`letgut-banner-code.tex`.
@@ -347,11 +403,10 @@ Now, we can announce the class name and its version:
#+begin_src latex
\ProvidesExplClass{letgut}
- {2022-03-22}
- {0.9.1}
+ {2022-03-17}
+ {0.9}
{
- Class~ for~ the~ newsletter~
- “\c__letgut_La_lettre_gutenberg_tl”
+ Class for the newsletter “The GUTenberg Letter”
}
#+end_src
@@ -438,6 +493,10 @@ Some messages are declared for future use.
#+begin_src latex
\bool_new:N \l__letgut_in_footnote_bool
#+end_src
+- For testing whether we currently ask the draft or the final version.
+ #+begin_src latex
+ \bool_new:N \g__letgut_draft_bool
+ #+end_src
*** Dimensions
@@ -642,60 +701,78 @@ We close the ~\AddToHook{begindocument/before}~ argument.
**** Constant ones
#+begin_src latex
- \tl_const:Nn \c__letgut_cahier_tl { \emph{ Cahier } }
- \tl_const:Nn \c__letgut_cahiers_tl {
- \c__letgut_cahier_tl \emph{ s }
- }
- \tl_const:Nn \c__letgut_tugboat_tl { \emph{ TUGboat } }
- \tl_const:Nn \c__letgut_banner_file_tl { bandeau }
- \tl_const:Nn \c__letgut_editorial_file_tl { editorial }
- \tl_const:Nn \c__letgut_informations_gutenberg_file_tl {
- informations-gut
- }
- \tl_const:Nn \c__letgut_acronyms_file_tl { letgut-acronyms }
- \tl_const:Nn \c__letgut_local_config_file_tl { localconf }
- \tl_const:Nn \c__letgut_contents_name_tl { Sommaire }
- \tl_const:Nn \c__letgut_draftwatermark_text_tl {
- \textnormal{Brouillon}
- }
- \tl_const:Nn \c__letgut_membership_reminder_tl {
- {\LARGE
- \bfseries
- Avez-vous~ pensé~ à~ régler~ votre~ cotisation~ ?
- % \the\year~ ?
- \par
- \medskip
- }
- Si~ vous~ avez~ oublié,~ ce~ n'est~ ni~ trop~ tard~
- ni~ difficile~ :
- \par
- \url{http://gutenberg.eu.org/?Adherer-en-ligne}
- \bool_if:NT \g__letgut_informations_bool {
- \file_if_exist:nT
- {./\c__letgut_informations_gutenberg_file_tl}{
- \par
- Voir~ aussi~ page~ \pageref{letgut_label_adhesions}.
- }
- }
- }
- \tl_const:Nn \c__letgut_missing_editorial_tl {
- Ne~ pas~ omettre~ l'éditorial~ !\\(à~ faire~ figurer~
- dans~ un~ \file*{\c__letgut_editorial_file_tl.tex}~
- dans~ le~ dossier~ courant)
- }
- \tl_const:Nn \c__letgut_missing_infomations_tl {
- Ne~ pas~ omettre~ les~ informations~ sur~
- \c__letgut_gutenberg_tl{}~ !\\(dans~ un~
- \file*{\c__letgut_informations_gutenberg_file_tl.tex}~
- situé~ dans~ le~ dossier~ courant)
- }
- \tl_const:Nn \c__letgut_default_alert_box_color_tl {
- gray9
- }
- \tl_const:Nn \c__letgut_default_allcolors_links_color_tl
- {
- teal!60!black
- }
+ \tl_const:Nn \c__letgut_online_issn_tl {
+ 2742-6149~ (version~ numérique)
+ }
+ \tl_const:Nn \c__letgut_paper_issn_tl {
+ 1257–2217~ (version~ papier)
+ }
+ \tl_const:Nn \c__letgut_cahier_tl { \emph{ Cahier } }
+ \tl_const:Nn \c__letgut_cahiers_tl {
+ \c__letgut_cahier_tl \emph{ s }
+ }
+ \tl_const:Nn \c__letgut_gnu_linux_tl { \software{GNU/Linux} }
+ \tl_const:Nn \c__letgut_macOS_tl { \software{macOS} }
+ \tl_const:Nn \c__letgut_windows_tl { \software{Windows} }
+ \tl_const:Nn \c__letgut_package_tl { package }
+ \tl_const:Nn \c__letgut_class_tl { classe }
+ \tl_const:Nn \c__letgut_file_tl { fichier }
+ \tl_const:Nn \c__letgut_software_tl { logiciel }
+ \tl_const:Nn \c__letgut_tugboat_tl { \emph{ TUGboat } }
+ \tl_const:Nn \c__letgut_tex_live_tl {
+ \hologo{ TeX }\nobreakspace Live
+ }
+ \tl_const:Nn \c__letgut_banner_file_tl { bandeau }
+ \tl_const:Nn \c__letgut_editorial_file_tl { editorial }
+ \tl_const:Nn \c__letgut_informations_gutenberg_file_tl {
+ informations-gut
+ }
+ \tl_const:Nn \c__letgut_acronyms_file_tl { letgut-acronyms }
+ \tl_const:Nn \c__letgut_local_config_file_tl { localconf }
+ \tl_const:Nn \c__letgut_lstlanguage_file_tl { letgut-lstlang.sty }
+ \tl_const:Nn \c__letgut_contents_name_tl { Sommaire }
+ \tl_const:Nn \c__letgut_draftwatermark_text_tl {
+ \textnormal{Brouillon}
+ }
+ \tl_const:Nn \c__letgut_membership_reminder_tl {
+ {\LARGE
+ \bfseries
+ Avez-vous~ pensé~ à~ régler~ votre~ cotisation~ ?
+ % \the\year~ ?
+ \par
+ \medskip
+ }
+ Si~ vous~ avez~ oublié,~ ce~ n'est~ ni~ trop~ tard~
+ ni~ difficile~ :
+ \par
+ \url{https://www.gutenberg-asso.fr/?Adherer-en-ligne}
+ \bool_if:NT \g__letgut_informations_bool {
+ \file_if_exist:nT
+ {./\c__letgut_informations_gutenberg_file_tl}{
+ \par
+ Voir~ aussi~ page~ \pageref{letgut_label_adhesions}.
+ }
+ }
+ }
+ \tl_const:Nn \c__letgut_missing_editorial_tl {
+ Ne~ pas~ omettre~ l'éditorial~ !\\(à~ faire~ figurer~
+ dans~ un~ \file*{\c__letgut_editorial_file_tl.tex}~
+ dans~ le~ dossier~ courant)
+ }
+ \tl_const:Nn \c__letgut_missing_infomations_tl {
+ Ne~ pas~ omettre~ les~ informations~ sur~
+ \c__letgut_gutenberg_tl{}~ !\\(dans~ un~
+ \file*{\c__letgut_informations_gutenberg_file_tl.tex}~
+ situé~ soit~ dans~ le~ dossier~ courant, soit~ dans~ le~
+ dossier~ parent)
+ }
+ \tl_const:Nn \c__letgut_default_alert_box_color_tl {
+ gray9
+ }
+ \tl_const:Nn \c__letgut_default_allcolors_links_color_tl
+ {
+ teal!60!black
+ }
#+end_src
**** Variables ones
@@ -740,15 +817,111 @@ We define the 2 load time options for the target audience:
- ~for-readers~ (the default), for the “normal” “Lettre”,
- ~for-authors~, (only) the author(s) of an article of the “Lettre”.
+** Date handling
+
#+begin_src latex
- \keys_define:nn { letgut }
+ \int_new:N \g__letgut_date_month_int
+ \int_new:N \g__letgut_date_year_int
+
+ \int_gset:Nn \g__letgut_date_month_int {\the\month}
+ \int_gset:Nn \g__letgut_date_year_int {\the\year}
+
+ \tl_new:N \g__letgut_date_month_tl
+ \tl_new:N \g__letgut_date_tl
+
+ \cs_new_protected:Npn \__letgut_date_parse:n #1
{
- , for-readers .bool_gset:N = \g__letgut_for_readers_bool
- , for-readers .initial:n = { true }
- , for-readers .default:n = { true }
- , for-authors .bool_gset_inverse:N = \g__letgut_for_readers_bool
+ \__letgut_if_is_iso_date:nTF {#1}
+ {
+ \__letgut_date_parse:www #1 \q_stop
+ }{
+ \msg_term:nnn{letgut}{Not~month~iso~date}{#1}
+ \tl_gset:Nn \g__letgut_date_tl { #1 }
+ }
+ }
+
+ \prg_new_protected_conditional:Npnn
+ \__letgut_if_is_iso_date:n #1 { T, F, TF }
+ {
+ \regex_match:nnTF { ^\d{4}-(\d{1,2}) } {#1}
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
+
+ \prg_new_protected_conditional:Npnn
+ \__letgut_if_is_int:n #1 { T, F, TF }
+ {
+ \regex_match:nnTF { ^[\+\-]?[\d]+$ } {#1}
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
+
+ \cs_new_protected:Npn \__letgut_month_name:n #1
+ {
+ % \text_titlecase_first:n {
+ \int_case:nnF
+ { #1 }
+ {
+ { 1 }{ janvier }
+ { 2 }{ février }
+ { 3 }{ mars }
+ { 4 }{ avril }
+ { 5 }{ mai }
+ { 6 }{ juin }
+ { 7 }{ juillet }
+ { 8 }{ août }
+ { 9 }{ septembre }
+ { 10 }{ octobre }
+ { 11 }{ novembre }
+ { 12 }{ décembre }
+ }
+ { Month~ Error! }
+ % }
+ }
+
+ \cs_new_protected:Npn \__letgut_date_parse:www #1-#2
+ \q_stop
+ {
+ \int_compare:nTF
+ {
+ \the\year <= #1 <= \the\year+1
+ #+end_src
+
+# >> (Just not to disturb the parentheses balancing
+# detection of my editor.)
+
+ #+begin_src latex
+ }{
+ \int_gset:Nn \g__letgut_date_year_int {#1}
+ }{
+ \int_gset:Nn \g__letgut_date_year_int {\the\year}
+ }
+ \__letgut_if_is_int:nTF {#2}
+ {
+ \int_compare:nTF
+ {
+ 1 <= #2 <= 12
+ #+end_src
+
+# >> (Just not to disturb the parentheses balancing
+# detection of my editor.)
+
+ #+begin_src latex
+ }
+ {\int_gset:Nn \g__letgut_date_month_int {#2}}
+ {\int_gset:Nn \g__letgut_date_month_int {\the\month}}
+ }{
+ \int_gset:Nn \g__letgut_date_month_int {\the\month}
+ }
+ \tl_gset:Nn \g__letgut_date_month_tl {
+ \__letgut_month_name:n { \g__letgut_date_month_int }
+ }
+ \tl_gset:Nn \g__letgut_date_tl {
+ \tl_use:N \g__letgut_date_month_tl
+ \c_space_tl
+ \int_use:N \g__letgut_date_year_int
+ }
}
- \ProcessKeysOptions { letgut }
#+end_src
** Class and package loading
@@ -793,6 +966,10 @@ We now load some packages.
#+begin_src latex
\RequirePackage{graphicx}
#+end_src
+- Biolinum font.
+ #+begin_src latex
+\RequirePackage{biolinum}
+ #+end_src
- Extending the array and tabular environments.
#+begin_src latex
\RequirePackage{array}
@@ -931,7 +1108,7 @@ We close the ~\AddToHook{begindocument/before}~ argument.
#+begin_src latex
\sisetup{
, locale=FR
- , mode=text
+ , mode=match
}
#+end_src
- Concerning floats, we ask:
@@ -970,211 +1147,6 @@ We close the ~\AddToHook{begindocument/before}~ argument.
#+begin_src latex
\renewcommand*\frenchtablename{Tableau}
#+end_src
-- We fix some defaults for the listings : we define a style for all the listings
- which resets all the \TeX{} control sequences/keywords and then load all the
- basic (La)TeX dialects of TeX. But we start with a dialect which is missing in
- the \package*{listings}.
- #+begin_src latex
- \lstdefinelanguage[classes]{TeX}[LaTeX]{TeX}{%
- % Control sequences
- moretexcs={%
- abovecaptionskip,abstractname,appendix,appendixname,
- arraycolsep,arrayrulewidth,author,backmatter,baselinestretch,
- belowcaptionskip,bf,bibindent,bibname,bigskipamount,
- bottomfraction,brokenpenalty,cal,chapter,chaptermark,
- chaptername,clubpenalty,columnsep,columnseprule,contentsname,
- date,dblfloatpagefraction,dblfloatsep,dbltextfloatsep,
- dbltopfraction,descriptionlabel,displaywidowpenalty,
- doublerulesep,evensidemargin,fboxrule,fboxsep,figurename,
- floatpagefraction,floatsep,footins,footnoterule,footnotesep,
- footnotesize,footskip,frontmatter,headheight,headsep,huge,Huge,
- indexname,indexspace,interlinepenalty,intextsep,it,jot,
- labelenumi,labelenumii,labelenumiii,labelenumiv,labelitemfont,
- labelitemi,labelitemii,labelitemiii,labelitemiv,labelsep,
- labelwidth,large,Large,LARGE,leftmargin,leftmargini,
- leftmarginii,leftmarginiii,leftmarginiv,leftmarginv,
- leftmarginvi,lineskip,listfigurename,listoffigures,
- listoftables,listtablename,mainmatter,maketitle,marginparpush,
- marginparsep,marginparwidth,maxdepth,medskipamount,mit,
- newblock,normallineskip,normalsize,oddsidemargin,paragraph,
- paragraphmark,parindent,parskip,part,partname,partopsep,
- postdisplaypenalty,predisplaypenalty,refname,rm,sc,scriptsize,
- section,sectionmark,sf,sl,small,smallskipamount,subitem,
- subparagraph,subparagraphmark,subsection,subsectionmark,
- subsubitem,subsubsection,subsubsectionmark,tabbingsep,
- tabcolsep,tablename,tableofcontents,textfloatsep,textfraction,
- textheight,textwidth,thechapter,theenumi,theenumii,theenumiii,
- theenumiv,theequation,theparagraph,thepart,thesection,
- thesubparagraph,thesubsection,thesubsubsection,tiny,title,
- today,topfraction,topmargin,topskip,tt,widowpenalty,
- },%
- % Keywords of class 1 : keywords that contain other characters
- % (since of the same class as the ones specified as
- % 'otherkeywords')
- morekeywords={%
- %
- },%
- % Keywords of class 2 : environments names
- morekeywords=[2]{%
- abstract,description,figure,quotation,quote,table,
- thebibliography,theindex,titlepage,verse%
- },%
- % Keywords of class 3 : mandatory arguments (not environments)
- % & optional arguments which are keys (in key=value)
- morekeywords=[3]{%
- },%
- % Keywords of class 4 : values of keys (in key=value)
- morekeywords=[4]{%
- },%
- % Keywords of class 5 : arguments specifications (after “:”
- % in expl3 syntax)
- morekeywords=[5]{%
- },%
- % Keywords of class 6 : current package name (and possibly
- % derived packages)
- morekeywords=[6]{%
- a0poster,aalok,aastex631,abntex2,achemso,acmart,acmconf,
- active-conf,adfathesis,afparticle,afthesis,aguplus,aiaa-tc,
- akklecture,akkscript,akktecdoc,akletter,myletter,ametsoc,
- amsart,amsbook,amsdtx,amsldoc,amsproc,aomart,apa,apa6,
- apa6e,apa7,arabart,arabbook,arabrep,arabrep1,articleingud,
- asaetr,ascelike,asmeconf,asmejour,assignment,aucklandthesis,
- bangorcsthesis,bangorexam,barticle,bbook,bletter,
- bankstatement,article,book,letter,ltnews,ltxdoc,ltxguide,
- minimal,proc,report,slides,source2edoc,basque-book,beamer,
- beamerswitch,beaulivre,beilstein,argetabelle,bewerbung,
- bgteubner,BHCexam,bitart,bitbook,bjfuthesis,BMSTU-IU8,
- bookcover,bookest,bookshelf,br-lex,brandeis-dissertation,
- brandeis-problemset,brandeis-thesis,buctcover,buctthesis,
- bxjsarticle,bxjsbook,bxjsreport,bxjsslide,cascadilla,cd,
- cd-cover,articoletteracdp,letteracdp,cesenaexam,cheatsheet,
- chemmacros-manual,chletter,cje,cnbwp,cnltx-doc,codedoc,
- colorart,colorbook,combine,cc,ConcProg,confproc,contracard,
- courseoutline,coursepaper,cquthesis,csbulletin,csbulobalka,
- csbulv1,ctexart,ctexbeamer,ctexbook,ctexrep,ctxdoc,curve,
- cv4tw,cweb,idcc,ijdc-v14,ijdc-v9,dinbrief,disser,gost732,
- dithesis,droit-fr,dtk,dvdcoll,easybook,ebsthesis,agecon,
- ajae,apecon,ecca,erae,itaxpf,jrurstud,njf,oegatb,pocoec,
- regstud,worlddev,ecv,einfart,ejpecp,elbioimp,elegantbook,
- elegantnote,elegantpaper,elpres,cas-dc,cas-sc,elsarticle,
- elteikthesis,emisa,emulateapj,erdc,eskd,eskdgraph,eskdtab,
- eskdtext,estcpmm,europasscv,europecv,exam,exam-n,examdesign,
- exesheet,extarticle,extbook,extletter,extproc,extreport,
- facsimile,factura,fancyhandout,fancyslides,fbithesis,fcavtex,
- fdudoc,fduthesis-en,fduthesis,fei,ffslides,fithesis,
- fithesis2,fithesis3,fithesis4,flacards,flashcards,frletter,
- g-brief,g-brief2,gaceta,gammas,gatech-thesis,gmdocc,
- gradstudentresume,grant-afosr,grant-aro,grant-darpa,grant-doe,
- grant-nih,grant-nrl,grant-nsf,grant-onr,grant,graphpaper,
- gridslides,gsemthesis,guitartabs,gzt,gztarticle,h2020proposal,
- hgbarticle,hgbreport,hgbthesis,harnon-cv,hausarbeit-jura,
- hcart,hcletter,hcreport,hcslides,hecthese,hepthesis,hitec,
- hithesis,hitreport,hitszthesis,hletter,hpsdiss,fsbispit,
- huawei,hustthesis,icsv,IEEEconf,IEEEtran,ijmart,ijsra,
- image-gallery,IMTEKda,inkpaper,invoice-class,iodhbwm,iscram,
- isov2,isodoc,iwhdp,jacow,jlreq,jmlr,jmlrbook,jnuexam,jpsj2,
- jura,jurabook,juraovw,juraurtl,kdgcoursetext,kdgmasterthesis,
- kdpcover,kerntest,kluwer,knittingpattern,scrartcl,scrarticle,
- scrbook,scrdoc,scrletter,scrlttr2,scrreport,scrreprt,komacv,
- oblivoir-utf,oblivoir-xl,oblivoir,xoblivoir,ksp-thesis,l3doc,
- labbook,leadsheet,leaflet,lebhart,lectures,letgut,lettre,limap,
- limecv,lion-msc,lni,lps,lt3graph-packagedoc,ltxdockit,
- ltxguidex,abstbook,beletter,flashcard,iagproc,cours,fiche,
- matapli,matc3mem,mcmthesis,ltxmdf,medstarbeamer,meetingmins,
- memoir,mensa-tex,mentis,metanorma,milog,minimart,minimbook,
- mla,mluexercise,mnras,moderncv,modernposter,msu-thesis,
- mucproc,mugsthesis,muling,musuos,muthesis,third-rep,mwart,
- mwbk,mwrep,mycv,nature,ncc,nccproc,sibjnm,nddiss2e,
- ndsu-thesis,newlfm,nih,nihbiosketch,njurepo,nlctdoc,nostarch,
- nrc1,nrc2,artikel1,artikel2,artikel3,boek,boek3,brief,
- rapport1,rapport3,nwejm,nwejmart,octavo,onrannual,
- oup-authoring-template,journal,paper,papertex,pbsheet,pecha,
- petiteannonce,philosophersimprint,pittetd,pkuthss,plari,play,
- postcards,powerdot,FUpowerdot,ppr-prv,pracjourn,pressrelease,
- proposal,reporting,dfgproposal,dfgreporting,euproposal,
- eureporting,prosper,protocol,prtec,upmgr,wkmgr,pst-doc,
- ptptex,qcm,quantumarticle,qyxf-book,ReadableCV,recipe,
- RecipeBook,recipecard,refart,refrep,resphilosophica,revtex4-2,
- revtex4,revtex4-1,rtklage,ryersonSGSThesis,ryethesis,sageep,
- sapthesis,schuleab,schulein,schuleit,schulekl,schuleub,
- schuleue,schullsg,schullzk,schulma-ab,schulma-gutachten,
- schulma-klausur,schulma-komp,schulma-mdlprf,schulma-praes,
- schwalbe,sciposter,screenplay,scrjrnl,sdapsclassic,sduthesis,
- seminar,semproc,sesamanuel,seuthesix,sffms,cassete,etiketka,
- shtthesis,caesar_book,sides,simplecv,simplivre,skbarticle,
- skbbeamer,skbbook,skblncsbeamer,skblncsppt,skbmoderncv,skdoc,
- skeyval-testclass,skrapport,smfart,smfbook,SPhdThesis,spie,
- sr-vorl,sslides,stage,standalone,usthesis,hwexam,mikoslides,
- omdoc,smglom,subfiles,suftesi,sugconf,tabriz-thesis,talk,
- tcldoc,tclldoc,powersem,thesis-ekf,thesis-gwu,thuthesis,
- tikz-kalender,tikzposter,tlc-article,TOPletter,toptesi,
- tudabeamer,tudaexercise,tudaleaflet,tudaletter,tudaposter,
- tudapub,tudasciposter,tudscrartcl,tudscrbook,tudscrdoc,
- tudscrmanual,tudscrposter,tudscrreprt,tufte-book,tufte-handout,
- ltugboat,ltugproc,tui,turabian,turabian-researchpaper,
- turabian-thesis,my-thesis,ua-thesis,uafthesis,
- uantwerpenbamathesis,uantwerpencoursetext,uantwerpenexam,
- uantwerpenletter,uantwerpenphdthesis,uantwerpenreport,
- ucalgmthesis,ucbthesis,ucdavisthesis,ucsmonograph,ucthesis,
- udesoftec,uebungsblatt,uestcthesis,uhhassignment,uiucredborder,
- uiucthesis,ulthese,legislation,umich-thesis,umthesis,
- unam-thesis,unifith,unitn-bimrep,univie-ling-expose,
- univie-ling-paper,univie-ling-thesis,univie-ling-wlg,
- unizgklasa,uothesis,UoWthesis,upmethodology-document,URbeamer,
- URletter,uspatent,ut-thesis,utexasthesis,uwmslide,uwthesis,
- verifica,webquiz,willowtreebook,withargs-packagedoc,
- wsemclassic,xduthesis,xebaposter,xmuthesis,xsim-manual,
- yaletter,yathesis,ycbook,ydoc,york-thesis,
- },%
- otherkeywords={},%
- alsoletter={0123456789-},%
- alsodigit={},%
- sensitive%
- }[keywords,tex,comments]%
- #+end_src
-
- #+begin_src latex
- \lstdefinestyle{__letgut_all_reset}{
- basicstyle=\ttfamily,
- language=TeX,%
- texcs={},%
- keywords={},%
- keywords=[2]{},%
- keywords=[3]{},%
- keywords=[4]{},%
- keywords=[5]{},%
- otherkeywords={},%
- alsoletter={},%
- alsodigit={},%
- alsolanguage=[AlLaTeX]TeX,%
- alsolanguage=[LaTeX]TeX,%
- alsolanguage=[plain]TeX,%
- alsolanguage=[common]TeX,%
- alsolanguage=[primitive]TeX,%
- alsolanguage=[classes]TeX,%
- #+end_src
- Because of a current issue involving \package{parskip} and
- \package{listings}
- (\url{https://github.com/FrankMittelbach/fmitex-parskip/issues/3}), we have to
- set the skip below the displayed listings to a zero length.
- #+begin_src latex
- belowskip=0pt,
- }
- \lstset{
- style=__letgut_all_reset
- }
- #+end_src
- This style is applied automatically at the beginning of each ~\input~
- file. Hence, the keywords defined in a previous file (by loading some
- peticular (La)TeX dialects, i.e. control sequences and keywords specific to
- some class or packages) won't interfere with the ones of the current file.
- #+begin_src latex
- \AddToHook{cmd/input/before}{
- \lstset{%
- style=__letgut_all_reset,%
- }
- }
- #+end_src
- The ~\printbibliography~ command is redefined in order its ~heading~ is by
default set to ~subbibliography~.
#+begin_src latex
@@ -1232,7 +1204,7 @@ We close the ~\AddToHook{begindocument/before}~ argument.
- We want the hyperlinks to be as unobtrusive as possible.
#+begin_src latex
\bool_if:NTF \g__letgut_paper_bool {
- \hypersetup{draft}
+ \hypersetup{hidelinks}
}{
\hypersetup{%
colorlinks,%
@@ -1241,10 +1213,19 @@ We close the ~\AddToHook{begindocument/before}~ argument.
}
#+end_src
- A preset of acronyms is input (if found).
+ A preset of acronyms is input (if found, firstly in the current directory,
+ secondly in the parent directory, thirdly in the TDS).
#+begin_src latex
- \file_if_exist:nT {\c__letgut_acronyms_file_tl}{
- \file_input:n {\c__letgut_acronyms_file_tl}
+ \file_if_exist:nTF {./\c__letgut_acronyms_file_tl}{
+ \file_input:n {./\c__letgut_acronyms_file_tl}
+ }{
+ \file_if_exist:nTF {../\c__letgut_acronyms_file_tl}{
+ \file_input:n {../\c__letgut_acronyms_file_tl}
+ }{
+ \file_if_exist:nT {\c__letgut_acronyms_file_tl}{
+ \file_input:n {\c__letgut_acronyms_file_tl}
+ }
+ }
}
#+end_src
@@ -1271,7 +1252,8 @@ We close the ~\AddToHook{begindocument/before}~ argument.
{
\Huge
#+end_src
- Currently, we can't use \package{l3color}'s ~\color_fill:n~[fn:1]
+ Currently, we can't use \package{l3color}'s ~\color_fill:n~ (see
+ \url{https://github.com/ho-tex/luacolor/issues/4\#issuecomment-848774260})
and we have to rely on \package{xcolor}'s ~\color~.
#+begin_src latex
% \color_fill:n {black!10}
@@ -1335,113 +1317,6 @@ We close the ~\AddToHook{begindocument/before}~ argument.
}
#+end_src
-** Date handling
-
-#+begin_src latex
- \int_new:N \g__letgut_date_month_int
- \int_new:N \g__letgut_date_year_int
-
- \int_gset:Nn \g__letgut_date_month_int {\the\month}
- \int_gset:Nn \g__letgut_date_year_int {\the\year}
-
- \tl_new:N \g__letgut_date_month_tl
- \tl_new:N \g__letgut_date_tl
-
- \cs_new_protected:Npn \__letgut_date_parse:n #1
- {
- \__letgut_if_is_iso_date:nTF {#1}
- {
- \__letgut_date_parse:www #1 \q_stop
- }{
- \msg_term:nnn{letgut}{Not~month~iso~date}{#1}
- \tl_gset:Nn \g__letgut_date_tl { #1 }
- }
- }
-
- \prg_new_protected_conditional:Npnn
- \__letgut_if_is_iso_date:n #1 { T, F, TF }
- {
- \regex_match:nnTF { ^\d{4}-(\d{1,2}) } {#1}
- { \prg_return_true: }
- { \prg_return_false: }
- }
-
- \prg_new_protected_conditional:Npnn
- \__letgut_if_is_int:n #1 { T, F, TF }
- {
- \regex_match:nnTF { ^[\+\-]?[\d]+$ } {#1}
- { \prg_return_true: }
- { \prg_return_false: }
- }
-
- \cs_new_protected:Npn \__letgut_month_name:n #1
- {
- % \text_titlecase_first:n {
- \int_case:nnF
- { #1 }
- {
- { 1 }{ janvier }
- { 2 }{ février }
- { 3 }{ mars }
- { 4 }{ avril }
- { 5 }{ mai }
- { 6 }{ juin }
- { 7 }{ juillet }
- { 8 }{ août }
- { 9 }{ septembre }
- { 10 }{ octobre }
- { 11 }{ novembre }
- { 12 }{ décembre }
- }
- { Month~ Error! }
- % }
- }
-
- \cs_new_protected:Npn \__letgut_date_parse:www #1-#2
- \q_stop
- {
- \int_compare:nTF
- {
- \the\year <= #1 <= \the\year+1
- #+end_src
-
-# >> (Just not to disturb the parentheses balancing
-# detection of my editor.)
-
- #+begin_src latex
- }{
- \int_gset:Nn \g__letgut_date_year_int {#1}
- }{
- \int_gset:Nn \g__letgut_date_year_int {\the\year}
- }
- \__letgut_if_is_int:nTF {#2}
- {
- \int_compare:nTF
- {
- 1 <= #2 <= 12
- #+end_src
-
-# >> (Just not to disturb the parentheses balancing
-# detection of my editor.)
-
- #+begin_src latex
- }
- {\int_gset:Nn \g__letgut_date_month_int {#2}}
- {\int_gset:Nn \g__letgut_date_month_int {\the\month}}
- }{
- \int_gset:Nn \g__letgut_date_month_int {\the\month}
- }
- \tl_gset:Nn \g__letgut_date_month_tl {
- \__letgut_month_name:n { \g__letgut_date_month_int }
- }
- \tl_gset:Nn \g__letgut_date_tl {
- \tl_use:N \g__letgut_date_month_tl
- \c_space_tl
- \int_use:N \g__letgut_date_year_int
- }
- }
-#+end_src
-
** Page color default settings
By default, the page color will be the one linked to the ~screen~ option.
@@ -1454,26 +1329,34 @@ We close the ~\AddToHook{begindocument/before}~ argument.
** Options
-These options look to need to be specified rather at the end (throws an error if
-defined before the ~\__letgut_date_parse:n~'s definition):
+We now define the options of the class:
+- ~for-readers~/~for-authors~, depending on the target audience,
+- ~draft~/~final~ depending on the state of the document,
+- ~paper~/~screen~ depending on the way the document will be read,
- ~number~ for the number of the issue,
- ~date~ for the date of the issue, either empty (hence the current (month)
date) or at the format ~YYYY-MM~ or as free input,
- ~pagecolor~ (relevant only with the (default) ~screen~ load time option) for
a color of the page other than the default one,
+- ~allcolorslinks~ for the color of (all) the links,
- ~membership-reminder~ that typesets a membership reminder on the first page,
+- ~editorial~ depending on the editorial is wanted or not,
+- ~infomations~ depending on the GUTenberg informations are wanted or not,
+- ~detailedtoc~ depending on the automatic ToC is wanted maximally (until
+ subparagraphs) detailed or not.
#+begin_src latex
- \keys_define:nn { letgut/setup }
+ \keys_define:nn { letgut }
{
+ , for-readers .bool_gset:N = \g__letgut_for_readers_bool
+ , for-readers .initial:n = { true }
+ , for-readers .default:n = { true }
+ , for-authors .bool_gset_inverse:N = \g__letgut_for_readers_bool
, draft .bool_gset:N = \g__letgut_draft_bool
, draft .initial:n = { true }
, draft .default:n = { true }
, final .bool_gset_inverse:N = \g__letgut_draft_bool
- , number .int_gset:N = \g__letgut_number_int
- , date .code:n = { \__letgut_date_parse:n { #1 } }
- , date .initial:x = {\the\year-\the\month}
, paper .code:n = {
\bool_gset_true:N \g__letgut_paper_bool
\pagecolor[rgb]{\c__letgut_default_pagecolor_paper_clist}
@@ -1481,6 +1364,9 @@ defined before the ~\__letgut_date_parse:n~'s definition):
\c__letgut_default_pagecolor_paper_clist
}
, screen .bool_gset_inverse:N = \g__letgut_paper_bool
+ , number .int_gset:N = \g__letgut_number_int
+ , date .code:n = { \__letgut_date_parse:n { #1 } }
+ , date .initial:x = {\the\year-\the\month}
, pagecolor .initial:V
= \c__letgut_default_pagecolor_screen_clist
, pagecolor .code:n = {
@@ -1508,7 +1394,14 @@ defined before the ~\__letgut_date_parse:n~'s definition):
, editorial .initial:n = { true }
, informations .bool_gset:N = \g__letgut_informations_bool
, informations .initial:n = { true }
+ , detailedtoc .bool_gset:N = \g__letgut_detailedtoc_bool
+ , detailedtoc .initial:n = { false }
}
+ \ProcessKeysOptions { letgut }
+#+end_src
+
+#+begin_src latex
+ \definecolor{letgut_pagecolor}{rgb}{\g__letgut_pagecolor_clist}
#+end_src
** Headers
@@ -1554,16 +1447,40 @@ We now define the headers.
The table of contents is customized:
-- only the titles of the articles are shown (but the bookmarks have their natural depth):
-#+begin_src latex
- \etocsetnexttocdepth{0}
- #+end_src
- layout:
#+begin_src latex
\etocsetstyle {section}
{}
- {\leavevmode\leftskip 2cm\relax}
- {\normalsize%
+ {\leavevmode\leftskip 2.5cm\relax}
+ {\mdseries\small%
+ \etocname~\dotfill~\etocpage\par
+ }
+ {}
+ \etocsetstyle {subsection}
+ {}
+ {\leavevmode\leftskip 3cm\relax}
+ {\mdseries\footnotesize%
+ \etocname~\dotfill~\etocpage\par
+ }
+ {}
+ \etocsetstyle {subsubsection}
+ {}
+ {\leavevmode\leftskip 3.5cm\relax}
+ {\mdseries\scriptsize%
+ \etocname~\dotfill~\etocpage\par
+ }
+ {}
+ \etocsetstyle {paragraph}
+ {}
+ {\leavevmode\leftskip 4cm\relax}
+ {\mdseries\tiny%
+ \etocname~\dotfill~\etocpage\par
+ }
+ {}
+ \etocsetstyle {subparagraph}
+ {}
+ {\leavevmode\leftskip 4.5cm\relax}
+ {\mdseries\tiny%
\etocname~\dotfill~\etocpage\par
}
{}
@@ -1701,7 +1618,8 @@ The first page is inserted only is the target audience is the readers of the
Lettre.
#+begin_src latex
- \bool_if:NT \g__letgut_for_readers_bool {
+ \AddToHook{begindocument/before}{
+ \bool_if:NT \g__letgut_for_readers_bool {
#+end_src
#+begin_src latex
@@ -1848,27 +1766,37 @@ Here starts what is automatically added at the beginning of the document.
- No headers on the first page. This has to be inserted after the previous
(customized) ~\maketitle~ since this command inserts a ~\newpage~ which would
ruin the effort of ~\thispagestyle{empty}~ if inserted before.
- #+begin_src latex
- \thispagestyle{empty}
- #+end_src
-- The table of contents is automatically added and has a bookmark entry.
#+begin_src latex
+ \thispagestyle{empty}
+ #+end_src
+- The table of contents is automatically added and has a bookmark entry. By
+ default only the titles of the articles are shown (but the bookmarks have
+ their natural depth) but the ~detailedtoc~ option make its depth until
+ subpargraphs (which may be useful in order to check the structure of the
+ Lettre).
+ #+begin_src latex
+ \bool_if:NTF \g__letgut_detailedtoc_bool {
+ \etocsetnexttocdepth{5}
+ }{
+ \etocsetnexttocdepth{0}
+ }
\pdfbookmark[1]{
\c__letgut_contents_name_tl
}{
\c__letgut_contents_name_tl
}
\tableofcontents
- #+end_src
+ \etocsetnexttocdepth{1}
+ #+end_src
Should a title be displayed, the table of contents would be added after it,
followed by a new page (otherwise, if ~\title~ used after ~\begin{document}~
sees its title on the front page, it will overflow onto the banner).
- #+begin_src latex
- \bool_if:NTF \g__letgut_title_empty_bool {
- \vspace*{1.5cm}
- }{
- \newpage
- }
+ #+begin_src latex
+ \bool_if:NTF \g__letgut_title_empty_bool {
+ \vspace*{1.5cm}
+ }{
+ \newpage
+ }
#+end_src
- Conditionally to the fact the ~editorial~ option is not set to ~false~: if the
\file*{editorial.tex} of the editorial is found, its content is input and
@@ -1882,7 +1810,7 @@ Here starts what is automatically added at the beginning of the document.
\pdfbookmark[1]{Éditorial}{
\c__letgut_editorial_file_tl
}
- \file_input:n {./\c__letgut_editorial_file_tl}
+ \__letgut_input_article:n {./\c__letgut_editorial_file_tl}
% % \int_set:N \l_tmpa_int {\pagenumber}
% % \int_compare:nNnT \l_tmpa_int = 1 { \newpage }
#+end_src
@@ -1945,19 +1873,33 @@ The last page is special: it should automatically contain some informations abou
\AddToHook{enddocument}
{
#+end_src
-Conditionally to the fact the ~informations~ option is not set to ~false~: if the
-\file*{informations-gut.tex} which contains the informations about
-\gutenberg. Otherwise, a warning is displayed.
+Conditionally to the fact the ~informations~ option is not set to ~false~: if
+the \file*{informations-gut.tex} which contains the informations about
+\gutenberg{} is found (firstly in the current directory, secondly in the parent
+directory, thirdly in the TDS). Otherwise, a warning is displayed.
#+begin_src latex
\bool_if:NT \g__letgut_informations_bool {
\clearpage
\phantomsection
- \file_if_exist:nTF
- {./\c__letgut_informations_gutenberg_file_tl}{
- \file_input:n {./\c__letgut_informations_gutenberg_file_tl}
+ \file_if_exist:nTF {./\c__letgut_informations_gutenberg_file_tl}{
+ \__letgut_input_article:n {
+ ./\c__letgut_informations_gutenberg_file_tl
+ }
}{
- \msg_warning:nn{letgut}{Informations~file~missing}
- \alertbox{ \c__letgut_missing_infomations_tl }
+ \file_if_exist:nTF {../\c__letgut_informations_gutenberg_file_tl}{
+ \__letgut_input_article:n {
+ ../\c__letgut_informations_gutenberg_file_tl
+ }
+ }{
+ \file_if_exist:nTF {\c__letgut_informations_gutenberg_file_tl}{
+ \__letgut_input_article:n {
+ \c__letgut_informations_gutenberg_file_tl
+ }
+ }{
+ \msg_warning:nn{letgut}{Informations~file~missing}
+ \alertbox{ \c__letgut_missing_infomations_tl }
+ }
+ }
}
}
#+end_src
@@ -1973,6 +1915,7 @@ the author(s) of the “Lettre”.
#+begin_src latex
}
+ }
#+end_src
** Sections, subsections, etc.
@@ -2006,11 +1949,18 @@ the author(s) of the “Lettre”.
{
\leavevmode\leftskip 2cm\relax
}
- {\mdseries\normalsize
+ {
+ \bool_if:NTF \g__letgut_detailedtoc_bool {
+ \bfseries
+ }{
+ \mdseries
+ }
+ \normalsize
\etocname
\nobreak\leaders\hbox~ to~ 1ex{\hss.}\hfill
\etocpage
- \par}
+ \par
+ }
{}
#+end_src
- We also create the new level ~\subtitle~ for the subtitles of the
@@ -2123,7 +2073,7 @@ We define the command that lets us specify the newsletter setup.
#+begin_src latex
\NewDocumentCommand \letgutsetup { m } {
- \keys_set:nn { letgut/setup } { #1 }
+ \keys_set:nn { letgut } { #1 }
}
#+end_src
@@ -2229,7 +2179,8 @@ For both persons and authors, the argument of:
#+begin_src latex
\cs_new_protected:Nn \__letgut_person_last_name:n
{
- {\scshape \__letgut_titlecase_name:n {#1}}
+ {% \scshape
+ \__letgut_titlecase_name:n {#1}}
}
\cs_new_protected:Nn \__letgut_person_first_name_last_name:nn
{
@@ -2248,7 +2199,7 @@ For both persons and authors, the argument of:
\cs_new_protected:Npn \__letgut_process_list:n #1
{
\seq_clear:N \l__letgut_items_seq
- \seq_set_split:Nnn \l_tmpa_seq {and} {#1}
+ \seq_set_split:Nnn \l_tmpa_seq {~and~} {#1}
\seq_map_inline:Nn \l_tmpa_seq {
\seq_set_from_clist:Nn \l_tmpb_seq {##1}
\seq_pop_left:NN \l_tmpb_seq \l_letgut_last_name_tl
@@ -2356,28 +2307,28 @@ https://github.com/latex3/hyperref/issues/188#issuecomment-826302843.
{
{\l__letgut_files_font_switch_tl #1}
}
- \NewDocumentCommand{\package}{ s o m O{package} } {
+ \NewDocumentCommand{\package}{ s o m O{\c__letgut_package_tl} } {
\IfBooleanT{#1}{
#4
\c_space_tl
}
\__letgut_tex_stuff:nn {#2}{#3}
}
- \NewDocumentCommand{\class}{ s o m O{classe} } {
+ \NewDocumentCommand{\class}{ s o m O{\c__letgut_class_tl} } {
\IfBooleanT{#1}{
#4
\c_space_tl
}
\__letgut_tex_stuff:nn {#2}{#3}
}
- \NewDocumentCommand{\file}{ s m O{fichier} } {
+ \NewDocumentCommand{\file}{ s m O{\c__letgut_file_tl} } {
\IfBooleanT{#1}{
#3
\c_space_tl
}
\__letgut_file:n {#2}
}
- \NewDocumentCommand {\software} { s O{} m O{logiciel} } {
+ \NewDocumentCommand {\software} { s O{} m O{\c__letgut_software_tl} } {
\IfBooleanT{#1}{
#4
\c_space_tl
@@ -2386,7 +2337,7 @@ https://github.com/latex3/hyperref/issues/188#issuecomment-826302843.
}
#+end_src
-*** Names, etc.
+*** Names, expressions, etc.
#+begin_src latex
\NewExpandableDocumentCommand { \gutenberg } { } {
@@ -2407,6 +2358,18 @@ https://github.com/latex3/hyperref/issues/188#issuecomment-826302843.
\NewExpandableDocumentCommand { \Cahiers } { } {
\c__letgut_cahiers_tl
}
+ \NewExpandableDocumentCommand { \cahier } { } {
+ \c__letgut_cahier_tl
+ }
+ \NewExpandableDocumentCommand { \cahiers } { } {
+ \c__letgut_cahiers_tl
+ }
+ \NewExpandableDocumentCommand { \cahiergut } { } {
+ \cahier \c_space_tl \gutenberg
+ }
+ \NewExpandableDocumentCommand { \cahiersgut } { } {
+ \cahiers \c_space_tl \gutenberg
+ }
\NewExpandableDocumentCommand { \letgut } { } {
\class{letgut}
}
@@ -2417,10 +2380,22 @@ https://github.com/latex3/hyperref/issues/188#issuecomment-826302843.
\c__letgut_tugboat_tl
}
\NewExpandableDocumentCommand { \knuth } { } {
- \person{Knuth, Donald~ E.}
+ \person{Knuth,~ Donald~ E.}
}
\NewExpandableDocumentCommand { \lamport } { } {
- \person{Lamport, Leslie}
+ \person{Lamport,~ Leslie}
+ }
+ \NewExpandableDocumentCommand { \tl } { } {
+ \c__letgut_tex_live_tl
+ }
+ \NewExpandableDocumentCommand { \linux } { } {
+ \c__letgut_gnu_linux_tl
+ }
+ \NewExpandableDocumentCommand { \macos } { } {
+ \c__letgut_macOS_tl
+ }
+ \NewExpandableDocumentCommand { \windows } { } {
+ \c__letgut_windows_tl
}
#+end_src
@@ -2444,32 +2419,49 @@ https://github.com/latex3/hyperref/issues/188#issuecomment-826302843.
We disabling some commands when their arguments have to go to bookmarks.
#+begin_src latex
- \AddToHook{begindocument/end}{
- \pdfstringdefDisableCommands{
- \def\person#1{#1}
- \def\author#1{#1}
- \def\package#1{#1}
- % \def\package*#1{package~#1}
- \def\class#1{#1}
- % \def\class*#1{classe~#1}
- \def\file#1{#1}
- % \def\file*#1{fichier~#1}
- \def\software#1{#1}
- % \def\software*#1{logiciel~#1}
- \def\foreignloc#1{#1}
- \def\lettre{Lettre}
- \def\gutenberg{GUTenberg}
- \def\gut{\gutenberg}
- \def\lettregut{\lettre\c_space_tl\gutenberg}
- \def\Cahier{Cahier}
- \def\Cahiers{\Cahier s}
- \def\letgut{letgut}
- \def\letgutcls{classe~ letgut}
- \def\knuth{Donald~ E.~ Knuth}
- \def\lamport{Leslie~ Lamport}
- \def\latinloc#1{#1}
- }
- }
+ \AddToHook{begindocument/end}{
+ \pdfstringdefDisableCommands{
+ \RenewExpandableDocumentCommand\person { m }{#1}
+ \RenewExpandableDocumentCommand\author{ m }{#1}
+ \RenewExpandableDocumentCommand \package { s O{} m }{
+ \IfBooleanT{#1}{\c__letgut_package_tl\c_space_tl}#3
+ }
+ \RenewExpandableDocumentCommand\class { s O{} m }{
+ \IfBooleanT{#1}{\c__letgut_class_tl\c_space_tl}#3
+ }
+ \RenewExpandableDocumentCommand\file { s m }{
+ \IfBooleanT{#1}{\c__letgut_file_tl\c_space_tl}#2
+ }
+ \RenewExpandableDocumentCommand\software { s O{} m }{
+ \IfBooleanT{#1}{\c__letgut_software_tl\c_space_tl}#3
+ }
+ \RenewExpandableDocumentCommand\foreignloc{ m }{#1}
+ \RenewExpandableDocumentCommand\latinloc{ m }{#1}
+ \RenewExpandableDocumentCommand\lettre{ }{Lettre}
+ \RenewExpandableDocumentCommand\gutenberg{ }{GUTenberg}
+ \RenewExpandableDocumentCommand\gut{ }{\gutenberg}
+ \RenewExpandableDocumentCommand\lettregut{ }{
+ \lettre\c_space_tl\gutenberg
+ }
+ \RenewExpandableDocumentCommand\Cahier{ }{Cahier}
+ \RenewExpandableDocumentCommand\Cahiers{ }{\Cahier s}
+ \RenewExpandableDocumentCommand\cahier{ }{Cahier}
+ \RenewExpandableDocumentCommand\cahiers{ }{\cahier s}
+ \RenewExpandableDocumentCommand\cahiergut{ }{
+ \cahier\c_space_tl\gutenberg
+ }
+ \RenewExpandableDocumentCommand\cahiersgut{ }{
+ \cahier s\c_space_tl\gutenberg
+ }
+ \RenewExpandableDocumentCommand\letgut{ }{letgut}
+ \RenewExpandableDocumentCommand\letgutcls{ }{classe~ letgut}
+ \RenewExpandableDocumentCommand\knuth{ }{Donald~ E.~ Knuth}
+ \RenewExpandableDocumentCommand\lamport{ }{Leslie~ Lamport}
+ \RenewExpandableDocumentCommand\linux{ }{GNU/Linux}
+ \RenewExpandableDocumentCommand\macos{ }{macOS}
+ \RenewExpandableDocumentCommand\windows{ }{Windows}
+ }
+ }
#+end_src
*** Acronyms
@@ -2549,18 +2541,31 @@ be the uppercased acronym).
The first occurrences of the acronyms will be displayed in their short forms,
with the long ones in footnotes. But what about acronyms whom first occurrences
-arise within footnotes? We want the to be displayed as their short forms
+arise within footnotes? We want them to be displayed as their short forms
followed by their the long form in parentheses. For this, we have to add
a boolean at the beginning (and reversed at the end) of the ~\footnote~ command
to know whether we currently are in a footnote or not and display the acronym
accordingly.
+BTW, we hack the ~\footnote~ command in order to mimic the ~multiple~ option of
+the \package{footmisc} package (consecutive ~\footnote~ commands make their
+corresponding footnote marks separated by commas). See
+https://tex.stackexchange.com/a/62091.
+
#+begin_src latex
+ \let\__letgut_next_token\relax
+ \cs_new_protected:Npn \__letgut_next_token_is_footnote:
+ {\if_meaning:w\footnote\__letgut_next_token\textsuperscript{,}\fi}
\NewCommandCopy{\__letgut_old_footnote}{\footnote}
- \RenewDocumentCommand {\footnote} { m }{
+ \RenewDocumentCommand {\footnote} { O{} m }{
\bool_set_true:N \l__letgut_in_footnote_bool
- \__letgut_old_footnote { #1 }
+ \tl_if_empty:nTF {#1}{
+ \__letgut_old_footnote { #2 }
+ }{
+ \__letgut_old_footnote [#1] { #2 }
+ }
\bool_set_false:N \l__letgut_in_footnote_bool
+ \futurelet\__letgut_next_token\__letgut_next_token_is_footnote:
}
#+end_src
We change a bit both the ~footnote~ acro template, the ~description~ list
@@ -2581,7 +2586,7 @@ template, and the macro which prints the locale.
\space
(
\acroifT {alt} { \acrotranslate {or} ~ \acrowrite {alt} ~ }
- \acroifT {foreign} { \acrowrite {foreign} :~ }
+ \acroifT {foreign} { \acrowrite {foreign} }
\acrowrite {long}
\acrogroupcite
)
@@ -2789,7 +2794,7 @@ extensions of the ~graphicx~ package.
\noindent
\textsf{\fullcite{\g__letgut_bookreview_bibkey_tl}}
\tl_if_empty:NF \g__letgut_bookreview_price_tl{
- .\c_space_tl\EUR{\g__letgut_bookreview_price_tl}
+ .\c_space_tl\g__letgut_bookreview_price_tl\c_space_tl €
}
\par
}{
@@ -2797,6 +2802,56 @@ extensions of the ~graphicx~ package.
}
#+end_src
+** Keyboard keys
+
+We make use of the Linux Biolinum Keyboard font and extend somehow the ~\LKey~
+provided by the \package*{biolinum} in order to more easily write keyboard keys
+for usual characters on French keyboards.
+
+#+begin_src latex
+ \DeclareRobustCommand*\LKey[1]{%
+ \ifx#10\biolinumKeyGlyph{zero}% % spurious space removed 2016/06/24
+ \else\ifx#11\biolinumKeyGlyph{one}%
+ \else\ifx#12\biolinumKeyGlyph{two}%
+ \else\ifx#13\biolinumKeyGlyph{three}%
+ \else\ifx#14\biolinumKeyGlyph{four}%
+ \else\ifx#15\biolinumKeyGlyph{five}%
+ \else\ifx#16\biolinumKeyGlyph{six}%
+ \else\ifx#17\biolinumKeyGlyph{seven}%
+ \else\ifx#18\biolinumKeyGlyph{eight}%
+ \else\ifx#19\biolinumKeyGlyph{nine}%
+ \else\ifx#1à\biolinumKeyGlyph{agrave}%
+ \else\ifx#1À\biolinumKeyGlyph{Agrave}%
+ \else\ifx#1â\biolinumKeyGlyph{acircumflex}%
+ \else\ifx#1Â\biolinumKeyGlyph{Acircumflex}%
+ \else\ifx#1é\biolinumKeyGlyph{eacute}%
+ \else\ifx#1É\biolinumKeyGlyph{Eacute}%
+ \else\ifx#1è\biolinumKeyGlyph{egrave}%
+ \else\ifx#1È\biolinumKeyGlyph{Egrave}%
+ \else\ifx#1ê\biolinumKeyGlyph{ecircumflex}%
+ \else\ifx#1Ê\biolinumKeyGlyph{Ecircumflex}%
+ \else\ifx#1ë\biolinumKeyGlyph{edieresis}%
+ \else\ifx#1Ë\biolinumKeyGlyph{Edieresis}%
+ \else\ifx#1î\biolinumKeyGlyph{icircumflex}%
+ \else\ifx#1Î\biolinumKeyGlyph{Icircumflex}%
+ \else\ifx#1ï\biolinumKeyGlyph{idieresis}%
+ \else\ifx#1Ï\biolinumKeyGlyph{Idieresis}%
+ \else\ifx#1ô\biolinumKeyGlyph{ocircumflex}%
+ \else\ifx#1Ô\biolinumKeyGlyph{Ocircumflex}%
+ \else\ifx#1ù\biolinumKeyGlyph{ugrave}%
+ \else\ifx#1Ù\biolinumKeyGlyph{Ugrave}%
+ \else\ifx#1û\biolinumKeyGlyph{ucircumflex}%
+ \else\ifx#1Û\biolinumKeyGlyph{Ucircumflex}%
+ \else\ifx#1ü\biolinumKeyGlyph{udieresis}%
+ \else\ifx#1Ü\biolinumKeyGlyph{Udieresis}%
+ \else\ifx#1ÿ\biolinumKeyGlyph{ydieresis}%
+ \else\ifx#1Ÿ\biolinumKeyGlyph{Ydieresis}%
+ \else\ifx#1ç\biolinumKeyGlyph{ccedilla}%
+ \else\ifx#1Ç\biolinumKeyGlyph{Ccedilla}%
+ \else\biolinumKeyGlyph{#1}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+#+end_src
+
** Miscellanous
- We specify the possible hyphenations of \enquote{\gutenberg}.
@@ -2804,6 +2859,22 @@ extensions of the ~graphicx~ package.
\hyphenation{GUT-enberg}
#+end_src
+*** ISSN
+
+#+begin_src latex
+ \cs_new_protected:Npn \__letgut_issn:
+ {
+ \bool_if:NTF \g__letgut_paper_bool {
+ \c__letgut_paper_issn_tl
+ }{
+ \c__letgut_online_issn_tl
+ }
+ }
+ \NewDocumentCommand{\letgutissn}{ }{
+ \__letgut_issn:
+ }
+#+end_src
+
*** Non selectable text
We create a control sequence that makes its argument not selectable in the
@@ -2820,7 +2891,7 @@ watermarks.
We provide a ~\meta~ macro that (poorly) mimics the one of the
\package*{doc}. It is added at the very end of the preamble since other
- package that provide a better definition of this macro may have been loaded
+ package that provide another definition of this macro may have been loaded
(e.g. \package{tcolorbox}).
#+begin_src latex
\colorlet {__letgut_meta} {
@@ -2835,49 +2906,168 @@ watermarks.
\textcolor{#1}{$\langle$#2$\rangle$}
\egroup
}
- \AddToHook{begindocument/before}{
- \ProvideDocumentCommand{\meta}{ O{__letgut_meta} m } {
+ \AddToHook{begindocument/end}{
+ \DeclareDocumentCommand{\meta}{ O{__letgut_meta} m } {
\__letgut_meta:nn {#1}{#2}
}
}
#+end_src
-** LaTeX listings and examples
+** Listings
-We first define some colors used in the listings and examples.
+We define a style for all the listings which resets all the \TeX{} control
+sequences and keywords, and fix some defaults.
#+begin_src latex
- \definecolor{__letgut_backgroundCode}{cmyk}{0,0,0,0.04}
- \definecolor{__letgut_borderCode}{cmyk}{0,0,0,0.2}
- \definecolor{__letgut_foregroundLinenumber}{cmyk}{0,0,0,0.5}
- \definecolor{__letgut_foregroundMention}{cmyk}{0,0,0,0}
- \definecolor{__letgut_backgroundResult}{cmyk}{0,0,0,0}
+ \lstdefinestyle{__letgut_reset_listings_styles}{
+ basicstyle=\ttfamily,
+ breaklines,
+ language=TeX,%
+ texcs={},%
+ language={},%
+ keywords={},%
+ keywords=[2]{},%
+ keywords=[3]{},%
+ keywords=[4]{},%
+ keywords=[5]{},%
+ otherkeywords={},%
+ alsoletter={},%
+ alsodigit={},%
+ escapechar=£,
+ columns=fullflexible,
+ keepspaces=true,
+ upquote=true,
+ showstringspaces=false,
#+end_src
-We now define the colors for the syntax highlighting and define the style of our
-listings.
+If line numbers are asked, they should always have the same layout and not be
+selectable (hence the ~\__letgut_unselectable:n~).
+
+#+begin_src latex
+ numbersep=\c__letgut_number_sep_dim,
+ numberstyle=\scriptsize\ttfamily
+ \color{__letgut_foregroundLinenumber}
+ \__letgut_unselectable:n,
+ #+end_src
+
+Because of a current issue involving \package{parskip} and \package{listings}
+(\url{https://github.com/FrankMittelbach/fmitex-parskip/issues/3}), we have to
+set the skip below the displayed listings to a (almost) zero length. We do the
+same for the above skip.
+
+#+begin_src latex
+ aboveskip={0\p@ \@plus 6\p@},
+ belowskip={0\p@ \@plus 6\p@},
+ }
+#+end_src
+
+We define as short equivalent of ~\lstinline~ the character
+\lstDeleteShortInline⅛\texttt{⅛} which is unlikely to be used in ordinary text.
+
+#+begin_src latex
+\lstMakeShortInline[breaklines=false]⅛
+#+end_src
+
+We start with an empty listings style.
+
+#+begin_src latex
+ \lstset{ style=__letgut_reset_listings_styles }
+ #+end_src
+
+We create our own ~\input~ command for the articles of the Lettre with the
+following characteristics:
+
+- The previous style is applied automatically. Hence, the keywords defined in
+ a previous file (by loading some peticular (La)TeX dialects, i.e. control
+ sequences and keywords specific to some class or packages) won't interfere
+ with the ones of the current file.
+- All the acronyms are reset (each acronym is developped at its first occurrence).
+
+#+begin_src latex
+ \cs_new_protected:Npn \__letgut_input_article:n #1
+ {
+ \lstset{ style=__letgut_reset_listings_styles }
+ \acresetall%
+ \file_input:n{#1}%
+ }
+ \NewDocumentCommand{\inputarticle}{m}{
+ \__letgut_input_article:n { #1 }
+ }
+#+end_src
+
+*** LaTeX listings and examples
+
+We define the colors for the syntax highlighting of LaTeX listings.
#+begin_src latex
\colorlet{__letgut_texcs}{blue}
\colorlet{__letgut_comment}{gray}
- \colorlet{__letgut_argument-specification-separator}{red}
- \colorlet{__letgut_argument-specification}{cyan}
- \colorlet{__letgut_mandatory-argument}{purple}
+ \colorlet{__letgut_argument_specification_separator}{red}
+ \colorlet{__letgut_argument_specification}{cyan}
+ \colorlet{__letgut_mandatory_argument}{purple}
\colorlet{__letgut_environment}{teal}
- \colorlet{__letgut_key}{__letgut_mandatory-argument}
+ \colorlet{__letgut_key}{__letgut_mandatory_argument}
\colorlet{__letgut_value}{violet}
- \colorlet{__letgut_optional-argument}{__letgut_key}
+ \colorlet{__letgut_optional_argument}{__letgut_key}
\colorlet{__letgut_math}{green!50!black}
- \lstset{%
+#+end_src
+
+We add our own language files taken in account by the \package*{listings}. They
+will be considered after the other usual ones, if found. They are searched firstly
+in the current directory, secondly in the parent directory, thirdly in the TDS.
+
+#+begin_src latex
+ \def\lstlanguagefiles{
+ lstlang0.sty,
+ lstlang1.sty,
+ lstlang2.sty,
+ lstlang3.sty,
+ ./\c__letgut_lstlanguage_file_tl,
+ ../\c__letgut_lstlanguage_file_tl,
+ \c__letgut_lstlanguage_file_tl
+ }
+#+end_src
+
+We define a listing style specific to LaTeX listings.
+
+#+begin_src latex
+ \lstdefinestyle{__letgut_latex_listings_style}{
+ language=TeX,%
+ alsolanguage=[AlLaTeX]TeX,%
+ alsolanguage=[LaTeX]TeX,%
+ alsolanguage=[plain]TeX,%
+ alsolanguage=[common]TeX,%
+ alsolanguage=[primitive]TeX,%
+ alsolanguage=[extLaTeX]TeX,%
+ alsolanguage=[classes]TeX,%
texcsstyle=*\color{__letgut_texcs},
commentstyle=\color{__letgut_comment}\itshape,
- keywordstyle= \color{__letgut_argument-specification-separator},
+ keywordstyle= \color{__letgut_argument_specification_separator},
keywordstyle={[2]\color{__letgut_environment}},
keywordstyle={[3]\color{__letgut_key}},
keywordstyle={[4]\color{__letgut_value}},
- keywordstyle={[5]\color{__letgut_argument-specification}},
+ keywordstyle={[5]\color{__letgut_argument_specification}},
keywordstyle={[6]\color{__letgut_key}},
- escapechar=£,
+ numbers=left,
+#+end_src
+
+The ~listings~ package defines some of the LaTeX's environments as keywords of
+order 1. This would force us to do the same in our own language driver file but
+would ruin our effort to stylize in a special way (in red) other keywords (see
+~otherkeywords={...}~) that are stylized as keywords of order 1. Hence, we
+delete these keywords of order 1 and will add them as keywords of order 2 like
+all the environments in our own language driver file (in the ~extLaTeX~ dialect
+that we load by default).
+
+#+begin_src latex
+ deletekeywords={%
+ array,center,displaymath,document,enumerate,eqnarray,%
+ equation,flushleft,flushright,itemize,list,lrbox,math,minipage,%
+ picture,sloppypar,tabbing,tabular,trivlist,verbatim,%
+ },%
+#+end_src
+
+#+begin_src latex
literate=*%
{\\\\}{{{\color{__letgut_texcs}\textbackslash\textbackslash}}}{2}%
{\\[}{{\textcolor{__letgut_math}{\textbackslash[}}}{2}%
@@ -2886,11 +3076,31 @@ listings.
}
#+end_src
+We first define some colors used in the listings and examples.
+
+#+begin_src latex
+ \definecolor{__letgut_backgroundCode}{cmyk}{0,0,0,0.04}
+ \definecolor{__letgut_borderCode}{cmyk}{0,0,0,0.2}
+ \definecolor{__letgut_foregroundLinenumber}{cmyk}{0,0,0,0.5}
+ \definecolor{__letgut_foregroundMention}{cmyk}{0,0,0,0}
+ \definecolor{__letgut_backgroundResult}{cmyk}{0,0,0,0}
+ #+end_src
+
For the listings and examples, we rely on \package*{tcolorbox}, and more
specifically on some of its libraries.
#+begin_src latex
- \tcbuselibrary{listings,xparse,breakable,skins}
+ \tcbuselibrary{listings,xparse,breakable,skins,hooks}
+#+end_src
+
+We want some common settings for all the ~tcolorbox~es.
+
+#+begin_src latex
+ \tcbset{
+ breakable,
+ sharp~ corners,
+ fonttitle=\sffamily\bfseries,
+ }
#+end_src
The functions:
@@ -2932,7 +3142,7 @@ The functions:
}
#+end_src
-We define the style of the codes and the results boxes.
+We define the style of the codes.
#+begin_src latex
\tl_set:Nn \l__letgut_reference_text_tl {
@@ -2941,32 +3151,20 @@ We define the style of the codes and the results boxes.
\tcbset{
__letgut_code/.style={
listing~ options={
- % style=tcblatex,
- numbers=left,
- numbersep=\c__letgut_number_sep_dim,
- #+end_src
- We want the line numbers to not be selectable, hence the ~\__letgut_unselectable:n~:.
- #+begin_src latex
- numberstyle=
- \scriptsize
- \ttfamily
- \color{__letgut_foregroundLinenumber}
- \__letgut_unselectable:n,
- },
- every~ float=\raggedleft,
- colback=__letgut_backgroundCode,
- breakable,
- sharp~ corners,
- boxrule=0.25mm,
- colframe=__letgut_borderCode,
- sidebyside~ align=top~ seam,
- toprule~ at~ break=0mm,
- bottomrule~ at~ break=0mm,
- colbacktitle=__letgut_borderCode,
- fonttitle=\sffamily\bfseries,
- before~ title={
- \tl_set:Nn \l__letgut__tex_stuff_font_switch_tl {\rmfamily}
- },
+ style=__letgut_latex_listings_style,
+ },
+ every~ float=\raggedleft,
+ colback=__letgut_backgroundCode,
+ boxrule=0.25mm,
+ colframe=__letgut_borderCode,
+ sidebyside~ align=top~ seam,
+ toprule~ at~ break=0mm,
+ bottomrule~ at~ break=0mm,
+ colbacktitle=__letgut_borderCode,
+ fonttitle=\sffamily\bfseries,
+ before~ title={
+ \tl_set:Nn \l__letgut__tex_stuff_font_switch_tl {\rmfamily}
+ },
#+end_src
We define a custom \package*{tcolorbox}'s ~title addon~ option that let us
specify an addon to the title which will added after the automatically
@@ -2989,6 +3187,9 @@ specify the width of the result which is ~\linewidth~ by default.
result~ width/.store~ in=\l__letgut_result_width_dim,
result~ width=\linewidth,
},
+ #+end_src
+We define more specifically the style of the codes with results.
+ #+begin_src latex
__letgut_code_result/.style={
__letgut_code={#1},
bicolor,
@@ -3161,8 +3362,322 @@ We now use hooks in order to...
\skip_set_eq:NN \intextsep \c__letgut_reduced_intextsep_skip
}
}
+ #+end_src
+
+Since the syntax highlighting is reset at each ~\input~, the ~ltx-code-*~
+environments above provide syntax highlighting only for the commands of the \TeX
+dialects specified in the class. So we provide a specific command that let us
+specify (the dialects of) the main language (\TeX by default) for which we want
+syntax highlighting. This assumes that the commands and keywords of these
+packages are listed (properly, according to the ~listings~ package syntax) in
+the `lstlang0.sty` or ~letgut-lstlang.sty~ files.
+
+ #+begin_src latex
+ \cs_new_protected:Npn \__letgut_tcbset:n #1
+ {
+ \tcbset{
+ __letgut_code/.append~ style={
+ listing~ options~ app={
+ #1
+ }
+ }
+ }
+ }
+ \cs_new_protected:Npn \__letgut_alsolanguage_list:nn #1 #2
+ {
+ #+end_src
+ To reduce syntax highlighting conflicts, we reset all previous ones each
+ time a new one is asked.
+ #+begin_src latex
+ \lstset{%
+ style=__letgut_reset_listings_styles,%
+ }
+ \tl_if_empty:nTF {#1} {
+ \tl_set:Nx \l_tmpa_tl {
+ alsolanguage={#2}
+ }
+ \exp_args:NV \__letgut_tcbset:n
+ {
+ \l_tmpa_tl
+ }
+ }{
+ \seq_set_from_clist:Nn \l_tmpa_seq {#1}
+ \seq_set_map_x:NNn \l_tmpb_seq \l_tmpa_seq {
+ alsolanguage={[##1]#2}
+ }
+ \tl_set:Nx \l_tmpa_tl
+ {
+ \seq_use:Nn \l_tmpb_seq {,}
+ }
+ \exp_args:NV \__letgut_tcbset:n
+ {
+ \l_tmpa_tl
+ }
+ }
+ }
+ \NewDocumentCommand{\syntaxhl}{ O{TeX} m}{%
+ \__letgut_alsolanguage_list:nn {#2} {#1}
+ }
+ #+end_src
+
+*** Terminal listings
+
+We define a command dedicated to terminal stdin and stdout.
+
+#+begin_src latex
+\AddToHook{begindocument/before}{
+#+end_src
+
+We define a listing style specific to these terminal commands.
+
+ #+begin_src latex
+ \definecolor{__letgut_terminal_prompt}{RGB}{204,0,0}
+ \colorlet{__letgut_terminal_comment}{gray!80}
+ \definecolor{__letgut_terminal_commands}{RGB}{241,124,81}
+ \definecolor{__letgut_terminal_keywords}{RGB}{173,127,168}
+ \definecolor{__letgut_terminal_variables}{RGB}{114,159,207}
+ \colorlet{__letgut_terminal_utilities}{__letgut_terminal_commands}
+ \definecolor{__letgut_terminal_strings}{RGB}{78,154,6}
+#+end_src
+
+ #+begin_src latex
+ \lstdefinestyle{__letgut_terminal_listings_style}{
+ commentstyle= \color{__letgut_terminal_comment},
+ keywordstyle= \color{__letgut_terminal_commands},
+ keywordstyle={[2]\color{__letgut_terminal_keywords}},
+ keywordstyle={[3]\color{__letgut_terminal_utilities}},
+ stringstyle= \color{__letgut_terminal_strings},
+ literate=*%
+ {$}{{\textcolor{__letgut_terminal_variables}{\$}}}{1}%$
+ }
#+end_src
+We define a dialect which is missing in the \package*{listings}.
+
+#+begin_src latex
+ \lstdefinelanguage{terminal}{%
+ morekeywords={%
+ alias,bg,bind,break,builtin,caller,cd,command,compgen,%
+ complete,compopt,continue,declare,dirs,disown,echo,enable,%
+ eval,exec,exit,export,fc,fg,getopts,hash,help,history,%
+ jobs,kill,let,local,logout,mapfile,popd,printf,pushd,pwd,%
+ read,readarray,readonly,return,set,shift,shopt,source,%
+ suspend,test,times,trap,type,typeset,ulimit,umask,unalias,%
+ unset,wait,%
+ },%
+ morekeywords=[2]{%
+ case,do,done,elif,else,esac,fi,for,function,if,in,select,%
+ then,time,until,while,%
+ },%
+ morekeywords=[3]{%
+ apropos,apt,apt-get,aptitude,aspell,at,awk,base32,base64,%
+ basename,bash,bc,bzip2,cal,cat,cfdisk,chattr,chgrp,%
+ chkconfig,chmod,chown,chpasswd,chroot,cksum,clear,cmp,comm,%
+ cp,cpio,cron,crontab,csplit,curl,cut,date,dc,dd,ddrescue,%
+ df,diff,diff3,dig,dir,dircolors,dirname,dmesg,dos2unix,%
+ dpkg,du,egrep,eject,env,ethtool,expand,expr,false,fdformat,%
+ fdisk,fgrep,file,find,fmt,fold,format,free,fsck,ftp,fuser,%
+ gawk,grep,groupadd,groupdel,groupmod,groups,gzip,head,%
+ hostname,htop,iconv,id,ifconfig,ifdown,ifup,import,install,%
+ iostat,ip,join,killall,less,link,ln,locate,logname,look,%
+ lpc,lpr,lprint,lprintd,lprintq,lprm,ls,lsattr,lsblk,lsof,%
+ lspci,make,man,mkdir,mkfifo,mkfile,mkisofs,mknod,mktemp,%
+ mmv,more,most,mount,mtools,mtr,mv,nc,netstat,nft,nice,nl,%
+ nohup,notify-send,nslookup,op,open,passwd,paste,pathchk,%
+ Perf,pgrep,ping,pkill,pr,printcap,printenv,ps,pv,quota,%
+ quotacheck,ram,rar,rcp,reboot,remsync,rename,renice,rev,rm,%
+ rmdir,rsync,scp,screen,sdiff,sed,seq,sftp,shuf,shutdown,%
+ sleep,slocate,sort,split,ss,ssh,stat,strace,su,sudo,sum,%
+ sync,tail,tar,tee,timeout,tmux,top,touch,tput,tr,%
+ traceroute,true,tsort,tty,umount,uname,unexpand,uniq,units,%
+ unix2dos,unrar,unshar,uptime,useradd,userdel,usermod,users,%
+ uudecode,uuencode,vdir,vi,vmstat,watch,wc,wget,whereis,%
+ which,who,whoami,write,xargs,xdg-open,xxd,xz,yes,zip,%
+ },%
+ alsoletter={2346-},%
+ morecomment=[l]\#,%
+ morestring=[d]",%
+ morestring=[d]',%
+ sensitive%
+ }[keywords,comments,strings]%
+#+end_src
+
+We define some colors used in the terminal listings.
+
+ #+begin_src latex
+ \definecolor{__letgut_foreground_terminal_dark}{named}{black}
+ \colorlet{__letgut_background_terminal_dark_stdin}{
+ letgut_pagecolor!95!gray
+ }
+ \colorlet{__letgut_background_terminal_dark_stdout}{
+ __letgut_background_terminal_dark_stdin!60
+ }
+ \definecolor{__letgut_foreground_terminal_light}{named}{black}
+ \definecolor{__letgut_background_terminal_light_stdin}{rgb}{
+ 0.99,0.975,0.98
+ }
+ \colorlet{__letgut_background_terminal_light_stdout}{
+ __letgut_background_terminal_light_stdin!40
+ }
+#+end_src
+
+ #+begin_src latex
+ \bool_if:NTF \g__letgut_paper_bool {
+ \colorlet{__letgut_foreground_terminal}{
+ __letgut_foreground_terminal_light
+ }
+ \colorlet{__letgut_background_terminal_stdin}{
+ __letgut_background_terminal_light_stdin
+ }
+ \colorlet{__letgut_background_terminal_stdout}{
+ __letgut_background_terminal_light_stdout
+ }
+ }{
+ \colorlet{__letgut_foreground_terminal}{
+ __letgut_foreground_terminal_dark
+ }
+ \colorlet{__letgut_background_terminal_stdin}{
+ __letgut_background_terminal_dark_stdin
+ }
+ \colorlet{__letgut_background_terminal_stdout}{
+ __letgut_background_terminal_dark_stdout
+ }
+ }
+ #+end_src
+
+ We define the style of the ~tcolorbox~ in which the terminal stdin and stdout
+ will be displayed.
+
+ #+begin_src latex
+ \tcbset{%
+ terminal/.style={%
+ colupper=__letgut_foreground_terminal,
+ collower=__letgut_foreground_terminal,
+ breakable,
+ segmentation~ at~ break=false,
+ boxrule=0mm,
+ before~ lower={\tcbset{every~ listing~ line={}}},
+ listing~ options={%
+ style=__letgut_terminal_listings_style,
+ language=terminal,
+ },
+ every~ listing~ line={%
+ \textcolor{__letgut_terminal_prompt}{%
+ \ttfamily%
+ \bfseries%
+ \__letgut_unselectable:n {#1\c_space_tl}
+ }
+ },
+ },
+ }
+ #+end_src
+
+ We define now the command
+
+ #+begin_src latex
+ \cs_new_protected:Npn \__letgut_terminal:nnnn #1 #2 #3 #4
+ {
+ \bool_set_false:N \l_tmpa_bool
+ \tl_if_empty:nF {#3}{
+ \tcbset{tempfile=\jobname-stdin.tex}
+ \exp_args:Nx \scantokens
+ {
+ \token_to_str:N\begin{tcbwritetemp}
+ #3
+ \token_to_str:N\end{tcbwritetemp}
+ }
+ }
+ \tl_if_empty:nF {#4}{
+ \tcbset{tempfile=\jobname-stdout.tex}
+ \exp_args:Nx \scantokens
+ {
+ \token_to_str:N\begin{tcbwritetemp}
+ #4
+ \token_to_str:N\end{tcbwritetemp}
+ }
+ }
+ \tl_if_empty:nTF {#3}{
+ \tl_if_empty:nTF {#4}{
+ \bool_set_true:N \l_tmpa_bool
+ }{
+ \tcbset{colback=__letgut_background_terminal_stdout}
+ }
+ }{
+ \tcbset{colback=__letgut_background_terminal_stdin}
+ \tl_if_empty:nTF {#4}{
+ }{
+ \tcbset{
+ bicolor,
+ middle=0mm,
+ boxsep=0mm,
+ colbacklower=__letgut_background_terminal_stdout,
+ }
+ }
+ }
+ \bool_if:NF \l_tmpa_bool {
+ \begin{tcolorbox}[terminal={#1},#2]
+ \lstset{aboveskip=0pt}
+ \tl_if_empty:nF {#3}{
+ \tcbset{
+ tempfile=\jobname-stdin.tex,
+ }
+ \tcbusetemplisting
+ \tl_if_empty:nF {#4}{
+ \tcblower
+ }
+ }
+ \tl_if_empty:nF {#4}{
+ \tl_if_empty:nF {#3}{
+ \lstset{aboveskip=0pt}
+ }
+ \tcbset{
+ tempfile=\jobname-stdout.tex,
+ every~ listing~ line={},
+ listing~ options~ app={
+ language={}
+ }
+ }
+ \tcbusetemplisting
+ }
+ \end{tcolorbox}
+ }
+ }
+ \NewDocumentCommand{\terminal}{ O{\$} O{} +v +v}{
+ \__letgut_terminal:nnnn {#1} {#2} {#3} {#4}
+ }
+ #+end_src
+
+ We close the ~\AddToHook{begindocument/before}~ argument.
+
+ #+begin_src latex
+}
+ #+end_src
+
+*** Unicode characters with positions above 256
+
+Unicode characters with positions above 256 causes troubles in
+listings. Here is a workaround for some of them (see
+https://tex.stackexchange.com/a/25396).
+
+ #+begin_src latex
+ \lst@InputCatcodes
+ \def\lst@DefEC{%
+ \lst@CCECUse \lst@ProcessLetter
+ ^^80^^81^^82^^83^^84^^85^^86^^87^^88^^89^^8a^^8b^^8c^^8d^^8e^^8f%
+ ^^90^^91^^92^^93^^94^^95^^96^^97^^98^^99^^9a^^9b^^9c^^9d^^9e^^9f%
+ ^^a0^^a1^^a2^^a3^^a4^^a5^^a6^^a7^^a8^^a9^^aa^^ab^^ac^^ad^^ae^^af%
+ ^^b0^^b1^^b2^^b3^^b4^^b5^^b6^^b7^^b8^^b9^^ba^^bb^^bc^^bd^^be^^bf%
+ ^^c0^^c1^^c2^^c3^^c4^^c5^^c6^^c7^^c8^^c9^^ca^^cb^^cc^^cd^^ce^^cf%
+ ^^d0^^d1^^d2^^d3^^d4^^d5^^d6^^d7^^d8^^d9^^da^^db^^dc^^dd^^de^^df%
+ ^^e0^^e1^^e2^^e3^^e4^^e5^^e6^^e7^^e8^^e9^^ea^^eb^^ec^^ed^^ee^^ef%
+ ^^f0^^f1^^f2^^f3^^f4^^f5^^f6^^f7^^f8^^f9^^fa^^fb^^fc^^fd^^fe^^ff%
+ ^^^^201c^^^^201d% for “ and ”
+ ^^^^215b% for ⅛
+ ^^00%
+ }
+ \lst@RestoreCatcodes
+ #+end_src
+
** Local config file
Each issue of the Lettre requires certain local configurations: configuration
@@ -3170,13 +3685,13 @@ dedicated to the issue in question, particular packages used in the articles,
specific configurations of the \package*{listings}, etc. In order to not clutter
the main \file*{.tex} of the Lettre, a local configuration file named
\file{localconf.tex}, if present in the current directory, is automatically
-included at the end of the end of the preamble. And since this file is input in
-the current category régime (~\ExplSyntaxOn~), a ~\ExplSyntaxOff~ is
-automatically inserted at its beginning.
+included at the end the preamble. And since this file is input in the current
+category régime (~\ExplSyntaxOn~), a ~\ExplSyntaxOff~ is automatically inserted
+at its beginning.
#+begin_src latex
\file_if_exist:nT {./\c__letgut_local_config_file_tl}{
- \AddToHook { file/before/./\c__letgut_local_config_file_tl } {
+ \AddToHook { file/./\c__letgut_local_config_file_tl/before } {
\ExplSyntaxOff
}
\file_input:n {./\c__letgut_local_config_file_tl}
@@ -3201,22 +3716,22 @@ several purposes:
- the books reviews,
- the books advertisements.
-#+begin_src latex :tangle letgut.lbx :exports both
- \ProvidesFile{letgut.lbx}[2022-03-22 v0.9.1 letgut localization]
- \InheritBibliographyExtras{french}
- \DeclareBibliographyStrings{
- inherit = {french},
- number = {{\no}{\no}},
- volume = {{volume}{vol\adddot}},
- volumes = {{volumes}{vol\adddot}},
- }
+#+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut.lbx :exports both
+\ProvidesFile{letgut.lbx}[2022-06-18 v0.9.2 letgut localization]
+\InheritBibliographyExtras{french}
+\DeclareBibliographyStrings{
+ inherit = {french},
+ number = {{\no}{\no}},
+ volume = {{volume}{vol\adddot}},
+ volumes = {{volumes}{vol\adddot}},
+}
#+end_src
We create the new bibliography driver ~bookreview~ (that seems to
create the corresponding new entry).
- #+begin_src latex :tangle letgut.dbx :exports both
- \ProvidesFile{letgut.dbx}[2022-03-22 v0.9.1 letgut data model macros]
+ #+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut.dbx :exports both
+ \ProvidesFile{letgut.dbx}[2022-06-18 v0.9.2 letgut data model macros]
\DeclareBibliographyDriver{bookreview}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
@@ -3270,21 +3785,21 @@ several purposes:
We provide a specific ~biblatex~ citation style .
-#+begin_src latex :tangle letgut.cbx :exports both
- \ProvidesFile{letgut.cbx}[2022-03-22 v0.9.1 letgut base citation style]
+#+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut.cbx :exports both
+ \ProvidesFile{letgut.cbx}[2022-06-18 v0.9.2 letgut base citation style]
\RequireCitationStyle{numeric}
#+end_src
The books reviewed have their titles not only emphasized, but in bold face as
well...
-#+begin_src latex :tangle letgut.cbx :exports both
+#+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut.cbx :exports both
\DeclareFieldFormat[bookreview]{title}{\textbf{\emph{#1}}}
#+end_src
... but not their subtitles.
-#+begin_src latex :tangle letgut.cbx :exports both
+#+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut.cbx :exports both
\renewbibmacro*{title}{%
\ifboolexpr{
test {\iffieldundef{title}}
@@ -3304,7 +3819,9 @@ well...
** Example file of an issue of the newsletter
- #+begin_src latex :tangle lettre-example.tex :exports both
+ #+begin_src latex :tangle ../../../doc/lualatex/letgut/lettre-example.tex :exports both
+ % Hey, Emacs! This is a -*- mode: latex -*- file!
+
\documentclass{letgut}
\letgutsetup{
@@ -3366,6 +3883,13 @@ well...
% % `informations=false`.
%
% , informations=false
+ %
+ % % Lors de la conception d'un numéro de la Lettre,
+ % % il peut être utile d'avoir un plan détaillé au
+ % % maximum de l'ensemble du document. C'est ce que
+ % % permet l'option `detailedtoc`.
+ %
+ % , detailedtoc
}
\setmainfont{TeX Gyre Schola} % Par exemple
@@ -3380,7 +3904,6 @@ well...
\end{document}
%%% Local Variables:
- %%% mode: latex
%%% TeX-engine: luatex
%%% TeX-master: t
%%% End:
@@ -3388,7 +3911,7 @@ well...
** Example of an editorial
- #+begin_src latex :tangle editorial.tex :exports both
+ #+begin_src latex :tangle ../../../doc/lualatex/letgut/editorial.tex :exports both
Ceci est un intéressant éditorial de la \lettregut{}
dans lequel on peut causer de l'\ag{} et du \ca{}
de l'association. Il peut aussi y être question du \ctan.
@@ -3407,7 +3930,9 @@ well...
** Informations about \gutenberg
- #+begin_src latex :tangle informations-gut.tex :exports both
+ #+begin_src latex :tangle ../../../tex/lualatex/letgut/informations-gut.tex :exports both
+ % Hey, Emacs! This is a -*- mode: latex -*- file!
+
\enlargethispage{1.5cm}
\small
\vspace*{-1cm}
@@ -3418,24 +3943,24 @@ well...
\end{minipage}%
}%
\hfill%
- \begin{minipage}[t]{.4\textwidth}%\vspace{0pt}%
+ \begin{minipage}[t]{.5\textwidth}%\vspace{0pt}%
\footnotesize\raggedleft%
Association \gut{}\\
15 rue des Halles -- \textsc{bp} 74\\
75001 Paris\\
France\\
- \nolinkurl{secretariat@gutenberg.eu.org}
+ \url{secretariat[at]gutenberg[dot]eu[dot]org}
\end{minipage}%
\begin{description}
- \item[Site internet :] \url{https://www.gutenberg.eu.org/}
- \item[\Cahiers{} :] \url{http://cahiers.gutenberg.eu.org/}
+ \item[Site Internet :] \url{https://www.gutenberg-asso.fr/}
+ \item[\Cahiers{} :] \url{http://www.numdam.org/journals/CG/}
\item[Problèmes techniques :]
\leavevmode
\begin{description}
\item[la liste \texttt{gut} :]
- \url{https://www.gutenberg.eu.org/-Listes-de-diffusion-}
- \item[le site \TeX nique de questions et réponses :]
+ \url{https://www.gutenberg-asso.fr/-Listes-de-diffusion-}
+ \item[le site \hologo{TeX}nique de questions et réponses :]
\url{https://texnique.fr/}
\item[la foire aux questions :]
\url{https://faq.gutenberg.eu.org}
@@ -3443,9 +3968,9 @@ well...
\end{description}
%
\alertbox{%
- Cette association est la vôtre: faites-nous part de
+ Cette association est la vôtre : faites-nous part de
vos idées, de vos envies, de vos préoccupations
- à l'adresse \nolinkurl{secretariat@gutenberg.eu.org}.%
+ à l'adresse \url{secretariat[at]gutenberg[dot]eu[dot]org}.%
}
% \section[Association GUTenberg (tout sur l')]
@@ -3468,19 +3993,20 @@ well...
% confidentielles, merci de le signaler.
\end{itemize}
+ \vspace*{-0.7cm}
\section{Tarifs \the\year}
Les membres de \gut\ peuvent adhérer à l'association
internationale, le \acf{tug}, et recevoir son bulletin
- \emph{\acs{tug}boat} à un tarif préférentiel :
+ \tugboat{} à un tarif préférentiel :
\begin{description}
- \item[tarif normal :] \EUR{65} (au lieu de 85~\$)
- \item[tarif étudiant :] \EUR{40} (au lieu de 55~\$)
+ \item[tarif normal :] 65~€ (au lieu de 85~\$)
+ \item[tarif étudiant :] 40~€ (au lieu de 55~\$)
\end{description}
- % (\EUR{49,50}, étudiants et demandeurs d'emploi :
- % \EUR{29}, au lieu de 85\$ et % 65\$). Voir
+ % (49~€50}, étudiants et demandeurs d'emploi :
+ % 29~€, au lieu de 85\$ et % 65\$). Voir
% \url{%
- % https://www.gutenberg.eu.org/?Adherer-a-l-association%
+ % https://www.gutenberg-asso.fr/?Adherer-en-ligne%
% }.
\footnotesize
@@ -3489,13 +4015,13 @@ well...
\toprule
\textbf{Type d'adhésion} & \textbf{Prix} \\
\midrule
- Membre individuel & \EUR{30} \\
- Membre individuel + adhésion \acs{tug} & \EUR{95} \\
- Membre individuel étudiant/demandeur d'emploi & \EUR{15} \\
- Membre individuel étudiant + adhésion \acs{tug} & \EUR{55} \\
- Association d'étudiants & \EUR{65} \\
- Organisme à but non lucratif & \EUR{130} \\
- Organisme à but lucratif & \EUR{229} \\
+ Membre individuel & 30~€ \\
+ Membre individuel + adhésion \acs{tug} & 95~€ \\
+ Membre individuel étudiant/demandeur d'emploi & 15~€ \\
+ Membre individuel étudiant + adhésion \acs{tug} & 55~€ \\
+ Association d'étudiants & 65~€ \\
+ Organisme à but non lucratif & 130~€ \\
+ Organisme à but lucratif & 229~€ \\
\bottomrule
\end{tabular}
\end{center}
@@ -3506,7 +4032,7 @@ well...
\begin{itemize}
\item \textbf{virement bancaire}%
\footnote{Nous vous remercions de \textbf{privilégier}
- le \textbf{virement bancaire}.\label{fn:1}} (IBAN :
+ le \textbf{virement bancaire}.\label{fn:1}} (\textsc{iban} :
FR76 1870 7000 3003 0191 3568 475)%
\leavevmode
@@ -3515,9 +4041,9 @@ well...
dans les références du virement !%
}
\item Paypal\footnotemark[\value{footnote}] :
- \url{https://www.gutenberg.eu.org/?Adherer-en-ligne}
+ \url{https://www.gutenberg-asso.fr/?Adherer-en-ligne}
\item bulletin et chèque\footnotemark[\value{footnote}] :
- \url{https://www.gutenberg.eu.org/?Adherer-a-l-association}
+ \url{https://www.gutenberg-asso.fr/?Adherer-a-l-association}
\end{itemize}
\vfill
@@ -3544,8 +4070,8 @@ well...
Directeur de la publication :
& \person{Bideault, Patrick} \\
Comité de rédaction :
- & {Patrick \bsc{Bideault}, Denis \bsc{Bitouzé}, \\
- Céline \bsc{Chevalier} \& Maxime \bsc{Chupin}} \\
+ & {Patrick Bideault, Denis Bitouzé, \\
+ Céline Chevalier \& Maxime Chupin} \\
Adresse de la rédaction : &
{
Association \gut\\
@@ -3553,18 +4079,3707 @@ well...
75001 Paris
}
\\
- \acs{issn} : & 2742-6149 (version numérique)
+ \acs{issn} : & \letgutissn
\end{tblr}
\end{center}
\vfill
\mbox{}
\clearpage
-
- %%% Local Variables:
- %%% mode: latex
- %%% End:
#+end_src
-* Footnotes
+** Acronyms
+
+#+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut-acronyms.tex :exports both
+% Hey, Emacs! This is a -*- mode: latex -*- file!
+
+%%%%%%%%%%%%%%%%%%%%%
+% Acronymes anglais %
+%%%%%%%%%%%%%%%%%%%%%
+\letgutacro%
+{CTAN}%
+{\href{https://www.ctan.org/}{Comprehensive \hologo{TeX} Archive
+ Network}}%
+[réseau complet d'archives \hologo{TeX}]
+
+\letgutacro%
+{PDF}%
+{Portable Document Format}%
+[format de document portable]
+
+\letgutacro%
+{URL}%
+{Uniform Resource Locator}%
+[localisateur uniforme de ressource ou, plus clairement, format des
+ adresses du Web]
+
+\letgutacro%
+{ORCID}%
+{Open Researcher and Contributor \textsc{id}}%
+[identifiant ouvert pour chercheur et contributeur]
+
+\letgutacro%[extra-foreign=souvent librement traduit en \enquote{foire
+ %aux questions}]
+{FAQ}%
+{Frequently Asked Questions}%
+[questions fréquemment posées]
+
+\letgutacro%
+{SVG}%
+{Scalable Vector Graphics}%
+[graphiques vectoriels extensibles]
+
+\letgutacro%
+{DNS}%
+{Domain Name System}%
+[système de noms de domaine]
+
+\letgutacro%
+{VPS}%
+{Virtual Private Server}%
+[serveur dédié virtuel]
+
+\letgutacro%
+{LDAP}%
+{Lightweight Directory Access Protocol}%
+[protocole d'accès à répertoire léger, sytème garantissant
+ l'authentification d'utilisateurs de plusieurs services dispersés]
+
+\letgutacro%
+{OTF}%
+{Open Type Format}%
+[]
+
+\letgutacro%
+{DOI}%
+{Digital Object Identifier}%
+[identifiant numérique d'objet]
+
+\letgutacro%
+{ISSN}%
+{International Standard Serial Number}%
+[numéro international normalisé des publications en série]
+
+\letgutacro%
+{TUG}%
+{\hologo{TeX} User Group}%
+[groupe (international) d'utilisateurs de \hologo{TeX}]
+
+\letgutacro%
+{WCAG}%
+{Web Content Accessibility Guidelines}%
+[directives sur l'accessibilité du contenu Web]
+
+\letgutacro%
+{HTML}%
+{HyperText Markup Language}%
+[langage de balises pour l'hypertexte]
+
+\letgutacro%
+{CSS}%
+{Cascading Style Sheets}%
+[feuilles de style en cascade]
+
+\letgutacro%
+{UTF}%
+{Universal (Character Set) Transformation Format}%
+[format de transformation (du jeu) universel (de caractères codés)]
+
+\letgutacro%[short=\emph{Ti\emph{k}Z},short-format=\em,foreign-babel=german,foreign-locale=allemand]
+{TIKZ}%
+{Ti\emph{k}Z ist \emph{kein} Zeichenprogramm}%
+[Ti\emph{k}Z \emph{n'}est \emph{pas} un programme de dessin]
+
+\letgutacro%
+{PGF}%
+{Portable Graphics Format}%
+[format de graphiques portable]
+
+\letgutacro%
+{GPL}%
+{\textsc{gnu} General Public License}%
+[licence publique générale \textsc{gnu}]
+
+\letgutacro%
+{OFL}%
+{SIL Open Font License}%
+[]
+
+\letgutacro%
+{DVI}%
+{DeVice-Independent}%
+[indépendant du type de périphérique]
+
+\letgutacro%
+{PS}%
+{PostScript}%
+[]
+
+\letgutacro%
+{DVIPS}%
+{\acs{dvi}-to-\acs{ps} (translator)}%
+[(convertisseur) \acs{dvi} vers \acs{ps}]
+
+\letgutacro%
+{IPA}%
+{International Phonetic Alphabet}%
+[alphabet phonétique international]
+
+\letgutacro%
+{TIPA}%
+{\hologo{TeX} \acs{ipa} or Tokyo \acs{ipa}}%
+[alphabet phonétique international]
+
+\letgutacro%
+{XML}%
+{eXtensible Markup Language}%
+[langage de balisage extensible]
+
+\letgutacro%
+{APA}%
+{American Psychological Association}%
+[association américaine de psychologie]
+
+\letgutacro%
+{OS}%
+{Operating System}%
+[système d'exploitation]
+
+\letgutacro%
+{BSD}%
+{Berkeley Software Distribution}%
+[collection de logiciels de Berkeley]
+
+\letgutacro%
+{IMAP}%
+{Internet Message Access Protocol}%
+[]
+
+\letgutacro%
+{SMTP}%
+{Simple Mail Transfer Protocol}%
+[protocole simple de transfert de courrier]
+
+\letgutacro%
+{RTF}%
+{Rich Text Format}%
+[format de texte enrichi]
+
+\letgutacro%
+{WYSIWYG}%
+{What You See Is What You Get}%
+[ce que vous voyez est ce que vous obtenez]
+
+\letgutacro%
+{ISO}%
+{\href{https://www.iso.org/home.html}{International Organization for
+ Standardization}}%
+[\href{https://www.iso.org/fr/home.html}{organisation internationale de
+ normalisation}]
+
+\letgutacro%
+{OFF}%
+{Open Font Format}%
+[format de fonte ouvert]
+
+\letgutacro%
+{CSV}%
+{Comma-separated values}%
+[valeurs séparées par des virgules]
+
+\letgutacro%
+{YAML}%
+{\textsc{yaml} Ain’t Markup Language}%
+[\textsc{yaml} n'est pas un langage de balisage (acronyme récursif)]
+
+\letgutacro%
+{UCA}%
+{Unicode Collation Algorithm}%
+[algorithme de tris d'Unicode]
+
+\letgutacro%
+{NFSS}%
+{New Font Selection Scheme}%
+[nouveau schéma de sélection de fonte]
+
+\letgutacro%
+{ASCII}%
+{American Standard Code for Information Interchange}%
+[code américain normalisé pour l'échange d'information]
+
+\letgutacro%
+{TDS}%
+{\TeX{} Directory Structure}%
+[structure de répertoire de \TeX{}]
+
+%%%%%%%%%%%%%%%%%%%%%%
+% Acronymes français %
+%%%%%%%%%%%%%%%%%%%%%%
+\letgutacro%
+{SMAI}%
+{\href{http://smai.emath.fr/}{Société de Mathématiques Appliquées et
+ Industrielles}}%
+
+\letgutacro%
+{AG}%
+{Assemblée Générale}%
+
+\letgutacro%
+{CA}%
+{Conseil d'Administration}%
+
+\letgutacro%
+{SHS}%
+{Sciences Humaines et Sociales}%
+
+\letgutacro%
+{IREM}%
+{\href{https://www.univ-irem.fr/}{Instituts de Recherche sur
+ l'Enseignement des Mathématiques}}%
+
+\letgutacro%
+{MEEF}%
+{Métiers de l'Enseignement, de l'Éducation et de la Formation}%
+
+\letgutacro%
+{ECM}%
+{\href{https://texnique.fr/osqa/faq/\#custom-id-ecm}{Exemple Complet
+ Minimal}}%
+
+\letgutacro%
+{INSPÉ}%
+{\href{https://www.reseau-inspe.fr/}{Instituts Nationaux Supérieurs du
+ Professorat et de l'Éducation}}%
+
+\letgutacro%[short=\textsc{gra}pp\textsc{a},short-format=\upshape]
+{GRAppA}%
+{Groupe de recherche en Apprentissage Automatique}%
+
+\letgutacro%
+{BBB}%
+{BigBlueButton}%
+
+\letgutacro%
+{CV}%
+{Curriculum Vitæ}%
+
+\letgutacro%
+{RGPD}%
+{Règlement Général sur la Protection des Données}%
+
+\letgutacro%
+{NDLR}%
+{Note de la Rédaction}%
+
+\letgutacro%
+{BTS}%
+{Brevet de Technicien Supérieur}%
+
+\letgutacro%
+{APMEP}%
+{Association des Professeurs de Mathématiques de l'Enseignement Public}%
+
+\letgutacro%
+{PAO}%
+{Publication Assistée par Ordinateur}%
+#+end_src
-[fn:1]See \url{https://github.com/ho-tex/luacolor/issues/4\#issuecomment-848774260}.
+** Language driver file
+
+#+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut-lstlang.sty :exports both
+ % \lst@definelanguage[...]{TeX}{%
+ % % Control sequences names
+ % moretexcs={%
+ % },%
+ % % Keywords of class 1 : keywords that contain other characters
+ % % (since of the same class as the ones specified as 'otherkeywords')
+ % morekeywords={%
+ % },%
+ % % Keywords of class 2 : environments names
+ % morekeywords=[2]{%
+ % },%
+ % % Keywords of class 3 : mandatory arguments (not environments) &
+ % % optional arguments which are keys (in key=value)
+ % morekeywords=[3]{%
+ % },%
+ % % Keywords of class 4 : values of keys (in key=value)
+ % morekeywords=[4]{%
+ % },%
+ % % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % % syntax)
+ % morekeywords=[5]{%
+ % },%
+ % % Keywords of class 6 : current package name (and possibly derived
+ % % packages)
+ % morekeywords=[6]{%
+ % %
+ % },%
+ % % otherkeywords={},
+ % % alsoletter={},
+ % % alsodigit={},%
+ % % alsoother={},%
+ % sensitive,%
+ % }[keywords,tex,comments%]
+
+ \lst@definelanguage[letgut]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ letgutsetup,title,subtitle,author,francophony,person,author,%
+ package,package*,class,class*,software,software*,file,file*,%
+ foreignloc,latinloc,gutenberg,gut,lettre,lettregut,Cahier,%
+ Cahiers,letgut,letgutcls,knuth,lamport,tugboat,item*,letgutacro,%
+ separator,alertbox,terminal,inputarticle,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ ctannews,ltx-code,ltx-code-result,ltx-code-external-result,%
+ bookreview,%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ for-authors,for-readers,draft,final,screen,paper,number,date,%
+ pagecolor,allcolorslinks,membership-reminder,editorial,informations,%
+ title,addon,result width,reference,text,title,reviewer,bibkey,%
+ frontcover,price,result,and,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ letgut%
+ },%
+ % otherkeywords={},%
+ alsoletter={-\ },%
+ % alsodigit={},%
+ alsoother={*},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % LaTeX texcs and keywords that are missing in `listings` driver file
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \lst@definelanguage[extLaTeX]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ Huge,LARGE,Large,LoadClass,NewCommandCopy,RequirePackage,%
+ ShowCommand,abovecaptionskip,abstractname,appendix,appendixname,%
+ arraycolsep,arrayrulewidth,author,backmatter,baselinestretch,%
+ belowcaptionskip,bf,bibindent,bibname,bigskipamount,bottomfraction,%
+ brokenpenalty,cal,chapter,chaptermark,chaptername,clubpenalty,%
+ columnsep,columnseprule,contentsname,date,dblfloatpagefraction,%
+ dblfloatsep,dbltextfloatsep,dbltopfraction,descriptionlabel,%
+ displaywidowpenalty,doublerulesep,evensidemargin,fboxrule,fboxsep,%
+ figurename,floatpagefraction,floatsep,footins,footnoterule,%
+ footnotesep,footnotesize,footskip,frontmatter,headheight,headsep,%
+ huge,indexname,indexspace,interlinepenalty,intextsep,it,jot,%
+ labelenumi,labelenumii,labelenumiii,labelenumiv,labelitemfont,%
+ labelitemi,labelitemii,labelitemiii,labelitemiv,labelsep,%
+ labelwidth,large,leftmargin,leftmargini,leftmarginii,leftmarginiii,%
+ leftmarginiv,leftmarginv,leftmarginvi,lineskip,listfigurename,%
+ listoffigures,listoftables,listtablename,mainmatter,maketitle,%
+ marginparpush,marginparsep,marginparwidth,maxdepth,medskipamount,%
+ mit,newblock,normallineskip,normalsize,oddsidemargin,paragraph,%
+ paragraphmark,parindent,parskip,part,partname,partopsep,%
+ postdisplaypenalty,predisplaypenalty,refname,rm,sc,scriptsize,%
+ section,sectionmark,setlength,sf,sl,small,smallskipamount,%
+ subitem,subparagraph,subparagraphmark,subsection,subsectionmark,%
+ subsubitem,subsubsection,subsubsectionmark,tabbingsep,tabcolsep,%
+ tablename,tableofcontents,textfloatsep,textfraction,textheight,%
+ textwidth,thechapter,theenumi,theenumii,theenumiii,theenumiv,%
+ theequation,theparagraph,thepart,thesection,thesubparagraph,%
+ thesubsection,thesubsubsection,tiny,title,today,topfraction,%
+ topmargin,topskip,tt,widowpenalty,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ abstract,array,center,description,displaymath,document,enumerate,%
+ eqnarray,equation,figure,flushleft,flushright,itemize,list,lrbox,math,%
+ minipage,picture,quotation,quote,sloppypar,tabbing,table,tabular,%
+ thebibliography,theindex,titlepage,trivlist,verbatim,verse,%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ % c,cc,ccc,cccc,X,l,
+ empty,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ %
+ },
+ otherkeywords={|},%
+ % alsoletter={},% alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[listings]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ lstDeleteShortInline,lstMakeShortInline,lstalias,lstaspectfiles,%
+ lstdefineformat,lstdefinelanguage,lst@definelanguage,lstdefinestyle,%
+ lstindexmacro,lstinline,lstinputlisting,lstlanguagefiles,%
+ lstlgrindeffile,lstlistingname,lstlistingnamestyle,%
+ lstlistlistingname,lstlistoflistings,lstloadlanguages,lstname,%
+ lstnewenvironment,lstset,theHlstnumber,thelstlabel,thelstlisting,%
+ thelstnumber,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ lstlisting,%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ 0.21,ABAP,ACM,ACMscript,ACSL,Ada,Algol,Ant,Assembler,Awk,%
+ Basic,C,C++,CIL,Caml,Clean,Cobol,Comal 80,Comsol,Delphi,%
+ Eiffel,Elan,Euphoria,Fortran,GAP,GCL,Gnuplot,Go,HTML,Haskell,%
+ IDL,JVMIS,Java,LLVM,Lingo,Lisp,Logo,Lua,ML,Mathematica,Matlab,%
+ Mercury,MetaPost,Miranda,Mizar,Modula-2,MuPAD,NASTRAN,OCL,%
+ OORexx,Oberon-2,Octave,Oz,PHP,PL/I,POV,PSTricks,Pascal,Perl,%
+ Plasm,PostScript,Prolog,Promela,Python,R,RSL,Reduce,Rexx,Ruby,%
+ S,SAS,SHELXL,SPARQL,SQL,Scala,Scilab,Simula,Swift,TeX,%
+ VBScript,VHDL,VRML,Verilog,XML,XSLT,[03]Fortran,[08]Fortran,%
+ [1.0]Mathematica,[11.0]Mathematica,[11]C++,[1974]Cobol,[1985]Cobol,%
+ [2005]Ada,[3.0]Mathematica,[5.0]Lua,[5.1]Lua,[5.2]Lua,%
+ [5.2]Mathematica,[5.3]Lua,[60]Algol,[67]Simula,[68]Algol,%
+ [77]Fortran,[83]Ada,[90]Fortran,[95]Ada,[95]Fortran,[97]VRML,%
+ [AMS]VHDL,[ANSI]C,[ANSI]C++,[AlLaTeX]TeX,[AspectJ]Java,[Auto]Lisp,%
+ [Borland6]Pascal,[CII]Simula,[CORBA]IDL,[DEC]Simula,[GNU]C++,%
+ [Handel]C,[IBM]Simula,[ISO]C++,[LaTeX]TeX,[Motorola68k]Assembler,%
+ [OMG]OCL,[Objective]C,[Objective]Caml,[PLUS]S,[POSIX]Awk,[R/2
+ 4.3]ABAP,[R/2 5.0]ABAP,[R/3 3.1]ABAP,[R/3 4.6C]ABAP,[R/3 6.10]ABAP,%
+ [Sharp]C,[Standard]Pascal,[VM/XA]Rexx,[Visual]Basic,[Visual]C++,%
+ [WinXP]command.com,[XSC]Pascal,[common]TeX,[decorative]OCL,%
+ [empty]IDL,[empty]Java,[empty]Lisp,[empty]Rexx,[empty]S,%
+ [empty]VHDL,[empty]make,[empty]tcl,[gnu]Awk,[gnu]make,[ibm]Cobol,%
+ [light]Caml,[plain]TeX,[primitive]TeX,[tk]tcl,[x86masm]Assembler,%
+ abovecaptionskip,aboveskip,alsodigit,alsolanguage,alsoletter,%
+ alsoother,backgroundcolor,basewidth,bash,basicstyle,%
+ belowcaptionskip,belowskip,boxpos,breakatwhitespace,breakautoindent,%
+ breakindent,breaklines,caption,captionpos,classoffset,columns,%
+ command.com,comment,comments,commentstyle,consecutivenumbers,csh,%
+ defaultdialect,deletecomment,deletedelim,deletedirectives,%
+ deleteemph,deleteendkeywords,deletehyperref,deleteindex,%
+ deletekeywordcomment,deletekeywords,deleteprocnamekeys,deletestring,%
+ deletetxcs,delim,directives,directivestyle,draft,elisp,emph,%
+ emphstyle,emptylines,erlang,escapebegin,escapechar,escapeend,%
+ escapeinside,extendedchars,fancyvrb,fillcolor,final,firstline,%
+ firstnumber,flexiblecolumns,float,floatplacement,fontadjust,%
+ formats,formfeed,frame,frameround,framerule,framesep,frameshape,%
+ framexbottommargin,framexleftmargin,framexrightmargin,%
+ framextopmargin,fvcmdparams,gobble,hansl,hyper,hyperanchor,%
+ hyperlink,hyperref,identifierstyle,includerangemarker,index,%
+ indexprocnames,indexstyle,inform,inputencoding,inputpath,%
+ keepspaces,keywordcomment,keywordcommentsemicolon,keywords,%
+ keywordsprefix,keywordstyle,ksh,label,language,lastline,lgrind,%
+ lgrindef,linerange,lineskip,linewidth,literate,make,makemacrouse,%
+ markfirstintag,mathescape,morecomment,moredelim,moredirectives,%
+ moreemph,moreendkeywords,morefvcmdparams,morehyperref,moreindex,%
+ morekeywordcomment,morekeywords,moreprocnamekeys,morestring,%
+ moretexcs,multicols,name,ndkeywords,ndkeywordstyle,noaspects,%
+ nolol,numberblanklines,numberbychapter,numberfirstline,numbers,%
+ numbersep,numberstyle,otherkeywords,podcomment,postbreak,prebreak,%
+ print,printpod,procnamekeys,procnames,procnamestyle,%
+ rangebeginprefix,rangebeginsuffix,rangeendprefix,rangeendsuffix,%
+ rangeprefix,rangesuffix,resetmargins,rulecolor,rulesep,%
+ rulesepcolor,savemem,sensitive,%
+ sh,showlines,showspaces,showstringspaces,showtabs,stepnumber,%
+ string,stringstyle,style,tab,tabsize,tag,tagstyle,tcl,texcl,%
+ texcs,texcsstyle,title,upquote,usekeywordsintag,xleftmargin,%
+ xrightmargin,LaTeX,TeX,tex%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ b,c,t,none,left,right,%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ listings,%
+ },%
+ % otherkeywords={},%
+ alsoletter={@021.[]},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[xcolor]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ color,pagecolor,definecolor,colorlet,textcolor,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ red,green,blue,cyan,magenta,yellow,black,gray,white,darkgray,%
+ lightgray,brown,lime,olive,orange,pink,purple,teal,violet },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ xcolor },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[expl3]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ .bool_gset,%
+ ExplFileDate,ExplFileDescription,ExplFileName,ExplFileVersion,%
+ ExplSyntaxOff,ExplSyntaxOn,GetIdInfo,ProvidesExplClass,%
+ ProvidesExplFile,ProvidesExplPackage,bool_case_false,bool_case_true,%
+ bool_const,bool_do_until,bool_do_while,bool_gset,bool_gset_eq,%
+ bool_gset_false,bool_gset_inverse,bool_gset_true,bool_if,%
+ bool_if_exist,bool_if_exist_p,bool_if_p,bool_lazy_all,%
+ bool_lazy_all_p,bool_lazy_and,bool_lazy_and_p,bool_lazy_any,%
+ bool_lazy_any_p,bool_lazy_or,bool_lazy_or_p,bool_log,bool_new,%
+ bool_not_p,bool_set,bool_set_eq,bool_set_false,bool_set_inverse,%
+ bool_set_true,bool_show,bool_to_str,bool_until_do,bool_while_do,%
+ bool_xor,bool_xor_p,box_autosize_to_wd_and_ht,%
+ box_autosize_to_wd_and_ht_plus_dp,box_clear,box_clear_new,box_clip,%
+ box_dp,box_gautosize_to_wd_and_ht,box_gautosize_to_wd_and_ht_plus_dp,%
+ box_gclear,box_gclear_new,box_gclip,box_gresize_to_ht,%
+ box_gresize_to_ht_plus_dp,box_gresize_to_wd,box_gresize_to_wd_and_ht,%
+ box_gresize_to_wd_and_ht_plus_dp,box_grotate,box_gscale,box_gset_dp,%
+ box_gset_eq,box_gset_eq_drop,box_gset_ht,box_gset_to_last,%
+ box_gset_trim,box_gset_viewport,box_gset_wd,box_ht,box_ht_plus_dp,%
+ box_if_empty,box_if_empty_p,box_if_exist,box_if_exist_p,%
+ box_if_horizontal,box_if_horizontal_p,box_if_vertical,%
+ box_if_vertical_p,box_log,box_move_down,box_move_left,%
+ box_move_right,box_move_up,box_new,box_resize_to_ht,%
+ box_resize_to_ht_plus_dp,box_resize_to_wd,box_resize_to_wd_and_ht,%
+ box_resize_to_wd_and_ht_plus_dp,box_rotate,box_scale,box_set_dp,%
+ box_set_eq,box_set_eq_drop,box_set_ht,box_set_to_last,box_set_trim,%
+ box_set_viewport,box_set_wd,box_show,box_use,box_use_drop,box_wd,%
+ c_alignment_token,c_ampersand_str,c_atsign_str,c_backslash_str,%
+ c_catcode_active_space_tl,c_catcode_active_tl,c_catcode_letter_token,%
+ c_catcode_other_space_tl,c_catcode_other_token,c_circumflex_str,%
+ c_code_cctab,c_colon_str,c_document_cctab,c_dollar_str,c_e_fp,%
+ c_empty_box,c_empty_clist,c_empty_coffin,c_empty_prop,c_empty_seq,%
+ c_empty_tl,c_false_bool,c_group_begin_token,c_group_end_token,%
+ c_hash_str,c_inf_fp,c_initex_cctab,c_left_brace_str,c_log_iow,%
+ c_math_subscript_token,c_math_superscript_token,c_math_toggle_token,%
+ c_max_char_int,c_max_dim,c_max_int,c_max_muskip,c_max_register_int,%
+ c_max_skip,c_minus_inf_fp,c_minus_zero_fp,c_nan_fp,c_novalue_tl,%
+ c_one_degree_fp,c_one_fp,c_one_int,c_other_cctab,c_parameter_token,%
+ c_percent_str,c_pi_fp,c_right_brace_str,c_space_tl,c_space_token,%
+ c_str_cctab,c_sys_backend_str,c_sys_day_int,c_sys_engine_exec_str,%
+ c_sys_engine_format_str,c_sys_engine_str,c_sys_engine_version_str,%
+ c_sys_hour_int,c_sys_jobname_str,c_sys_minute_int,c_sys_month_int,%
+ c_sys_output_str,c_sys_platform_str,c_sys_shell_escape_int,%
+ c_sys_year_int,c_term_iow,c_tilde_str,c_true_bool,c_underscore_str,%
+ c_zero_dim,c_zero_fp,c_zero_int,c_zero_muskip,c_zero_skip,%
+ c_zero_str,cctab_begin,cctab_const,cctab_end,cctab_gset,%
+ cctab_if_exist,cctab_if_exist_p,cctab_item,cctab_new,cctab_select,%
+ char_foldcase,char_generate,char_gset_active_eq,char_lowercase,%
+ char_set_active_eq,char_set_catcode,char_set_catcode_active,%
+ char_set_catcode_alignment,char_set_catcode_comment,%
+ char_set_catcode_end_line,char_set_catcode_escape,%
+ char_set_catcode_group_begin,char_set_catcode_group_end,%
+ char_set_catcode_ignore,char_set_catcode_invalid,%
+ char_set_catcode_letter,char_set_catcode_math_subscript,%
+ char_set_catcode_math_superscript,char_set_catcode_math_toggle,%
+ char_set_catcode_other,char_set_catcode_parameter,%
+ char_set_catcode_space,char_set_lccode,char_set_mathcode,%
+ char_set_sfcode,char_set_uccode,char_show_value_catcode,%
+ char_show_value_lccode,char_show_value_mathcode,%
+ char_show_value_sfcode,char_show_value_uccode,char_str_foldcase,%
+ char_str_lowercase,char_str_titlecase,char_str_uppercase,%
+ char_titlecase,char_to_nfd,char_to_utfviii_bytes,char_uppercase,%
+ char_value_catcode,char_value_lccode,char_value_mathcode,%
+ char_value_sfcode,char_value_uccode,clist_clear,clist_clear_new,%
+ clist_concat,clist_const,clist_count,clist_gclear,clist_gclear_new,%
+ clist_gconcat,clist_get,clist_gpop,clist_gpush,clist_gput_left,%
+ clist_gput_right,clist_gremove_all,clist_gremove_duplicates,%
+ clist_greverse,clist_gset,clist_gset_eq,clist_gset_from_seq,%
+ clist_gsort,clist_if_empty,clist_if_empty_p,clist_if_exist,%
+ clist_if_exist_p,clist_if_in,clist_item,clist_log,clist_map_break,%
+ clist_map_function,clist_map_inline,clist_map_tokens,%
+ clist_map_variable,clist_new,clist_pop,clist_push,clist_put_left,%
+ clist_put_right,clist_rand_item,clist_remove_all,%
+ clist_remove_duplicates,clist_reverse,clist_set,clist_set_eq,%
+ clist_set_from_seq,clist_show,clist_sort,clist_use,coffin_attach,%
+ coffin_clear,coffin_display_handles,coffin_dp,coffin_gattach,%
+ coffin_gclear,coffin_gjoin,coffin_gresize,coffin_grotate,%
+ coffin_gscale,coffin_gset_eq,coffin_gset_horizontal_pole,%
+ coffin_gset_vertical_pole,coffin_ht,coffin_if_exist,%
+ coffin_if_exist_p,coffin_join,coffin_log,coffin_log_structure,%
+ coffin_mark_handle,coffin_new,coffin_resize,coffin_rotate,%
+ coffin_scale,coffin_set_eq,coffin_set_horizontal_pole,%
+ coffin_set_vertical_pole,coffin_show,coffin_show_structure,%
+ coffin_typeset,coffin_wd,color_ensure_current,color_export,%
+ color_fill,color_group_begin,color_group_end,color_log,color_math,%
+ color_model_new,color_profile_apply,color_select,color_set,%
+ color_set_eq,color_show,color_stroke,cs_argument_spec,cs,cs_end,%
+ cs_generate_from_arg_count,cs_generate_variant,cs_gset,cs_gset_eq,%
+ cs_gset_nopar,cs_gset_protected,cs_gset_protected_nopar,cs_if_eq,%
+ cs_if_eq_p,cs_if_exist,cs_if_exist_p,cs_if_exist_use,cs_if_free,%
+ cs_if_free_p,cs_log,cs_meaning,cs_new,cs_new_eq,cs_new_nopar,%
+ cs_new_protected,cs_new_protected_nopar,cs_prefix_spec,%
+ cs_replacement_spec,cs_set,cs_set_eq,cs_set_nopar,cs_set_protected,%
+ cs_set_protected_nopar,cs_show,cs_split_function,cs_to_str,%
+ cs_undefine,debug_off,debug_on,debug_resume,debug_suspend,dim_abs,%
+ dim_add,dim_case,dim_compare,dim_compare_p,dim_const,dim_do_until,%
+ dim_do_while,dim_eval,dim_gadd,dim_gset,dim_gset_eq,dim_gsub,%
+ dim_gzero,dim_gzero_new,dim_if_exist,dim_if_exist_p,dim_log,%
+ dim_max,dim_min,dim_new,dim_ratio,dim_set,dim_set_eq,dim_show,%
+ dim_sign,dim_step_function,dim_step_inline,dim_step_variable,%
+ dim_sub,dim_to_decimal,dim_to_decimal_in_bp,dim_to_decimal_in_sp,%
+ dim_to_decimal_in_unit,dim_to_fp,dim_until_do,dim_use,dim_while_do,%
+ dim_zero,dim_zero_new,draw_begin,draw_end,else,exp_after,exp_args,%
+ exp_args_generate,exp_end,exp_end_continue_f,exp_last_two_unbraced,%
+ exp_last_unbraced,exp_not,exp_stop_f,expandafter,expanded,fi,%
+ file_compare_timestamp,file_compare_timestamp_p,file_full_name,%
+ file_get,file_get_full_name,file_get_hex_dump,file_get_mdfive_hash,%
+ file_get_size,file_get_timestamp,file_hex_dump,file_if_exist,%
+ file_if_exist_input,file_input,file_input_stop,file_log_list,%
+ file_mdfive_hash,file_parse_full_name,file_parse_full_name_apply,%
+ file_show_list,file_size,file_timestamp,flag_clear,flag_clear_new,%
+ flag_height,flag_if_exist,flag_if_exist_p,flag_if_raised,%
+ flag_if_raised_p,flag_log,flag_new,flag_raise,flag_raise_if_clear,%
+ flag_show,fp_abs,fp_add,fp_compare,fp_compare_p,fp_const,%
+ fp_do_until,fp_do_while,fp_eval,fp_format,fp_gadd,fp_gset,%
+ fp_gset_eq,fp_gsub,fp_gzero,fp_gzero_new,fp_if_exist,fp_if_exist_p,%
+ fp_if_nan,fp_if_nan_p,fp_log,fp_max,fp_min,fp_new,fp_set,%
+ fp_set_eq,fp_show,fp_sign,fp_step_function,fp_step_inline,%
+ fp_step_variable,fp_sub,fp_to_decimal,fp_to_dim,fp_to_int,%
+ fp_to_scientific,fp_to_tl,fp_trap,fp_until_do,fp_use,fp_while_do,%
+ fp_zero,fp_zero_new,fparray_count,fparray_gset,fparray_gzero,%
+ fparray_item,fparray_item_to_tl,fparray_new,g_file_curr_dir_str,%
+ g_file_curr_ext_str,g_file_curr_name_str,g_msg_module_name_prop,%
+ g_msg_module_type_prop,g_peek_token,g_tmpa_bool,g_tmpa_box,%
+ g_tmpa_clist,g_tmpa_coffin,g_tmpa_dim,g_tmpa_fp,g_tmpa_int,%
+ g_tmpa_ior,g_tmpa_iow,g_tmpa_muskip,g_tmpa_prop,g_tmpa_regex,%
+ g_tmpa_seq,g_tmpa_skip,g_tmpa_str,g_tmpa_tl,g_tmpb_bool,g_tmpb_box,%
+ g_tmpb_clist,g_tmpb_coffin,g_tmpb_dim,g_tmpb_fp,g_tmpb_int,%
+ g_tmpb_ior,g_tmpb_iow,g_tmpb_muskip,g_tmpb_prop,g_tmpb_regex,%
+ g_tmpb_seq,g_tmpb_skip,g_tmpb_str,g_tmpb_tl,group_align_safe_begin,%
+ group_align_safe_end,group_begin,group_end,group_insert_after,%
+ group_log_list,group_show_list,hbox,hbox_gset,hbox_gset_end,%
+ hbox_gset_to_wd,hbox_overlap_center,hbox_overlap_left,%
+ hbox_overlap_right,hbox_set,hbox_set_end,hbox_set_to_wd,hbox_to_wd,%
+ hbox_to_zero,hbox_unpack,hbox_unpack_drop,hcoffin_gset,%
+ hcoffin_gset_end,hcoffin_set,hcoffin_set_end,if,if_bool,%
+ if_box_empty,if_case,if_catcode,if_charcode,if_cs_exist,if_dim,%
+ if_eof,if_false,if_hbox,if_int_compare,if_int_odd,if_meaning,%
+ if_mode_horizontal,if_mode_inner,if_mode_math,if_mode_vertical,%
+ if_predicate,if_true,if_vbox,int_abs,int_add,int_case,int_compare,%
+ int_compare_p,int_const,int_decr,int_div_round,int_div_truncate,%
+ int_do_until,int_do_while,int_eval,int_from_alph,int_from_base,%
+ int_from_bin,int_from_hex,int_from_oct,int_from_roman,int_gadd,%
+ int_gdecr,int_gincr,int_gset,int_gset_eq,int_gsub,int_gzero,%
+ int_gzero_new,int_if_even,int_if_even_p,int_if_exist,int_if_exist_p,%
+ int_if_odd,int_if_odd_p,int_incr,int_log,int_max,int_min,int_mod,%
+ int_new,int_rand,int_set,int_set_eq,int_show,int_sign,%
+ int_step_...,int_step_function,int_step_inline,int_step_variable,%
+ int_sub,int_to_Alph,int_to_Base,int_to_Hex,int_to_Roman,%
+ int_to_alph,int_to_arabic,int_to_base,int_to_bin,int_to_hex,%
+ int_to_oct,int_to_roman,int_to_symbols,int_until_do,int_use,%
+ int_value,int_while_do,int_zero,int_zero_new,%
+ intarray_const_from_clist,intarray_count,intarray_gset,%
+ intarray_gset_rand,intarray_gzero,intarray_item,intarray_log,%
+ intarray_new,intarray_rand_item,intarray_show,intarray_to_clist,%
+ ior_close,ior_get,ior_get_term,ior_if_eof,ior_if_eof_p,ior_log,%
+ ior_log_list,ior_map_break,ior_map_inline,ior_map_variable,ior_new,%
+ ior_open,ior_shell_open,ior_show,ior_show_list,ior_str_get,%
+ ior_str_get_term,ior_str_map_inline,ior_str_map_variable,%
+ iow_allow_break,iow_char,iow_close,iow_indent,iow_log,iow_log_list,%
+ iow_new,iow_newline,iow_now,iow_open,iow_shipout,iow_shipout_x,%
+ iow_show,iow_show_list,iow_term,iow_wrap,keys_define,%
+ keys_if_choice_exist,keys_if_choice_exist_p,keys_if_exist,%
+ keys_if_exist_p,keys_log,keys_set,keys_set_filter,keys_set_groups,%
+ keys_set_known,keys_show,keyval_parse,l_char_active_seq,%
+ l_char_special_seq,l_color_fixed_model_tl,l_color_math_active_tl,%
+ l_file_search_path_seq,l_iow_line_count_int,l_keys_choice_int,%
+ l_keys_choice_tl,l_keys_key_str,l_keys_path_str,%
+ l_keys_usage_load_prop,l_keys_usage_preamble_prop,l_keys_value_tl,%
+ l_my_int,l_peek_token,l_text_accents_tl,l_text_case_exclude_arg_tl,%
+ l_text_expand_exclude_tl,l_text_letterlike_tl,l_text_math_arg_tl,%
+ l_text_math_delims_tl,l_text_titlecase_check_letter_bool,l_tmpa_bool,%
+ l_tmpa_box,l_tmpa_clist,l_tmpa_coffin,l_tmpa_dim,l_tmpa_fp,%
+ l_tmpa_int,l_tmpa_muskip,l_tmpa_prop,l_tmpa_regex,l_tmpa_seq,%
+ l_tmpa_skip,l_tmpa_str,l_tmpa_tl,l_tmpb_bool,l_tmpb_box,%
+ l_tmpb_clist,l_tmpb_coffin,l_tmpb_dim,l_tmpb_fp,l_tmpb_int,%
+ l_tmpb_muskip,l_tmpb_prop,l_tmpb_regex,l_tmpb_seq,l_tmpb_skip,%
+ l_tmpb_str,l_tmpb_tl,legacy_if,legacy_if_gset,legacy_if_gset_false,%
+ legacy_if_gset_true,legacy_if_p,legacy_if_set,legacy_if_set_false,%
+ legacy_if_set_true,lua_escape,lua_now,lua_shipout,lua_shipout_e,%
+ mode_if_horizontal,mode_if_horizontal_p,mode_if_inner,%
+ mode_if_inner_p,mode_if_math,mode_if_math_p,mode_if_vertical,%
+ mode_if_vertical_p,mode_leave_vertical,msg_critical,%
+ msg_critical_text,msg_error,msg_error_text,msg_expandable_error,%
+ msg_fatal,msg_fatal_text,msg_gset,msg_if_exist,msg_if_exist_p,%
+ msg_info,msg_info_text,msg_line_context,msg_line_number,msg_log,%
+ msg_log_eval,msg_module_name,msg_module_type,msg_new,msg_none,%
+ msg_note,msg_redirect_class,msg_redirect_module,msg_redirect_name,%
+ msg_see_documentation_text,msg_set,msg_show,msg_show_eval,%
+ msg_show_item,msg_show_item_unbraced,msg_term,msg_warning,%
+ msg_warning_text,muskip_add,muskip_const,muskip_eval,muskip_gadd,%
+ muskip_gset,muskip_gset_eq,muskip_gsub,muskip_gzero,%
+ muskip_gzero_new,muskip_if_exist,muskip_if_exist_p,muskip_log,%
+ muskip_new,muskip_set,muskip_set_eq,muskip_show,muskip_sub,%
+ muskip_use,muskip_zero,muskip_zero_new,pdf_destination,%
+ pdf_object_if_exist,pdf_object_if_exist_p,pdf_object_new,%
+ pdf_object_ref,pdf_object_ref_last,pdf_object_unnamed_write,%
+ pdf_object_write,pdf_pageobject_ref,pdf_pagobject_ref,pdf_uncompress,%
+ pdf_version,pdf_version_compare,pdf_version_compare_p,%
+ pdf_version_gset,pdf_version_major,pdf_version_min_gset,%
+ pdf_version_minor,peek_N_type,peek_after,peek_analysis_map_break,%
+ peek_analysis_map_inline,peek_catcode,peek_catcode_collect_inline,%
+ peek_catcode_remove,peek_charcode,peek_charcode_collect_inline,%
+ peek_charcode_remove,peek_gafter,peek_meaning,%
+ peek_meaning_collect_inline,peek_meaning_remove,peek_regex,%
+ peek_regex_remove_once,peek_regex_replace_once,peek_remove_filler,%
+ peek_remove_spaces,prg_break,prg_break_point,prg_do_nothing,%
+ prg_generate_conditional_variant,prg_map_break,prg_new_conditional,%
+ prg_new_eq_conditional,prg_new_protected_conditional,prg_replicate,%
+ prg_return_false,prg_return_true,prg_set_conditional,%
+ prg_set_eq_conditional,prg_set_protected_conditional,prop_clear,%
+ prop_clear_new,prop_concat,prop_const_from_keyval,prop_count,%
+ prop_gclear,prop_gclear_new,prop_gconcat,prop_get,prop_gpop,%
+ prop_gput,prop_gput_from_keyval,prop_gput_if_new,prop_gremove,%
+ prop_gset_eq,prop_gset_from_keyval,prop_if_empty,prop_if_empty_p,%
+ prop_if_exist,prop_if_exist_p,prop_if_in,prop_if_in_p,prop_item,%
+ prop_log,prop_map_break,prop_map_function,prop_map_inline,%
+ prop_map_tokens,prop_new,prop_pop,prop_put,prop_put_from_keyval,%
+ prop_put_if_new,prop_rand_key_value,prop_remove,prop_set_eq,%
+ prop_set_from_keyval,prop_show,prop_to_keyval,q_mark,q_nil,%
+ q_no_value,q_recursion_stop,q_recursion_tail,q_stop,quark_if_nil,%
+ quark_if_nil_p,quark_if_no_value,quark_if_no_value_p,%
+ quark_if_recursion_tail_break,quark_if_recursion_tail_stop,%
+ quark_if_recursion_tail_stop_do,quark_new,regex_const,regex_count,%
+ regex_extract_all,regex_extract_once,regex_gset,regex_log,%
+ regex_match,regex_match_case,regex_new,regex_replace,%
+ regex_replace_all,regex_replace_case_all,regex_replace_case_once,%
+ regex_replace_once,regex_set,regex_show,regex_split,reverse_if,%
+ s_stop,scan_new,scan_stop,seq_clear,seq_clear_new,seq_concat,%
+ seq_const_from_clist,seq_count,seq_gclear,seq_gclear_new,%
+ seq_gconcat,seq_get,seq_get_left,seq_get_right,seq_gpop,%
+ seq_gpop_item,seq_gpop_left,seq_gpop_right,seq_gpush,seq_gput_left,%
+ seq_gput_right,seq_gremove_all,seq_gremove_duplicates,seq_greverse,%
+ seq_gset_eq,seq_gset_filter,seq_gset_from_clist,%
+ seq_gset_from_function,seq_gset_from_inline_x,seq_gset_item,%
+ seq_gset_map,seq_gset_map_x,seq_gset_split,%
+ seq_gset_split_keep_spaces,seq_gshuffle,seq_gsort,seq_if_empty,%
+ seq_if_empty_p,seq_if_exist,seq_if_exist_p,seq_if_in,seq_item,%
+ seq_log,seq_map_break,seq_map_function,seq_map_indexed_function,%
+ seq_map_indexed_inline,seq_map_inline,seq_map_tokens,%
+ seq_map_variable,seq_mapthread_function,seq_new,seq_pop,%
+ seq_pop_item,seq_pop_left,seq_pop_right,seq_push,seq_put_left,%
+ seq_put_right,seq_rand_item,seq_remove_all,seq_remove_duplicates,%
+ seq_reverse,seq_set_eq,seq_set_filter,seq_set_from_clist,%
+ seq_set_from_function,seq_set_from_inline_x,seq_set_item,seq_set_map,%
+ seq_set_map_x,seq_set_split,seq_set_split_keep_spaces,seq_show,%
+ seq_shuffle,seq_sort,seq_use,skip_add,skip_const,skip_eval,%
+ skip_gadd,skip_gset,skip_gset_eq,skip_gsub,skip_gzero,%
+ skip_gzero_new,skip_horizontal,skip_if_eq,skip_if_eq_p,%
+ skip_if_exist,skip_if_exist_p,skip_if_finite,skip_if_finite_p,%
+ skip_log,skip_new,skip_set,skip_set_eq,skip_show,skip_sub,%
+ skip_use,skip_vertical,skip_zero,skip_zero_new,sort_return_same,%
+ sort_return_swapped,str_case,str_case_e,str_clear,str_clear_new,%
+ str_compare,str_compare_p,str_concat,str_const,str_convert_pdfname,%
+ str_count,str_count_ignore_spaces,str_count_spaces,str_foldcase,%
+ str_gclear,str_gconcat,str_gput_left,str_gput_right,str_gremove_all,%
+ str_gremove_once,str_greplace_all,str_greplace_once,str_gset,%
+ str_gset_convert,str_gset_eq,str_head,str_head_ignore_spaces,%
+ str_if_empty,str_if_empty_p,str_if_eq,str_if_eq_p,str_if_exist,%
+ str_if_exist_p,str_if_in,str_item,str_item_ignore_spaces,str_log,%
+ str_lowercase,str_map_break,str_map_function,str_map_inline,%
+ str_map_tokens,str_map_variable,str_new,str_put_left,str_put_right,%
+ str_range,str_range_ignore_spaces,str_remove_all,str_remove_once,%
+ str_replace_all,str_replace_once,str_set,str_set_convert,str_set_eq,%
+ str_show,str_tail,str_tail_ignore_spaces,str_uppercase,str_use,%
+ sys_finalise,sys_get_shell,sys_gset_rand_seed,sys_if_engine_luatex,%
+ sys_if_engine_luatex_p,sys_if_engine_pdftex,sys_if_engine_pdftex_p,%
+ sys_if_engine_ptex,sys_if_engine_ptex_p,sys_if_engine_uptex,%
+ sys_if_engine_uptex_p,sys_if_engine_xetex,sys_if_engine_xetex_p,%
+ sys_if_output_dvi,sys_if_output_dvi_p,sys_if_output_pdf,%
+ sys_if_output_pdf_p,sys_if_platform_unix,sys_if_platform_unix_p,%
+ sys_if_platform_windows,sys_if_platform_windows_p,sys_if_rand_exist,%
+ sys_if_rand_exist_p,sys_if_shell,sys_if_shell_p,%
+ sys_if_shell_restricted,sys_if_shell_restricted_p,%
+ sys_if_shell_unrestricted,sys_if_shell_unrestricted_p,%
+ sys_load_backend,sys_load_debug,sys_rand_seed,sys_shell_now,%
+ sys_shell_shipout,sys_timer,text_declare_expand_equivalent,%
+ text_declare_purify_equivalent,text_expand,text_lowercase,%
+ text_purify,text_titlecase,text_titlecase_first,text_uppercase,%
+ tl_analysis_log,tl_analysis_map_inline,tl_analysis_show,%
+ tl_build_begin,tl_build_clear,tl_build_end,tl_build_gbegin,%
+ tl_build_gclear,tl_build_gend,tl_build_get,tl_build_gput_left,%
+ tl_build_gput_right,tl_build_put_left,tl_build_put_right,tl_case,%
+ tl_clear,tl_clear_new,tl_concat,tl_const,tl_count,tl_count_tokens,%
+ tl_gclear,tl_gclear_new,tl_gconcat,tl_gput_left,tl_gput_right,%
+ tl_gremove_all,tl_gremove_once,tl_greplace_all,tl_greplace_once,%
+ tl_greverse,tl_gset,tl_gset_eq,tl_gset_rescan,tl_gsort,%
+ tl_gtrim_spaces,tl_head,tl_if_blank,tl_if_blank_p,tl_if_empty,%
+ tl_if_empty_p,tl_if_eq,tl_if_eq_p,tl_if_exist,tl_if_exist_p,%
+ tl_if_head_eq_catcode,tl_if_head_eq_catcode_p,tl_if_head_eq_charcode,%
+ tl_if_head_eq_charcode_p,tl_if_head_eq_meaning,%
+ tl_if_head_eq_meaning_p,tl_if_head_is_N_type,tl_if_head_is_N_type_p,%
+ tl_if_head_is_group,tl_if_head_is_group_p,tl_if_head_is_space,%
+ tl_if_head_is_space_p,tl_if_in,tl_if_novalue,tl_if_novalue_p,%
+ tl_if_single,tl_if_single_p,tl_if_single_token,tl_if_single_token_p,%
+ tl_item,tl_log,tl_map_break,tl_map_function,tl_map_inline,%
+ tl_map_tokens,tl_map_variable,tl_new,tl_put_left,tl_put_right,%
+ tl_rand_item,tl_range,tl_range_braced,tl_range_unbraced,%
+ tl_remove_all,tl_remove_once,tl_replace_all,tl_replace_once,%
+ tl_rescan,tl_reverse,tl_reverse_items,tl_set,tl_set_eq,%
+ tl_set_rescan,tl_show,tl_sort,tl_tail,tl_to_str,tl_trim_spaces,%
+ tl_trim_spaces_apply,tl_use,token_case_catcode,token_case_charcode,%
+ token_case_meaning,token_if_active,token_if_active_p,%
+ token_if_alignment,token_if_alignment_p,token_if_chardef,%
+ token_if_chardef_p,token_if_cs,token_if_cs_p,token_if_dim_register,%
+ token_if_dim_register_p,token_if_eq_catcode,token_if_eq_catcode_p,%
+ token_if_eq_charcode,token_if_eq_charcode_p,token_if_eq_meaning,%
+ token_if_eq_meaning_p,token_if_expandable,token_if_expandable_p,%
+ token_if_font_selection,token_if_font_selection_p,%
+ token_if_group_begin,token_if_group_begin_p,token_if_group_end,%
+ token_if_group_end_p,token_if_int_register,token_if_int_register_p,%
+ token_if_letter,token_if_letter_p,token_if_long_macro,%
+ token_if_long_macro_p,token_if_macro,token_if_macro_p,%
+ token_if_math_subscript,token_if_math_subscript_p,%
+ token_if_math_superscript,token_if_math_superscript_p,%
+ token_if_math_toggle,token_if_math_toggle_p,token_if_mathchardef,%
+ token_if_mathchardef_p,token_if_muskip_register,%
+ token_if_muskip_register_p,token_if_other,token_if_other_p,%
+ token_if_parameter,token_if_parameter_p,token_if_primitive,%
+ token_if_primitive_p,token_if_protected_long_macro,%
+ token_if_protected_long_macro_p,token_if_protected_macro,%
+ token_if_protected_macro_p,token_if_skip_register,%
+ token_if_skip_register_p,token_if_space,token_if_space_p,%
+ token_if_toks_register,token_if_toks_register_p,token_to_meaning,%
+ token_to_str,unvcopy,use,use_i,use_i_delimit_by_q_nil,%
+ use_i_delimit_by_q_recursion_stop,use_i_delimit_by_q_stop,use_i_ii,%
+ use_ii,use_ii_i,use_iii,use_iv,use_none,use_none_delimit_by_q_nil,%
+ use_none_delimit_by_q_recursion_stop,use_none_delimit_by_q_stop,%
+ use_none_delimit_by_s_stop,vbox,vbox_gset,vbox_gset_end,%
+ vbox_gset_split_to_ht,vbox_gset_to_ht,vbox_gset_top,vbox_set,%
+ vbox_set_end,vbox_set_split_to_ht,vbox_set_to_ht,vbox_set_top,%
+ vbox_to_ht,vbox_to_zero,vbox_top,vbox_unpack,vbox_unpack_drop,%
+ vcoffin_gset,vcoffin_gset_end,vcoffin_set,vcoffin_set_end,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ name,alternative-model,alternative-values,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ cmyk,%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ D,N,Nn,NF,NN,Nx,NT,NTF,NNn,NnV,Nnn,Npn,Nnnn,V,c,e,en,f,n,nF,%
+ nn,nT,nnn,nnF,nnV,nTF,nnnn,nNnF,nNnT,nnVV,o,p,v,w,x,%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ expl3,%
+ },
+ otherkeywords={:,~},%
+ alsoletter={_-.},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[pdftex]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ pdfinfo,pdfcatalog,pdfpageattr,pdfpagesattr,pdfpageresources,%
+ pdfcolorstack,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ pdftex,%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[luatex]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ pdfextension,ifluatex,directlua,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ colorstack },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ luatex,%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[dvips]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ color,push,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ dvips,%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[xetex]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ pdfcolorstack,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ xetex,%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[inputenc]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ latin1 },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ inputenc,%
+ },%
+ % otherkeywords={},%
+ alsoletter={1},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[pdfmanagement-testphase]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ pdfmanagement_add,DeclareDocumentMetadata,AddToDocumentProperties,%
+ ShowDocumentProperties,GetDocumentProperties,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{% Keys or optional arguments
+ pdfmanagement-testphase,uncompress,geometry,top-level,backend,Info,%
+ ThisPage,pdfversion,pdfstandard,paper,topic,Title,Rotate,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ dvipdfmx,%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ nnn,%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ pdfmanagement-testphase,%
+ },
+ otherkeywords={:},%
+ alsoletter={_-},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[rotating]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ sidewaystable,%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ rotating,%
+ },%
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[fontenc]{TeX}%
+ {%
+ % Control sequences names
+ moretexcs={%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ T1 },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ fontenc,%
+ },%
+ % otherkeywords={},
+ % alsoletter={1},%
+ alsodigit={1},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[babel]{TeX}%
+ {%
+ % Control sequences names
+ moretexcs={%
+ foreignlanguage,selectlanguage,iflanguage,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ otherlanguage,%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ UKenglish,USenglish,acadian,afrikaans,american,arabic,australian,%
+ austrian,azerbaijani,bahasa,bahasai,basque,bgreek,brazil,%
+ brazilian,breton,british,bulgarian,canadian,canadien,catalan,%
+ croatian,czech,danish,dutch,english,esperanto,estonian,ethiop,%
+ farsi,finnish,francais,french,frenchle,friulan,galician,german,%
+ germanb,greek,hebrew,hindi,ibygreek,icelandic,indon,indonesian,%
+ interlingua,irish,italian,japanese,latin,latvian,lithuanian,%
+ lowersorbian,magyar,malay,melayu (bahasam),mongolian,naustrian,%
+ newzealand,ngerman,norsk,nynorsk,pinyin,polish,polutonikogreek,%
+ portuges,portuguese,romanian,romansh,russian,samin,scottish,%
+ serbian,serbianc,slovak,slovene,spanglish,spanish,swedish,thai,%
+ thaicjk,turkish,turkmen,ukrainian,uppersorbian,vietnamese,%
+ welsh,%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ babel,%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[babel-french]{TeX}%
+ {%
+ % Control sequences names
+ moretexcs={%
+ og,fg,up,bsc,ier,iers,iere,ieres,ieme,iemes,primo,secundo,%
+ tertio,quarto,FrenchEnumerate,No,Nos,no,nos,degre,nombre,%
+ frenchabstractname,frenchbibname,frenchrefname,frenchprefacename,%
+ frenchchaptername,frenchappendixname,frenchcontentsname,%
+ frenchlistfigurename,frenchlisttablename,frenchindexname,%
+ frenchglossaryname,frenchfigurename,frenchtablename,frenchpartname,%
+ frenchenclname,frenchccname,frenchheadtoname,frenchpagename,%
+ frenchseename,frenchalsoname,frenchproofname%,%
+ frquote,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ babel-french,%
+ },%
+ % otherkeywords={},%
+ alsoletter={-},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[kantlipsum]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ kant,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ kantlipsum,%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[hyperxmp]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ hyperxmp,%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[hyperref]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ hypersetup,href,phantomsection,pdfstringdefDisableCommands,url,%
+ nolinkurl,hyperbaseurl,hyperimage,hyperdef,hyperref,hyperlink,%
+ hypertarget,hyperget,autoref,autopageref,ref*,pageref*,autoref*,%
+ autopageref*,pdfstringdef,pdfbookmark,currentpdfbookmark,%
+ subpdfbookmark,belowpdfbookmark,texorpdfstring,thispdfpagelabel,%
+ hypercalcbp,nameref,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ allbordercolors,allcolors,anchorcolor,backref,baseurl,bookmarks,%
+ bookmarksnumbered,bookmarksopen,bookmarksopenlevel,bookmarkstype,%
+ breaklinks,CJKbookmarks,citebordercolor,citecolor,colorlinks,debug,%
+ destlabel,draft,driverfallback,dvipdfm,dvipdfmx,dvips,dvipsone,%
+ dviwindo,encap,extension,filebordercolor,filecolor,final,%
+ frenchlinks,hidelinks,hyperfigures,hyperfootnotes,hyperindex,%
+ hypertex,hypertexnames,implicit,latex2html,linkbordercolor,%
+ linkcolor,linktoc,linktocpage,menubordercolor,menucolor,nativepdf,%
+ naturalnames,nesting,next-anchor,pageanchor,pagebackref,pdfauthor,%
+ pdfborder,pdfborderstyle,pdfcenterwindow,pdfcreator,pdfdirection,%
+ pdfdisplaydoctitle,pdfduplex,pdffitwindow,pdfhighlight,pdfinfo,%
+ pdfkeywords,pdflang,pdfmark,pdfmenubar,pdfnewwindow,%
+ pdfnonfullscreenpagemode,pdfnumcopies,pdfpagelabels,pdfpagelayout,%
+ pdfpagemode,pdfpagescrop,pdfpagetransition,pdfpicktraybypdfsize,%
+ pdfprintarea,pdfprintclip,pdfprintpagerange,pdfprintscaling,%
+ pdfproducer,pdfremotestartview,pdfstartpage,pdfstartview,pdfsubject,%
+ pdftex,pdftitle,pdftoolbar,pdftrapped,pdfview,pdfviewarea,%
+ pdfviewclip,pdfwindowui,plainpages,ps2pdf,psdextra,raiselinks,%
+ runbordercolor,runcolor,setpagesize,tex4ht,textures,unicode,%
+ urlbordercolor,urlcolor,verbose,vtex,xetex,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ hyperref,%
+ },%
+ % otherkeywords={},%
+ alsoletter={*},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[graphicx]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ includegraphics,includegraphics*,definecolor,color,textcolor,%
+ mathcolor,pagecolor,nopagecolor,colorbox,fcolorbox,rotatebox,%
+ scalebox,reflectbox,resizebox,resizebox*,graphicspath,%
+ DeclareGraphicsExtensions,DeclareGraphicsRule },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ draft,final,hiresbb,demo,setpagesize,nosetpagesize,dvips,xdvi,%
+ dvipdf,dvipdfm,dvipdfmx,xetex,pdftex,luatex,dvisvgm,dvipsone,%
+ dviwindo,emtex,dviwin,oztex,textures,pctexps,pctexwin,pctexhp,%
+ pctex32,truetex,tcidvi,vtex,debugshow,hiderotate,hidescale,alt,%
+ %
+ bb,bbllx,bblly,bburx,bbury,natwidth,natheight,hiresbb,pagebox,%
+ viewport,trim,angle,origin,width,height,totalheight,%
+ keepaspectratio,scale,clip,draft,type,ext,read,command,quiet,%
+ page,interpolate,decodearray,origin,x,y,units,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ mediabox,cropbox,bleedbox,trimbox,artbox,true,false,%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ graphicx,%
+ },%
+ % otherkeywords={},%
+ alsoletter={23},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[geometry]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ geometry,newgeometry,restoregeometry,savegeometry,loadgeometry,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ paper,papername,paperwidth,paperheight,papersize,landscape,%
+ portrait,layout,layoutwidth,layoutheight,layoutsize,layouthoffset,%
+ layoutvoffset,layoutoffset,hscale,vscale,scale,width,totalwidth,%
+ height,totalheight,total,textwidth,textheight,text,body,lines,%
+ includehead,includefoot,includeheadfoot,includemp,includeall,%
+ ignorehead,ignorefoot,ignoreheadfoot,ignoremp,ignoreall,%
+ heightrounded,hdivide,vdivide,divide,left,lmargin,inner,right,%
+ rmargin,outer,top,tmargin,bottom,bmargin,hmargin,vmargin,margin,%
+ hmarginratio,vmarginratio,marginratio,ratio,hcentering,vcentering,%
+ centering,twoside,asymmetric,headheight,head,headsep,footskip,%
+ foot,nohead,nofoot,noheadfoot,footnotesep,marginparwidth,%
+ marginparsep,nomarginpar,columnsep,hoffset,voffset,offset,%
+ twocolumn,onecolumn,reversemp,reversemarginpar,verbose,reset,mag,%
+ truedimen,pass,showframe,showcrop,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ a0paper,a1paper,a2paper,a3paper,a4paper,a5paper,a6paper,b0paper,%
+ b1paper,b2paper,b3paper,b4paper,b5paper,b6paper,c0paper,c1paper,%
+ c2paper,c3paper,c4paper,c5paper,c6paper,b0j,b1j,b2j,b3j,b4j,%
+ b5j,b6j,ansiapaper,ansibpaper,ansicpaper,ansidpaper,ansiepaper,%
+ letterpaper,executivepaper,legalpaper,screen,dvips,dvipdfm,pdftex,%
+ luatex,xetex,vtex,dvipdfmx,xdvipdfmx,%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ geometry,%
+ },%
+ % otherkeywords={},%
+ alsoletter={0123456},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[newpax]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ newpaxsetup,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ addannots,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ false,%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ newpax,%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[tikz]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ usetikzlibrary,draw,node,matrix,fill,foreach,tikz,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ tikzpicture,%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ pic,rotate,xshift,yshift,every node,inner sep,blend mode,fill,%
+ fit,circle,anchor,in,count,x,y,matrix,of,math,nodes,above
+ right,at,--,-|,|-,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ multiply,lightgray,base,%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ tikz,%
+ },%
+ % otherkeywords={},%
+ alsoletter={-| \ },%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[tikzducks]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ duck,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ alien,aodai,baguette,basket,beard,beret,bill,body,book,%
+ bookcolour,bowtie,bubblecolour,bunny,buttons,cake,cap,cape,%
+ cheese,chef,cocktail,conicalhat,crazyhair,cricket,crown,crozier,%
+ crystalball,darthvader,devil,easter,egga,eggb,eggc,eye,eyebrow,%
+ flavoura,flavourb,flavourc,football,glasses,graduate,grumpy,%
+ handbag,harlequin,hat,head,helmet,hockey,horsetail,icecream,%
+ inear,invisible,jacket,kingcrown,lapel,laughing,lightsaber,%
+ longhair,magichat,magicstars,magicwand,mask,milkshake,mohican,%
+ mullet,name,neckerchief,necklace,niuqelrah,overleaf,parrot,%
+ parting,peakedcap,pickaxe,pizza,prison,queencrown,recedinghair,%
+ ribbon,rollingpin,sailor,santa,sheep,shorthair,shovel,signback,%
+ signcolour,signpost,snowduck,speech,squareglasses,stethoscope,%
+ strawhat,sunglasses,tail,tassel,think,tie,tophat,torch,tshirt,%
+ umbrella,umbrellaclosed,unicorn,vampire,viking,water,wine,wing,%
+ witch,woggle,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ blue,green,red,yellow,%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ tikzducks,%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[tikzlings]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ anteater,bear,bee,cat,chicken,coati,elephant,hippo,koala,%
+ marmot,mole,mouse,owl,panda,penguin,pig,rhino,sheep,sloth,%
+ squirrel,snowman,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ 3D,eye,contour,back,globalwarming,whiskers,schroedinger,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ tikzlings,%
+ },%
+ % otherkeywords={},%
+ alsoletter={3},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[amsmath]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ cdots,ddots,vdots,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ pmatrix,%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ amsmath,%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % xparse
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \lst@definelanguage[xparse]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ NewDocumentCommand,RenewDocumentCommand,ProvideDocumentCommand,%
+ DeclareDocumentCommand,NewDocumentEnvironment,%
+ RenewDocumentEnvironment,ProvideDocumentEnvironment,%
+ DeclareDocumentEnvironment,NewExpandableDocumentCommand,%
+ RenewExpandableDocumentCommand,ProvideExpandableDocumentCommand,%
+ DeclareExpandableDocumentCommand,IfNoValueT,IfNoValueF,IfNoValueTF,%
+ IfValueT,IfValueF,IfValueTF,IfBooleanT,IfBooleanF,IfBooleanTF,%
+ BooleanTrue,BooleanFalse,ProcessedArgument,ReverseBoolean,%
+ SplitArgument,SplitList,ProcessList,TrimSpaces,%
+ GetDocumentCommandArgSpec,GetDocumentEnvironmentArgSpec,%
+ ShowDocumentCommandArgSpec,ShowDocumentEnvironmentArgSpec,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ log-declarations,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ xparse,%
+ },%
+ % otherkeywords={},%
+ alsoletter={-},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % colortbl
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \lst@definelanguage[colortbl]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ columncolor,rowcolor,cellcolor,arrayrulecolor,doublerulesepcolor,%
+ minrowclearance,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ colortbl,%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % multirow
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \lst@definelanguage[multirow]{TeX}%
+ {%
+ % Control sequences names
+ moretexcs={%
+ multirow,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ multirow,%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % nicematrix
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \lst@definelanguage[nicematrix]{TeX}%
+ {%
+ % Control sequences names
+ moretexcs={%
+ Cdots,Ddots,Vdots,Body,CodeBefore,CodeAfter,Block,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ pNiceMatrix,NiceMatrix,NiceTabular,bNiceArray,%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ hvlines,rules/width,baseline,colortbl-like,margin,right-margin,%
+ create-cell-nodes,rounded-corners,draw,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ nicematrix,%
+ },
+ otherkeywords={&},%
+ alsoletter={/},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % booktabs
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \lst@definelanguage[booktabs]{TeX}%
+ {%
+ % Control sequences names
+ moretexcs={%
+ toprule,midrule,bottomrule,cmidrule,addlinespace,morecmidrules,%
+ specialrule,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ booktabs,%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % strands
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \lst@definelanguage[strands]{TeX}%
+ {%
+ % Control sequences names
+ moretexcs={%
+ strands,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ strands,%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % cartonaugh
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \lst@definelanguage[cartonaugh]{TeX}%
+ {%
+ % Control sequences names
+ moretexcs={%
+ maxterms,minterms,terms,implicant,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ cartonaugh,%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ cartonaugh,%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % xistercian
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \lst@definelanguage[xistercian]{TeX}%
+ {%
+ % Control sequences names
+ moretexcs={%
+ cisterciannum,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ xistercian,%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ xistercian,%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % aboensis
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \lst@definelanguage[aboensis]{TeX}%
+ {%
+ % Control sequences names
+ moretexcs={%
+ abcursivefamily,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ aboensis,%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % tabularray
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \lst@definelanguage[tabularray]{TeX}%
+ {%
+ % Control sequences names
+ moretexcs={%
+ ,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ tblr,%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ width,colspec,row,bg,fg,font,column,hlines,X,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ odd,%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ tabularray,%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % ninecolors
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \lst@definelanguage[ninecolors]{TeX}%
+ {%
+ % Control sequences names
+ moretexcs={%
+ NineColors,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ gray1,red1,brown1,yellow1,olive1,green1,teal1,cyan1,azure1,%
+ blue1,violet1,magenta1,purple1,gray2,red2,brown2,yellow2,olive2,%
+ green2,teal2,cyan2,azure2,blue2,violet2,magenta2,purple2,gray3,%
+ red3,brown3,yellow3,olive3,green3,teal3,cyan3,azure3,blue3,%
+ violet3,magenta3,purple3,gray4,red4,brown4,yellow4,olive4,%
+ green4,teal4,cyan4,azure4,blue4,violet4,magenta4,purple4,gray5,%
+ red5,brown5,yellow5,olive5,green5,teal5,cyan5,azure5,blue5,%
+ violet5,magenta5,purple5,gray6,red6,brown6,yellow6,olive6,%
+ green6,teal6,cyan6,azure6,blue6,violet6,magenta6,purple6,gray7,%
+ red7,brown7,yellow7,olive7,green7,teal7,cyan7,azure7,blue7,%
+ violet7,magenta7,purple7,gray8,red8,brown8,yellow8,olive8,%
+ green8,teal8,cyan8,azure8,blue8,violet8,magenta8,purple8,gray9,%
+ red9,brown9,yellow9,olive9,green9,teal9,cyan9,azure9,blue9,%
+ violet9,magenta9,purple9,gray1,red1,brown1,yellow1,olive1,%
+ green1,teal1,cyan1,azure1,blue1,violet1,magenta1,purple1,gray2,%
+ red2,brown2,yellow2,olive2,green2,teal2,cyan2,azure2,blue2,%
+ violet2,magenta2,purple2,gray3,red3,brown3,yellow3,olive3,%
+ green3,teal3,cyan3,azure3,blue3,violet3,magenta3,purple3,gray4,%
+ red4,brown4,yellow4,olive4,green4,teal4,cyan4,azure4,blue4,%
+ violet4,magenta4,purple4,gray5,red5,brown5,yellow5,olive5,%
+ green5,teal5,cyan5,azure5,blue5,violet5,magenta5,purple5,gray6,%
+ red6,brown6,yellow6,olive6,green6,teal6,cyan6,azure6,blue6,%
+ violet6,magenta6,purple6,gray7,red7,brown7,yellow7,olive7,%
+ green7,teal7,cyan7,azure7,blue7,violet7,magenta7,purple7,gray8,%
+ red8,brown8,yellow8,olive8,green8,teal8,cyan8,azure8,blue8,%
+ violet8,magenta8,purple8,gray9,red9,brown9,yellow9,olive9,%
+ green9,teal9,cyan9,azure9,blue9,violet9,magenta9,purple9,%
+ saturation,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ low,medium,high,%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ ninecolors,%
+ },%
+ % otherkeywords={},%
+ alsoletter={123456789},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[fontspec]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ EncodingAccent,EncodingCommand,EncodingComposite,%
+ EncodingCompositeCommand,EncodingSymbol,IfFontExistsTF,%
+ IfFontFeatureActiveTF,UndeclareAccent,UndeclareCommand,%
+ UndeclareComposite,UndeclareSymbol,addfontfeature,addfontfeatures,%
+ aliasfontfeature,aliasfontfeatureoption,defaultfontfeatures,fontspec,%
+ liningnums,newAATfeature,newfontface,newfontfamily,newfontfeature,%
+ newfontlanguage,newfontscript,newopentypefeature,oldstylenums,%
+ providefontface,providefontfamily,renewfontface,renewfontfamily,%
+ setboldmathrm,setfontface,setfontfamily,setmainfont,setmathrm,%
+ setmathsf,setmathtt,setmonofont,setromanfont,setsansfont,strong,%
+ strongfontdeclare,strongresetsetmainfont,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ Alternate,Annotation,AutoFakeBold,AutoFakeSlant,BoldFeatures,%
+ BoldFont,BoldItalicFeatures,BoldItalicFont,BoldSlantedFeatures,%
+ BoldSlantedFont,BoldSwashFeatures,BoldSwashFont,CJKShape,%
+ CharacterVariant,CharacterWidth,Color,Colour,Contextuals,%
+ Diacritics,Extension,FakeBold,FakeSlant,FakeStretch,Font,FontFace,%
+ Fractions,HyphenChar,IgnoreFontspecFileItalicFeatures,ItalicFont,%
+ Kerning,Language,LetterSpace,Letters,Ligatures,LocalForms,%
+ NFSSFamily,Numbers,OpticalSize,Ornament,Path,PunctuationSpace,%
+ RawFeature,Scale,ScaleAgain,Script,Size,SizeFeatures,%
+ SlantedFeatures,SlantedFont,SmallCapsFeatures,SmallCapsFont,Style,%
+ StylisticAlternates,StylisticSet,SwashFeatures,SwashFont,%
+ UprightFeatures,UprightFont,Variant,Vertical,VerticalPosition,%
+ WordSpace,Mapping,Renderer,Traditional,Simplified,JIS1978,JIS1983,%
+ JIS1990,Expert,NLC,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ AboveBase,Alternate,AlternateHalf,AlternateMetrics,%
+ AlternateProportional,Alternates,AlternatesForRotation,Arabic,%
+ ArabicOff,BelowBase,Common,Contextual,Cursive,Denominator,%
+ Discretionary,Expert,Full,Half,HalfMetrics,Historic,%
+ HorizontalKana,Inferior,Inner,Italic,JIS1978,JIS1983,JIS1990,%
+ KanaAlternates,Kerning,LineFinal,Lining,LiningOff,Lowercase,%
+ LowercaseOff,MarkToBase,MarkToMark,Monospaced,MonospacedOff,NLC,%
+ Numerator,Off,OldStyle,OldStyleOff,On,Ordinal,PetiteCaps,%
+ Proportional,ProportionalMetrics,ProportionalOff,Quarter,Rare,%
+ Required,Reset,ResetAll,RotatedGlyphs,Ruby,ScientificInferior,%
+ Simplified,SlashedZero,SlashedZeroOff,SmallCaps,Superior,Swash,%
+ TeX,Thurd,Titling,Traditional,Unicase,Uppercase,UppercaseOff,%
+ UppercasePetiteCaps,UppercaseSmallCaps,VerticalKana,WordFinal,%
+ WordInitial,ResetAll,c2sc,scmp,sinf,sups,zero,ss06,ss01,%
+ ss04,-liga,frac,titl,swsh,hist,hlig%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ fontspec%
+ },%
+ % otherkeywords={},%
+ alsoletter={20614-},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[ProfCollege]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ Thales,Pourcentage,ResolEquation%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ Twitter,Scratch,%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ Auteur,Logo,Calculer,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ Place,Drapeau,Avancer,Repeter,Tournerg,FinBlocRepeter,%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ ProfCollege,%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[tkz-euclide]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ tkzDefPoint,tkzInterCC,tkzGetPoints,tkzDrawCircles,tkzDrawPolygon,%
+ tkzDrawPoints,tkzMarkSegments,tkzLabelSegments,tkzLabelPoints,%
+ tkzLabelPoints,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ tikzpicture,%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ mark,swap,above,scale,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ tkz-euclide },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[tkz-fct]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ tkzInit,tkzDrawX,tkzDrawY,tkzFct,tkzDefPoint,tkzDrawPoint,%
+ tkzPointShowCoord,tkzDefPoint,tkzDrawPoint,tkzPointShowCoord,%
+ tkzRep,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ tikzpicture,%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ xmin,xmax,ymin,ymax,samples,domain,xlabel,ylabel,xscale,yscale%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ tkz-fct },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[tkz-tab]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ tkzTabInit,tkzTabLine,tkzTabVar,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ tikzpicture,%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ lgt,espcl,t,d,z,+,-,-D+/,+/,-/,+D/,scale,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ tkz-tab },%
+ % otherkeywords={},%
+ alsoletter={+-/},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[mecaso]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ KineticT,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ mecaso },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[hanzibox]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ hanzibox*,hanziboxset,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ frametype,pinyinline,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ none,true,%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ hanzibox },%
+ % otherkeywords={},%
+ % alsoletter={},%
+ % alsodigit={},%
+ alsoother={*},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[tikz-bagua]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ Bagua*,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ tikz-bagua },%
+ % otherkeywords={},%
+ % alsoletter={},%
+ % alsodigit={},%
+ alsoother={*},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[bodeplot]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ addBodeZPKPlots },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ BodePlot,%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ ylabel,ytick,distance,height,width,magnitude,z,p,k,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ true,black,thick,linear,red,dashed,thick,asymptotic,blue,%
+ dotted,thick,%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ bodeplot },%
+ % otherkeywords={},%
+ alsoletter={/},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[formal-grammar]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ highlight,firstcase,gralt,nonterm },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ grammar },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ formal-grammar },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[numerica-plus]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ nmcRecur,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ do,see1,f_,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ numerica-plus },%
+ % otherkeywords={},%
+ alsoletter={_1},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[pascaltriangle]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ pascal,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ pascaltriangle },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[pgf-interference]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ pgfinterferencepattern,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters
+ % (since of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ slits,wavelength,slit-distance,intensity,ruler,scale,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ pgf-interference%
+ },%
+ % otherkeywords={},%
+ alsoletter={-},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[clistmap]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ ExplSyntaxOn,ExplSyntaxOff,clistmap,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ first_math,serial_rest_math_and,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ nnn,N,%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ clistmap },%
+ % otherkeywords={},%
+ alsoletter={_},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[hexboard]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ hexmove,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ hexgamelabels,%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ hexboard },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[robotarm]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ robotArm,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ tikzpicture },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ config,q1,q2,q3,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ robotarm },%
+ % otherkeywords={},%
+ alsoletter={123},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[amsfonts]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ mathbb,mathfrak,angle,Box,dasharrow,dashleftarrow,dashrightarrow,%
+ Diamond,hbar,Join,leadsto,lhd,llcorner,lozenge,lrcorner,mho,%
+ rhd,rightleftharpoons,rightsquigarrow,sqsubset,sqsupset,square,%
+ trianglelefteq,trianglerighteq,ulcorner,unlhd,unrhd,urcorner,%
+ vartriangleleft,vartriangleright,widehat{arg},widetilde{arg},yen,%
+ checkmark,circledR,maltese,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ amsfonts },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[biolinum]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ biolinum,biolinumOsF,biolinumLF,biolinumkey,sufigures,textsu,%
+ textsuperior,oldstylenums,liningnums,oldstylenumsf,liningnumsf,%
+ tabularnums,proportionalnums,tabularnumsf,proportionalnumsf,%
+ DeclareTextGlyphY,biolinumGlyph,biolinumKeyGlyph,LKey,LKeyPad,%
+ LKeyF,LKeyAltF,LKeyStrgAltF,LKeyCtrlAltF,LKeyStrgX,LKeyCtrlX,%
+ LKeyShiftX,LKeyAltX,LKeyAltGrX,LKeyShiftStrgX,LKeyShiftCtrlX,%
+ LKeyShiftAltX,LKeyShiftAltGrX,LKeyStrgAltX,LKeyCtrlAltX,%
+ LKeyStrgAltEnt,LKeyCtrlAltEnt,LKeyReset,LKeyTux,LKeyWin,LKeyMenu,%
+ LKeyStrg,LKeyCtrl,LKeyAlt,LKeyAltGr,LKeyShift,LKeyTab,LKeyEnter,%
+ LKeyCapsLock,LKeyPos,LKeyEntf,LKeyEinf,LKeyLeer,LKeyEsc,LKeyEnde,%
+ LKeyCommand,LKeyOptionKey,LKeyBack,LKeyUp,LKeyDown,LKeyLeft,%
+ LKeyRight,LKeyPgUp,LKeyPgDown,LKeyAt,LKeyFn,LKeyHome,LKeyDel,%
+ LKeySpace,LKeyScreenUp,LKeyScreenDown,LKeyIns,LKeyEnd,LKeyGNU,%
+ LKeyPageUp,LKeyPageDown,LMouseEmpty,LMouseN,LMouseL,LMouseM,%
+ LMouseR,LMouseLR,LMouseIIEmpty,LMouseIIN,LMouseIIL,LMouseIIR,%
+ LMouseIILR,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ sfdefault,type1,nofontspec,lining,nf,lf,oldstyle,osf,sflining,%
+ sflf,sfoldstyle,sfosf,osfss,tabular,t,p,sftabular,sft,%
+ sfproportional,sfp,scaled,scale,defaultfeatures,space,uni0020,%
+ exclam,uni0021,quotedbl,uni0022,numbersign,uni0023,dollar,%
+ uni0024,percent,uni0025,ampersand,uni0026,quotesingle,uni0027,%
+ parenleft,uni0028,parenright,uni0029,asterisk,uni002A,plus,%
+ uni002B,comma,uni002C,hyphen,uni002D,period,uni002E,slash,%
+ uni002F,zero,uni0030,one,uni0031,two,uni0032,three,uni0033,%
+ four,uni0034,five,uni0035,six,uni0036,seven,uni0037,eight,%
+ uni0038,nine,uni0039,colon,uni003A,semicolon,uni003B,less,%
+ uni003C,equal,uni003D,greater,uni003E,question,uni003F,at,%
+ bracketleft,uni005B,backslash,uni005C,bracketright,uni005D,%
+ asciicircum,uni005E,underscore,uni005F,grave,uni0060,uni007A,%
+ braceleft,uni007B,bar,uni007C,braceright,uni007D,asciitilde,%
+ uni007E,exclamdown,uni00A1,cent,uni00A2,sterling,uni00A3,%
+ currency,uni00A4,yen,uni00A5,brokenbar,uni00A6,section,uni00A7,%
+ dieresis,uni00A8,guillemotleft,uni00AB,uni00AD,degree,uni00B0,%
+ plusminus,uni00B1,acute,uni00B4,uni00B5,periodcentered,uni00B7,%
+ cedilla,uni00B8,guillemotright,uni00BB,Agrave,uni00C0,Aacute,%
+ uni00C1,Acircumflex,uni00C2,Atilde,uni00C3,Adieresis,uni00C4,%
+ Aring,uni00C5,Ccedilla,uni00C7,Egrave,uni00C8,Eacute,uni00C9,%
+ Ecircumflex,uni00CA,Edieresis,uni00CB,Igrave,uni00CC,Iacute,%
+ uni00CD,Icircumflex,uni00CE,Idieresis,uni00CF,Eth,uni00D0,Ntilde,%
+ uni00D1,Ograve,uni00D2,Oacute,uni00D3,Ocircumflex,uni00D4,Otilde,%
+ uni00D5,Odieresis,uni00D6,multiply,uni00D7,Oslash,uni00D8,Ugrave,%
+ uni00D9,Uacute,uni00DA,Ucircumflex,uni00DB,Udieresis,uni00DC,%
+ Yacute,uni00DD,Thorn,uni00DE,germandbls,uni00DF,agrave,uni00E0,%
+ aacute,uni00E1,acircumflex,uni00E2,atilde,uni00E3,adieresis,%
+ uni00E4,aring,uni00E5,ae,uni00E6,ccedilla,uni00E7,egrave,%
+ uni00E8,eacute,uni00E9,ecircumflex,uni00EA,edieresis,uni00EB,%
+ igrave,uni00EC,iacute,uni00ED,icircumflex,uni00EE,idieresis,%
+ uni00EF,eth,uni00F0,ntilde,uni00F1,ograve,uni00F2,oacute,%
+ uni00F3,ocircumflex,uni00F4,otilde,uni00F5,odieresis,uni00F6,%
+ divide,uni00F7,oslash,uni00F8,ugrave,uni00F9,uacute,uni00FA,%
+ ucircumflex,uni00FB,udieresis,uni00FC,yacute,uni00FD,thorn,%
+ uni00FE,ydieresis,uni00FF,Amacron,uni0100,amacron,uni0101,Abreve,%
+ uni0102,abreve,uni0103,Aogonek,uni0104,aogonek,uni0105,Cacute,%
+ uni0106,cacute,uni0107,Ccircumflex,uni0108,ccircumflex,uni0109,%
+ Cdotaccent,uni010A,cdotaccent,uni010B,Ccaron,uni010C,ccaron,%
+ uni010D,Dcaron,uni010E,dcaron,uni010F,Dcroat,uni0110,dcroat,%
+ uni0111,Emacron,uni0112,emacron,uni0113,Ebreve,uni0114,ebreve,%
+ uni0115,Edotaccent,uni0116,edotaccent,uni0117,Eogonek,uni0118,%
+ eogonek,uni0119,Ecaron,uni011A,ecaron,uni011B,Gcircumflex,%
+ uni011C,gcircumflex,uni011D,Gbreve,uni011E,gbreve,uni011F,%
+ Gdotaccent,uni0120,gdotaccent,uni0121,Gcommaaccent,uni0122,%
+ gcommaaccent,uni0123,Hcircumflex,uni0124,hcircumflex,uni0125,Hbar,%
+ uni0126,hbar,uni0127,Itilde,uni0128,itilde,uni0129,Imacron,%
+ uni012A,imacron,uni012B,Ibreve,uni012C,ibreve,uni012D,Iogonek,%
+ uni012E,iogonek,uni012F,Idotaccent,uni0130,dotlessi,uni0131,IJ,%
+ uni0132,ij,uni0133,Jcircumflex,uni0134,jcircumflex,uni0135,%
+ Kcommaaccent,uni0136,kcommaaccent,uni0137,kgreenlandic,uni0138,%
+ Lacute,uni0139,lacute,uni013A,Lcommaaccent,uni013B,lcommaaccent,%
+ uni013C,Lcaron,uni013D,lcaron,uni013E,Ldot,uni013F,ldot,uni0140,%
+ Lslash,uni0141,lslash,uni0142,Nacute,uni0143,nacute,uni0144,%
+ Ncommaaccent,uni0145,ncommaaccent,uni0146,Ncaron,uni0147,ncaron,%
+ uni0148,napostrophe,uni0149,Omacron,uni014C,omacron,uni014D,%
+ Obreve,uni014E,obreve,uni014F,Ohungarumlaut,uni0150,ohungarumlaut,%
+ uni0151,Racute,uni0154,racute,uni0155,Rcommaaccent,uni0156,%
+ rcommaaccent,uni0157,Rcaron,uni0158,rcaron,uni0159,Sacute,%
+ uni015A,sacute,uni015B,Scircumflex,uni015C,scircumflex,uni015D,%
+ Scedilla,uni015E,scedilla,uni015F,Scaron,uni0160,scaron,uni0161,%
+ Tcedilla,uni0162,tcedilla,uni0163,Tcaron,uni0164,tcaron,uni0165,%
+ Tbar,uni0166,tbar,uni0167,Utilde,uni0168,utilde,uni0169,Umacron,%
+ uni016A,umacron,uni016B,Ubreve,uni016C,ubreve,uni016D,Uring,%
+ uni016E,uring,uni016F,Uhungarumlaut,uni0170,uhungarumlaut,uni0171,%
+ Uogonek,uni0172,uogonek,uni0173,Wcircumflex,uni0174,wcircumflex,%
+ uni0175,Ycircumflex,uni0176,ycircumflex,uni0177,Ydieresis,uni0178,%
+ Zacute,uni0179,zacute,uni017A,Zdotaccent,uni017B,zdotaccent,%
+ uni017C,Zcaron,uni017D,zcaron,uni017E,h.superior,uni02B0,%
+ hhook.superior,uni02B1,j.superior,uni02B2,r.superior,uni02B3,%
+ rturned.superior,uni02B4,rhookturned.superior,uni02B5,%
+ Rsmallinverted.superior,uni02B6,w.superior,uni02B7,y.superior,%
+ uni02B8,uni02B9,uni02BA,uni02BB,afii57929,uni02BC,afii64937,%
+ uni02BD,uni02BE,uni02BF,uni02C0,uni02C1,uni02C2,uni02C3,uni02C4,%
+ uni02C5,circumflex,uni02C6,caron,uni02C7,uni02C8,uni02C9,uni02CA,%
+ uni02CB,uni02CC,uni02CD,uni02CE,uni02CF,uni02D0,uni02D1,uni02D2,%
+ uni02D3,uni02D4,uni02D5,uni02D6,uni02D7,breve,uni02D8,dotaccent,%
+ uni02D9,ring,uni02DA,ogonek,uni02DB,tilde,uni02DC,hungarumlaut,%
+ uni02DD,uni02DE,uni02DF,gammalatin.superior,uni02E0,l.superior,%
+ uni02E1,s.superior,uni02E2,x.superior,uni02E3,%
+ glottalstopreversed.superior,uni02E4,uni02EC,uni02ED,uni02EE,%
+ gravecomb,uni0300,acutecomb,uni0301,uni0302,tildecomb,uni0303,%
+ uni0304,uni0305,uni0306,uni0307,uni0308,hookabovecomb,uni0309,%
+ uni030A,uni030B,uni030C,uni030D,uni030E,uni030F,uni0310,uni0311,%
+ uni0312,uni0313,uni0314,uni0315,uni0316,uni0317,uni0318,uni0319,%
+ uni031A,uni031B,uni031C,uni031D,uni031E,uni031F,uni0320,uni0321,%
+ uni0322,dotbelowcomb,uni0323,uni0324,uni0325,uni0326,uni0327,%
+ uni0328,uni0329,uni032A,uni032B,uni032C,uni032D,uni032E,uni032F,%
+ uni0330,uni0331,uni0338,uni0342,uni0343,uni0351,uni0357,uni0358,%
+ uni0359,uni035A,uni035B,uni035C,uni035D,uni035E,uni035F,uni0360,%
+ uni0361,uni0362,uni0363,uni0374,uni0375,afii57799,uni05B0,%
+ afii57801,uni05B1,afii57800,uni05B2,afii57802,uni05B3,afii57793,%
+ uni05B4,afii57794,uni05B5,afii57795,uni05B6,afii57798,uni05B7,%
+ afii57797,uni05B8,afii57806,uni05B9,uni05BA,afii57796,uni05BB,%
+ afii57807,uni05BC,afii57839,uni05BD,afii57645,uni05BE,afii57841,%
+ uni05BF,afii57842,uni05C0,afii57804,uni05C1,afii57803,uni05C2,%
+ afii57658,uni05C3,uni05C6,afii57664,uni05D0,afii57665,uni05D1,%
+ afii57666,uni05D2,afii57667,uni05D3,afii57668,uni05D4,afii57669,%
+ uni05D5,afii57670,uni05D6,afii57671,uni05D7,afii57672,uni05D8,%
+ afii57673,uni05D9,afii57674,uni05DA,afii57675,uni05DB,afii57676,%
+ uni05DC,afii57677,uni05DD,afii57678,uni05DE,afii57679,uni05DF,%
+ afii57680,uni05E0,afii57681,uni05E1,afii57682,uni05E2,afii57683,%
+ uni05E3,afii57684,uni05E4,afii57685,uni05E5,afii57686,uni05E6,%
+ afii57687,uni05E7,afii57688,uni05E8,afii57689,uni05E9,afii57690,%
+ uni05EA,afii57716,uni05F0,afii57717,uni05F1,afii57718,uni05F2,%
+ arrowleft,uni2190,arrowup,uni2191,arrowright,uni2192,arrowdown,%
+ uni2193,arrowboth,uni2194,arrowupdn,uni2195,uni2196,uni2197,%
+ uni2198,uni2199,uni219A,uni219B,uni21A5,uni21A7,uni21BC,uni21BD,%
+ uni21C0,uni21C1,arrowdblleft,uni21D0,arrowdblup,uni21D1,%
+ arrowdblright,uni21D2,arrowdbldown,uni21D3,arrowdblboth,uni21D4,%
+ uni21D5,Nwarrow,uni21D6,Nearrow,uni21D7,Searrow,uni21D8,Swarrow,%
+ uni21D9,uni2318,uni2325,uni2326,uni2327,uni232B,uni237D,uni2380,%
+ uni2423,filledbox,uni25A0,H22073,uni25A1,triagup,uni25B2,uni25B3,%
+ uni25B6,uni25B7,triagdn,uni25BC,uni25BD,uni25C0,uni25C1,uni25C6,%
+ uni25C7,uni25C9,lozenge,uni25CA,circle,uni25CB,uni25CE,H18533,%
+ uni25CF,uni25D0,uni25D1,uni25D2,uni25D3,uni25D4,uni25D5,uni25D6,%
+ uni25D7,openbullet,uni25E6,uni2605,uni2619,uni261B,uni261E,%
+ uni2627,uni262F,uni2639,uni263A,uni263B,uni263C,uni263D,uni263E,%
+ uni263F,female,uni2640,uni2641,male,uni2642,uni2643,uni2644,%
+ uni2645,uni2646,uni2647,uni2648,uni2649,uni264A,uni264B,uni264C,%
+ uni264D,uni264E,uni264F,uni2650,uni2651,uni2652,uni2653,uni2660,%
+ uni2663,uni2665,uni2666,uni2669,musicalnote,uni266A,%
+ musicalnotedbl,uni266B,uni266C,uni2695,uni2698,uni26A2,uni26A3,%
+ uni26A4,uni26A5,uni26AD,uni2767,uni2776,uni2777,uni2778,uni2779,%
+ uni277A,uni277B,uni277C,uni277D,uni277E,uni277F,T_u_x,uniE000,%
+ uniE104,uniE128,uniE129,uniE12A,uniE130,uniE131,uniE132,uniE133,%
+ uniE134,uniE135,uniE138,uniE139,uniE13A,uniE13C,uniE13D,uniE168,%
+ B_a_c_k,uniE16E,S_t_r_g,uniE170,A_l_t,uniE171,A_l_t_G_r,uniE172,%
+ C_t_r_l,uniE173,S_h_i_f_t,uniE174,T_a_b,uniE175,E_n_t_e_r,%
+ uniE176,C_a_p_s_l_o_c_k,uniE177,F_1,uniE178,F_2,uniE179,F_3,%
+ uniE17A,F_4,uniE17B,F_5,uniE17C,F_6,uniE17D,F_7,uniE17E,F_8,%
+ uniE17F,F_9,uniE180,F_1_0,uniE181,F_1_1,uniE182,F_1_2,uniE183,%
+ F_1_3,uniE184,F_1_4,uniE185,F_1_5,uniE186,F_1_6,uniE187,uniE188,%
+ H_o_m_e,uniE189,D_e_l,uniE18A,I_n_s,uniE18B,uniE18C,E_n_d,%
+ uniE18E,G_N_U,uniE190,P_o_s_1,uniE191,E_n_t_f,uniE192,E_i_n_f,%
+ uniE193,L_e_e_r,uniE194,E_s_c,uniE195,E_n_d_e,uniE196,uniE198,%
+ uniE199,uniE19A,uniE19B,uniE1A0,uniE1A1,uniE1A2,uniE1A3,uniE1A4,%
+ uniE1A5,uniE1A6,uniE1A7,uniE1A8,uniE1A9,uniE1AA,uniE1AB,uniE1AC,%
+ uniE1AD,uniE1AE,uniE1B0,uniE1B1,grave.cap,uniE358,acute.cap,%
+ uniE359,circumflex.cap,uniE35A,caron.cap,uniE35B,breve.cap,%
+ uniE35C,hungarumlaut.cap,uniE35D,space_uni030F.cap,uniE35E,%
+ breveinvertedcmb.cap,uniE35F,breve.cyrcap,uniE360,breve.cyr,%
+ uniE361,dieresis.cap,uniE362,hookabovecomb.cap,uniE363,uniFFFD,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ biolinum },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[biblatex]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ cite,Cite,parencite,Parencite,footcite,footcitetext,smartcite,%
+ Smartcite,textcite,Textcite,supercite,cites,Cites,parencites,%
+ Parencites,footcitesfootcitetexts,textcites,Textcites,supercites,%
+ autocite,Autocite,autocite*,Autocite*,autocites,Autocites,%
+ citeauthor,Citeauthor,citetitle,citetitle*,citeyear,citeurl,%
+ parentext,brackettext,nocite,fullcite,footfullcite,volcite,%
+ Volcite,pvolcite,Pvolcite,fvolcite,ftvolcite,tvolcite,Tvolcite,%
+ avolcite,Avolcite,notecite,Notecite,pnotecite,Pnotecite,fnotecite,%
+ citename,citelist,citefield,printbibliography,bibliography,%
+ citedate,ExecuteBibliographyOptions,defbibnote,psq,psqq,%
+ addbibresource,AtNextCite,DeclareNameAlias,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ abstract,addendum,afterword,annotation,annotator,author,%
+ authortype,bookauthor,bookpagination,booksubtitle,booktitle,%
+ booktitleaddon,chapter,commentator,date,doi,edition,editor,%
+ editora,editorb,editorc,editortype,editoratype,editorbtype,%
+ editorctype,eid,eprint,eprintclass,eprinttype,eventdate,%
+ eventtitle,file,foreword,holder,howpublished,indextitle,%
+ institution,introduction,isan,isbn,ismn,isrn,issn,issue,%
+ issuesubtitle,issuetitle,iswc,journalsubtitle,journaltitle,label,%
+ language,library,location,mainsubtitle,maintitle,maintitleaddon,%
+ month,nameaddon,note,number,organization,origdate,origlanguage,%
+ origlocation,origpublisher,origtitle,pages,pagetotal,pagination,%
+ part,publisher,pubstate,reprinttitle,series,shortauthor,%
+ shorteditor,shorthand,shorthandintro,shortjournal,shortseries,%
+ shorttitle,subtitle,title,titleaddon,translator,type,url,urldate,%
+ venue,version,volume,volumes,year,crossref,entryset,entrysubtype,%
+ execute,gender,hyphenation,indexsorttitle,keywords,options,%
+ presort,sortkey,sortname,sorttitle,sortyear,xref,annote,%
+ archiveprefix,journal,key,pdf,primaryclass,school,address,%
+ datamodel,%
+ %
+ backend,style,citestyle,bibstyle,sorting,maxnames,minnames,%
+ maxitems,minitems,backref,abbreviate,firstinits,prenote,postnote,%
+ useprefix,autopunct,giveninits,labelname,given-family,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ submitted,inpress,danish dutch,american,USenglish,english,british,%
+ UKenglish,canadian,australian,newzealand,finnish,french,francais,%
+ canadien,german,ngerman,austrian,naustrian,greek,italian,norsk,%
+ nynorsk,brazil,portuges,spanish,swedish,%
+ %
+ biber,numeric,numeric-comp,numeric-verb,alphabetic,alphabetic-verb,%
+ authoryear,authoryear-comp,authoryear-ibid,authoryear-icomp,%
+ authortitle,authortitle-comp,authortitle-ibid,authortitle-icomp,%
+ authortitle-terse,authortitle-tcomp,authortitle-ticomp,verbose,%
+ verbose-ibid,verbose-note,verbose-inote,verbose-trad1,verbose-trad2,%
+ verbose-trad3,reading,draft,debug,and,inline,footnote,%
+ superscript,plain,nyt,ynt,none,false,true,%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ biblatex },%
+ % directives
+ directives={%
+ article,book,inbook,bookinbook,suppbook,booklet,collection,%
+ conference,incollection,suppcollection,manual,misc,online,patent,%
+ periodical,suppperiodical,proceedings,inproceedings,reference,%
+ inreference,report,thesis,unpublished,masterthesis,phdthesis,%
+ string,comment,%
+ },%
+ % otherkeywords={},%
+ alsoletter={-},%
+ % alsodigit={},%
+ delim=*[directive]@,sensitive=false,%
+ }[keywords,directives,tex,comments]%
+
+ \lst@definelanguage[lthooks]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ AddToHook,BeforeBeginEnvironment,AtBeginEnvironment,AtEndEnvironment,%
+ AfterEndEnvironment,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ % begin,end,
+ before,after,begindocument,begindocument/before,%
+ begindocument/end,enddocument,enddocument/afterlastpage,%
+ enddocument/afteraux,enddocument/info,enddocument/end,env,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ lthooks },%
+ % otherkeywords={},%
+ alsoletter={/},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[l3keys2e]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ ProcessKeysOptions,ProcessKeysPackageOptions,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ l3keys2e },%
+ % otherkeywords={},%
+ alsoletter={23},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[varioref]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ vref,vpageref,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ varioref },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[hologo]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ hologo },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=va ,lue)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ hologo%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[acro]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ Ac,Aca,Acap,Acf,Acfp,Acl,Aclp,Acp,AcroAcronymsMap,AcroAddRow,%
+ AcroMapBreak,AcroNeedPackage,AcroPropertiesMap,AcroPropertiesSet,%
+ AcroRerun,AcroStyle,AcroTemplateName,AcroTemplateType,AcronymID,%
+ AcronymTable,Acs,Acsp,BeginAccSupp,Dacs,DeclareAcroArticle,%
+ DeclareAcroEnding,DeclareAcroPreset,DeclareAcroProperty,%
+ DeclareAcroPropertyAlias,DeclareAcroTranslation,DeclareAcronym,Iac,%
+ Iaca,Iacf,Iacl,Iacs,MakeAcroPropertyAlias,NewAcroCommand,%
+ NewAcroPreset,NewAcroTemplate,RenewAcroCommand,RenewAcroPreset,%
+ RenewAcroTemplate,SetupAcroTemplate,SetupNextAcroTemplate,%
+ UseAcroTemplate,abbrdot,ac,aca,acap,acbarrier,acdot,acf,acfg,%
+ acflike,acfootnote,acfp,acg,aciftrailing,acl,aclg,aclp,acp,%
+ acreset,acresetall,acrocite,acrodefinite,acrodonotuse,acrodotfill,%
+ acroendfootnote,acroformat,acrofull,acrogroupcite,acroheading,%
+ acroifT,acroifTF,acroifallTF,acroifanyT,acroifanyTF,%
+ acroifbooleanTF,acroifchapterF add,acroifchapterTF,acroiffirstT,%
+ acroiffirstTF addchap,acroifpagesTF,acroifsingleTF,acroifstarredTF,%
+ acroiftagTF,acroifusedTF,acroindefinite,acrolistname,acroneedpages,%
+ acronopagerange,acronymsmap,acronymsmapF,acronymsmapTF,acropagefill,%
+ acropages,acroplural,acropossessive,acropreamble,acroshow,%
+ acrotranslate,acroupper,acrowrite,acs,acsetup,acsp,acspace,%
+ acswitchoff,acswitchon,acuse,dacs,declareAcronym,iac,iaca,iacf,%
+ iacl,iacs,iacsg,printacronyms,%
+ %
+ acro_locale,acro_if_foreign,acro_if_locale,__acro_foreign_language,%
+ acro_property_get,acro_property_if_set,acro_property_get,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ activate,addsec,addsec*,all,alt,alt,alt-acc,alt-format,%
+ alt-indefinite,alt-plural,alt-plural-form,barriers,before-citation,%
+ caption,%
+ case-insensitive,%case-sensitive,%chapter,chapter*,cite,clear,cmd,%
+ deactivate,define,description,disable,display,exclude,extra,%
+ extra-acc,extra-foreign,extra-format,extra-long,fill,first,%
+ first-long,first-long-format,first-style,first-style ,floats,%
+ footnote,foreign,foreign,foreign-acc,foreign-babel,foreign-format ,%
+ foreign-locale,foreign-plural,foreign-plural-form,format,format,%
+ group,heading,id,include,index,index,index-cmd,index-sort,%
+ language,link-only-first,list,list,list-acc,list-format,%
+ list/display,lists,load-style,local,locale,lof,long,long,%
+ long-acc,long-format,long-indefinite,long-plural,long-plural-ending,%
+ long-plural-form,long-post,long-short,longtable,longtabu,lppl,%
+ ltxtable,make-links,maketitle,method,name,no-index,none,options,%
+ pages,pdf,pdf,pdfcomment,pdfcomment/cmd,pdfcomment/use,pdfstring,%
+ post,pre,preamble,preset,replace,reset,section,section*,short,%
+ short,short,short-acc,short-format,short-indefinite,short-long,%
+ short-plural,short-plural-ending,short-plural-form ,show,single,%
+ single,single,single-acc threshold,single-format
+ title,single-style,%
+ single-style,sort,sort,subsequent-style,subsequent-style,%
+ supertabular,tabular,tabularx,tag,upgrade,use,use-id-as-short,%
+ uselist,version,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ acro%
+ },%
+ % otherkeywords={},%
+ alsoletter={-_},%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ \lst@definelanguage[csquotes]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ enquote,%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ displayquote,%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ csquotes%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % tcolorbox
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \lst@definelanguage[tcolorbox]{TeX}%
+ {%
+ % Control sequences names
+ moretexcs={%
+ tcbuselibrary,newtcbtheorem,tcbset%
+ },%
+ % Keywords of class 1 : keywords that contain other characters (since
+ % of the same class as the ones specified as 'otherkeywords')
+ morekeywords={%
+ %
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ absquote,boxarraystore,dispExample,dispExample*,dispListing,%
+ dispListing*,docCommand,docCommand*,docCommands,docEnvironment,%
+ docEnvironment*,docEnvironments,docKey,docKey*,docKeys,%
+ docPathOperation,docPathOperation*,docPathOperations,extcolorbox,%
+ extikzpicture,fooauxenv,foocolorbox,foocolorbox*,posterboxenv,%
+ tcbclipframe,tcbclipinterior,tcbcliptitle,tcbexternal,%
+ tcbinvclipframe,tcbitemize,tcblisting,tcboutputlisting,%
+ tcboxeditemize,tcboxedraster,tcbposter,tcbraster,tcbverbatimwrite,%
+ tcbwritetemp,tcolorbox,%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ Crefname,IfBooleanF,IfBooleanT,IfBooleanTF,IfNoValueF,IfNoValueT,%
+ IfNoValueTF,IfValueF,IfValueT,IfValueTF,PassOptionsToClass,%
+ PassOptionsToPackage,above*,above,actual,adapt,add,adjust,%
+ adjusted,after,alert,alerted,algorithm,align*,align,all,ams,%
+ and,angular,annotate,app,arara,arc,array,as,at,attach,auto,%
+ autoparskip,balanced,base,basedim,baseline,beamer,bean,before,%
+ beforeafter,% begin,
+ below,between,biber,bibtex,bicolor,blank,%
+ blanker,blankest,blend,body,bold,bookmark*,bookmark,borderline,%
+ both,bottom*,bottom,bottomrule,bottomsep,bottomtitle,bounding,%
+ box,boxed,boxes,boxrule,boxsep,break*,break,breakable,broken,%
+ by,caption,capture,center,check,circular,clear,clip,code,%
+ colback,colbacklower,colbacktitle,colframe,collower,colon,color,%
+ colorize,colors,colspacing,coltext,coltitle,column*,column,%
+ columns,colupper,command,comment,compilable,compiler,compress,%
+ content,corner,corners,counter*,counter,counters,coverage,%
+ crefname,current,curved,dash,default,definition,delimiters,%
+ description,detach,directory,do,doc,docexample,documentation,%
+ downwards,draft,draftmode,draw,drop,dvips,east,empty,% end,
+ %
+ enforce,engine,english,enhanced,enlarge,enlargement,enlargepage,%
+ entry,environment,environments,equal,equation*,equation,error,%
+ even,every,example!,example,extend,extension,external,%
+ externalize,extras,extrude,fade,fading,file,fill,filled,finally,%
+ finish,first,fit,fitting,fixed,flexible,flip,float*,float,%
+ floatplacement,flush,flushleft,flushright,font,fontlower,fontsize,%
+ fonttitle,fontupper,for,force,format,formatter,frame,freelance,%
+ freelancefirst,freelancelast,freelancemiddle,freestyle,freeze,from,%
+ full,fuzzy,gap,gather*,gather,geometry,german,goal,graphical,%
+ graphics,group,grow,halign,halo,hanging,hbox,head,height,%
+ hidden,hide,higher,highlight,hooks,horizontal,hyperlink,hyperref,%
+ hypertarget,hyperurl*,hyperurl,hyphenationfix,if,ignore,image,in,%
+ indent,index*,index,inherit,initially,input,inputencoding,inside,%
+ interior,into,invisible,inwards,is,jigsaw,jpg,key,keypath,keys,%
+ keywords,label,language,large,last,latex,layer,layers,left*,%
+ left,lefthand,leftlower,leftright,leftrule,lefttitle,leftupper,%
+ length,lengths,level,lifted,limit,line*,line,lines,list,%
+ listing!,listing,listings,listingsutf,lower*,lower,lowerbox,%
+ lowered,lualatex,m,macros,magazine,makeindex,many,marginnote,%
+ marker,math,maxfontdiff,maxfontdiffgap,maxstep,maxwidthdiff,%
+ maxwidthdiffgap,method,midday,middle,minimum,minipage,minted,%
+ most,move,multicolumn,multirow,n,name,nameref,natural,new,%
+ nirvana,no,nobeforeafter,nobreak,node,nodes,nodisplayskip,%
+ nofloat,none,noparskip,nophantom,north,northeast,northwest,not,%
+ notitle,number,octogon,odd,of,offset,on,oneside*,oneside,only,%
+ opacity,opacityback,opacitybacklower,opacitybacktitle,opacityfill,%
+ opacityframe,opacitylower,opacitytext,opacitytitle,opacityupper,%
+ option,options,or,orientation,out,outer,outside,outwards,over,%
+ overlay,overlays,oversize,overzoom,pad,page*,page,pages,%
+ pageshort,parameter,parbox,parenthesis,parfillskip,parskip,path,%
+ paths,pdf,pdflatex,percent,phantom,phantomlabel,placeholder,%
+ plain,plus,png,poster,pre,preamble,preclass,prefix,process,%
+ pspdf,quote,raise,raised,raster,ratio,record,recording,remake,%
+ remember,remove,reset,restore,right*,right,righthand,rightlower,%
+ rightrule,righttitle,rightupper,rotate,rounded,row,rows,%
+ rowspacing,rowspan,run,runner,runs,safety,savedelimiter,%
+ savelowerto,saveto,scale,scope,segmentation,semi,separated,%
+ separator,sequence,settings,shade,shading,shadow,sharp,sharpish,%
+ shield,show,showframe,shrink,side,sidebyside,sidewards,sign,%
+ size,skin,skins,skip,small,smart,sort,source,south,southeast,%
+ southwest,space,spacing,span,spartan,split,spread,square,%
+ squeezed,stack,standard,step,store,stretch,style,subskin,%
+ subtitle,supplement,switch,system,tabulars*,tabulars,tabularx*,%
+ tabularx,tcbimage,tcbox,preamble tcbset,tempfile,terminator,text,%
+ theorem,theorems,tight,tikz,tikznode,tile,title*,title,titlebox,%
+ titled,titlerule,to,toggle,top*,top,toprule,topsep,toptitle,%
+ type,unbreakable,unbroken,underlay,updated,upper*,upper,upperbox,%
+ upwards*,upwards,use,utf,valign,value,values,varwidth,verbatim,%
+ vertical,vfill,vignette,visible,void,warning,watermark,west,%
+ widget,width,with,within,xelatex,xmax,xmin,xparse,xshift,ymax,%
+ ymin,yshift*,yshift,yshifttext,zoom,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ all,and,apart,areasize*,areasize,as-is,auto,base,baselineskip,%
+ beamer,beamerfirst,beamerlast,beamermiddle,bicolor,bicolorfirst,%
+ bicolorlast,bicolormiddle,both,bottom,break,broken,center,change,%
+ clipped,colon,copy,dash,direct,doc,downhill,draft,east,empty,%
+ emptyfirst,emptylast,emptymiddle,enhanced,enhancedfirst,%
+ enhancedlast,enhancedmiddle,evenpage,false,fbox,figures,final,%
+ first,fitbox,flush,fontsize*,fontsize,forced,freelance,%
+ freelancefirst,freelancelast,freelancemiddle,hang,hbox,hybrid*,%
+ hybrid,ignored,invisible,jigsaw,justify,landscape*,landscape,%
+ last,left,limited,listings,margin,maximum,middle,minimal,%
+ minimum,minipage,minted,none,normal,north,northeast,northwest,%
+ off,on,path,pathfirst,pathfirstjigsaw,pathjigsaw,pathlast,%
+ pathlastjigsaw,pathmiddle,pathmiddlejigsaw,pgf,pgfchapter,%
+ pgfsection,plain,portrait*,portrait,right,rows,scale*,scale,%
+ seam,small,south,southeast,southwest,spartan,squeeze,standard,%
+ tables,tight,tile,tilefirst,tilelast,tilemiddle,title,top,true,%
+ unbroken,unlimited,uphill,visible,west,widget,widgetfirst,%
+ widgetlast,widgetmiddle,red,black,white,none,%
+ },%
+ % Keywords of class 5 : arguments specifications (after ":" in expl3
+ % syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly derived
+ % packages)
+ morekeywords=[6]{%
+ tcolorbox%
+ },%
+ % otherkeywords={},%
+ alsoletter={ \ },%
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]%
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % Classes (La)TeX
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \lst@definelanguage[classes]{TeX}{%
+ % Control sequences
+ moretexcs={%
+ },%
+ % Keywords of class 1 : keywords that contain other characters
+ % (since of the same class as the ones specified as
+ % 'otherkeywords')
+ morekeywords={%
+ %
+ },%
+ % Keywords of class 2 : environments names
+ morekeywords=[2]{%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments)
+ % & optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ },%
+ % Keywords of class 5 : arguments specifications (after “:”
+ % in expl3 syntax)
+ morekeywords=[5]{%
+ },%
+ % Keywords of class 6 : current package name (and possibly
+ % derived packages)
+ morekeywords=[6]{%
+ a0poster,aalok,aastex631,abntex2,achemso,acmart,acmconf,
+ active-conf,adfathesis,afparticle,afthesis,aguplus,aiaa-tc,
+ akklecture,akkscript,akktecdoc,akletter,myletter,ametsoc,
+ amsart,amsbook,amsdtx,amsldoc,amsproc,aomart,apa,apa6,
+ apa6e,apa7,arabart,arabbook,arabrep,arabrep1,articleingud,
+ asaetr,ascelike,asmeconf,asmejour,assignment,aucklandthesis,
+ bangorcsthesis,bangorexam,barticle,bbook,bletter,
+ bankstatement,article,book,letter,ltnews,ltxdoc,ltxguide,
+ minimal,proc,report,slides,source2edoc,basque-book,beamer,
+ beamerswitch,beaulivre,beilstein,argetabelle,bewerbung,
+ bgteubner,BHCexam,bitart,bitbook,bjfuthesis,BMSTU-IU8,
+ bookcover,bookest,bookshelf,br-lex,brandeis-dissertation,
+ brandeis-problemset,brandeis-thesis,buctcover,buctthesis,
+ bxjsarticle,bxjsbook,bxjsreport,bxjsslide,cascadilla,cd,
+ cd-cover,articoletteracdp,letteracdp,cesenaexam,cheatsheet,
+ chemmacros-manual,chletter,cje,cnbwp,cnltx-doc,codedoc,
+ colorart,colorbook,combine,cc,ConcProg,confproc,contracard,
+ courseoutline,coursepaper,cquthesis,csbulletin,csbulobalka,
+ csbulv1,ctexart,ctexbeamer,ctexbook,ctexrep,ctxdoc,curve,
+ cv4tw,cweb,idcc,ijdc-v14,ijdc-v9,dinbrief,disser,gost732,
+ dithesis,droit-fr,dtk,dvdcoll,easybook,ebsthesis,agecon,
+ ajae,apecon,ecca,erae,itaxpf,jrurstud,njf,oegatb,pocoec,
+ regstud,worlddev,ecv,einfart,ejpecp,elbioimp,elegantbook,
+ elegantnote,elegantpaper,elpres,cas-dc,cas-sc,elsarticle,
+ elteikthesis,emisa,emulateapj,erdc,eskd,eskdgraph,eskdtab,
+ eskdtext,estcpmm,europasscv,europecv,exam,exam-n,examdesign,
+ exesheet,extarticle,extbook,extletter,extproc,extreport,
+ facsimile,factura,fancyhandout,fancyslides,fbithesis,fcavtex,
+ fdudoc,fduthesis-en,fduthesis,fei,ffslides,fithesis,
+ fithesis2,fithesis3,fithesis4,flacards,flashcards,frletter,
+ g-brief,g-brief2,gaceta,gammas,gatech-thesis,gmdocc,
+ gradstudentresume,grant-afosr,grant-aro,grant-darpa,grant-doe,
+ grant-nih,grant-nrl,grant-nsf,grant-onr,grant,graphpaper,
+ gridslides,gsemthesis,guitartabs,gzt,gztarticle,h2020proposal,
+ hgbarticle,hgbreport,hgbthesis,harnon-cv,hausarbeit-jura,
+ hcart,hcletter,hcreport,hcslides,hecthese,hepthesis,hitec,
+ hithesis,hitreport,hitszthesis,hletter,hpsdiss,fsbispit,
+ huawei,hustthesis,icsv,IEEEconf,IEEEtran,ijmart,ijsra,
+ image-gallery,IMTEKda,inkpaper,invoice-class,iodhbwm,iscram,
+ isov2,isodoc,iwhdp,jacow,jlreq,jmlr,jmlrbook,jnuexam,jpsj2,
+ jura,jurabook,juraovw,juraurtl,kdgcoursetext,kdgmasterthesis,
+ kdpcover,kerntest,kluwer,knittingpattern,scrartcl,scrarticle,
+ scrbook,scrdoc,scrletter,scrlttr2,scrreport,scrreprt,komacv,
+ oblivoir-utf,oblivoir-xl,oblivoir,xoblivoir,ksp-thesis,l3doc,
+ labbook,leadsheet,leaflet,lebhart,lectures,letgut,lettre,limap,
+ limecv,lion-msc,lni,lps,lt3graph-packagedoc,ltxdockit,
+ ltxguidex,abstbook,beletter,flashcard,iagproc,cours,fiche,
+ matapli,matc3mem,mcmthesis,ltxmdf,medstarbeamer,meetingmins,
+ memoir,mensa-tex,mentis,metanorma,milog,minimart,minimbook,
+ mla,mluexercise,mnras,moderncv,modernposter,msu-thesis,
+ mucproc,mugsthesis,muling,musuos,muthesis,third-rep,mwart,
+ mwbk,mwrep,mycv,nature,ncc,nccproc,sibjnm,nddiss2e,
+ ndsu-thesis,newlfm,nih,nihbiosketch,njurepo,nlctdoc,nostarch,
+ nrc1,nrc2,artikel1,artikel2,artikel3,boek,boek3,brief,
+ rapport1,rapport3,nwejm,nwejmart,octavo,onrannual,
+ oup-authoring-template,journal,paper,papertex,pbsheet,pecha,
+ petiteannonce,philosophersimprint,pittetd,pkuthss,plari,play,
+ postcards,powerdot,FUpowerdot,ppr-prv,pracjourn,pressrelease,
+ proposal,reporting,dfgproposal,dfgreporting,euproposal,
+ eureporting,prosper,protocol,prtec,upmgr,wkmgr,pst-doc,
+ ptptex,qcm,quantumarticle,qyxf-book,ReadableCV,recipe,
+ RecipeBook,recipecard,refart,refrep,resphilosophica,revtex4-2,
+ revtex4,revtex4-1,rtklage,ryersonSGSThesis,ryethesis,sageep,
+ sapthesis,schuleab,schulein,schuleit,schulekl,schuleub,
+ schuleue,schullsg,schullzk,schulma-ab,schulma-gutachten,
+ schulma-klausur,schulma-komp,schulma-mdlprf,schulma-praes,
+ schwalbe,sciposter,screenplay,scrjrnl,sdapsclassic,sduthesis,
+ seminar,semproc,sesamanuel,seuthesix,sffms,cassete,etiketka,
+ shtthesis,caesar_book,sides,simplecv,simplivre,skbarticle,
+ skbbeamer,skbbook,skblncsbeamer,skblncsppt,skbmoderncv,skdoc,
+ skeyval-testclass,skrapport,smfart,smfbook,SPhdThesis,spie,
+ sr-vorl,sslides,stage,standalone,usthesis,hwexam,mikoslides,
+ omdoc,smglom,subfiles,suftesi,sugconf,tabriz-thesis,talk,
+ tcldoc,tclldoc,powersem,thesis-ekf,thesis-gwu,thuthesis,
+ tikz-kalender,tikzposter,tlc-article,TOPletter,toptesi,
+ tudabeamer,tudaexercise,tudaleaflet,tudaletter,tudaposter,
+ tudapub,tudasciposter,tudscrartcl,tudscrbook,tudscrdoc,
+ tudscrmanual,tudscrposter,tudscrreprt,tufte-book,tufte-handout,
+ ltugboat,ltugproc,tui,turabian,turabian-researchpaper,
+ turabian-thesis,my-thesis,ua-thesis,uafthesis,
+ uantwerpenbamathesis,uantwerpencoursetext,uantwerpenexam,
+ uantwerpenletter,uantwerpenphdthesis,uantwerpenreport,
+ ucalgmthesis,ucbthesis,ucdavisthesis,ucsmonograph,ucthesis,
+ udesoftec,uebungsblatt,uestcthesis,uhhassignment,uiucredborder,
+ uiucthesis,ulthese,legislation,umich-thesis,umthesis,
+ unam-thesis,unifith,unitn-bimrep,univie-ling-expose,
+ univie-ling-paper,univie-ling-thesis,univie-ling-wlg,
+ unizgklasa,uothesis,UoWthesis,upmethodology-document,URbeamer,
+ URletter,uspatent,ut-thesis,utexasthesis,uwmslide,uwthesis,
+ verifica,webquiz,willowtreebook,withargs-packagedoc,
+ wsemclassic,xduthesis,xebaposter,xmuthesis,xsim-manual,
+ yaletter,yathesis,ycbook,ydoc,york-thesis,
+ },%
+ % otherkeywords={},%
+ alsoletter={0123456789-},%
+ % alsodigit={},%
+ sensitive%
+ }[keywords,tex,comments]%
+ #+end_src