summaryrefslogtreecommitdiff
path: root/macros/luatex/latex/letgut/source/letgut.org
diff options
context:
space:
mode:
Diffstat (limited to 'macros/luatex/latex/letgut/source/letgut.org')
-rw-r--r--macros/luatex/latex/letgut/source/letgut.org1527
1 files changed, 1341 insertions, 186 deletions
diff --git a/macros/luatex/latex/letgut/source/letgut.org b/macros/luatex/latex/letgut/source/letgut.org
index dd76cbe8d7..fb91c08587 100644
--- a/macros/luatex/latex/letgut/source/letgut.org
+++ b/macros/luatex/latex/letgut/source/letgut.org
@@ -54,7 +54,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.4 2022-10-03}
+ \version{0.9.6 2023-01-14}
% -------------------------------------------------------------------------
% This field contains the name of the author(s).
% The value is optional.
@@ -131,15 +131,8 @@ new versions of the class on CTAN.
% The value is optional.
% The value is restricted to 8192 characters.
\begin{announcement}
- ## [0.9.4] - 2022-10-03
-
- ### Added
- - Command `\lettrenumber` that displays various Lettre numbers related to the one of the current issue.
- - Options of `\lettre` and `\lettregut` that add various Lettre numbers related to the one of the current issue.
- - Command `\Ucode` for points and names of Unicode characters.
-
- ### Changed
- - Documentation completed and improved.
+ ### Fixed
+ Hot fix for the attachment of the Lettre's source files to its PDF.
\end{announcement}
% -------------------------------------------------------------------------
% This field contains the one-liner for the package.
@@ -186,6 +179,7 @@ new versions of the class on CTAN.
% The value is optional.
% The value is restricted to 2048 characters.
\begin{note}
+ I am sorry for new this (corrective) update, so close to the previous one!
\end{note}
% -------------------------------------------------------------------------
% This field contains the archive file.
@@ -209,12 +203,41 @@ new versions of the class on CTAN.
## [Unreleased]
+ ## [0.9.6] - 2023-01-14
+
+ ### Fixed
+ Hot fix for the attachment to the Lettre's PDF of its source files.
+
+ ## [0.9.5] - 2023-01-13
+
+ ### Added
+ - Files (`.tex` source, images files, bibliographic files, etc.) used to typeset
+ an article possibly attached to the Lettre's PDF.
+ - Starred version of `\inputarticle` that prevents the previous feature.
+ - Boolean option that (un)forces the previous feature.
+ - Plural forms `\lettres` and `\lettresgut` of `\lettre` and `\lettregut`.
+ - Shortcuts for “(a|A)ssociation GUTenberg”.
+ - Starred versions of `\person` and `\author` that sort the lists of
+ persons/authors in alphabetic order.
+ - Environment for announcements.
+ - Environments and commands for rebus and their solutions.
+
+ ### Changed
+ - `⅛` replaced by `™` as a short equivalent of ~\lstinline~ (the former is
+ considered as math if ~unicode-math~ is loaded).
+ - Documentation updated.
+
+ ### Fixed
+ Several bugs and sub-optimalities.
+
## [0.9.4] - 2022-10-03
### Added
- - Command `\lettrenumber` that displays various Lettre numbers related to the one of the current issue.
- - Options of `\lettre` and `\lettregut` that add various Lettre numbers related to the one of the current issue.
- - Command `\Ucode` for points and names of Unicode characters.
+ - Command `\lettrenumber` that displays various Lettre numbers related to the
+ one of the current issue.
+ - Options of `\lettre` and `\lettregut` that add various Lettre numbers related
+ to the one of the current issue.
+ - Command `\Ucode` for points and names of Unicode characters.
### Changed
- Documentation improved.
@@ -222,7 +245,8 @@ new versions of the class on CTAN.
## [0.9.3] - 2022-09-02
### Changed
- - Local conf. file doesn't require anymore to start with \ExplSyntaxOff in some instances.
+ - Local conf. file doesn't require anymore to start with \ExplSyntaxOff in some
+ instances.
- Documentation improved.
## [0.9.2] - 2022-06-18
@@ -280,7 +304,7 @@ to the newsletter “La Lettre GUTenberg” of GUTenberg, the French TeX User Gr
Release
-------
-2022-10-03 v0.9.4
+2023-01-14 v0.9.6
Development
-----------
@@ -359,7 +383,7 @@ the corresponding `.tex` file (which doesn't derive from an Org Mode file).
% | v1.3c or later
% See:| http://www.latex-project.org/lppl.txt
%
-% Copyright (C) 1994-2022 by Association GUTenberg
+% Copyright (C) 1994-2023 by Association GUTenberg
% <secretariat@gutenberg.eu.org>
%
% This work may be distributed and/or modified under the
@@ -405,7 +429,11 @@ We define some constant token lists immediately useful.
#+begin_src latex
\ExplSyntaxOn
\tl_const:Nn \c__letgut_Lettre_tl { \emph{ Lettre } }
+ \tl_const:Nn \c__letgut_Lettres_tl {
+ \c__letgut_Lettre_tl \emph{ s }
+ }
\tl_const:Nn \c__letgut_gutenberg_tl { GUTenberg }
+ \tl_const:Nn \c__letgut_association_tl { association }
\tl_const:Nn \c__letgut_Lettre_gutenberg_tl {
\c__letgut_Lettre_tl~\c_space_tl \c__letgut_gutenberg_tl
}
@@ -422,8 +450,8 @@ Now, we can announce the class name and its version:
#+begin_src latex
\ProvidesExplClass{letgut}
- {2022-10-03}
- {0.9.4}
+ {2023-01-14}
+ {0.9.6}
{
Class for the newsletter “The GUTenberg Letter”
}
@@ -528,6 +556,18 @@ Some messages are declared for future use.
#+begin_src latex
\bool_new:N \g__letgut_draft_bool
#+end_src
+- For the included files to (not) be attached.
+ #+begin_src latex
+ \bool_new:N \g__letgut_included_files_attached_bool
+ #+end_src
+- For the acronym definitions file to (not) be attached.
+ #+begin_src latex
+ \bool_new:N \g__letgut_acronyms_file_attached_bool
+ #+end_src
+- For the listings language file to (not) be attached.
+ #+begin_src latex
+ \bool_new:N \g__letgut_lstlanguage_file_attached_bool
+ #+end_src
*** Dimensions
:PROPERTIES:
@@ -714,7 +754,6 @@ We close the ~\AddToHook{begindocument/before}~ argument.
}
#+end_src
-
*** Integers
:PROPERTIES:
:CUSTOM_ID: ImplementationDeclarationsIntegers-7pag55h0jlj0
@@ -830,13 +869,14 @@ We close the ~\AddToHook{begindocument/before}~ argument.
:END:
#+begin_src latex
- \tl_new:N \g__letgut_mark_tl
- \tl_new:N \g__letgut_title_tl
- \tl_new:N \l_letgut_last_name_tl
- \tl_new:N \l_letgut_first_name_tl
- \tl_new:N \l_letgut_title_tl
- \tl_new:N \l__letgut_title_addon_tl
- \tl_new:N \l__letgut_reference_text_tl
+ \tl_new:N \g__letgut_mark_tl
+ \tl_new:N \g__letgut_title_tl
+ \tl_new:N \l_letgut_last_name_tl
+ \tl_new:N \l_letgut_first_name_tl
+ \tl_new:N \l_letgut_title_tl
+ \tl_new:N \l__letgut_title_addon_tl
+ \tl_new:N \l__letgut_reference_text_tl
+ \tl_new:N \g__letgut_effective_acronyms_file_tl
#+end_src
*** Comma separated lists
@@ -859,6 +899,8 @@ We close the ~\AddToHook{begindocument/before}~ argument.
#+begin_src latex
\seq_new:N \l__letgut_first_last_names_items_seq
+ \seq_new:N \g__letgut_included_files_seq
+ \seq_new:N \g__letgut_added_bib_resources_seq
#+end_src
** Class options
@@ -1053,10 +1095,18 @@ We now load some packages.
#+begin_src latex
\RequirePackage{titlesec}
#+end_src
+- Driver-independent color extensions.
+ #+begin_src latex
+ \RequirePackage[table]{xcolor}
+ #+end_src
- Several logos and ornaments.
#+begin_src latex
\RequirePackage{fourier-orns}
#+end_src
+- Drawing of Vectorian ornaments.
+ #+begin_src latex
+\RequirePackage{pgfornament}
+ #+end_src
- Control float placement.
#+begin_src latex
\RequirePackage[section,above]{placeins}
@@ -1088,18 +1138,23 @@ We now load some packages.
#+begin_src latex
\RequirePackage{siunitx}
#+end_src
-- A collection of logos with bookmark support.
+- Additional TeX-family logos (which loads and extends \package{hologo} which is
+ collection of logos with bookmark support).
#+begin_src latex
- \RequirePackage{hologo}
- #+end_src
-- Driver-independent color extensions.
- #+begin_src latex
- \RequirePackage[table]{xcolor}
+ \RequirePackage{bxtexlogo}
#+end_src
- Coloured boxes, for LaTeX examples and theorems, etc.
#+begin_src latex
\RequirePackage{tcolorbox}
#+end_src
+- Compile \TeX{} code stand-alone or as part of a document.
+ #+begin_src latex
+ \RequirePackage[group=false,subpreambles,sort]{standalone}
+ #+end_src
+- Attach arbitrary files to a PDF document.
+ #+begin_src latex
+ \RequirePackage[icon=Paperclip]{attachfile2}
+ #+end_src
- Expandable macros to extract the data from references and allow counter
assignments or calculations.
#+begin_src latex
@@ -1146,6 +1201,10 @@ We now load some packages.
#+begin_src latex
\RequirePackage{acro}
#+end_src
+- Allow URL breaks at any alphanumerical character.
+ #+begin_src latex
+\RequirePackage{xurl}
+ #+end_src
The following packages have to be the last ones loaded. So we ensure this by
loading them just before the begining of the document:
@@ -1226,6 +1285,9 @@ We close the ~\AddToHook{begindocument/before}~ argument.
\RenewDocumentCommand {\printbibliography} { O{} } {
\phantomsection
\__letgut_old_printbibliography[#1]
+ \bool_if:NT \g__letgut_included_files_attached_bool {
+ \seq_map_inline:Nn \g__letgut_added_bib_resources_seq {\seq_gput_right:Nn \g__letgut_included_files_seq {#1}}
+ }
}
#+end_src
For printing the bibliography, we define two new bibheadings for the
@@ -1236,37 +1298,45 @@ We close the ~\AddToHook{begindocument/before}~ argument.
\defbibheading{subtitle}[\refname]{%
\subtitle{#1}}
#+end_src
-- The acronyms will be typset in footnote, with small caps shape. When they are
+- The acronyms will be typset in its short form, with small caps shape. When they are
(English) foreign, it will be specified and the translation will be added.
#+begin_src latex
\acsetup{
- first-style=footnote,
+ first-style=short,
format/short = {\scshape},
format/foreign = {\em},
foreign/display,
locale/format = {\upshape},
locale/display,
+ make-links = true,
+ link-only-first = true
}
#+end_src
- Moreover, we redefine the private macro ~\acro_footnote:n~ of the
- \package*{acro} in order to make the footnotes displaying the long forms of the
- acronyms ended by a period (like ordinary footnotes).
+
+ We currently have to work around an ~acro~ bug (see \url{https://tex.stackexchange.com/q/661966/18401}).
+
#+begin_src latex
- \cs_undefine:N \acro_footnote:n
- \cs_new_protected:Npn \acro_footnote:n #1
- {
- \tl_set:Ne \l__acro_tmpa_tl {
- \l__acro_fnpct_check_tl
- }
- \exp_last_unbraced:Nno
- \footnote {#1.}
- \l__acro_tmpa_tl
- }
+ \AddToHook{cmd/printacronyms/before}{\bool_set_false:N\l__acro_link_only_first_bool}
+ #+end_src
+
+ In case the long form of an acronym is explicited in footnote, we want this
+ footnot to be ended with a period.
+ #+begin_src latex
+ \ProvideDocumentCommand \acroendfootnote {} {.}
#+end_src
The following settings for packages that have to be the last ones loaded are
also done just before the begining of the document.
+- (Temporary?) workaround that moves `standalone` code in hook `begindocument`
+ to `begindocument/before` in order to get rid of the issue
+ \url{https://tex.stackexchange.com/q/670638/18401}.
+
+#+begin_src latex
+ \RemoveFromHook{begindocument}[standalone]
+ \ExpandArgs{nv}\AddToHook{begindocument/before}{l__hook_return_tl}
+#+end_src
+
#+begin_src latex
\AddToHook{begindocument/before}{
#+end_src
@@ -1287,16 +1357,17 @@ We close the ~\AddToHook{begindocument/before}~ argument.
secondly in the parent directory, thirdly in the TDS).
#+begin_src latex
\file_if_exist:nTF {./\c__letgut_acronyms_file_tl}{
- \file_input:n {./\c__letgut_acronyms_file_tl}
+ \tl_gset:Nn \g__letgut_effective_acronyms_file_tl {./\c__letgut_acronyms_file_tl}
}{
\file_if_exist:nTF {../\c__letgut_acronyms_file_tl}{
- \file_input:n {../\c__letgut_acronyms_file_tl}
+ \tl_gset:Nn \g__letgut_effective_acronyms_file_tl {../\c__letgut_acronyms_file_tl}
}{
\file_if_exist:nT {\c__letgut_acronyms_file_tl}{
- \file_input:n {\c__letgut_acronyms_file_tl}
+ \tl_gset:Nn \g__letgut_effective_acronyms_file_tl {\c__letgut_acronyms_file_tl}
}
}
}
+ \input {\g__letgut_effective_acronyms_file_tl}
#+end_src
- Depending on some chosen class options, some packages have to be loaded,
@@ -1425,9 +1496,8 @@ We now define the options of the class:
#+begin_src latex
\keys_define:nn { letgut }
{
- , for-readers .bool_gset:N = \g__letgut_for_readers_bool
+ , 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 }
@@ -1439,7 +1509,9 @@ We now define the options of the class:
\clist_set_eq:NN \g__letgut_pagecolor_clist
\c__letgut_default_pagecolor_paper_clist
}
- , screen .bool_gset_inverse:N = \g__letgut_paper_bool
+ , screen .code:n = {
+ \bool_gset_false: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}
@@ -1472,8 +1544,26 @@ We now define the options of the class:
, informations .initial:n = { true }
, detailedtoc .bool_gset:N = \g__letgut_detailedtoc_bool
, detailedtoc .initial:n = { false }
+ , reverse-files-attachement .code:n = {
+ \AddToHook{begindocument/before}{
+ \bool_lazy_and:nnTF {\g__letgut_for_readers_bool} {!\g__letgut_paper_bool}
+ {
+ \bool_gset_false:N \g__letgut_included_files_attached_bool
+ }{
+ \bool_gset_true:N \g__letgut_included_files_attached_bool
+ }
+ }
+ }
}
\ProcessKeysOptions { letgut }
+ \AddToHook{begindocument/before}{
+ \bool_lazy_and:nnTF {\g__letgut_for_readers_bool} {!\g__letgut_paper_bool}
+ {
+ \bool_gset_true:N \g__letgut_included_files_attached_bool
+ }{
+ \bool_gset_false:N \g__letgut_included_files_attached_bool
+ }
+ }
#+end_src
#+begin_src latex
@@ -1583,7 +1673,6 @@ We now define the headers.
We create a box to display alerts.
#+begin_src latex
- \tcbuselibrary{xparse}
\DeclareTCBox{\alertbox}{}{
nobeforeafter,
colback=red!5!white,
@@ -1647,6 +1736,137 @@ We now define the headers.
}
#+end_src
+** Announcements
+:PROPERTIES:
+:CUSTOM_ID: ImplementationAnnounces-nahckb909pj0
+:END:
+#+begin_src latex
+\DeclareTColorBox{announcement}{ O{black} m }
+{
+ colframe=#1,
+ coltitle=#1,
+ borderline~ west={1cm}{0pt}{#1},
+ IfBlankF={#2}{
+ title=\hypersetup{hidelinks}#2,
+ phantom={\phantomsection\addcontentsline{toc}{title}{#2}},
+ },
+ enhanced,
+ sharp~ corners,
+ boxrule=0mm,
+ leftrule=1cm,
+ bottomrule=1cm,
+ toptitle=20pt,
+ bottomtitle=20pt,
+ center~ title,
+ fonttitle=\scshape\bfseries\huge,
+ fontupper=\Large,
+ fontlower=\Large,
+ skin=empty,
+ segmentation~ style=solid,
+ halign=center,
+ overlay~ unbroken~ and~ first ={
+ \node[color=#1]~ at~ ([yshift=8pt]title.south)
+ {\pgfornament[width=0.4\linewidth]{88}};
+ \node[color=white,anchor=north~ west]~ at~ (frame.north~ west) {\huge\bfseries\aldineright{}};
+ },
+}
+#+end_src
+
+** Rebus
+ :PROPERTIES:
+ :CUSTOM_ID: ImplementationRebus-osw8m3f0cpj0
+ :END:
+
+#+begin_src latex
+ \NewDocumentCommand{\solution}{}{\tcblower}
+ \NewDocumentCommand{\displaysolutions}{}{%
+ \tcbstoprecording\tcbinputrecords%
+ }
+ \tcbset{%
+ rebus~ style/.style={%
+ enhanced,
+ boxrule=0pt,
+ frame~hidden,
+ fonttitle=\normalfont\large\bfseries,
+ before~ title={\lefthand\c_space_tl},
+ halign=center,
+ title~ addon/.store~ in=\l__letgut_title_addon_tl,
+ after~ title={
+ \tl_if_empty:NF {\l__letgut_title_addon_tl}{
+ \c_space_tl(\emph{\l__letgut_title_addon_tl})
+ }
+ },
+ float = bh,
+ colback = __letgut_background_terminal_stdout,
+ colbacktitle = __letgut_background_terminal_stdin,
+ coltitle = black
+ }
+ }
+ \tcbset{
+ no~ solution/.style={
+ no~ recording,
+ after~ upper=dans~ la~ prochaine~ \lettre{},
+ after~ upper~ pre={
+ \par\bigskip\hfill\scriptsize\itshape
+ Solution\c_space_tl
+ },
+ }
+ }
+ \NewTColorBox[auto~ counter]{rebus}{+!O{}}{%
+ rebus~ style,
+ fonttitle=\bfseries,
+ title={Rébus},
+ label={rebus@\thetcbcounter},
+ after~ upper={\vpageref[ci-dessous]{solution@\thetcbcounter}},
+ after~ upper~ pre={
+ \par\bigskip\hfill\scriptsize\itshape
+ Solution\c_space_tl
+ },
+ lowerbox=ignored,
+ savelowerto=rebus-\thetcbcounter.tex,
+ record={\string\rebussolution*[\thetcbcounter][][]},
+ #1
+ }
+ \NewDocumentCommand{\rebussolution}{s +o o O{}}{%
+ \IfValueTF{#2}{
+ \begin{tcolorbox}[
+ rebus~ style,
+ halign=justify,
+ before~ title={\lefthand{}~Solution~ du~ rébus\c_space_tl},
+ title={
+ \IfBooleanTF{#1}{
+ \vpageref[ci-dessus]{rebus@#2}
+ }{
+ de~la~\lettre{}\c_space_tl
+ \IfValueTF{#3}{
+ #3
+ }{
+ précédente
+ }
+ }
+ },
+ phantomlabel={
+ \IfBooleanT{#1}{
+ solution@#2
+ }
+ },
+ #4
+ ]
+ \IfBooleanTF{#1}{
+ \file_if_exist_input:n {rebus-#2.tex}
+ }{
+ #2
+ }
+ \end{tcolorbox}
+ }{
+ \IfValueF{#3}{
+ \tcbstoprecording
+ \tcbinputrecords
+ }
+ }
+ }
+#+end_src
+
** “Title” and marks
:PROPERTIES:
:CUSTOM_ID: ImplementationTitleandmarks-5ylg55h0jlj0
@@ -1728,7 +1948,7 @@ Lettre.
{
\begin{picture}(0,0)
\put(-2cm,-25.275cm){
- \includegraphics[scale=0.96]{
+ \includegraphics*[scale=0.96]{
\c__letgut_banner_file_tl.pdf
}
}
@@ -1904,15 +2124,13 @@ Here starts what is automatically added at the beginning of the document.
#+begin_src latex
\bool_if:NTF \g__letgut_editorial_bool {
\file_if_exist:nTF {./\c__letgut_editorial_file_tl}{
- \RenewDocumentCommand\author{ m } {
- \__letgut_author:n { #1 }
+ \RenewDocumentCommand\author{ s m } {
+ \__letgut_author:nn { #1 } {#2}
}
\pdfbookmark[1]{Éditorial}{
\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 }
+ \inputarticle{./\c__letgut_editorial_file_tl}
#+end_src
# < (Just not to disturb the parentheses balancing
@@ -1969,12 +2187,15 @@ Membership reminder.
:CUSTOM_ID: ImplementationLastpagehandling-jbng55h0jlj0
:END:
-The last page is special: it should automatically contain some informations about
-\gutenberg.
+The last pages are special: they should automatically contain
+# the list of the acronyms used in the \lettre, and
+some informations about \gutenberg.
#+begin_src latex
\AddToHook{enddocument}
{
+ % \clearpage
+ % \printacronyms[heading=title,display=used]
#+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
@@ -1985,17 +2206,17 @@ directory, thirdly in the TDS). Otherwise, a warning is displayed.
\clearpage
\phantomsection
\file_if_exist:nTF {./\c__letgut_informations_gutenberg_file_tl}{
- \__letgut_input_article:n {
+ \inputarticle*{
./\c__letgut_informations_gutenberg_file_tl
}
}{
\file_if_exist:nTF {../\c__letgut_informations_gutenberg_file_tl}{
- \__letgut_input_article:n {
+ \inputarticle*{
../\c__letgut_informations_gutenberg_file_tl
}
}{
\file_if_exist:nTF {\c__letgut_informations_gutenberg_file_tl}{
- \__letgut_input_article:n {
+ \inputarticle*{
\c__letgut_informations_gutenberg_file_tl
}
}{
@@ -2041,8 +2262,32 @@ the author(s) of the “Lettre”.
:CUSTOM_ID: ImplementationSectionssubsectionsetcFormat-tapg55h0jlj0
:END:
+When used in titles, ~\hologo~ needs to be protected. In order to not bother the
+user with this peticularity, we make this the default for it.
+
+ #+begin_src latex
+ % \AddToHook{cmd/hologo/before}{\protect}
+ \NewCommandCopy{\__letgut_old_hologo}{\hologo}
+ \RenewDocumentCommand {\hologo} { m }{
+ \protect\__letgut_old_hologo { #1 }
+ }
+ #+end_src
+
+We want the \package{hologo}'s ~\hologo~ command to have its mandatory argument
+not uppercased in the context of ~\text_uppercase:n~ (as in titles, cf. just
+below).
+
+ #+begin_src latex
+ \tl_put_right:Nn \l_text_case_exclude_arg_tl { \hologo }
+ % \tl_put_right:Nn \l_text_case_exclude_arg_tl { \ac }
+ % \tl_put_right:Nn \l_text_case_exclude_arg_tl { \acs }
+ % \tl_put_right:Nn \l_text_case_exclude_arg_tl { \acl }
+ % \tl_put_right:Nn \l_text_case_exclude_arg_tl { \acf }
+ #+end_src
+
- We create the new level ~\title~ for the titles of the articles. They are
displayed uppercased.
+
#+begin_src latex
\AddToHook{begindocument/before}{%
\titleclass{\title}{straight}[\part]
@@ -2050,10 +2295,9 @@ the author(s) of the “Lettre”.
\normalfont
\LARGE
\bfseries
- \text_uppercase:n
}{}{1em}{
- \aldineleft\c_space_tl
- }{}
+ \aldineleft\c_space_tl\text_uppercase:n
+ }
\etocsetlevel{title}{0}
\def\toclevel@title{0}%
\etocsetstyle {title}
@@ -2239,14 +2483,14 @@ We define the command that lets us specify the newsletter setup.
#+begin_src latex
\NewDocumentCommand {\francophony} { } {
\raisebox{-1.5pt}{
- \includegraphics[width=\f@size pt]{
+ \includegraphics*[width=\f@size pt]{
letgut-francophony-icon
}
}
}
#+end_src
-*** Persons and authors
+*** Persons, authors and list of participants
:PROPERTIES:
:CUSTOM_ID: ImplementationDocumentcommandsPersonsandauthors-h5sg55h0jlj0
:END:
@@ -2259,19 +2503,19 @@ For both persons and authors, the argument of:
a single one, separated by a semicolon.
#+begin_src latex
- \NewDocumentCommand {\person} { m } {
- \__letgut_process_list:n {#1}
+ \NewDocumentCommand {\person} { s m } {
+ \__letgut_process_list:nn {#1} {#2}
}
- \cs_new_protected:Npn \__letgut_author:n #1
+ \cs_new_protected:Npn \__letgut_author:nn #1 #2
{
\nopagebreak
\begin{flushright}
- \__letgut_process_list:n {#1}
+ \__letgut_process_list:nn {#1} {#2}
\end{flushright}
}
\AddToHook{begindocument/end}{%
- \RenewDocumentCommand\author{ m } {
- \__letgut_author:n { #1 }
+ \RenewDocumentCommand\author{ s m } {
+ \__letgut_author:nn { #1 } { #2 }
}
}
#+end_src
@@ -2320,10 +2564,18 @@ For both persons and authors, the argument of:
(#3)
}
\seq_new:N \l__letgut_items_seq
- \cs_new_protected:Npn \__letgut_process_list:n #1
+ \cs_new_protected:Npn \__letgut_process_list:nn #1 #2
{
\seq_clear:N \l__letgut_items_seq
- \seq_set_split:Nnn \l_tmpa_seq {~and~} {#1}
+ \seq_set_split:Nnn \l_tmpa_seq {~and~} {#2}
+ \IfBooleanT{#1}{
+ \seq_sort:Nn \l_tmpa_seq
+ {
+ \str_compare:nNnTF { ##1 } > { ##2 }
+ { \sort_return_swapped: }
+ { \sort_return_same: }
+ }
+ }
\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
@@ -2354,6 +2606,39 @@ For both persons and authors, the argument of:
}
#+end_src
+The list of contributors (possibly the masthead) will be the list of the persons
+who contributed to the current issue of the \lettre{}, with both a pre- and
+a post-text, the whole in a centered boxed minipage.
+
+ #+begin_src latex
+ \tl_const:Nn \c__letgut_preamble_list_of_contributors_tl {
+ De~ près,~ de~ loin,~ par~ leurs~ avis~ éclairés,~ par~ leurs~ remarques~
+ pertinentes~ ou~ par~ leurs~ articles,~ ont~ contribué~ à~ cette~
+ \lettre{}~ :~ %
+ }
+ \tl_const:Nn \c__letgut_postamble_list_of_contributors_tl {
+ \c_space_tl (et~ nous~ espérons~ n'avoir~ oublié~ personne).
+ }
+ \cs_new_protected:Nn \__letgut_list_of_contributors:nnn
+ {
+ \par
+ \fbox{
+ \begin{minipage}[t]{\linewidth-2\fboxsep-2\fboxrule}
+ #1
+ \person*{#3}
+ #2
+ \end{minipage}
+ }
+ }
+ \NewDocumentCommand {\listofcontributors} {
+ O{\c__letgut_preamble_list_of_contributors_tl}
+ O{\c__letgut_postamble_list_of_contributors_tl}
+ m
+ } {
+ \__letgut_list_of_contributors:nnn {#1} {#2} {#3}
+ }
+ #+end_src
+
*** Horizontal rule
:PROPERTIES:
:CUSTOM_ID: ImplementationDocumentcommandsHorizontalrule-8vsg55h0jlj0
@@ -2429,11 +2714,19 @@ https://github.com/latex3/hyperref/issues/188#issuecomment-826302843.
}
\cs_new_protected:Nn \__letgut_software:nn
{
+ #+end_src
+
+We split the software's name at spaces in order to apply the dedicated
+font switch (~\ttfamily~) to all of it except to the spaces.
+
+ #+begin_src latex
+ \seq_set_split:Nnn \l_tmpa_seq { ~ } { #2 }
+ \seq_set_map:NNn \l_tmpb_seq \l_tmpa_seq {{\l__letgut_softwares_font_switch_tl ##1}}
\tl_if_empty:nTF {#1}
{
- {\l__letgut_softwares_font_switch_tl #2}
+ \seq_use:Nn \l_tmpb_seq { ~ }
}{
- \href{#1}{{\l__letgut_softwares_font_switch_tl #2}}
+ \href{#1}{ \seq_use:Nn \l_tmpb_seq { ~ } }
}
}
\cs_new_protected:Nn \__letgut_file:n
@@ -2480,63 +2773,69 @@ frequently used. The more the users will resort to these commands, the less
will be inconsistently typesetted these names and expressions.
#+begin_src latex
- \NewExpandableDocumentCommand { \gutenberg } { } {
- \c__letgut_gutenberg_tl
- }
- \NewExpandableDocumentCommand { \gut } { } {
- \c__letgut_gutenberg_tl
- }
- % \NewExpandableDocumentCommand { \lettre } { } {
- % \c__letgut_Lettre_tl
- % }
- % \NewExpandableDocumentCommand { \lettregut } { } {
- % \lettre \c_space_tl \gutenberg
- % }
- \NewExpandableDocumentCommand { \Cahier } { } {
- \c__letgut_cahier_tl
- }
- \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}
- }
- \NewExpandableDocumentCommand { \letgutcls } { } {
- \class*{letgut}
- }
- \NewExpandableDocumentCommand { \tugboat } { } {
- \c__letgut_tugboat_tl
- }
- \NewExpandableDocumentCommand { \knuth } { } {
- \person{Knuth,~ Donald~ E.}
- }
- \NewExpandableDocumentCommand { \lamport } { } {
- \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
- }
+ \NewExpandableDocumentCommand { \gutenberg } { } {
+ \c__letgut_gutenberg_tl
+ }
+ \NewExpandableDocumentCommand { \gut } { } {
+ \c__letgut_gutenberg_tl
+ }
+ \NewExpandableDocumentCommand { \assogut } { } {
+ \c__letgut_association_tl \c_space_tl \c__letgut_gutenberg_tl
+ }
+ \NewExpandableDocumentCommand { \Assogut } { } {
+ \text_titlecase_first:n {\assogut}
+ }
+ \NewExpandableDocumentCommand { \lettres } { } {
+ \c__letgut_Lettres_tl
+ }
+ \NewExpandableDocumentCommand { \lettresgut } { } {
+ \c__letgut_Lettres_tl \c_space_tl \c__letgut_gutenberg_tl
+ }
+ \NewExpandableDocumentCommand { \Cahier } { } {
+ \c__letgut_cahier_tl
+ }
+ \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}
+ }
+ \NewExpandableDocumentCommand { \letgutcls } { } {
+ \class*{letgut}
+ }
+ \NewExpandableDocumentCommand { \tugboat } { } {
+ \c__letgut_tugboat_tl
+ }
+ \NewExpandableDocumentCommand { \knuth } { } {
+ \person{Knuth,~ Donald~ E.}
+ }
+ \NewExpandableDocumentCommand { \lamport } { } {
+ \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
We define the command ~\lettrenumber~ that displays the number of
@@ -2600,7 +2899,7 @@ resp. “\lettre” and “\lettregut”:
\tl_if_empty:nF {#1}
{
#3
- \c_space_tl
+ \nobreakspace
\__letgut_get_lettre_number:n {#1}
}
}
@@ -3063,6 +3362,9 @@ extensions of the ~graphicx~ package.
\par
}{
\exp_args:NV \author{\g__letgut_bookreview_reviewer_tl}
+ \bool_if:NT \g__letgut_included_files_attached_bool {
+ \seq_map_inline:Nn \g__letgut_added_bib_resources_seq {\seq_gput_right:Nn \g__letgut_included_files_seq {##1}}
+ }
}
#+end_src
@@ -3126,7 +3428,7 @@ for usual characters on French keyboards.
- We specify the possible hyphenations of \enquote{\gutenberg}.
#+begin_src latex
- \hyphenation{GUT-enberg}
+ \hyphenation{GUTen-berg}
#+end_src
*** ISSN
@@ -3192,6 +3494,215 @@ watermarks.
}
#+end_src
+*** Input of articles
+:PROPERTIES:
+:CUSTOM_ID: ImplementationMiscellanousInputofarticles-aqok3ja00pj0
+:END:
+
+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).
+- The source file of the article is attached to the \pdf{} (if desired,
+ otherwise, use the starred version).
+
+#+begin_src latex
+ \cs_new_protected:Npn \__letgut_input_article:nn #1 #2
+ {
+ \lstset{ style=__letgut_reset_listings_styles }
+ \acresetall%
+ \input{#2}%
+ \bool_if:NT \g__letgut_included_files_attached_bool {
+ \IfBooleanF {#1}{
+ \seq_gput_left:Nn \g__letgut_included_files_seq {
+ \attachfile[
+ description={Source~ du~ présent~ article~ (fichier~ `#2.tex`)},
+ mimetype=application/x-tex]%
+ {#2.tex}%
+ }
+ \bool_if:NT \g__letgut_acronyms_file_attached_bool {
+ \seq_gput_right:No \g__letgut_included_files_seq {
+ \c__letgut_acronyms_file_attached_tl
+ }
+ }
+ \bool_if:NT \g__letgut_lstlanguage_file_attached_bool {
+ \seq_gput_right:No \g__letgut_included_files_seq {
+ \c__letgut_lstlanguage_file_attached_tl
+ }
+ }
+ \seq_remove_duplicates:N \g__letgut_included_files_seq
+ \marginpar{\seq_use:Nn \g__letgut_included_files_seq { } }
+ \seq_clear:N \g__letgut_included_files_seq
+ \bool_gset_false:N \g__letgut_acronyms_file_attached_bool
+ \bool_gset_false:N \g__letgut_lstlanguage_file_attached_bool
+ }
+ }
+ }
+ \NewDocumentCommand{\inputarticle}{ s m }{
+ \__letgut_input_article:nn { #1 } { #2 }
+ }
+#+end_src
+
+*** Included graphics attached to the \pdf
+:PROPERTIES:
+:CUSTOM_ID: ImplementationMiscellanousIncludedgraphicsattachedtothe\pdf-xoc34ja00pj0
+:END:
+
+We hack the ~\includegraphics~ command in order to attach the included graphics
+to the \pdf{} (if desired, otherwise, use the starred version).
+
+#+begin_src latex
+ \NewCommandCopy {\__letgut_orig_includegraphics} {\includegraphics}
+ \clist_set:Nx \l_tmpa_clist {\Gin@extensions}
+ \cs_new_protected:Npn \__letgut_includegraphics:nnn #1 #2 #3
+ {
+ \file_if_exist:nTF {#3} {
+ \bool_if:NT \g__letgut_included_files_attached_bool {
+ \IfBooleanF {#1}{
+ \seq_gput_left:Nn \g__letgut_included_files_seq {
+ \attachfile[
+ description={
+ Fichier~ image~ inclus~ dans~ le~
+ présent~ article~ (fichier~ `#3`)
+ },
+ mimetype=image
+ ]
+ {#3}
+ }
+ }
+ }
+ \__letgut_orig_includegraphics[#2]{#3}
+ }{
+ \bool_gset_false:N \g_tmpa_bool
+ \clist_map_inline:Nn \l_tmpa_clist {%
+ \file_if_exist:nTF {#3##1} {
+ \clist_map_break:n {
+ \bool_if:NT \g__letgut_included_files_attached_bool {
+ \IfBooleanF {#1}{
+ \seq_gput_left:Nn \g__letgut_included_files_seq {
+ \attachfile[
+ description={Fichier~ image~ inclus~ dans~ le~ présent~ article~ (fichier~ `#3##1`)},
+ mimetype=image/##1
+ ]
+ {#3##1}
+ }
+ }
+ }
+ \__letgut_orig_includegraphics[#2]{#3}
+ \bool_gset_true:N \g_tmpa_bool
+ }
+ }
+ }
+ \bool_if:NF \g_tmpa_bool {
+ \@latex@error{File~ `#3'~ not~ found}%
+ {I~ could~ not~ locate~ the~ file~ with~ any~ of~ these~ extensions:^^J%
+ \clist_use:Nn \l_tmpa_clist { ~ }^^J\@ehc}%
+ }
+ }
+ }
+ \RenewDocumentCommand {\includegraphics} {s O{} m } {
+ \__letgut_includegraphics:nnn {#1} {#2} {#3}
+ }
+#+end_src
+
+*** Added bibliographic ressources attached to the \pdf
+:PROPERTIES:
+:CUSTOM_ID: ImplementationMiscellanousAddedbibliographicressourcesattachedtothe\pdf-l4e34ja00pj0
+:END:
+
+We hack the ~\addbibresource~ command in order to attach the bibliographic
+ressources to the \pdf{} (if desired, otherwise, use the starred version).
+
+#+begin_src latex
+ \NewCommandCopy {\__letgut_orig_addbibresource} {\addbibresource}
+ \cs_new_protected:Npn \__letgut_addbibresource:nnn #1 #2 #3
+ {
+ \file_if_exist:nT {#3} {
+ \IfBooleanF {#1}{
+ \seq_gput_left:Nn \g__letgut_added_bib_resources_seq {
+ \attachfile[
+ description={
+ Source~ du~ fichier~ bibliographique~ utilisé~
+ dans~ le~ présent~ article~ (fichier~ `#3`)
+ },
+ mimetype=application/x-bibtex
+ ]%
+ {#3}%
+ }
+ }
+ }
+ \__letgut_orig_addbibresource[#2]{#3}
+ }
+ \RenewDocumentCommand {\addbibresource} { s O{} m } {
+ \__letgut_addbibresource:nnn {#1} {#2} {#3}
+ }
+#+end_src
+
+*** Added acronym definitions file attached to the \pdf
+:PROPERTIES:
+:CUSTOM_ID: ImplementationMiscellanousAddedbibliographicressourcesattachedtothe\pdf-l4e34ja00pj0
+:END:
+
+We hack the ~\ac~ and ~\acs~ commands in order to attach the acronym definitions
+file to the \pdf{}.
+
+#+begin_src latex
+ \bool_if:NT \g__letgut_included_files_attached_bool {
+ \tl_const:Nn \c__letgut_acronyms_file_attached_tl {
+ \attachfile[
+ description={
+ Source~ du~ fichier~ d'acronymes~ utilisé~ dans~
+ le~ présent~ article~
+ (fichier~ `\c__letgut_acronyms_file_tl.tex`)
+ },
+ mimetype=application/x-tex]%
+ {\g__letgut_effective_acronyms_file_tl}%
+ }
+ \AddToHook{cmd/ac/before}{
+ \bool_gset_true:N \g__letgut_acronyms_file_attached_bool
+ }
+ \AddToHook{cmd/acs/before}{
+ \bool_gset_true:N \g__letgut_acronyms_file_attached_bool
+ }
+ }
+#+end_src
+
+*** Added letgut listings language file attached to the \pdf
+:PROPERTIES:
+:CUSTOM_ID: ImplementationMiscellanousAddedbibliographicressourcesattachedtothe\pdf-l4e34ja00pj0
+:END:
+
+We hack the ~\ac~ and ~\acs~ commands in order to attach the acronym definitions
+file to the \pdf{}.
+
+#+begin_src latex
+ \bool_if:NT \g__letgut_included_files_attached_bool {
+ \tl_const:Nn \c__letgut_lstlanguage_file_attached_tl {
+ \attachfile[
+ description={
+ Source~ du~ fichier~ de~ langages~ informatiques~ utilisé~
+ dans~ le~ présent~ article~
+ (fichier~ `\c__letgut_lstlanguage_file_tl`)
+ },
+ mimetype=application/x-tex]%
+ {../\c__letgut_lstlanguage_file_tl}%
+ }
+ \AddToHook{env/ltx-code/before}{
+ \bool_gset_true:N \g__letgut_lstlanguage_file_attached_bool
+ }
+ \AddToHook{env/ltx-code-result/before}{
+ \bool_gset_true:N \g__letgut_lstlanguage_file_attached_bool
+ }
+ \AddToHook{env/ltx-code-external-result/before}{
+ \bool_gset_true:N \g__letgut_lstlanguage_file_attached_bool
+ }
+ }
+#+end_src
+
** Listings
:PROPERTIES:
:CUSTOM_ID: ImplementationListings-514h55h0jlj0
@@ -3244,10 +3755,10 @@ same for the above skip.
#+end_src
We define as short equivalent of ~\lstinline~ the character
-\lstDeleteShortInline⅛\texttt{⅛} which is unlikely to be used in ordinary text.
+\lstDeleteShortInline™\texttt{™} which is unlikely to be used in ordinary text.
#+begin_src latex
-\lstMakeShortInline[breaklines=false]⅛
+\lstMakeShortInline[breaklines=false]™
#+end_src
We start with an empty listings style.
@@ -3256,27 +3767,6 @@ We start with an empty listings style.
\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
:PROPERTIES:
:CUSTOM_ID: ImplementationListingsLaTeXlistingsandexamples-xt4h55h0jlj0
@@ -3303,13 +3793,13 @@ in the current directory, secondly in the parent directory, thirdly in the TDS.
#+begin_src latex
\def\lstlanguagefiles{
- lstlang0.sty,
+ % lstlang0.sty,
lstlang1.sty,
lstlang2.sty,
lstlang3.sty,
./\c__letgut_lstlanguage_file_tl,
../\c__letgut_lstlanguage_file_tl,
- \c__letgut_lstlanguage_file_tl
+ \c__letgut_lstlanguage_file_tl,
}
#+end_src
@@ -3323,7 +3813,7 @@ We define a listing style specific to LaTeX listings.
alsolanguage=[plain]TeX,%
alsolanguage=[common]TeX,%
alsolanguage=[primitive]TeX,%
- alsolanguage=[extLaTeX]TeX,%
+ alsolanguage=[extendedLaTeX]TeX,%
alsolanguage=[classes]TeX,%
texcsstyle=*\color{__letgut_texcs},
commentstyle=\color{__letgut_comment}\itshape,
@@ -3341,7 +3831,7 @@ 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
+all the environments in our own language driver file (in the ~extendedLaTeX~ dialect
that we load by default).
#+begin_src latex
@@ -3375,7 +3865,7 @@ 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,hooks}
+ \tcbuselibrary{listings,breakable,skins,hooks,documentation}
#+end_src
We want some common settings for all the ~tcolorbox~es.
@@ -3964,6 +4454,7 @@ https://tex.stackexchange.com/a/25396).
^^f0^^f1^^f2^^f3^^f4^^f5^^f6^^f7^^f8^^f9^^fa^^fb^^fc^^fd^^fe^^ff%
^^^^201c^^^^201d% for “ and ”
^^^^215b% for ⅛
+ ^^^^2122% for ™
^^00%
}
\lst@RestoreCatcodes
@@ -3987,7 +4478,7 @@ at its beginning.
\file_if_exist:nT {./\c__letgut_local_config_file_tl}{
\@pushfilename
\xdef\@currname{\c__letgut_local_config_file_tl}
- \file_input:n {./\c__letgut_local_config_file_tl}
+ \input {./\c__letgut_local_config_file_tl}
\@popfilename
}
#+end_src
@@ -4014,7 +4505,7 @@ several purposes:
- the books advertisements.
#+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut.lbx :exports both
-\ProvidesFile{letgut.lbx}[2022-10-03 v0.9.4 letgut localization]
+\ProvidesFile{letgut.lbx}[2023-01-14 v0.9.6 letgut localization]
\InheritBibliographyExtras{french}
\DeclareBibliographyStrings{
inherit = {french},
@@ -4028,7 +4519,7 @@ several purposes:
create the corresponding new entry).
#+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut.dbx :exports both
- \ProvidesFile{letgut.dbx}[2022-10-03 v0.9.4 letgut data model macros]
+ \ProvidesFile{letgut.dbx}[2023-01-14 v0.9.6 letgut data model macros]
\DeclareBibliographyDriver{bookreview}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
@@ -4083,7 +4574,7 @@ several purposes:
We provide a specific ~biblatex~ citation style .
#+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut.cbx :exports both
- \ProvidesFile{letgut.cbx}[2022-10-03 v0.9.4 letgut base citation style]
+ \ProvidesFile{letgut.cbx}[2023-01-14 v0.9.6 letgut base citation style]
\RequireCitationStyle{numeric}
#+end_src
@@ -4193,6 +4684,14 @@ well...
% % permet l'option `detailedtoc`.
%
% , detailedtoc
+ %
+ % % Les fichiers sources sont attachés au PDF si et seulement si la Lettre est
+ % % à la fois en version pour les lecteurs (option `for-readers' activée par
+ % % défaut) et en sortie écran (option `screen' activée par défaut). L'option
+ % % `reverse-files-attachement' inverse ce comportement par défaut.
+ %
+ % , reverse-files-attachement
+ %
}
\setmainfont{TeX Gyre Schola} % Par exemple
@@ -4248,7 +4747,7 @@ well...
\hspace*{-1.5cm}%
\raisebox{-\height+0.7\baselineskip}{%
\begin{minipage}[t]{.6\textwidth}%\vspace{0pt}%
- \includegraphics[width=\linewidth]{logo-gut.pdf}
+ \includegraphics*[width=\linewidth]{logo-gut.pdf}
\end{minipage}%
}%
\hfill%
@@ -4701,7 +5200,7 @@ well...
:END:
#+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut-lstlang.sty :exports both
- % \lst@definelanguage[...]{TeX}{%
+ % \lst@definelanguage[...]{TeX}{%
% % Control sequences names
% moretexcs={%
% },%
@@ -4733,7 +5232,659 @@ well...
% % alsodigit={},%
% % alsoother={},%
% sensitive,%
- % }[keywords,tex,comments%]
+ % }[keywords,tex,comments]
+
+ \lst@definelanguage[Scrabble]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ PlateauScrabble,ScrabblePlaceMot,%
+ ScrabbleBoard,ScrabblePutWord,%
+ },%
+ % 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]{%
+ EnvScrabble,%
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ FR,EN,DE,ES,GR,SP,%
+ Echelle,Echellelabels,Cadre,Labels,Aide,%
+ Scale,ScaleLabels,Border,Help,%
+ },%
+ % 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]{%
+ Scrabble%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]
+
+ \lst@definelanguage[FiraSans]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ sufigures,firaoldstyle,firalining,firatabular,firaproportional,
+ firathin,firalight,firaextralight,firaultralight,firamedium,firabook,
+ firasemibold,firaextrabold,firaheavy,%
+ }%
+ % 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,scaled,scale,type1,lining,lf,oldstyle,osf,tabular,t,proportional,%
+ p,book,medium,mb,semibold,sb,light,l,extralight,ultralight,thin,%
+ extrabold,heavy,default,%
+ },%
+ % 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]{%
+ FiraSans%
+ },%
+ % otherkeywords={},
+ alsoletter={1},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]
+
+ \lst@definelanguage[luagcd]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ luagcdwithsteps,%
+ },%
+ % 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]{%
+ luagcd%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]
+
+ \lst@definelanguage[maze]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ maze,%
+ },%
+ % 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]{%
+ maze%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]
+
+ \lst@definelanguage[animate]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ multiframe,%
+ },%
+ % 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]{%
+ animateinline,
+ },%
+ % Keywords of class 3 : mandatory arguments (not environments) &
+ % optional arguments which are keys (in key=value)
+ morekeywords=[3]{%
+ poster,controls,palindrome,bb,rx,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ first,%
+ },%
+ % 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]{%
+ animate%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]
+
+ \lst@definelanguage[tikz-mirror-lens]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ lensSphGaussFixed,%
+ },%
+ % 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-mirror-lens%
+ },%
+ % otherkeywords={},
+ alsoletter={-},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]
+
+ \lst@definelanguage[jeuxcartes]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ MainCartesJeu,%
+ },%
+ % 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]{%
+ Eventail,10C,10K,AC,AT,AP,%
+ },%
+ % 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]{%
+ jeuxcartes%
+ },%
+ % otherkeywords={},
+ alsoletter={0123456789},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]
+
+ \lst@definelanguage[plex-otf]{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]{%
+ RM
+ },%
+ % 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]{%
+ plex-otf%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]
+
+ \lst@definelanguage[mathtools]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ mathclap,DeclarePairedDelimiter,%
+ },%
+ % 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[tikz-ext]{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]{%
+ distancebetween,%
+ },%
+ % 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-ext%
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]
+
+ \lst@definelanguage[tikzfill]{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]{%
+ pattern,hexagon,cycle,color,
+ },%
+ % 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]{%
+ tikzfill
+ },%
+ % otherkeywords={},
+ % alsoletter={},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]
+
+ \lst@definelanguage[unicodemath]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ symscr,symbb,symfrak,symsfup,symsfit,symtt,setmathfont,%
+ },%
+ % 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]{%
+ range,mathrm,%
+ },%
+ % Keywords of class 4 : values of keys (in key=value)
+ morekeywords=[4]{%
+ up,it,bb,bbit,scr,cal,bfcal,frak,tt,sfup ,sfit,bfup,bfit,bfscr,bffrak,%
+ bfsfup,bfsfit,sym,%
+ },%
+ % 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]{%
+ unicode-math
+ },%
+ % otherkeywords={},
+ alsoletter={-},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]
+
+ \lst@definelanguage[xcharter-otf]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ Bbbone,Bbbk,%
+ },%
+ % 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]{%
+ range
+ },%
+ % 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]{%
+ xcharter-otf
+ },%
+ % otherkeywords={},
+ alsoletter={-},
+ % alsodigit={},%
+ % alsoother={},%
+ sensitive,%
+ }[keywords,tex,comments]
+
+ \lst@definelanguage[braille]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ braille
+ },%
+ % 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[swungdash]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ swungdash
+ },%
+ % 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[simples-matrices]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ matrice
+ },%
+ % 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]{%
+ b,%
+ },%
+ % 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[customdice]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ dice
+ },%
+ % 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]{%
+ violet,yellow
+ },%
+ % 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[pingu]{TeX}{%
+ % Control sequences names
+ moretexcs={%
+ pingu
+ },%
+ % 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]{%
+ left,wing,wave,right,grab,eyes,shiny,cup,%
+ },%
+ % 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
@@ -4742,7 +5893,8 @@ well...
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,lettrenumber,%
+ separator,alertbox,terminal,inputarticle,lettrenumber,solution,%
+ rebussolution,%
},%
% Keywords of class 1 : keywords that contain other characters (since
% of the same class as the ones specified as 'otherkeywords')
@@ -4751,7 +5903,7 @@ well...
% Keywords of class 2 : environments names
morekeywords=[2]{%
ctannews,ltx-code,ltx-code-result,ltx-code-external-result,%
- bookreview,%
+ bookreview,announcement,rebus,%
},%
% Keywords of class 3 : mandatory arguments (not environments) &
% optional arguments which are keys (in key=value)
@@ -4759,7 +5911,7 @@ well...
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,%
+ frontcover,price,result,and,no,solution,%
},%
% Keywords of class 4 : values of keys (in key=value)
morekeywords=[4]{%
@@ -4784,7 +5936,7 @@ well...
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% LaTeX texcs and keywords that are missing in `listings` driver file
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \lst@definelanguage[extLaTeX]{TeX}{%
+ \lst@definelanguage[extendedLaTeX]{TeX}{%
% Control sequences names
moretexcs={%
Huge,LARGE,Large,LoadClass,NewCommandCopy,RequirePackage,%
@@ -5343,7 +6495,7 @@ well...
% 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,%
+ nn,nT,nnn,nnF,nnV,nTF,nnnn,nNnF,nNnT,nnVV,o,p,v,w,x,nnTF,%
},%
% Keywords of class 6 : current package name (and possibly derived
% packages)
@@ -6006,7 +7158,8 @@ well...
\lst@definelanguage[tikz]{TeX}{%
% Control sequences names
moretexcs={%
- usetikzlibrary,draw,node,matrix,fill,foreach,tikz,%
+ usetikzlibrary,draw,node,matrix,fill,foreach,tikz,pgfmathsetmacro,%
+ path,%
},%
% Keywords of class 1 : keywords that contain other characters (since
% of the same class as the ones specified as 'otherkeywords')
@@ -6020,12 +7173,13 @@ well...
% 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,--,-|,|-,%
+ fit,circle,anchor,in,count,x,y,matrix,of,math,nodes,above right,%
+ at,--,-|,|-,thick,size,angle,circle,through,intersection,of,%
+ draw,coordinate,shift,and,cycle,cs:A,node,barycentric,%
},%
% Keywords of class 4 : values of keys (in key=value)
morekeywords=[4]{%
- multiply,lightgray,base,%
+ multiply,lightgray,base,red%
},%
% Keywords of class 5 : arguments specifications (after ":" in expl3
% syntax)
@@ -6037,7 +7191,7 @@ well...
tikz,%
},%
% otherkeywords={},%
- alsoletter={-| \ },%
+ alsoletter={-| \ :},%
% alsodigit={},%
% alsoother={},%
sensitive,%
@@ -6197,6 +7351,7 @@ well...
% optional arguments which are keys (in key=value)
morekeywords=[3]{%
log-declarations,%
+ m,r,R,v,b,o,d,O,D,s,t,e,E,%
},%
% Keywords of class 4 : values of keys (in key=value)
morekeywords=[4]{%
@@ -6672,7 +7827,7 @@ well...
morekeywords=[3]{%
Alternate,Annotation,AutoFakeBold,AutoFakeSlant,BoldFeatures,%
BoldFont,BoldItalicFeatures,BoldItalicFont,BoldSlantedFeatures,%
- BoldSlantedFont,BoldSwashFeatures,BoldSwashFont,CJKShape,%
+ BoldSlantedFont,BoldSwashFeatures,BoldSwashFont,CJKShape,ItalicFeatures,%
CharacterVariant,CharacterWidth,Color,Colour,Contextuals,%
Diacritics,Extension,FakeBold,FakeSlant,FakeStretch,Font,FontFace,%
Fractions,HyphenChar,IgnoreFontspecFileItalicFeatures,ItalicFont,%
@@ -6701,7 +7856,7 @@ well...
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%
+ ss04,-liga,frac,titl,swsh,hist,hlig,MatchUppercase,MatchLowercase,%
},%
% Keywords of class 5 : arguments specifications (after ":" in expl3
% syntax)