summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-01-14 20:48:59 +0000
committerKarl Berry <karl@freefriends.org>2023-01-14 20:48:59 +0000
commit38a85335a98b9ebd1d72dc8423ac1a4aa9061000 (patch)
tree2939017d50427231584d40cf24af728bff385a4e
parentfe0a6d1db1e8e9f87f4fc6d52bdd1b27f4f3c6d0 (diff)
letgut (14jan23)
git-svn-id: svn://tug.org/texlive/trunk@65536 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md32
-rw-r--r--Master/texmf-dist/doc/lualatex/letgut/README.md2
-rw-r--r--Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.pdfbin154201 -> 152978 bytes
-rw-r--r--Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.tex2
-rw-r--r--Master/texmf-dist/doc/lualatex/letgut/letgut-code.pdfbin702257 -> 784366 bytes
-rw-r--r--Master/texmf-dist/doc/lualatex/letgut/letgut-code.tex1429
-rw-r--r--Master/texmf-dist/doc/lualatex/letgut/letgut.pdfbin379438 -> 391113 bytes
-rw-r--r--Master/texmf-dist/doc/lualatex/letgut/letgut.records1
-rw-r--r--Master/texmf-dist/doc/lualatex/letgut/letgut.tex358
-rw-r--r--Master/texmf-dist/doc/lualatex/letgut/rebus-2.tex1
-rw-r--r--Master/texmf-dist/source/lualatex/letgut/letgut.org1516
-rw-r--r--Master/texmf-dist/tex/lualatex/letgut/informations-gut.tex2
-rw-r--r--Master/texmf-dist/tex/lualatex/letgut/letgut-lstlang.sty682
-rw-r--r--Master/texmf-dist/tex/lualatex/letgut/letgut.cbx2
-rw-r--r--Master/texmf-dist/tex/lualatex/letgut/letgut.cls567
-rw-r--r--Master/texmf-dist/tex/lualatex/letgut/letgut.dbx2
-rw-r--r--Master/texmf-dist/tex/lualatex/letgut/letgut.lbx2
17 files changed, 4032 insertions, 566 deletions
diff --git a/Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md b/Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md
index 199e34455b4..54a69778da2 100644
--- a/Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md
+++ b/Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md
@@ -7,12 +7,35 @@ Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
+## [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`.
+- 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.
@@ -20,7 +43,8 @@ Versioning](https://semver.org/spec/v2.0.0.html).
## [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
diff --git a/Master/texmf-dist/doc/lualatex/letgut/README.md b/Master/texmf-dist/doc/lualatex/letgut/README.md
index e38b789e5e2..3dfeea53e4f 100644
--- a/Master/texmf-dist/doc/lualatex/letgut/README.md
+++ b/Master/texmf-dist/doc/lualatex/letgut/README.md
@@ -8,7 +8,7 @@ to the newsletter “La Lettre GUTenberg” of GUTenberg, the French TeX User Gr
Release
-------
-2022-10-03 v0.9.4
+2023-01-13 v0.9.5
Development
-----------
diff --git a/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.pdf b/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.pdf
index b232420d44a..b1e257cba57 100644
--- a/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.pdf
+++ b/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.tex b/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.tex
index 7f9347fdcf7..fc62cee6f18 100644
--- a/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.tex
+++ b/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.tex
@@ -1,4 +1,4 @@
-% Created 2022-10-03 lun. 22:57
+% Created 2023-01-13 ven. 22:57
% Intended LaTeX compiler: lualatex
\documentclass{letgut}
\setmainfont{KpRoman}
diff --git a/Master/texmf-dist/doc/lualatex/letgut/letgut-code.pdf b/Master/texmf-dist/doc/lualatex/letgut/letgut-code.pdf
index 1e8e46f2410..996190401b2 100644
--- a/Master/texmf-dist/doc/lualatex/letgut/letgut-code.pdf
+++ b/Master/texmf-dist/doc/lualatex/letgut/letgut-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/lualatex/letgut/letgut-code.tex b/Master/texmf-dist/doc/lualatex/letgut/letgut-code.tex
index 11832131e89..dc5bad146e9 100644
--- a/Master/texmf-dist/doc/lualatex/letgut/letgut-code.tex
+++ b/Master/texmf-dist/doc/lualatex/letgut/letgut-code.tex
@@ -1,4 +1,4 @@
-% Created 2022-10-03 lun. 22:57
+% Created 2023-01-13 ven. 22:57
% Intended LaTeX compiler: lualatex
\documentclass{letgut}
\setmainfont{KpRoman}
@@ -29,7 +29,7 @@
% | 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
@@ -69,7 +69,11 @@ We define some constant token lists immediately useful.
\begin{lstlisting}
\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
}
@@ -86,8 +90,8 @@ Now, we can announce the class name and its version:
\begin{lstlisting}
\ProvidesExplClass{letgut}
-{2022-10-03}
-{0.9.4}
+{2023-01-13}
+{0.9.5}
{
Class for the newsletter “The GUTenberg Letter”
}
@@ -181,6 +185,18 @@ Some messages are declared for future use.
\begin{lstlisting}
\bool_new:N \g__letgut_draft_bool
\end{lstlisting}
+\item For the included files to (not) be attached.
+\begin{lstlisting}
+\bool_new:N \g__letgut_included_files_attached_bool
+\end{lstlisting}
+\item For the acronym definitions file to (not) be attached.
+\begin{lstlisting}
+\bool_new:N \g__letgut_acronyms_file_attached_bool
+\end{lstlisting}
+\item For the listings language file to (not) be attached.
+\begin{lstlisting}
+\bool_new:N \g__letgut_lstlanguage_file_attached_bool
+\end{lstlisting}
\end{itemize}
\subsubsection{Dimensions}
@@ -368,7 +384,6 @@ We close the \lstinline+\AddToHook{begindocument/before}+ argument.
}
\end{lstlisting}
-
\subsubsection{Integers}
\label{ImplementationDeclarationsIntegers-7pag55h0jlj0}
\begin{lstlisting}
@@ -478,6 +493,7 @@ We close the \lstinline+\AddToHook{begindocument/before}+ argument.
\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{lstlisting}
\end{enumerate}
@@ -495,6 +511,8 @@ We close the \lstinline+\AddToHook{begindocument/before}+ argument.
\label{ImplementationDeclarationsSequences-m2eg55h0jlj0}
\begin{lstlisting}
\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{lstlisting}
\subsection{Class options}
@@ -677,10 +695,18 @@ a vertical space instead of (or in addition to) indenting them.
\begin{lstlisting}
\RequirePackage{titlesec}
\end{lstlisting}
+\item Driver-independent color extensions.
+\begin{lstlisting}
+\RequirePackage[table]{xcolor}
+\end{lstlisting}
\item Several logos and ornaments.
\begin{lstlisting}
\RequirePackage{fourier-orns}
\end{lstlisting}
+\item Drawing of Vectorian ornaments.
+\begin{lstlisting}
+\RequirePackage{pgfornament}
+\end{lstlisting}
\item Control float placement.
\begin{lstlisting}
\RequirePackage[section,above]{placeins}
@@ -714,18 +740,23 @@ the interesting text be able to select it.
\begin{lstlisting}
\RequirePackage{siunitx}
\end{lstlisting}
-\item A collection of logos with bookmark support.
-\begin{lstlisting}
-\RequirePackage{hologo}
-\end{lstlisting}
-\item Driver-independent color extensions.
+\item Additional \TeX{}-family logos (which loads and extends \package{hologo} which is
+collection of logos with bookmark support).
\begin{lstlisting}
-\RequirePackage[table]{xcolor}
+\RequirePackage{bxtexlogo}
\end{lstlisting}
\item Coloured boxes, for \LaTeX{} examples and theorems, etc.
\begin{lstlisting}
\RequirePackage{tcolorbox}
\end{lstlisting}
+\item Compile \TeX{} code stand-alone or as part of a document.
+\begin{lstlisting}
+\RequirePackage[group=false,subpreambles,sort]{standalone}
+\end{lstlisting}
+\item Attach arbitrary files to a PDF document.
+\begin{lstlisting}
+\RequirePackage[icon=Paperclip]{attachfile2}
+\end{lstlisting}
\item Expandable macros to extract the data from references and allow counter
assignments or calculations.
\begin{lstlisting}
@@ -772,6 +803,10 @@ simple tabulars).
\begin{lstlisting}
\RequirePackage{acro}
\end{lstlisting}
+\item Allow URL breaks at any alphanumerical character.
+\begin{lstlisting}
+\RequirePackage{xurl}
+\end{lstlisting}
\end{itemize}
The following packages have to be the last ones loaded. So we ensure this by
@@ -855,6 +890,9 @@ default set to \lstinline+subbibliography+.
\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{lstlisting}
For printing the bibliography, we define two new bibheadings for the
@@ -865,39 +903,47 @@ structure levels \lstinline+\title+ and \lstinline+\subtitle+.
\defbibheading{subtitle}[\refname]{%
\subtitle{#1}}
\end{lstlisting}
-\item The acronyms will be typset in footnote, with small caps shape. When they are
+\item 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{lstlisting}
\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{lstlisting}
- Moreover, we redefine the private macro \lstinline+\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 \lstinline+acro+ bug (see \url{https://tex.stackexchange.com/q/661966/18401}).
+
\begin{lstlisting}
-\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{lstlisting}
+
+In case the long form of an acronym is explicited in footnote, we want this
+footnot to be ended with a period.
+\begin{lstlisting}
+\ProvideDocumentCommand \acroendfootnote {} {.}
\end{lstlisting}
The following settings for packages that have to be the last ones loaded are
also done just before the begining of the document.
+
+\item (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}.
\end{itemize}
\begin{lstlisting}
+\RemoveFromHook{begindocument}[standalone]
+\ExpandArgs{nv}\AddToHook{begindocument/before}{l__hook_return_tl}
+\end{lstlisting}
+
+\begin{lstlisting}
\AddToHook{begindocument/before}{
\end{lstlisting}
@@ -918,16 +964,17 @@ A preset of acronyms is input (if found, firstly in the current directory,
secondly in the parent directory, thirdly in the TDS).
\begin{lstlisting}
\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{lstlisting}
\item Depending on some chosen class options, some packages have to be loaded,
@@ -1038,7 +1085,10 @@ subparagraphs) detailed or not.
\begin{lstlisting}
\keys_define:nn { letgut }
{
- , for-readers .bool_gset:N = \g__letgut_for_readers_bool
+ , for-readers .code:n = {
+ \bool_gset_true:N \g__letgut_for_readers_bool
+ \bool_gset_false:N \g__letgut_included_files_attached_bool
+ }
, for-readers .initial:n = { true }
, for-readers .default:n = { true }
, for-authors .bool_gset_inverse:N = \g__letgut_for_readers_bool
@@ -1051,6 +1101,7 @@ subparagraphs) detailed or not.
\pagecolor[rgb]{\c__letgut_default_pagecolor_paper_clist}
\clist_set_eq:NN \g__letgut_pagecolor_clist
\c__letgut_default_pagecolor_paper_clist
+ \bool_gset_false:N \g__letgut_included_files_attached_bool
}
, screen .bool_gset_inverse:N = \g__letgut_paper_bool
, number .int_gset:N = \g__letgut_number_int
@@ -1085,6 +1136,7 @@ subparagraphs) detailed or not.
, informations .initial:n = { true }
, detailedtoc .bool_gset:N = \g__letgut_detailedtoc_bool
, detailedtoc .initial:n = { false }
+ , source-files-attached .bool_gset:N = \g__letgut_force_included_files_attached_bool
}
\ProcessKeysOptions { letgut }
\end{lstlisting}
@@ -1227,6 +1279,132 @@ The table of contents is customized:
}
\end{lstlisting}
+\subsection{Announcements}
+\label{ImplementationAnnounces-nahckb909pj0}
+\begin{lstlisting}
+\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{lstlisting}
+
+\subsection{Rebus}
+\label{ImplementationRebus-osw8m3f0cpj0}
+\begin{lstlisting}
+\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{lstlisting}
+
\subsection{“Title” and marks}
\label{ImplementationTitleandmarks-5ylg55h0jlj0}
We redefine \lstinline+\@title+ in order to make it empty. Hence we can later test if
@@ -1300,7 +1478,7 @@ Lettre.
{
\begin{picture}(0,0)
\put(-2cm,-25.275cm){
- \includegraphics[scale=0.96]{
+ \includegraphics*[scale=0.96]{
\c__letgut_banner_file_tl.pdf
}
}
@@ -1476,15 +1654,13 @@ has a bookmark entry; otherwise, a warning is displayed.
\begin{lstlisting}
\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{lstlisting}
\end{itemize}
@@ -1536,12 +1712,15 @@ Membership reminder.
\subsection{Last page handling}
\label{ImplementationLastpagehandling-jbng55h0jlj0}
-The last page is special: it should automatically contain some informations about
-\gutenberg.
+The last pages are special: they should automatically contain
+
+some informations about \gutenberg.
\begin{lstlisting}
\AddToHook{enddocument}
{
+ % \clearpage
+ % \printacronyms[heading=title,display=used]
\end{lstlisting}
Conditionally to the fact the \lstinline+informations+ option is not set to \lstinline+false+: if
the \file*{informations-gut.tex} which contains the informations about
@@ -1552,17 +1731,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
}
}{
@@ -1600,9 +1779,33 @@ We want all the sections to be unnumbered.
\subsubsection{Format}
\label{ImplementationSectionssubsectionsetcFormat-tapg55h0jlj0}
+When used in titles, \lstinline+\hologo+ needs to be protected. In order to not bother the
+user with this peticularity, we make this the default for it.
+
+\begin{lstlisting}
+% \AddToHook{cmd/hologo/before}{\protect}
+\NewCommandCopy{\__letgut_old_hologo}{\hologo}
+\RenewDocumentCommand {\hologo} { m }{
+ \protect\__letgut_old_hologo { #1 }
+}
+\end{lstlisting}
+
+We want the \package{hologo}'s \lstinline+\hologo+ command to have its mandatory argument
+not uppercased in the context of \lstinline+\text_uppercase:n+ (as in titles, cf. just
+below).
+
+\begin{lstlisting}
+\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{lstlisting}
+
\begin{itemize}
\item We create the new level \lstinline+\title+ for the titles of the articles. They are
displayed uppercased.
+
\begin{lstlisting}
\AddToHook{begindocument/before}{%
\titleclass{\title}{straight}[\part]
@@ -1610,10 +1813,9 @@ displayed uppercased.
\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}
@@ -1787,7 +1989,7 @@ items are correct.
\begin{lstlisting}
\NewDocumentCommand {\francophony} { } {
\raisebox{-1.5pt}{
- \includegraphics[width=\f@size pt]{
+ \includegraphics*[width=\f@size pt]{
letgut-francophony-icon
}
}
@@ -1795,7 +1997,7 @@ items are correct.
\end{lstlisting}
\end{itemize}
-\subsubsection{Persons and authors}
+\subsubsection{Persons, authors and list of participants}
\label{ImplementationDocumentcommandsPersonsandauthors-h5sg55h0jlj0}
For both persons and authors, the argument of:
\begin{itemize}
@@ -1809,19 +2011,19 @@ a single one, separated by a semicolon.
\end{itemize}
\begin{lstlisting}
-\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{lstlisting}
@@ -1870,10 +2072,18 @@ is splitted as a comma separated list.
(#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
@@ -1904,6 +2114,39 @@ is splitted as a comma separated list.
}
\end{lstlisting}
+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{lstlisting}
+\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{lstlisting}
+
\subsubsection{Horizontal rule}
\label{ImplementationDocumentcommandsHorizontalrule-8vsg55h0jlj0}
\begin{lstlisting}
@@ -1970,11 +2213,19 @@ We define the font switches dediacted to each of packages and classes
}
\cs_new_protected:Nn \__letgut_software:nn
{
+\end{lstlisting}
+
+We split the software's name at spaces in order to apply the dedicated
+font switch (\lstinline+\ttfamily+) to all of it except to the spaces.
+
+\begin{lstlisting}
+ \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
@@ -2018,63 +2269,69 @@ frequently used. The more the users will resort to these commands, the less
will be inconsistently typesetted these names and expressions.
\begin{lstlisting}
- \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{lstlisting}
We define the command \lstinline+\lettrenumber+ that displays the number of
@@ -2146,7 +2403,7 @@ shifted by what is specified.
\tl_if_empty:nF {#1}
{
#3
- \c_space_tl
+ \nobreakspace
\__letgut_get_lettre_number:n {#1}
}
}
@@ -2593,6 +2850,9 @@ extensions of the \lstinline+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{lstlisting}
@@ -2652,7 +2912,7 @@ for usual characters on French keyboards.
\item We specify the possible hyphenations of \enquote{\gutenberg}.
\end{itemize}
\begin{lstlisting}
-\hyphenation{GUT-enberg}
+\hyphenation{GUTen-berg}
\end{lstlisting}
\subsubsection{ISSN}
@@ -2709,6 +2969,213 @@ package that provide another definition of this macro may have been loaded
}
\end{lstlisting}
+\subsubsection{Input of articles}
+\label{ImplementationMiscellanousInputofarticles-aqok3ja00pj0}
+We create our own \lstinline+\input+ command for the articles of the Lettre with the
+following characteristics:
+
+\begin{itemize}
+\item 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.
+\item All the acronyms are reset (each acronym is developped at its first occurrence).
+\item The source file of the article is attached to the \pdf{} (if desired,
+otherwise, use the starred version).
+\end{itemize}
+
+\begin{lstlisting}
+\cs_new_protected:Npn \__letgut_input_article:nn #1 #2
+{
+ \lstset{ style=__letgut_reset_listings_styles }
+ \acresetall%
+ \input{#2}%
+ % \bool_show:N \g__letgut_included_files_attached_bool
+ \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{lstlisting}
+
+\subsubsection{Included graphics attached to the \pdf}
+\label{ImplementationMiscellanousIncludedgraphicsattachedtothe\pdf-xoc34ja00pj0}
+We hack the \lstinline+\includegraphics+ command in order to attach the included graphics
+to the \pdf{} (if desired, otherwise, use the starred version).
+
+\begin{lstlisting}
+\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{lstlisting}
+
+\subsubsection{Added bibliographic ressources attached to the \pdf}
+\label{ImplementationMiscellanousAddedbibliographicressourcesattachedtothe\pdf-l4e34ja00pj0}
+We hack the \lstinline+\addbibresource+ command in order to attach the bibliographic
+ressources to the \pdf{} (if desired, otherwise, use the starred version).
+
+\begin{lstlisting}
+\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{lstlisting}
+
+\subsubsection{Added acronym definitions file attached to the \pdf}
+\label{ImplementationMiscellanousAddedbibliographicressourcesattachedtothe\pdf-l4e34ja00pj0}
+We hack the \lstinline+\ac+ and \lstinline+\acs+ commands in order to attach the acronym definitions
+file to the \pdf{}.
+
+\begin{lstlisting}
+\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{lstlisting}
+
+\subsubsection{Added letgut listings language file attached to the \pdf}
+\label{ImplementationMiscellanousAddedbibliographicressourcesattachedtothe\pdf-l4e34ja00pj0}
+We hack the \lstinline+\ac+ and \lstinline+\acs+ commands in order to attach the acronym definitions
+file to the \pdf{}.
+
+\begin{lstlisting}
+\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{lstlisting}
+
+\begin{lstlisting}
+\AddToHook{begindocument/before}{
+ \bool_if:NTF \g__letgut_force_included_files_attached_bool {
+ \bool_gset_true:N \g__letgut_included_files_attached_bool
+ }{
+ \bool_gset_false:N \g__letgut_included_files_attached_bool
+ }
+}
+\end{lstlisting}
+
\subsection{Listings}
\label{ImplementationListings-514h55h0jlj0}
We define a style for all the listings which resets all the \TeX{} control
@@ -2758,10 +3225,10 @@ same for the above skip.
\end{lstlisting}
We define as short equivalent of \lstinline+\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{lstlisting}
-\lstMakeShortInline[breaklines=false]⅛
+\lstMakeShortInline[breaklines=false]™
\end{lstlisting}
We start with an empty listings style.
@@ -2770,29 +3237,6 @@ We start with an empty listings style.
\lstset{ style=__letgut_reset_listings_styles }
\end{lstlisting}
-We create our own \lstinline+\input+ command for the articles of the Lettre with the
-following characteristics:
-
-\begin{itemize}
-\item 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.
-\item All the acronyms are reset (each acronym is developped at its first occurrence).
-\end{itemize}
-
-\begin{lstlisting}
-\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{lstlisting}
-
\subsubsection{\LaTeX{} listings and examples}
\label{ImplementationListingsLaTeXlistingsandexamples-xt4h55h0jlj0}
We define the colors for the syntax highlighting of \LaTeX{} listings.
@@ -2816,13 +3260,13 @@ in the current directory, secondly in the parent directory, thirdly in the TDS.
\begin{lstlisting}
\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{lstlisting}
@@ -2836,7 +3280,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,
@@ -2854,7 +3298,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
\lstinline+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 \lstinline+extLaTeX+ dialect
+all the environments in our own language driver file (in the \lstinline+extendedLaTeX+ dialect
that we load by default).
\begin{lstlisting}
@@ -2888,7 +3332,7 @@ For the listings and examples, we rely on \package*{tcolorbox}, and more
specifically on some of its libraries.
\begin{lstlisting}
-\tcbuselibrary{listings,xparse,breakable,skins,hooks}
+\tcbuselibrary{listings,breakable,skins,hooks,documentation}
\end{lstlisting}
We want some common settings for all the \textasciitilde{}tcolorbox\textasciitilde{}es.
@@ -3475,6 +3919,7 @@ listings. Here is a workaround for some of them (see
^^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
@@ -3495,7 +3940,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{lstlisting}
@@ -3521,7 +3966,7 @@ several purposes:
\end{itemize}
\begin{lstlisting}
-\ProvidesFile{letgut.lbx}[2022-10-03 v0.9.4 letgut localization]
+\ProvidesFile{letgut.lbx}[2023-01-13 v0.9.5 letgut localization]
\InheritBibliographyExtras{french}
\DeclareBibliographyStrings{
inherit = {french},
@@ -3535,7 +3980,7 @@ We create the new bibliography driver \lstinline+bookreview+ (that seems to
create the corresponding new entry).
\begin{lstlisting}
-\ProvidesFile{letgut.dbx}[2022-10-03 v0.9.4 letgut data model macros]
+\ProvidesFile{letgut.dbx}[2023-01-13 v0.9.5 letgut data model macros]
\DeclareBibliographyDriver{bookreview}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
@@ -3590,7 +4035,7 @@ create the corresponding new entry).
We provide a specific \lstinline+biblatex+ citation style .
\begin{lstlisting}
-\ProvidesFile{letgut.cbx}[2022-10-03 v0.9.4 letgut base citation style]
+\ProvidesFile{letgut.cbx}[2023-01-13 v0.9.5 letgut base citation style]
\RequireCitationStyle{numeric}
\end{lstlisting}
@@ -3743,7 +4188,7 @@ de l'association. Il peut aussi y être question du \ctan.
\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%
@@ -4190,7 +4635,7 @@ Les règlements peuvent s'effectuer par :
\subsection{Language driver file}
\label{ProvidedfilesLanguagedriverfile-4cch55h0jlj0}
\begin{lstlisting}
- % \lst@definelanguage[...]{TeX}{%
+% \lst@definelanguage[...]{TeX}{%
% % Control sequences names
% moretexcs={%
% },%
@@ -4222,7 +4667,659 @@ Les règlements peuvent s'effectuer par :
% % 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
@@ -4231,7 +5328,8 @@ Les règlements peuvent s'effectuer par :
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')
@@ -4240,7 +5338,7 @@ Les règlements peuvent s'effectuer par :
% 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)
@@ -4248,7 +5346,7 @@ Les règlements peuvent s'effectuer par :
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]{%
@@ -4273,7 +5371,7 @@ Les règlements peuvent s'effectuer par :
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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,%
@@ -4832,7 +5930,7 @@ Les règlements peuvent s'effectuer par :
% 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)
@@ -5495,7 +6593,8 @@ Les règlements peuvent s'effectuer par :
\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')
@@ -5509,12 +6608,13 @@ Les règlements peuvent s'effectuer par :
% 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)
@@ -5526,7 +6626,7 @@ Les règlements peuvent s'effectuer par :
tikz,%
},%
% otherkeywords={},%
- alsoletter={-| \ },%
+ alsoletter={-| \ :},%
% alsodigit={},%
% alsoother={},%
sensitive,%
@@ -5686,6 +6786,7 @@ Les règlements peuvent s'effectuer par :
% 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]{%
@@ -6161,7 +7262,7 @@ Les règlements peuvent s'effectuer par :
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,%
@@ -6190,7 +7291,7 @@ Les règlements peuvent s'effectuer par :
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)
diff --git a/Master/texmf-dist/doc/lualatex/letgut/letgut.pdf b/Master/texmf-dist/doc/lualatex/letgut/letgut.pdf
index 23f2bf4091c..3ca15bf9ca2 100644
--- a/Master/texmf-dist/doc/lualatex/letgut/letgut.pdf
+++ b/Master/texmf-dist/doc/lualatex/letgut/letgut.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/lualatex/letgut/letgut.records b/Master/texmf-dist/doc/lualatex/letgut/letgut.records
new file mode 100644
index 00000000000..635b87f3043
--- /dev/null
+++ b/Master/texmf-dist/doc/lualatex/letgut/letgut.records
@@ -0,0 +1 @@
+\rebussolution*[2][][]
diff --git a/Master/texmf-dist/doc/lualatex/letgut/letgut.tex b/Master/texmf-dist/doc/lualatex/letgut/letgut.tex
index 91006a60ea8..12a3bae3ffd 100644
--- a/Master/texmf-dist/doc/lualatex/letgut/letgut.tex
+++ b/Master/texmf-dist/doc/lualatex/letgut/letgut.tex
@@ -67,7 +67,7 @@
}
\author{Association GUTenberg}
\date{%
- Version 0.9.4 en date du \today%
+ Version 0.9.5 en date du \today%
\texorpdfstring{%
\\
\url{https://framagit.org/gutenberg/letgut}%
@@ -205,7 +205,9 @@ Les options de la \letgutcls{} peuvent être spécifiées de deux façons :
\item éditorial\footnote{Ou avertissement s'il n'est pas trouvé.} (cf. clé
\refKey{editorial}) ;
\item informations sur \gut{}\footnote{Ou avertissement si elles ne sont pas
- trouvées.} (cf. clé \refKey{informations}).
+ trouvées.} (cf. clé \refKey{informations}) ;
+ \item fichiers attachés au \pdf{} produit (cf. clé
+ \refKey{source-files-attached}).
\end{itemize}
\end{itemize}
\end{docKeys}
@@ -280,7 +282,7 @@ Les options de la \letgutcls{} peuvent être spécifiées de deux façons :
\begin{itemize}
\item n'est pas employée (les mois et année en cours sont alors
utilisés) ;
- \item est employée sous la forme \refKey*{date}⅛=⅛\meta{année}⅛-⅛\meta{mois}
+ \item est employée sous la forme \refKey*{date}™=™\meta{année}™-™\meta{mois}
où \meta{année} et \meta{mois} doivent être des nombres entiers
positifs. Les garde-fous suivants sont mis en place :
\begin{itemize}
@@ -291,7 +293,7 @@ Les options de la \letgutcls{} peuvent être spécifiées de deux façons :
\end{itemize}
\end{itemize}
\item \enquote{\meta{texte}} si l'option est employée sous la forme
- \refKey*{date}⅛=⅛\meta{texte}.
+ \refKey*{date}™=™\meta{texte}.
\end{itemize}
\end{docKey}
}
@@ -344,13 +346,26 @@ Les options de la \letgutcls{} peuvent être spécifiées de deux façons :
de la conception d'un numéro de la \lettre{}.
\end{docKey}
+\begin{docKey}{source-files-attached}{}{\valinitdef[\docValue*{true}][\docValue*{true}]}
+ En version autre que \enquote{pour auteurs} (cf. \refKey{for-authors}) et en
+ sortie autre que papier (cf. \refKey{paper}), chacun des fichiers nécessaires
+ (et suffisants) à la compilation d'un article de la \lettre{} est :
+ \begin{itemize}
+ \item attaché au \pdf{} produit ;
+ \item accessible en cliquant sur l'hyperlien correspondant en forme de
+ trombone (\noattachfile[icon=Paperclip]) ;
+ \end{itemize}
+ La clé booléenne \refKey{source-files-attached} permet de (dés)activer cette
+ fonctionnalité.
+\end{docKey}
+
\begin{dbremark}{Tables des matières locales}{}
Chaque article peut contenir une table des matières locale, affichée au moyen
de la commande \docAuxCommand{localtableofcontents} (fournie par le
\package*{etoc} chargé en sous-main par la \letgutcls{}). Le niveau de
profondeur est par défaut celui des sections mais cela peut être modifié en la
faisant précéder de la commande \docAuxCommand{etocsetnexttocdepth} (dont
- l'argument est par exemple ⅛subsection⅛).
+ l'argument est par exemple ™subsection™).
\end{dbremark}
\subsection{Options autres}
@@ -382,7 +397,7 @@ Si la commande \docAuxCommand{title}\marg{titre} est
\begin{dbwarning}{\docAuxCommand{title} et \docAuxCommand{author}
$\neq$ avant et après \lstinline+\\begin\{document\}+}{}
Les commandes \docAuxCommand{title} et \docAuxCommand{author} ne se comportent
- pas de la même façon avant et après ⅛\begin{document}⅛ (cf. sections
+ pas de la même façon avant et après ™\begin{document}™ (cf. sections
\nameref{sec:structuration} \vpageref{sec:structuration} et
\nameref{sec:sign-des-articl} \vpageref{sec:sign-des-articl}).
\end{dbwarning}
@@ -404,12 +419,29 @@ Si la commande \docAuxCommand{title}\marg{titre} est
\end{itemize}
\end{dbwarning}
-\begin{docCommand}{inputarticle}{\marg{fichier enfant}}
+\begin{docCommands}
+ {
+ {
+ doc name = inputarticle,
+ doc parameter = \marg{fichier enfant},
+ },
+ {
+ doc name = inputarticle*,
+ doc parameter = \marg{fichier enfant},
+ },
+ }
Cette commande permet d'importer le contenu d'un article stocké dans un
\meta{fichier enfant}\file{.tex}.
+ En version étoilée, les fichiers nécessaires (et suffisants) à la compilation
+ de l'article ne sont pas attachés au \pdf{} produit (cf. clé
+ \refKey{source-files-attached}).
+
En plus de l'importation proprement dite, cette commande procède à un certain
nombre de réinitialisations.
+\end{docCommands}
+
+\begin{docCommand}{inputarticle}{\marg{fichier enfant}}
\end{docCommand}
\section{Structuration}
@@ -484,6 +516,10 @@ On lira avec intérêt la section \enquote{\nameref{sec:acronymes}}
doc parameter = \brackets{\meta{données$_1$} and \meta{données$_2$}[ and ...]}
},
{
+ doc name = person*,
+ doc parameter = \brackets{\meta{données$_1$} and \meta{données$_2$}[ and ...]}
+ },
+ {
doc name = author,
doc parameter = \marg{données}
},
@@ -491,6 +527,10 @@ On lira avec intérêt la section \enquote{\nameref{sec:acronymes}}
doc name = author,
doc parameter = \brackets{\meta{données$_1$} and \meta{données$_2$}[ and ...]}
},
+ {
+ doc name = author*,
+ doc parameter = \brackets{\meta{données$_1$} and \meta{données$_2$}[ and ...]}
+ },
}
\index{auteur}
\index{personne}
@@ -501,18 +541,20 @@ On lira avec intérêt la section \enquote{\nameref{sec:acronymes}}
étant spécifiées :
\begin{description}
\item[pour un individu unique] selon l'un des formats suivants :
- \begin{itemize}
- \item \meta{nom}
- \item \meta{nom}⅛, ⅛\meta{prénom}
- \item \meta{nom}⅛, ⅛\meta{prénom}⅛, ⅛\meta{titre}
- \end{itemize}
-\item[pour des individus multiples :]\leavevmode
- \begin{itemize}
- \item selon le même schéma que pour un individu unique ;
- \item les \meta{données} de chacun des individus étant séparées par le mot clé
- ⅛and⅛.
- \end{itemize}
+ \begin{itemize}
+ \item \meta{nom}
+ \item \meta{nom}™, ™\meta{prénom}
+ \item \meta{nom}™, ™\meta{prénom}™, ™\meta{titre}
+ \end{itemize}
+ \item[pour des individus multiples :]\leavevmode
+ \begin{itemize}
+ \item selon le même schéma que pour un individu unique ;
+ \item les \meta{données} de chacun des individus étant séparées par le mot clé
+ ™and™.
+ \end{itemize}
\end{description}
+ Les version étoilées de ces commandes trient alphabétiquement les listes de
+ personnes ou d'auteurs.
\end{docCommands}
Indépendamment de la casse utilisée en entrée, pour chaque \meta{nom} et
@@ -665,8 +707,10 @@ Unicode a prévu le caractère \Ucode[symbole numéro]{2116}.
{
{ doc name = gutenberg },
{ doc name = gut },
- % { doc name = lettre },
- % { doc name = lettregut },
+ { doc name = assogut },
+ { doc name = Assogut },
+ { doc name = lettres },
+ { doc name = lettresgut },
{ doc name = cahier },
{ doc name = cahiers },
{ doc name = cahiergut },
@@ -689,23 +733,25 @@ Unicode a prévu le caractère \Ucode[symbole numéro]{2116}.
\centering
\begin{tabular}{ll}
\toprule
- \refCom{gutenberg} & \gutenberg \\
- \refCom{gut} & \gut \\
- % \refCom{lettre} & \lettre \\
- % \refCom{lettregut} & \lettregut \\
- \refCom{cahier} & \cahier \\
- \refCom{cahiergut} & \cahiergut \\
- \refCom{cahiers} & \cahiers \\
- \refCom{cahiersgut} & \cahiersgut \\ \midrule
- \refCom{letgut} & \letgut \\
- \refCom{letgutcls} & \letgutcls \\ \midrule
- \refCom{knuth} & \knuth \\
- \refCom{lamport} & \lamport \\
- \refCom{tl} & \tl \\
- \refCom{tugboat} & \tugboat \\ \midrule
- \refCom{linux} & \linux \\
- \refCom{macos} & \macos \\
- \refCom{windows} & \windows \\ \bottomrule
+ \refCom{gutenberg} & \gutenberg \\
+ \refCom{gut} & \gut \\
+ \refCom{assogut} & \assogut \\
+ \refCom{Assogut} & \Assogut \\
+ \refCom{lettres} & \lettres \\
+ \refCom{lettresgut} & \lettresgut \\
+ \refCom{cahier} & \cahier \\
+ \refCom{cahiergut} & \cahiergut \\
+ \refCom{cahiers} & \cahiers \\
+ \refCom{cahiersgut} & \cahiersgut \\ \midrule
+ \refCom{letgut} & \letgut \\
+ \refCom{letgutcls} & \letgutcls \\ \midrule
+ \refCom{knuth} & \knuth \\
+ \refCom{lamport} & \lamport \\
+ \refCom{tl} & \tl \\
+ \refCom{tugboat} & \tugboat \\ \midrule
+ \refCom{linux} & \linux \\
+ \refCom{macos} & \macos \\
+ \refCom{windows} & \windows \\ \bottomrule
\end{tabular}
\caption{Effet des commandes de raccourcis}
\label{tab:raccourcis}
@@ -754,7 +800,8 @@ de \docAuxCommand{section}%
\ExplSyntaxOff
\begin{ltx-code-result}[title addon=emploi de la commande \refCom{lettrenumber},listing options app={deletekeywords={[6]{cours,lettre}}}]
-Si le numéro de la \lettre{} en cours est 46, celui de la \lettre
+Si le numéro de la \lettre{} en cours est 46,
+celui de la \lettre :
\begin{enumerate}
\item en cours est \lettrenumber ;
\item en cours est le \lettrenumber* ;
@@ -777,7 +824,7 @@ Si le numéro de la \lettre{} en cours est 46, celui de la \lettre
\enquote{\lettre} et \enquote{\lettregut}, le cas échéant suivies du numéro
de la \lettre{} :
\begin{description}
- \item[en cours] si l'\meta{argument optionnel} est un point (⅛.⅛) ;
+ \item[en cours] si l'\meta{argument optionnel} est un point (™.™) ;
\item[décalé de celui en cours] de ce qui est spécifié si l'\meta{argument optionnel} est un
entier relatif signé\footref{entier-signe} ;
\item[spécifié] si l'\meta{argument optionnel} est autre.
@@ -801,8 +848,7 @@ Si le numéro de la \lettre{} en cours est 46, on a :
\item \lettre*[43]
\item \lettre*
\end{enumerate}
-On fait usage de ces commandes
-dans la \lettregut*[.].
+On fait usage de ces commandes dans la \lettregut*[.].
\end{ltx-code-result}
\subsection{Touches de clavier}
@@ -810,7 +856,7 @@ dans la \lettregut*[.].
Afin de disposer d'un moyen simple, riche et élégant pour composer des touches
de clavier, la \letgutcls{} s'appuie sur le \package*{biolinum} et notamment sa
-commande ⅛\LKey⅛. Cette dernière a été légèrement étendue de façon à faciliter
+commande ™\LKey™. Cette dernière a été légèrement étendue de façon à faciliter
la saisie pour toutes les touches des diacritiques utilisés en français.
\begin{ltx-code-result}[title addon=touches de clavier]
@@ -899,7 +945,7 @@ environnements \enquote{verbatim} suivants.
ces codes et résulats :
\begin{itemize}
\item l'un sous l'autre par défaut ;
- \item l'un à gauche de l'autre si l'option ⅛sidebyside⅛ est
+ \item l'un à gauche de l'autre si l'option ™sidebyside™ est
employée.
\end{itemize}
\end{enumerate}
@@ -907,7 +953,7 @@ environnements \enquote{verbatim} suivants.
\begin{dbwarning}{Exemples de codes avec résultats : possiblement
flottants}{exemples-flottants}
- Si l'option ⅛sidebyside⅛ est passée à l'un ou l'autre des
+ Si l'option ™sidebyside™ est passée à l'un ou l'autre des
environnements \refEnv{ltx-code-result} et \refEnv{ltx-code-external-result},
l'exemple :
\begin{itemize}
@@ -932,7 +978,7 @@ Ces trois environnements admettent des \meta{options} :
\begin{itemize}
\item (toutes) celles acceptées par l'environnement
\docAuxEnvironment{tcblisting} et la commande \docAuxCommand{newtcblisting}
- fournis par la bibliothèque ⅛listings⅛ du
+ fournis par la bibliothèque ™listings™ du
\package*{tcolorbox}\footnote{Et, aussi, les commandes
\docAuxCommand{DeclareTCBListing} et assimilées fournies par la bibliothèque
\lstinline+xparse+ de ce package.}. Elles permettent notamment de surcharger
@@ -940,29 +986,29 @@ Ces trois environnements admettent des \meta{options} :
\begin{itemize}
\item de faire figurer l'éventuel résultat, non pas sous le code comme c'est
le cas par défaut, mais en regard (à droite) au moyen de l'option
- ⅛sidebyside⅛ ;
+ ™sidebyside™ ;
\item de supprimer les numéros de ligne au moyen de l'option
\begin{ltx-code}
listing options={numbers=none}
\end{ltx-code}
\end{itemize}
\item trois spécifiques à ces environnements :
- \begin{docKey*}{title addon}{=\meta{supplément au titre}}{\valinitdef}
- Cette option permet d'adjoindre un \meta{supplément au titre} de ces
- exemples, qui sont par défaut et automatiquement \enquote{Exemple \meta{n}}.
- \end{docKey*}
- \begin{docKey*}{result width}{=\meta{longueur}}{\valinitdef[\docAuxCommand*{linewidth}]}
+ \begin{docKey}{title addon}{=\meta{supplément}}{\valinitdef}
+ Cette option permet d'adjoindre au titre de ces exemples, qui sont par
+ défaut et automatiquement \enquote{Exemple \meta{n}}, un \meta{supplément}.
+ \end{docKey}
+ \begin{docKey}{result width}{=\meta{longueur}}{\valinitdef[\docAuxCommand*{linewidth}]}
Cette option, utile seulement pour l'environnement
\refEnv{ltx-code-external-result}, permet de spécifier une largeur autre que
celle initiale pour le fichier image du résultat, compilé indépendamment de
la \lettre{}.
- \end{docKey*}
- \begin{docKey*}{reference text}{=\meta{texte}}{\valinitdef[Cf. exemple \meta{n} page \meta{q}.]}
+ \end{docKey}
+ \begin{docKey}{reference text}{=\meta{texte}}{\valinitdef[Cf. exemple \meta{n} page \meta{q}.]}
Cette option n'a d'effet que :
\begin{itemize}
\item avec l'un ou l'autre des environnements \refEnv{ltx-code-result} et
\refEnv{ltx-code-external-result} ;
- \item lorsque l'option ⅛sidebyside⅛ leur est passée ;
+ \item lorsque l'option ™sidebyside™ leur est passée ;
\item lorsque l'exemple s'avère se trouver sur une page autre que
celle de son point d'insertion.
\end{itemize}
@@ -972,9 +1018,9 @@ listing options={numbers=none}
s'affranchir de ce texte en recourant à \lstinline+reference text=\{\}+.}.
\begin{dbwarning}{\refKey{reference text} avant \lstinline+sidebyside+}{}
Pour qu'elle soit prise en compte, l'option \refKey{reference text} doit
- être passée \emph{avant} l'option ⅛sidebyside⅛.
+ être passée \emph{avant} l'option ™sidebyside™.
\end{dbwarning}
- \end{docKey*}
+ \end{docKey}
\end{itemize}
\subsubsection{Coloration syntaxique}
@@ -984,16 +1030,16 @@ Par défaut, en début de document et de chaque fichier importé au moyen de
\refCom{inputarticle}, le langage supposé dans ces exemples de codes est
\hologo{TeX}, chargé (seulement) avec ses \enquote{dialectes} :
\begin{itemize}
-\item ⅛primitive⅛, ⅛common⅛, ⅛plain⅛, ⅛LaTeX⅛, ⅛AlLaTeX⅛ fournis par le
+\item ™primitive™, ™common™, ™plain™, ™LaTeX™, ™AlLaTeX™ fournis par le
\package*{listings} ;
-\item ⅛classes⅛ fourni par \letgutcls{} (répertoriant les classes disponibles
+\item ™classes™ fourni par \letgutcls{} (répertoriant les classes disponibles
sur le \ctan{}).
\end{itemize}
Une conséquence notable est la suivante :
\begin{dbwarning}{Coloration syntaxique réduite par défaut}{}
La coloration syntaxique dans les exemples de codes n'est par défaut active
- que pour le langage \hologo{TeX} et ses dialectes ⅛primitive⅛, ⅛common⅛,
- ⅛plain⅛, ⅛LaTeX⅛, ⅛AlLaTeX⅛ et ⅛classes⅛.
+ que pour le langage \hologo{TeX} et ses dialectes ™primitive™, ™common™,
+ ™plain™, ™LaTeX™, ™AlLaTeX™ et ™classes™.
\end{dbwarning}
Il est néanmoins possible de spécifier d'autres langages et dialectes au moyen
@@ -1049,7 +1095,7 @@ fournit la commande à arguments \enquote{verbatim} suivante.
Il est possible de surcharger les réglages par défaut de cette commande au
moyen d'\meta{options} qui sont (toutes) celles acceptées par l'environnement
\docAuxEnvironment{tcblisting} et la commande \docAuxCommand{newtcblisting}
- fournis par la bibliothèque ⅛listings⅛ du \package*{tcolorbox}\footnote{Et,
+ fournis par la bibliothèque ™listings™ du \package*{tcolorbox}\footnote{Et,
aussi, les commandes \docAuxCommand{DeclareTCBListing} et assimilées
fournies par la bibliothèque \lstinline+xparse+ de ce package.}.
\end{docCommand}
@@ -1113,7 +1159,7 @@ rg -g 0,25s user 0,23s system 320% cpu 0,150 total
\begin{dbwarning}{Caractère d'échappement des listings}{}
\lstset{escapechar=}%
- La \letgutcls{} définit ⅛£⅛ comme caractère d'échappement dans \LaTeX{} au
+ La \letgutcls{} définit ™£™ comme caractère d'échappement dans \LaTeX{} au
sein d'un listing.
\end{dbwarning}
@@ -1127,37 +1173,38 @@ Au besoin, on pourra désactiver ce caractère actif au moyen de
\docAuxCommand{lstinline} du \package*{listings} mais, pour
simplifier la tâche, la \letgutcls{} définit comme équivalent court
de \docAuxCommand{lstinline} le caractère unicode %
- \lstDeleteShortInline⅛%
- \texttt{⅛} %
- \lstMakeShortInline⅛%
- (U+215B)\footnote{Peu susceptible d'être utilisé dans du texte
+ \lstDeleteShortInline™%
+ \texttt{™} %
+ \lstMakeShortInline™%
+ (\Ucode{2122})\footnote{Peu susceptible d'être utilisé dans du texte
ordinaire.}.
\end{dbwarning}
Autrement dit, la \letgutcls{} contient l'instruction\footnote{À peu
de choses près.} :
- \lstDeleteShortInline⅛
+ \lstDeleteShortInline™
\begin{ltx-code}
-\lstMakeShortInline£\texttt{⅛}£
+\lstMakeShortInline£\texttt{™}£
\end{ltx-code}
Au besoin, on pourra désactiver ce caractère actif au moyen de :
\begin{ltx-code}
-\lstDeleteShortInline£\texttt{⅛}£
+\lstDeleteShortInline£\texttt{™}£
\end{ltx-code}
-\begin{dbremark}{Obtention du caractère \texttt{⅛}}{}
+\begin{dbremark}{Obtention du caractère \texttt{™}}{}
Le caractère %
-\texttt{⅛} %
+\texttt{™} %
s'obtient :
\begin{itemize}
-\item sous \linux{} : \LKeyShiftAltGrX{2}\footnote{Touche \LKey{2} du clavier principal.} ;
+\item sous \linux{} : \LKeyShiftAltGrX{8}\footnote{Touche \LKey{8} du clavier
+ principal.} ;
\item sous \macos{} : à l'aide du visualiseur de caractères\footnote{Et
possiblement de raccourcis claviers personnels.} ;
-\item sous \windows{} : \LKeyAltX{8}+\LKey{5}+\LKey{3}+\LKey{9}.
+\item sous \windows{} : \LKeyAltX{0}+\LKey{1}+\LKey{5}+\LKey{3}.
\end{itemize}
\end{dbremark}
- \lstMakeShortInline⅛%
+ \lstMakeShortInline™%
\section{Nouveautés apparues sur le \ctan}
\label{sec:rubr-cons-aux}
@@ -1229,6 +1276,16 @@ Les fiches de lecture d'un livre sont créées au moyen de l'environnement
\begin{docKey}{bibkey}{=\meta{clé}}{\valinitdef}
Cette clé permet de spécifier la \meta{clé} identifiant l'entrée d'un
\file*{.bib} contenant les données bibliographiques du document rapporté.
+ \begin{dbwarning}{Fichier de bibliographie}{}
+ Ces données bibliographiques doivent se trouver dans un fichier
+ \meta{bibliographie}\file{.bib}, structurées selon le format du
+ \package*{biblatex} et chargées en préambule (par exemple dans le
+ fichier local de configuration, cf. \vpageref{sec:fichier-local-de}) au
+ moyen de la commande :
+\begin{ltx-code}
+\addbibressource{£\meta{bibliographie}£.bib}
+\end{ltx-code}
+ \end{dbwarning}
\end{docKey}
\item[fortement conseillée :]
\begin{docKey}{frontcover}{=\meta{fichier}}{\valinitdef}
@@ -1280,10 +1337,10 @@ commande dédiée \refCom{letgutacro}.
être employé au moyen des commandes fournies par le \package*{acro}, par
exemple :
\begin{itemize}
- \item ⅛\ac{⅛\meta{court}⅛}⅛\footnote{Acronyme automatiquement affiché sous sa
+ \item ™\ac{™\meta{court}™}™\footnote{Acronyme automatiquement affiché sous sa
forme complète à sa 1\iere{} occurrence, sous sa forme courte à ses
occurrences suivantes.} ;
- \item ⅛\acs{⅛\meta{court}⅛}⅛\footnote{Acronyme affiché sous sa forme courte
+ \item ™\acs{™\meta{court}™}™\footnote{Acronyme affiché sous sa forme courte
seulement.}.
\end{itemize}
Toutefois, pour simplifier l'usage de ces acronymes, la \letgutcls{} crée
@@ -1301,8 +1358,8 @@ commande dédiée \refCom{letgutacro}.
%
qui agit comme :
\begin{itemize}
- \item ⅛\ac{⅛\meta{court}⅛}⅛ en version non étoilée ;
- \item ⅛\acs{⅛\meta{court}⅛}⅛ en version étoilée.
+ \item ™\ac{™\meta{court}™}™ en version non étoilée ;
+ \item ™\acs{™\meta{court}™}™ en version étoilée.
\end{itemize}
\end{docCommand}
Ainsi, l'acronyme utilisé via \docAuxCommand{\meta{court}} figure, pour ses
@@ -1412,6 +1469,143 @@ insère un filet horizontal.
Cette commande permet d'accentuer la séparation entre deux articles.
\end{docCommand}
+\section{Annonces}
+\label{sec:annonces}
+
+Afin de présenter aisément et de façon homogène les annonces à paraître dans la
+\lettre{}, la \letgutcls{} fournit l'environnement \refEnv{announcement}.
+
+\begin{docEnvironment}[doclang/environment content=annonce]{announcement}{\oarg{couleur}\marg{titre}}
+ Cet environnement est dédié aux \meta{annonce}s. La spécification :
+ \begin{itemize}
+ \item d'un \meta{titre} (pouvant toutefois être vide) est obligatoire ;
+ \item d'une \meta{couleur} (du tire et des ornements) autre que celle (noire)
+ par défaut est possible.
+ \end{itemize}
+\end{docEnvironment}
+
+\begin{ltx-code-result}[title addon=annonces]
+\begin{announcement}[red!35!black]{Convocation \acs{ag} ordinaire}
+ Les adhérents de l'\assogut{} sont invités à participer à
+ l'\textbf{assemblée générale \emph{ordinaire}} de l'association
+ le \textbf{dimanche 11 décembre 2022}.
+\end{announcement}
+\end{ltx-code-result}
+
+\section{Rébus}
+\label{sec:rebus}
+
+\tcbstartrecording\relax
+Afin de présenter aisément et de façon homogène les rébus à paraître dans la
+\lettre{}, la \letgutcls{} fournit l'environnement \refEnv{rebus}.
+
+\begin{docEnvironment}[doclang/environment content=rébus]{rebus}{\oarg{options}}
+ Cet environnement affiche un \meta{rébus} et s'emploie différemment selon que
+ la solution est prévue de figurer dans la \lettre{} :
+ \begin{description}
+ \item[en cours :] le rébus et sa solution doivent alors être séparées par
+ la commande \refCom{solution} ;
+ \item[suivante :] l'option \refKey{no solution} doit alors être employée.
+ \end{description}
+ La boîte contenant le rébus mentionne que sa solution se trouve,
+ respectivement :
+ \begin{itemize}
+ \item \enquote{page \meta{n}} ou \enquote{ci-dessous} ;
+ \item \enquote{dans la prochaine \lettre{}}.
+ \end{itemize}
+
+ La commande séparant le rébus et sa solution prévue de figurer dans la
+ \lettre{} en cours est :
+ \begin{docCommand}{solution}{}
+ Cette commande débute la solution d'un rébus à l'intérieur d'un environment
+ \refEnv{rebus}.
+ \end{docCommand}
+
+ En outre, cet environnement admet des \meta{options} :
+ \begin{itemize}
+ \item (toutes) celles acceptées par les environnements \refAux{tcolorbox} et
+ assimilés du \package*{tcolorbox}, destinées à, le cas échéant, modifier la
+ mise en forme par défaut de la boîte contenant le rébus ;
+ \item deux qui lui sont propres :
+ \begin{docKey}{title addon}{=\meta{supplément}}{\valinitdef}
+ Cette option permet d'adjoindre au titre d'un rébus, qui est par défaut et
+ automatiquement \enquote{Rébus}, un \meta{supplément} alors en italique et
+ entre parenthèses.
+ \end{docKey}
+ \begin{docKey}{no solution}{}{\valinitdef[\docValue*{false}][\docValue*{true}]}
+ Cette option est à spécifier pour un rébus dont la solution ne doit figurer
+ que dans la prochaine \lettre{}.
+ \end{docKey}
+ \end{itemize}
+\end{docEnvironment}
+
+Ainsi le code :
+
+\begin{ltx-code}[title addon=rébus]
+\begin{rebus}[no solution]
+ Rébus \emph{sans} solution dans le présent numéro.
+\end{rebus}
+\begin{rebus}
+ Rébus \emph{avec} solution dans le présent numéro.
+ \solution
+ Solution du rébus.
+\end{rebus}
+\end{ltx-code}
+
+donne-t-il les résultats suivants\footnote{Éventuellement pas immédiatement à la
+ suite car les boîtes contenant les rébus sont flottantes.}.
+
+\begin{rebus}[no solution,nofloat]
+ Rébus \emph{sans} solution dans le présent numéro.
+\end{rebus}
+\begin{rebus}[nofloat]
+ Rébus \emph{avec} solution dans le présent numéro.
+ \solution
+ Solution du rébus.
+\end{rebus}
+
+La \letgutcls{} fournit bien sûr le moyen d'afficher les solutions des rébus de
+la \lettre{}
+soit en cours, soit précédente.
+
+\begin{docCommand}{rebussolution}{\oarg{solution}\oarg{numéro}\oarg{options}}
+ Cette commande affiche la ou les solutions du ou des rébus qui figurent dans
+ la \lettre{} :
+ \begin{description}
+ \item[en cours :] (commande \refCom{solution}) si ses 1\ier{} et
+ 2\ieme{} arguments optionnels \meta{solution} et \meta{numéro} sont
+ inutilisés ;
+ \item[précédente :] si son 1\ier{} argument optionnel \meta{solution} est
+ utilisé. Selon que 2\ieme{} argument optionnel \meta{numéro} est spécifié ou
+ pas, il est indiqué que la \meta{solution} est celle d'un rébus figurant
+ dans la \lettre{} :
+ \begin{itemize}
+ \item \meta{numéro} ;
+ \item précédente.
+ \end{itemize}
+ \end{description}
+ Cette commande admet comme \meta{options} (toutes) celles acceptées par les
+ environnements \refAux{tcolorbox} et assimilés du \package*{tcolorbox},
+ destinées à, le cas échéant, modifier la mise en forme par défaut de la boîte
+ contenant la solution du rébus.
+\end{docCommand}
+
+Ainsi le code :
+
+\begin{ltx-code}[title addon=solution de rébus]
+\rebussolution
+\rebussolution[Solution du rébus]
+\rebussolution[Solution du rébus][49]
+\end{ltx-code}
+
+donne-t-il donne-t-il les résultats suivants\footnote{Éventuellement pas
+ immédiatement à la suite car les boîtes contenant les solutions des rébus sont
+ flottantes.}.
+
+\rebussolution
+\rebussolution[Solution du rébus]
+\rebussolution[Solution du rébus][49]
+
\section{Boîtes d'alertes}
\label{sec:boites-dalertes}
@@ -1607,7 +1801,7 @@ dressons ci-après la liste en les regroupant selon ces deux catégories.
\item[babel] support multilingue.
\begin{description}
\item[Options :] \docAuxKey*{english}, \docAuxKey*{french} ;
- \item[Configuration] ⅛\renewcommand*\frenchtablename{Tableau}⅛.
+ \item[Configuration] ™\renewcommand*\frenchtablename{Tableau}™.
\end{description}
\item[varioref] références de pages intelligentes.
\begin{description}
@@ -1647,11 +1841,11 @@ dressons ci-après la liste en les regroupant selon ces deux catégories.
\item[Options :]\leavevmode{}
\begin{itemize}
\item \docAuxKey*{first-style=footnote} ;
- \item \docAuxKey*{format/short=}⅛\scshape⅛ ;
- \item \docAuxKey*{format/foreign=}⅛\em⅛ ;
+ \item \docAuxKey*{format/short=}™\scshape™ ;
+ \item \docAuxKey*{format/foreign=}™\em™ ;
\item \docAuxKey*{foreign/display} ;
\item \docAuxKey*{locale/display} ;
- \item \docAuxKey*{locale/format=}⅛\upshape⅛.
+ \item \docAuxKey*{locale/format=}™\upshape™.
\end{itemize}
\end{description}
\item[hyperref] prise en charge étendue de l'hypertexte.
diff --git a/Master/texmf-dist/doc/lualatex/letgut/rebus-2.tex b/Master/texmf-dist/doc/lualatex/letgut/rebus-2.tex
new file mode 100644
index 00000000000..2798de7770a
--- /dev/null
+++ b/Master/texmf-dist/doc/lualatex/letgut/rebus-2.tex
@@ -0,0 +1 @@
+ Solution du rébus.
diff --git a/Master/texmf-dist/source/lualatex/letgut/letgut.org b/Master/texmf-dist/source/lualatex/letgut/letgut.org
index dd76cbe8d78..5ad47ec6762 100644
--- a/Master/texmf-dist/source/lualatex/letgut/letgut.org
+++ b/Master/texmf-dist/source/lualatex/letgut/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.5 2023-01-13}
% -------------------------------------------------------------------------
% This field contains the name of the author(s).
% The value is optional.
@@ -131,15 +131,25 @@ 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.
+ - 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`.
+ - 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
- - Documentation completed and improved.
+ - `⅛` 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.
+
\end{announcement}
% -------------------------------------------------------------------------
% This field contains the one-liner for the package.
@@ -209,12 +219,35 @@ new versions of the class on CTAN.
## [Unreleased]
+ ## [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`.
+ - 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 +255,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 +314,7 @@ to the newsletter “La Lettre GUTenberg” of GUTenberg, the French TeX User Gr
Release
-------
-2022-10-03 v0.9.4
+2023-01-13 v0.9.5
Development
-----------
@@ -359,7 +393,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 +439,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 +460,8 @@ Now, we can announce the class name and its version:
#+begin_src latex
\ProvidesExplClass{letgut}
- {2022-10-03}
- {0.9.4}
+ {2023-01-13}
+ {0.9.5}
{
Class for the newsletter “The GUTenberg Letter”
}
@@ -528,6 +566,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 +764,6 @@ We close the ~\AddToHook{begindocument/before}~ argument.
}
#+end_src
-
*** Integers
:PROPERTIES:
:CUSTOM_ID: ImplementationDeclarationsIntegers-7pag55h0jlj0
@@ -830,13 +879,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 +909,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 +1105,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 +1148,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 +1211,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 +1295,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 +1308,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 +1367,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,7 +1506,10 @@ 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 .code:n = {
+ \bool_gset_true:N \g__letgut_for_readers_bool
+ \bool_gset_false:N \g__letgut_included_files_attached_bool
+ }
, for-readers .initial:n = { true }
, for-readers .default:n = { true }
, for-authors .bool_gset_inverse:N = \g__letgut_for_readers_bool
@@ -1438,6 +1522,7 @@ We now define the options of the class:
\pagecolor[rgb]{\c__letgut_default_pagecolor_paper_clist}
\clist_set_eq:NN \g__letgut_pagecolor_clist
\c__letgut_default_pagecolor_paper_clist
+ \bool_gset_false:N \g__letgut_included_files_attached_bool
}
, screen .bool_gset_inverse:N = \g__letgut_paper_bool
, number .int_gset:N = \g__letgut_number_int
@@ -1472,6 +1557,7 @@ We now define the options of the class:
, informations .initial:n = { true }
, detailedtoc .bool_gset:N = \g__letgut_detailedtoc_bool
, detailedtoc .initial:n = { false }
+ , source-files-attached .bool_gset:N = \g__letgut_force_included_files_attached_bool
}
\ProcessKeysOptions { letgut }
#+end_src
@@ -1583,7 +1669,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 +1732,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 +1944,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 +2120,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 +2183,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 +2202,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 +2258,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 +2291,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 +2479,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 +2499,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 +2560,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 +2602,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 +2710,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 +2769,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 +2895,7 @@ resp. “\lettre” and “\lettregut”:
\tl_if_empty:nF {#1}
{
#3
- \c_space_tl
+ \nobreakspace
\__letgut_get_lettre_number:n {#1}
}
}
@@ -3063,6 +3358,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 +3424,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 +3490,226 @@ 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_show:N \g__letgut_included_files_attached_bool
+ \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
+
+#+begin_src latex
+ \AddToHook{begindocument/before}{
+ \bool_if:NTF \g__letgut_force_included_files_attached_bool {
+ \bool_gset_true:N \g__letgut_included_files_attached_bool
+ }{
+ \bool_gset_false:N \g__letgut_included_files_attached_bool
+ }
+ }
+#+end_src
+
** Listings
:PROPERTIES:
:CUSTOM_ID: ImplementationListings-514h55h0jlj0
@@ -3244,10 +3762,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 +3774,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 +3800,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 +3820,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 +3838,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 +3872,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 +4461,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 +4485,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 +4512,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-13 v0.9.5 letgut localization]
\InheritBibliographyExtras{french}
\DeclareBibliographyStrings{
inherit = {french},
@@ -4028,7 +4526,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-13 v0.9.5 letgut data model macros]
\DeclareBibliographyDriver{bookreview}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
@@ -4083,7 +4581,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-13 v0.9.5 letgut base citation style]
\RequireCitationStyle{numeric}
#+end_src
@@ -4248,7 +4746,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 +5199,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 +5231,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 +5892,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 +5902,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 +5910,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 +5935,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 +6494,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 +7157,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 +7172,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 +7190,7 @@ well...
tikz,%
},%
% otherkeywords={},%
- alsoletter={-| \ },%
+ alsoletter={-| \ :},%
% alsodigit={},%
% alsoother={},%
sensitive,%
@@ -6197,6 +7350,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 +7826,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 +7855,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)
diff --git a/Master/texmf-dist/tex/lualatex/letgut/informations-gut.tex b/Master/texmf-dist/tex/lualatex/letgut/informations-gut.tex
index e7249c8a237..85e0d6a9f1e 100644
--- a/Master/texmf-dist/tex/lualatex/letgut/informations-gut.tex
+++ b/Master/texmf-dist/tex/lualatex/letgut/informations-gut.tex
@@ -6,7 +6,7 @@
\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%
diff --git a/Master/texmf-dist/tex/lualatex/letgut/letgut-lstlang.sty b/Master/texmf-dist/tex/lualatex/letgut/letgut-lstlang.sty
index 412849c9724..ab97265d351 100644
--- a/Master/texmf-dist/tex/lualatex/letgut/letgut-lstlang.sty
+++ b/Master/texmf-dist/tex/lualatex/letgut/letgut-lstlang.sty
@@ -30,7 +30,659 @@
% % 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
@@ -39,7 +691,8 @@
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')
@@ -48,7 +701,7 @@
% 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)
@@ -56,7 +709,7 @@
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]{%
@@ -81,7 +734,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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,%
@@ -640,7 +1293,7 @@
% 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)
@@ -1303,7 +1956,8 @@
\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')
@@ -1317,12 +1971,13 @@
% 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)
@@ -1334,7 +1989,7 @@
tikz,%
},%
% otherkeywords={},%
- alsoletter={-| \ },%
+ alsoletter={-| \ :},%
% alsodigit={},%
% alsoother={},%
sensitive,%
@@ -1494,6 +2149,7 @@
% 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]{%
@@ -1969,7 +2625,7 @@
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,%
@@ -1998,7 +2654,7 @@
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)
diff --git a/Master/texmf-dist/tex/lualatex/letgut/letgut.cbx b/Master/texmf-dist/tex/lualatex/letgut/letgut.cbx
index 852f60e2a55..876ee67dca3 100644
--- a/Master/texmf-dist/tex/lualatex/letgut/letgut.cbx
+++ b/Master/texmf-dist/tex/lualatex/letgut/letgut.cbx
@@ -1,4 +1,4 @@
-\ProvidesFile{letgut.cbx}[2022-10-03 v0.9.4 letgut base citation style]
+\ProvidesFile{letgut.cbx}[2023-01-13 v0.9.5 letgut base citation style]
\RequireCitationStyle{numeric}
\DeclareFieldFormat[bookreview]{title}{\textbf{\emph{#1}}}
\renewbibmacro*{title}{%
diff --git a/Master/texmf-dist/tex/lualatex/letgut/letgut.cls b/Master/texmf-dist/tex/lualatex/letgut/letgut.cls
index 319dfc2badd..21f1685864b 100644
--- a/Master/texmf-dist/tex/lualatex/letgut/letgut.cls
+++ b/Master/texmf-dist/tex/lualatex/letgut/letgut.cls
@@ -11,7 +11,7 @@
% | 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
@@ -32,7 +32,11 @@
\NeedsTeXFormat{LaTeX2e}[2020-10-01]
\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
}
@@ -44,8 +48,8 @@
}
\ExplSyntaxOff
\ProvidesExplClass{letgut}
-{2022-10-03}
-{0.9.4}
+{2023-01-13}
+{0.9.5}
{
Class for the newsletter “The GUTenberg Letter”
}
@@ -102,6 +106,9 @@
\bool_new:N \g__letgut_paper_bool
\bool_new:N \l__letgut_in_footnote_bool
\bool_new:N \g__letgut_draft_bool
+\bool_new:N \g__letgut_included_files_attached_bool
+\bool_new:N \g__letgut_acronyms_file_attached_bool
+\bool_new:N \g__letgut_lstlanguage_file_attached_bool
\dim_const:Nn \c__letgut_textheight_dim { 25cm }
\dim_const:Nn \c__letgut_textwidth_dim { 14cm }
\dim_const:Nn \c__letgut_lmargin_dim { 5cm }
@@ -299,12 +306,15 @@
\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
\clist_new:N \g__letgut_pagecolor_clist
\clist_const:Nn \c__letgut_default_pagecolor_screen_clist
{1.0, 0.98, 0.94}
\clist_const:Nn \c__letgut_default_pagecolor_paper_clist
{1, 1, 1}
\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
\RequirePackage{l3keys2e}
\int_new:N \g__letgut_date_month_int
\int_new:N \g__letgut_date_year_int
@@ -412,7 +422,9 @@
\RequirePackage{etoc}
\RequirePackage{enumitem}
\RequirePackage{titlesec}
+\RequirePackage[table]{xcolor}
\RequirePackage{fourier-orns}
+\RequirePackage{pgfornament}
\RequirePackage[section,above]{placeins}
\RequirePackage{fancyvrb}
\RequirePackage{booktabs}
@@ -420,9 +432,10 @@
\RequirePackage[fleqn]{mathtools}
\RequirePackage{accsupp}
\RequirePackage{siunitx}
-\RequirePackage{hologo}
-\RequirePackage[table]{xcolor}
+\RequirePackage{bxtexlogo}
\RequirePackage{tcolorbox}
+\RequirePackage[group=false,subpreambles,sort]{standalone}
+\RequirePackage[icon=Paperclip]{attachfile2}
\RequirePackage{refcount}
\RequirePackage{ninecolors}
\RequirePackage{tabularray}
@@ -437,6 +450,7 @@
citestyle=letgut
]{biblatex}
\RequirePackage{acro}
+\RequirePackage{xurl}
\AddToHook{begindocument/before}{
\RequirePackage{hyperref}
\RequirePackage[all]{hypcap}
@@ -477,29 +491,28 @@
\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}}
+ }
}
\defbibheading{title}[\refname]{%
\title{#1}}
\defbibheading{subtitle}[\refname]{%
\subtitle{#1}}
\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
}
-\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}
+\ProvideDocumentCommand \acroendfootnote {} {.}
+\RemoveFromHook{begindocument}[standalone]
+\ExpandArgs{nv}\AddToHook{begindocument/before}{l__hook_return_tl}
\AddToHook{begindocument/before}{
\bool_if:NTF \g__letgut_paper_bool {
\hypersetup{hidelinks}
@@ -510,16 +523,17 @@
}%
}
\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}
% % \bool_if:NF \g__letgut_paper_bool {
\bool_if:NT \g__letgut_draft_bool {
% \RequirePackage[All]{lua-typo}
@@ -563,7 +577,10 @@
\c__letgut_default_pagecolor_screen_clist
\keys_define:nn { letgut }
{
- , for-readers .bool_gset:N = \g__letgut_for_readers_bool
+ , for-readers .code:n = {
+ \bool_gset_true:N \g__letgut_for_readers_bool
+ \bool_gset_false:N \g__letgut_included_files_attached_bool
+ }
, for-readers .initial:n = { true }
, for-readers .default:n = { true }
, for-authors .bool_gset_inverse:N = \g__letgut_for_readers_bool
@@ -576,6 +593,7 @@
\pagecolor[rgb]{\c__letgut_default_pagecolor_paper_clist}
\clist_set_eq:NN \g__letgut_pagecolor_clist
\c__letgut_default_pagecolor_paper_clist
+ \bool_gset_false:N \g__letgut_included_files_attached_bool
}
, screen .bool_gset_inverse:N = \g__letgut_paper_bool
, number .int_gset:N = \g__letgut_number_int
@@ -610,6 +628,7 @@
, informations .initial:n = { true }
, detailedtoc .bool_gset:N = \g__letgut_detailedtoc_bool
, detailedtoc .initial:n = { false }
+ , source-files-attached .bool_gset:N = \g__letgut_force_included_files_attached_bool
}
\ProcessKeysOptions { letgut }
\definecolor{letgut_pagecolor}{rgb}{\g__letgut_pagecolor_clist}
@@ -691,6 +710,122 @@
\end{tblr}
\skip_vertical:N \c_zero_dim
}
+\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{}};
+ },
+}
+\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
+ }
+ }
+}
\tl_gclear:N \@title
\AddToHook{begindocument/before}
{
@@ -722,7 +857,7 @@
{
\begin{picture}(0,0)
\put(-2cm,-25.275cm){
- \includegraphics[scale=0.96]{
+ \includegraphics*[scale=0.96]{
\c__letgut_banner_file_tl.pdf
}
}
@@ -836,15 +971,13 @@
}
\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}
% \if\count{\pagenumber}>1
% \else
% \newpage
@@ -880,21 +1013,23 @@
}
\AddToHook{enddocument}
{
+ % \clearpage
+ % \printacronyms[heading=title,display=used]
\bool_if:NT \g__letgut_informations_bool {
\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
}
}{
@@ -908,16 +1043,25 @@
}
}
\setcounter{secnumdepth}{-10}
+% \AddToHook{cmd/hologo/before}{\protect}
+\NewCommandCopy{\__letgut_old_hologo}{\hologo}
+\RenewDocumentCommand {\hologo} { m }{
+ \protect\__letgut_old_hologo { #1 }
+}
+\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 }
\AddToHook{begindocument/before}{%
\titleclass{\title}{straight}[\part]
\titleformat{\title}{
\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}
@@ -1038,24 +1182,24 @@
}
\NewDocumentCommand {\francophony} { } {
\raisebox{-1.5pt}{
- \includegraphics[width=\f@size pt]{
+ \includegraphics*[width=\f@size pt]{
letgut-francophony-icon
}
}
}
-\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 }
}
}
\cs_new_protected:Npn \__letgut_titlecase_name:n #1
@@ -1091,10 +1235,18 @@
(#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
@@ -1123,6 +1275,32 @@
\c_space_tl \str_use:N \& \c_space_tl
} { ,~ } { \c_space_tl \str_use:N \& \c_space_tl }
}
+\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}
+}
\NewDocumentCommand {\separator} { } {
\par
\skip_vertical:N 1em
@@ -1165,11 +1343,13 @@
}
\cs_new_protected:Nn \__letgut_software:nn
{
+\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
@@ -1205,62 +1385,68 @@
\__letgut_software:nn {#2}{#3}
}
\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
- }
+ \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
+}
\cs_new_protected:Npn \__letgut_get_lettre_number:n #1
{
\tl_if_empty:nTF {#1}{
@@ -1291,7 +1477,7 @@
\tl_if_empty:nF {#1}
{
#3
- \c_space_tl
+ \nobreakspace
\__letgut_get_lettre_number:n {#1}
}
}
@@ -1626,6 +1812,9 @@ title .value_required:n = true,
\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}}
+ }
}
\DeclareRobustCommand*\LKey[1]{%
\ifx#10\biolinumKeyGlyph{zero}% % spurious space removed 2016/06/24
@@ -1668,7 +1857,7 @@ title .value_required:n = true,
\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}
-\hyphenation{GUT-enberg}
+\hyphenation{GUTen-berg}
\cs_new_protected:Npn \__letgut_issn:
{
\bool_if:NTF \g__letgut_paper_bool {
@@ -1701,6 +1890,160 @@ title .value_required:n = true,
\__letgut_meta:nn {#1}{#2}
}
}
+\cs_new_protected:Npn \__letgut_input_article:nn #1 #2
+{
+ \lstset{ style=__letgut_reset_listings_styles }
+ \acresetall%
+ \input{#2}%
+ % \bool_show:N \g__letgut_included_files_attached_bool
+ \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 }
+}
+\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}
+}
+\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}
+}
+\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
+ }
+}
+\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
+ }
+}
+\AddToHook{begindocument/before}{
+ \bool_if:NTF \g__letgut_force_included_files_attached_bool {
+ \bool_gset_true:N \g__letgut_included_files_attached_bool
+ }{
+ \bool_gset_false:N \g__letgut_included_files_attached_bool
+ }
+}
\lstdefinestyle{__letgut_reset_listings_styles}{
basicstyle=\ttfamily,
breaklines,
@@ -1727,17 +2070,8 @@ numberstyle=\scriptsize\ttfamily
aboveskip={0\p@ \@plus 6\p@},
belowskip={0\p@ \@plus 6\p@},
}
-\lstMakeShortInline[breaklines=false]⅛
+\lstMakeShortInline[breaklines=false]™
\lstset{ style=__letgut_reset_listings_styles }
-\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 }
-}
\colorlet{__letgut_texcs}{blue}
\colorlet{__letgut_comment}{gray}
\colorlet{__letgut_argument_specification_separator}{red}
@@ -1749,13 +2083,13 @@ aboveskip={0\p@ \@plus 6\p@},
\colorlet{__letgut_optional_argument}{__letgut_key}
\colorlet{__letgut_math}{green!50!black}
\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,
}
\lstdefinestyle{__letgut_latex_listings_style}{
language=TeX,%
@@ -1764,7 +2098,7 @@ aboveskip={0\p@ \@plus 6\p@},
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,
@@ -1791,7 +2125,7 @@ literate=*%
\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}
-\tcbuselibrary{listings,xparse,breakable,skins,hooks}
+\tcbuselibrary{listings,breakable,skins,hooks,documentation}
\tcbset{
breakable,
sharp~ corners,
@@ -2216,13 +2550,14 @@ overlay={
^^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
\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
}
\ExecuteBibliographyOptions[bookreview]{skipbib,skiplab}
diff --git a/Master/texmf-dist/tex/lualatex/letgut/letgut.dbx b/Master/texmf-dist/tex/lualatex/letgut/letgut.dbx
index e2844f9c9ad..85c26f3a31d 100644
--- a/Master/texmf-dist/tex/lualatex/letgut/letgut.dbx
+++ b/Master/texmf-dist/tex/lualatex/letgut/letgut.dbx
@@ -1,4 +1,4 @@
-\ProvidesFile{letgut.dbx}[2022-10-03 v0.9.4 letgut data model macros]
+\ProvidesFile{letgut.dbx}[2023-01-13 v0.9.5 letgut data model macros]
\DeclareBibliographyDriver{bookreview}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
diff --git a/Master/texmf-dist/tex/lualatex/letgut/letgut.lbx b/Master/texmf-dist/tex/lualatex/letgut/letgut.lbx
index 911ebde868e..05c107b6dab 100644
--- a/Master/texmf-dist/tex/lualatex/letgut/letgut.lbx
+++ b/Master/texmf-dist/tex/lualatex/letgut/letgut.lbx
@@ -1,4 +1,4 @@
-\ProvidesFile{letgut.lbx}[2022-10-03 v0.9.4 letgut localization]
+\ProvidesFile{letgut.lbx}[2023-01-13 v0.9.5 letgut localization]
\InheritBibliographyExtras{french}
\DeclareBibliographyStrings{
inherit = {french},