From 9f85c3a6308bbec1b029bfd8628b52666bc0a398 Mon Sep 17 00:00:00 2001 From: Max Chernoff Date: Tue, 8 Oct 2024 01:22:18 +0000 Subject: letgut (7oct24) git-svn-id: svn://tug.org/texlive/trunk@72490 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md | 15 ++ Master/texmf-dist/doc/lualatex/letgut/README.md | 2 +- .../doc/lualatex/letgut/letgut-banner-code.pdf | Bin 142998 -> 145371 bytes .../doc/lualatex/letgut/letgut-banner-code.tex | 134 +++++++------- .../texmf-dist/doc/lualatex/letgut/letgut-code.pdf | Bin 786619 -> 792689 bytes .../texmf-dist/doc/lualatex/letgut/letgut-code.tex | 202 +++++++++++---------- Master/texmf-dist/doc/lualatex/letgut/letgut.pdf | Bin 388091 -> 387550 bytes Master/texmf-dist/doc/lualatex/letgut/letgut.tex | 79 ++++---- 8 files changed, 226 insertions(+), 206 deletions(-) (limited to 'Master/texmf-dist/doc/lualatex/letgut') diff --git a/Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md b/Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md index 1da8ce909ec..ab0c9783a3c 100644 --- a/Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md +++ b/Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md @@ -7,6 +7,21 @@ Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [0.9.10] - 2024-10-07 + +### Changed +- Multiple rebuses handled +- Paper clips (links to source files of the articles) not in the magin anymore and separated by spaces +- Watermark letter and scale can now be specified + +### Fixed +- Wrong output with \terminal +- Title of publication in small capitals +- Options of `letgut-banner` never taken in account +- Not all included graphics attached to the PDF +- Variables wrongly local or not reset +- `\citeauthor` displayed family name in small caps + ## [0.9.9] - 2024-03-07 ### Fixed diff --git a/Master/texmf-dist/doc/lualatex/letgut/README.md b/Master/texmf-dist/doc/lualatex/letgut/README.md index 1dbce82b4a8..cc66ceb67fb 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 ------- -2024-03-07 v0.9.9 +2024-10-07 v0.9.10 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 3c9499367da..ed358cda688 100644 Binary files a/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.pdf and b/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.pdf 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 011006ba937..c90038af05b 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 2024-03-07 Thu 14:19 +% Created 2024-10-07 Mon 12:16 % Intended LaTeX compiler: lualatex \documentclass{letgut} \setmainfont{KpRoman} @@ -13,20 +13,19 @@ \section{Readme file} -\label{sec:org4c9ba67} - +\label{Readmefile-dlkgxqt0fck0} \begin{lstlisting} -------:| --------------------------------------------------- letgut:| Package for the banner of the newsletter | "La Lettre de GUTenberg" Author:| Association GUTenberg - E-mail:| secretariat@gutenberg.eu.org + E-mail:| secretariat@gutenberg-asso.fr License:| Released under the LaTeX Project Public License | v1.3c or later See:| http://www.latex-project.org/lppl.txt -Copyright (C) 1994-2022 by Association GUTenberg - +Copyright (C) 1994-2024 by Association GUTenberg + This work may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either @@ -40,11 +39,9 @@ by Association GUTenberg. \end{lstlisting} \section{Implementation} -\label{sec:org4c5e60d} - +\label{Implementation-ckogxqt0fck0} \subsection{Identification} -\label{sec:org09b0cd2} - +\label{ImplementationIdentification-gwqgxqt0fck0} \begin{lstlisting} This is file `letgut-banner.sty, generated with the Emacs Org-babel utility. @@ -65,23 +62,15 @@ Now, we can announce the package name and its version: \begin{lstlisting} \ProvidesExplPackage{letgut-banner} -{2022-03-17} -{0.9} +{2024-10-07} +{0.10} { Package for the banner of the newsletter "La Lettre de GUTenberg" } \end{lstlisting} \subsection{Packages loaded} -\label{sec:org447090b} - -In order to provide class options, we load the \package{l3keys2e} which provides -\LaTeXe{} option processing using \LaTeX3 keys: - -\begin{lstlisting} -\RequirePackage{l3keys2e} -\end{lstlisting} - +\label{ImplementationPackagesloaded-etvgxqt0fck0} Till the Lua-based color will be added to the core \package{l3color} approach, we have to rely on \package{xcolor} @@ -96,35 +85,14 @@ reader who wants to copy the interesting text be able to select it (see below). \RequirePackage{accsupp} \end{lstlisting} -What follows has to be done at this end of the preamble, otherwise the font set -with \lstinline+\setmainfont+ in the preamble isn't taken in account in the banner. - -We define an option for the color of the text in the "L" (that has to be the -same as the page color of the document). - -\begin{lstlisting} -\keys_define:nn { letgut-banner } -{ - , pagecolor .clist_gset:N = \g__letgutbanner_pagecolor_clist - , pagecolor .initial:n = { 1,1,1 } -} -\ProcessKeysOptions { letgut-banner } -\end{lstlisting} - -\begin{lstlisting} -\AddToHook{begindocument}{ -\end{lstlisting} - \begin{lstlisting} \cs_generate_variant:Nn \color_fill:nn { nV } \end{lstlisting} \subsection{Declarations} -\label{sec:orgbda0ae2} - +\label{ImplementationDeclarations-u0ygxqt0fck0} \subsubsection{Dimensions} -\label{sec:org5711d86} - +\label{ImplementationDeclarationsDimensions-9t0hxqt0fck0} \begin{lstlisting} \dim_new:N \g__letgutbanner_area_height_dim \dim_new:N \g__letgutbanner_La_height_dim @@ -138,6 +106,7 @@ same as the page color of the document). \dim_if_exist:NF \g__letgutbanner_first_page_shrink_dim { \dim_new:N \g__letgutbanner_first_page_shrink_dim } +\dim_new:N \g__letgutbanner_textwidth_dim \end{lstlisting} \begin{itemize} @@ -155,11 +124,9 @@ values. For this, we first generate a variant of \lstinline+\dim_const:Nn+ (see { 25cm } } \dim_if_exist:NTF \c__letgut_textwidth_dim { - \dim_const:NV \c__letgutbanner_textwidth_dim - \c__letgut_textwidth_dim + \dim_gset_eq:NN \g__letgutbanner_textwidth_dim \c__letgut_textwidth_dim }{ - \dim_const:Nn \c__letgutbanner_textwidth_dim - { 14cm } + \dim_gset:Nn \g__letgutbanner_textwidth_dim { 14cm } } \dim_if_exist:NTF \c__letgut_lmargin_dim { \dim_const:NV \c__letgutbanner_lmargin_dim @@ -237,7 +204,7 @@ the left margin minus half the difference between the width of the left margin and the width (\(d\)) of the "L": \(=w+l-(l-d)/2=w+(l+d)/2\)). \begin{lstlisting} \dim_const:Nn \c__letgutbanner_banner_width_dim { - \c__letgutbanner_textwidth_dim + \g__letgutbanner_textwidth_dim + ( \c__letgutbanner_banner_thickness_dim @@ -262,7 +229,7 @@ padding because this text will be stuck to its left "margin"). \begin{lstlisting} \dim_const:Nn \c__letgutbanner_banner_horizontal_contents_width_dim { - \c__letgutbanner_textwidth_dim + \g__letgutbanner_textwidth_dim - ( \c__letgutbanner_banner_thickness_dim - @@ -276,8 +243,7 @@ padding because this text will be stuck to its left "margin"). \end{itemize} \subsubsection{Boxes} -\label{sec:orge5b5c6b} - +\label{ImplementationDeclarationsBoxes-s83hxqt0fck0} New boxes, for each of the letters in the word "LETTRE" (!), and then for the rest of the content listed in the banner. \begin{lstlisting} @@ -292,8 +258,7 @@ rest of the content listed in the banner. \end{lstlisting} \subsubsection{Floating point numbers} -\label{sec:org61842b5} - +\label{ImplementationDeclarationsFloatingpointnumbers-e75hxqt0fck0} \begin{itemize} \item Minimum percentage of the common height of the letters of the word "LETTRE" that their line spacing must represent. @@ -309,14 +274,13 @@ that their line spacing must represent. \fp_const:Nn \c__letgutbanner_leading_La_factor_fp { 1.5 } \end{lstlisting} -\subsection{Application des dimensions de la page} -\label{sec:orgb3e9382} - +\subsection{Applying the page dimensions} +\label{ImplementationApplyingthepagedimensions-187hxqt0fck0} \begin{lstlisting} \geometry{ asymmetric, textheight = \c__letgutbanner_textheight_dim, - textwidth = \c__letgutbanner_textwidth_dim, + textwidth = \g__letgutbanner_textwidth_dim, lmargin = \c__letgutbanner_lmargin_dim, tmargin = \c__letgutbanner_tmargin_dim, head = \c__letgutbanner_head_dim, @@ -328,7 +292,7 @@ that their line spacing must represent. \end{lstlisting} \subsection{Filling of the boxes} -\label{sec:orgdd18dd8} +\label{ImplementationFillingoftheboxes-q49hxqt0fck0} \begin{lstlisting} \hbox_gset:Nn \g__letgutbanner_L_box { \textbf{L} } \hbox_gset:Nn \g__letgutbanner_E_box { \textbf{E} } @@ -341,9 +305,40 @@ that their line spacing must represent. \hbox_gset:Nn \g__letgutbanner_g_box { \textbf{g} } \end{lstlisting} -\subsection{Computations} -\label{sec:orgb1ea800} +\subsection{Options of the package} +\label{ImplementationOptionsofthepackage-21ri36v0fck0} +We define: + +\begin{itemize} +\item an option for the color of the text in the "L" (that has to be the same as the +page color of the document), +\item an option that let us choose another letter than “g” as the watermark letter. +\end{itemize} + +\begin{lstlisting} +\keys_define:nn { letgut-banner } +{ + , pagecolor .clist_gset:N = \g__letgutbanner_pagecolor_clist + , pagecolor .initial:n = { 1,1,1 } + , watermark~ letter .code:n = { + \hbox_gset:Nn \g__letgutbanner_g_box { \textbf{#1} } + } + , watermark~ scale .tl_gset:N = \g__letgutbanner_watermark_scale_tl + , watermark~ scale .initial:n = 1 +} +\ProcessKeyOptions [ letgut-banner ] +\end{lstlisting} +What follows has to be done at this end of the preamble, otherwise the font set +with \lstinline+\setmainfont+ in the preamble isn't taken in account in the banner. + +\begin{lstlisting} +\AddToHook{begindocument}{ +\end{lstlisting} + + +\subsection{Computations} +\label{ImplementationComputations-r7bhxqt0fck0} Determination of the widths of each of the letter boxes of the word "LETTRE". \begin{lstlisting} \dim_const:Nn \c__letgutbanner_L_width_dim { @@ -621,7 +616,11 @@ as well. Resize the box containing "g" to the width of the text. \begin{lstlisting} \box_gresize_to_wd:Nn \g__letgutbanner_g_box { - \c__letgutbanner_textwidth_dim + \fp_to_dim:n { + \g__letgutbanner_watermark_scale_tl + * + \g__letgutbanner_textwidth_dim + } } \end{lstlisting} Calculates the size by which the height of the text box on the 1st page must be @@ -649,6 +648,7 @@ the page: .5\baselineskip } \end{lstlisting} + Automatic addition on the 1st page (only) of the banner. \begin{lstlisting} \AddToHookNext{shipout/background}{ @@ -750,7 +750,13 @@ chosen for the page background. % \color_fill:n {black!10} \color{ black!10 } \put( - .5\c__letgutbanner_lmargin_dim+.5\c__letgutbanner_banner_thickness_dim + .5\c__letgutbanner_lmargin_dim + + + .5\c__letgutbanner_banner_thickness_dim + + + \fp_to_dim:n { + (1-\g__letgutbanner_watermark_scale_tl)/2*\g__letgutbanner_textwidth_dim + } , .5\paperheight + @@ -791,5 +797,5 @@ textheight of the first page of the height of the horizontal bar of the "L". \end{lstlisting} \section{Example file (\texttt{letgut-banner-example.tex})} -\label{sec:orgaf6d8ec} +\label{Examplefileletgutbannerexampletex-heehxqt0fck0} \end{document} diff --git a/Master/texmf-dist/doc/lualatex/letgut/letgut-code.pdf b/Master/texmf-dist/doc/lualatex/letgut/letgut-code.pdf index fb88b947ba3..7c669f2a948 100644 Binary files a/Master/texmf-dist/doc/lualatex/letgut/letgut-code.pdf and b/Master/texmf-dist/doc/lualatex/letgut/letgut-code.pdf differ diff --git a/Master/texmf-dist/doc/lualatex/letgut/letgut-code.tex b/Master/texmf-dist/doc/lualatex/letgut/letgut-code.tex index 24a541ffb8d..469c9218df5 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 2024-03-07 Thu 14:19 +% Created 2024-10-07 Mon 12:16 % Intended LaTeX compiler: lualatex \documentclass{letgut} \setmainfont{KpRoman} @@ -24,13 +24,13 @@ % -------:| ---------------------------------------------------- % letgut:| Class for the newsletter “La Lettre GUTenberg” % Author:| Association GUTenberg -% E-mail:| secretariat@gutenberg.eu.org +% E-mail:| secretariat@gutenberg-asso.fr % License:| Released under the LaTeX Project Public License % | v1.3c or later % See:| http://www.latex-project.org/lppl.txt % % Copyright (C) 1994-2024 by Association GUTenberg -% +% % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License (LPPL), either @@ -68,15 +68,22 @@ 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_Lettre_plain_tl { Lettre } +\tl_const:Nn \c__letgut_Lettre_tl { \emph{ \c__letgut_Lettre_plain_tl } } \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_plain_tl { + \c__letgut_Lettre_plain_tl~\c_space_tl \c__letgut_gutenberg_tl +} \tl_const:Nn \c__letgut_Lettre_gutenberg_tl { \c__letgut_Lettre_tl~\c_space_tl \c__letgut_gutenberg_tl } +\tl_const:Nn \c__letgut_la_lettre_gutenberg_plain_tl { + la~ \c__letgut_Lettre_gutenberg_plain_tl +} \tl_const:Nn \c__letgut_la_lettre_gutenberg_tl { la~ \c__letgut_Lettre_gutenberg_tl } @@ -90,8 +97,8 @@ Now, we can announce the class name and its version: \begin{lstlisting} \ProvidesExplClass{letgut} -{2024-03-07} -{0.9.9} +{2024-10-07} +{0.9.10} { Class for the newsletter “The GUTenberg Letter” } @@ -1144,7 +1151,10 @@ We now define the options of the class: \item \lstinline+date+ for the date of the issue, either empty (hence the current (month) date) or at the format \lstinline+YYYY-MM+ or as free input, \item \lstinline+pagecolor+ (relevant only with the (default) \lstinline+screen+ load time option) for -a color of the page other than the default one, +a color of the page other than the default one (used behind the scene by the +\lstinline+letgut-banner+ package), +\item \lstinline+watermark letter+ for another letter than the “g” in watermark, +\item \lstinline+watermark scale+ for the case the letter in watermark is too big, \item \lstinline+allcolorslinks+ for the color of (all) the links, \item \lstinline+membership-reminder+ that typesets a membership reminder on the first page, \item \lstinline+editorial+ depending on the editorial is wanted or not, @@ -1154,7 +1164,7 @@ subparagraphs) detailed or not. \end{itemize} \begin{lstlisting} -\DeclareKeys[ letgut ] +\keys_define:nn { letgut } { , for-readers .bool_gset:N = \g__letgut_for_readers_bool , for-readers .initial:n = { true } @@ -1191,6 +1201,10 @@ subparagraphs) detailed or not. } } } + , watermark~ letter .tl_gset:N = \g__letgut_watermark_letter_tl + , watermark~ letter .initial:n = g + , watermark~ scale .tl_gset:N = \g__letgut_watermark_scale_tl + , watermark~ scale .initial:n = 1 , allcolorslinks .code:n = { \colorlet{letgut_allcolors_links}{#1}} , allcolorslinks .initial:V @@ -1253,7 +1267,7 @@ in the header is made a little bit bigger. \begin{lstlisting} \fancyhf{} \fancyhead[RO,LE]{\thepage} -\fancyhead[RE,LO]{\g__letgut_mark_tl} +\fancyhead[RE,LO]{\scshape \g__letgut_mark_tl} \end{lstlisting} \item The headers are left offset \begin{lstlisting} @@ -1419,6 +1433,7 @@ The table of contents is customized: \subsection{Rebus} \label{ImplementationRebus-osw8m3f0cpj0} \begin{lstlisting} +\int_new:N \g__letgut_rebus_int \NewDocumentCommand{\solution}{}{\tcblower} \NewDocumentCommand{\displaysolutions}{}{% \tcbstoprecording\tcbinputrecords% @@ -1453,25 +1468,27 @@ The table of contents is customized: }, } } -\NewTColorBox[auto~ counter]{rebus}{+!O{}}{% +\NewTColorBox{rebus}{+!O{}}{% + before~ title~ pre = {\int_gincr:N \g__letgut_rebus_int}, rebus~ style, fonttitle=\bfseries, title={Rébus}, - label={rebus@\thetcbcounter}, - after~ upper={\vpageref[ci-dessous]{solution@\thetcbcounter}}, + label={rebus@\int_use:N\g__letgut_rebus_int}, + after~ upper={\vpageref[ci-dessous]{solution@\int_use:N\g__letgut_rebus_int}}, after~ upper~ pre={ \par\bigskip\hfill\scriptsize\itshape Solution\c_space_tl }, lowerbox=ignored, - savelowerto=rebus-\thetcbcounter.tex, - record={\string\rebussolution*[\thetcbcounter][][]}, + savelowerto=rebus-\int_use:N\g__letgut_rebus_int.tex, + record={\string\rebussolution*[\int_use:N\g__letgut_rebus_int][][]}, #1 } \NewDocumentCommand{\rebussolution}{s +o o O{}}{% \IfValueTF{#2}{ \begin{tcolorbox}[ rebus~ style, + label=solution@\int_use:N\g__letgut_rebus_int, halign=justify, before~ title={\lefthand{}~Solution~ du~ rébus\c_space_tl}, title={ @@ -1543,7 +1560,7 @@ The number is added only if it is } \str_if_empty:NTF \g__letgut_@title_str { \tl_gset:Nn \g__letgut_mark_tl { - \textit{\c__letgut_La_lettre_gutenberg_tl} + \c__letgut_la_lettre_gutenberg_plain_tl } }{ \tl_gset:Nn \g__letgut_mark_tl { @@ -1581,7 +1598,7 @@ Lettre. { \begin{picture}(0,0) \put(-2cm,-25.275cm){ - \includegraphics*[scale=0.96]{ + \__letgut_orig_includegraphics*[scale=0.96]{ \c__letgut_banner_file_tl.pdf } } @@ -1597,9 +1614,11 @@ following code has to be postponed after the former (hence here \begin{lstlisting} \msg_term:nn{letgut}{Banner~file~not~provided} - \RequirePackage[pagecolor={\g__letgut_pagecolor_clist}]{ - letgut-banner - } + \RequirePackage[ + , pagecolor = { \g__letgut_pagecolor_clist } + , watermark~ letter = { \g__letgut_watermark_letter_tl } + , watermark~ scale = { \g__letgut_watermark_scale_tl } + ]{letgut-banner} } \end{lstlisting} @@ -2093,7 +2112,7 @@ items are correct. \begin{lstlisting} \NewDocumentCommand {\francophony} { } { \raisebox{-1.5pt}{ - \includegraphics*[width=\f@size pt]{ + \__letgut_orig_includegraphics*[width=\f@size pt]{ letgut-francophony-icon } } @@ -2868,7 +2887,11 @@ full name of the authors. \citeauthor } \RenewDocumentCommand {\citeauthor} { O{} O{} m } { - \AtNextCite{\DeclareNameAlias{labelname}{given-family}} + \AtNextCite{ + \DeclareNameAlias{labelname}{given-family} + \protected\def\mkbibnamefamily#1{% + \textnohyphenation{#1}}% + } \__letgut_old_citeauthor[#1][#2]{#3} } \end{lstlisting} @@ -2876,7 +2899,7 @@ full name of the authors. \subsection{Book reviews} \label{ImplementationBookreviews-ekzg55h0jlj0} \begin{lstlisting} -\tl_new:N \g__letgut_bookreview_frontcover_tl +\tl_new:N \l__letgut_bookreview_frontcover_tl \tl_new:N \g__letgut_bookreview_bibkey_tl \end{lstlisting} The keys options are created. @@ -2884,7 +2907,7 @@ The keys options are created. \keys_define:nn { letgut/bookreview } { title .tl_gset:N = \g__letgut_bookreview_title_tl, - frontcover .tl_gset:N = \g__letgut_bookreview_frontcover_tl, + frontcover .tl_set:N = \l__letgut_bookreview_frontcover_tl, bibkey .tl_gset:N = \g__letgut_bookreview_bibkey_tl, reviewer .tl_gset:N = \g__letgut_bookreview_reviewer_tl, price .tl_gset:N = \g__letgut_bookreview_price_tl, @@ -2907,9 +2930,10 @@ We create the new environment for the book reviews. \cs_generate_variant:Nn \msg_error:nnnn { nnVV } \NewDocumentEnvironment{bookreview}{ m } { + \tl_gclear:N \g__letgut_bookreview_price_tl \keys_set:nn { letgut/bookreview } { #1 } \section{\g__letgut_bookreview_title_tl} - \tl_if_empty:NTF \g__letgut_bookreview_frontcover_tl { + \tl_if_empty:NTF \l__letgut_bookreview_frontcover_tl { \msg_warning:nnV{letgut}{frontcover-missing}{ \g__letgut_bookreview_title_tl } @@ -2921,7 +2945,7 @@ extensions of the \lstinline+graphicx+ package. \begin{lstlisting} \clist_map_inline:Nn \Gin@extensions { - \file_if_exist:nT{\g__letgut_bookreview_frontcover_tl##1}{ + \file_if_exist:nT{\l__letgut_bookreview_frontcover_tl##1}{ \bool_set_true:N \l__letgut_tmpa_bool \clist_map_break: } @@ -2932,8 +2956,8 @@ extensions of the \lstinline+graphicx+ package. % \raggedleft \raisebox{-\totalheight}{ \fbox{ - \includegraphics[width=-\c__letgut_title_hoffset_dim]{ - \g__letgut_bookreview_frontcover_tl + \includegraphics*[width=-\c__letgut_title_hoffset_dim]{ + \l__letgut_bookreview_frontcover_tl } } } @@ -2943,7 +2967,7 @@ extensions of the \lstinline+graphicx+ package. {letgut} {frontcover-file-not-found} {\g__letgut_bookreview_title_tl} - {\g__letgut_bookreview_frontcover_tl} + {\l__letgut_bookreview_frontcover_tl} } } \noindent @@ -3094,9 +3118,9 @@ the current directory and is non empty. This will be applied to both the \begin{lstlisting} \cs_new_protected:Npn \__letgut_attach_non_empty_existing_file:n #1 { - \file_get_size:nN {./#1} \tmpa_tl - \quark_if_no_value:NF \tmpa_tl { - \tl_if_eq:NnF \tmpa_tl {0} { + \file_get_size:nN {./#1.tex} \l__letgut_tmpa_tl + \quark_if_no_value:NF \l__letgut_tmpa_tl { + \tl_if_eq:NnF \l__letgut_tmpa_tl {0} { \seq_gput_left:Nn \g__letgut_included_files_seq { \attachfile[ description={Source~ nécessaire~ (fichier~ `#1.tex`)}, @@ -3114,7 +3138,9 @@ the current directory and is non empty. This will be applied to both the \FloatBarrier \lstset{ style=__letgut_reset_listings_styles } \acresetall% - \input{#2}% + \begin{refsection} + \input{#2}% + \end{refsection} \bool_if:NT \g__letgut_included_files_attached_bool { \IfBooleanF {#1}{ \__letgut_attach_non_empty_existing_file:n { @@ -3140,7 +3166,7 @@ the current directory and is non empty. This will be applied to both the } } \seq_remove_duplicates:N \g__letgut_included_files_seq - \marginpar{\seq_use:Nn \g__letgut_included_files_seq { } } + \seq_use:Nn \g__letgut_included_files_seq { \c_space_tl } \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 @@ -3162,7 +3188,7 @@ to the \pdf{} (if desired, otherwise, use the starred version). \clist_set:Nx \l__letgut_tmpa_clist {\Gin@extensions} \cs_new_protected:Npn \__letgut_includegraphics:nnn #1 #2 #3 { - \file_if_exist:nTF {#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 { @@ -3172,16 +3198,15 @@ to the \pdf{} (if desired, otherwise, use the starred version). présent~ article~ (fichier~ `#3`) }, mimetype=image - ] - {#3} + ]{./#3} } } } - \__letgut_orig_includegraphics[#2]{#3} + \__letgut_orig_includegraphics[#2]{./#3} }{ \bool_gset_false:N \g__letgut_tmpa_bool \clist_map_inline:Nn \l__letgut_tmpa_clist {% - \file_if_exist:nTF {#3##1} { + \file_if_exist:nT {./#3##1} { \clist_map_break:n { \bool_if:NT \g__letgut_included_files_attached_bool { \IfBooleanF {#1}{ @@ -3189,8 +3214,7 @@ to the \pdf{} (if desired, otherwise, use the starred version). \attachfile[ description={Fichier~ image~ inclus~ dans~ le~ présent~ article~ (fichier~ `#3##1`)}, mimetype=image/##1 - ] - {#3##1} + ]{./#3##1} } } } @@ -3199,11 +3223,11 @@ to the \pdf{} (if desired, otherwise, use the starred version). } } } - \bool_if:NF \g__letgut_tmpa_bool { - \@latex@error{File~ `#3'~ not~ found}% - {I~ could~ not~ locate~ the~ file~ with~ any~ of~ these~ extensions:^^J% - \clist_use:Nn \l__letgut_tmpa_clist { ~ }^^J\@ehc}% - } + % \bool_if:NF \g__letgut_tmpa_bool { + % \@latex@error{File~ `#3'~ not~ found}% + % {I~ could~ not~ locate~ the~ file~ with~ any~ of~ these~ extensions:^^J% + % \clist_use:Nn \l__letgut_tmpa_clist { ~ }^^J\@ehc}% + % } } } \RenewDocumentCommand {\includegraphics} {s O{} m } { @@ -3927,41 +3951,18 @@ will be displayed. style=__letgut_terminal_listings_style, language=terminal, }, - every~ listing~ line={% - \textcolor{__letgut_terminal_prompt}{% - \ttfamily% - \bfseries% - \__letgut_unselectable:n {#1\c_space_tl} - } - }, + fontupper=\ttfamily, + fontlower=\ttfamily, }, } \end{lstlisting} -We define now the command +We now define the command. \begin{lstlisting} \cs_new_protected:Npn \__letgut_terminal:nnnn #1 #2 #3 #4 { \bool_set_false:N \l__letgut_tmpa_bool - \tl_if_empty:nF {#3}{ - \tcbset{tempfile=\jobname-stdin.tex} - \exp_args:Nx \scantokens - { - \token_to_str:N\begin{tcbwritetemp} - #3 - \token_to_str:N\end{tcbwritetemp} - } - } - \tl_if_empty:nF {#4}{ - \tcbset{tempfile=\jobname-stdout.tex} - \exp_args:Nx \scantokens - { - \token_to_str:N\begin{tcbwritetemp} - #4 - \token_to_str:N\end{tcbwritetemp} - } - } \tl_if_empty:nTF {#3}{ \tl_if_empty:nTF {#4}{ \bool_set_true:N \l__letgut_tmpa_bool @@ -3970,24 +3971,25 @@ We define now the command } }{ \tcbset{colback=__letgut_background_terminal_stdin} - \tl_if_empty:nTF {#4}{ - }{ + \tl_if_empty:nF {#4}{ \tcbset{ bicolor, - middle=0mm, - boxsep=0mm, colbacklower=__letgut_background_terminal_stdout, } } } \bool_if:NF \l__letgut_tmpa_bool { - \begin{tcolorbox}[terminal={#1},#2] + \begin{tcolorbox}[terminal,#2] \lstset{aboveskip=0pt} \tl_if_empty:nF {#3}{ - \tcbset{ - tempfile=\jobname-stdin.tex, + \tl_if_empty:nF {#1}{ + \textcolor{__letgut_terminal_prompt}{% + \ttfamily% + \bfseries% + \__letgut_unselectable:n {#1\c_space_tl} + } } - \tcbusetemplisting + #3 \tl_if_empty:nF {#4}{ \tcblower } @@ -3997,13 +3999,12 @@ We define now the command \lstset{aboveskip=0pt} } \tcbset{ - tempfile=\jobname-stdout.tex, every~ listing~ line={}, listing~ options~ app={ language={} } } - \tcbusetemplisting + #4 } \end{tcolorbox} } @@ -4021,14 +4022,14 @@ We close the \lstinline+\AddToHook{begindocument/before}+ argument. \subsubsection{Unicode characters with positions above 256} \label{ImplementationListingsUnicodecharacterswithpositionsabove256-4l6h55h0jlj0} -Unicode characters with positions above 256 causes troubles in +Unicode characters with positions above 256 cause troubles in listings. Here is a workaround for some of them (see \url{https://tex.stackexchange.com/a/25396}). \begin{lstlisting} \lst@InputCatcodes \def\lst@DefEC{% - \lst@CCECUse \lst@ProcessLetter + \lst@CCECUse \lst@ProcessLetter ^^80^^81^^82^^83^^84^^85^^86^^87^^88^^89^^8a^^8b^^8c^^8d^^8e^^8f% ^^90^^91^^92^^93^^94^^95^^96^^97^^98^^99^^9a^^9b^^9c^^9d^^9e^^9f% ^^a0^^a1^^a2^^a3^^a4^^a5^^a6^^a7^^a8^^a9^^aa^^ab^^ac^^ad^^ae^^af% @@ -4037,11 +4038,16 @@ listings. Here is a workaround for some of them (see ^^d0^^d1^^d2^^d3^^d4^^d5^^d6^^d7^^d8^^d9^^da^^db^^dc^^dd^^de^^df% ^^e0^^e1^^e2^^e3^^e4^^e5^^e6^^e7^^e8^^e9^^ea^^eb^^ec^^ed^^ee^^ef% ^^f0^^f1^^f2^^f3^^f4^^f5^^f6^^f7^^f8^^f9^^fa^^fb^^fc^^fd^^fe^^ff% - ^^^^201c^^^^201d% for “ and ” + ^^^^201c% for “ + ^^^^201d% for ” ^^^^215b% for ⅛ ^^^^2122% for ™ ^^^^2019% for ’ ^^^^0153% for œ + ^^^^0152% for Œ + ^^^^20ac% for € + ^^^^27e8% for ⟨ + ^^^^27e9% for ⟩ ^^00% } \lst@RestoreCatcodes @@ -4088,7 +4094,7 @@ several purposes: \end{itemize} \begin{lstlisting} -\ProvidesFile{letgut.lbx}[2024-03-07 v0.9.9 letgut localization] +\ProvidesFile{letgut.lbx}[2024-10-07 v0.9.10 letgut localization] \InheritBibliographyExtras{french} \DeclareBibliographyStrings{ inherit = {french}, @@ -4102,7 +4108,7 @@ We create the new bibliography driver \lstinline+bookreview+ (that seems to create the corresponding new entry). \begin{lstlisting} -\ProvidesFile{letgut.dbx}[2024-03-07 v0.9.9 letgut data model macros] +\ProvidesFile{letgut.dbx}[2024-10-07 v0.9.10 letgut data model macros] \DeclareBibliographyDriver{bookreview}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% @@ -4157,7 +4163,7 @@ create the corresponding new entry). We provide a specific \lstinline+biblatex+ citation style . \begin{lstlisting} -\ProvidesFile{letgut.cbx}[2024-03-07 v0.9.9 letgut base citation style] +\ProvidesFile{letgut.cbx}[2024-10-07 v0.9.10 letgut base citation style] \RequireCitationStyle{numeric} \end{lstlisting} @@ -4313,14 +4319,16 @@ de l'association. Il peut aussi y être question du \ctan. % Hey, Emacs! This is a -*- mode: latex -*- file! \enlargethispage{1.5cm} -\small +\scriptsize \vspace*{-1cm} \hspace*{-1.5cm}% +\ExplSyntaxOn \raisebox{-\height+0.7\baselineskip}{% \begin{minipage}[t]{.6\textwidth}%\vspace{0pt}% - \includegraphics*[width=\linewidth]{logo-gut.pdf} + \__letgut_orig_includegraphics*[width=\linewidth]{logo-gut.pdf} \end{minipage}% }% +\ExplSyntaxOff \hfill% \begin{minipage}[t]{.5\textwidth}%\vspace{0pt}% \footnotesize\raggedleft% @@ -4328,7 +4336,7 @@ de l'association. Il peut aussi y être question du \ctan. 15 rue des Halles -- \textsc{bp} 74\\ 75001 Paris\\ France\\ - \url{secretariat[at]gutenberg[dot]eu[dot]org} + \url{secretariat[at]gutenberg-asso[dot]fr} \end{minipage}% \begin{description} @@ -4349,7 +4357,7 @@ de l'association. Il peut aussi y être question du \ctan. \alertbox{% Cette association est la vôtre : faites-nous part de vos idées, de vos envies, de vos préoccupations - à l'adresse \url{secretariat[at]gutenberg[dot]eu[dot]org}.% + à l'adresse \url{secretariat[at]gutenberg-asso[dot]fr}.% } % \section[Association GUTenberg (tout sur l')] @@ -4412,7 +4420,7 @@ Les règlements peuvent s'effectuer par : \item \textbf{virement bancaire}% \footnote{Nous vous remercions de \textbf{privilégier} le \textbf{virement bancaire}.\label{fn:1}} (\textsc{iban} : - FR76 1870 7000 3003 0191 3568 475)% + FR76 3000 3001 0900 0372 6086 280)% \leavevmode \alertbox{% @@ -4427,9 +4435,13 @@ Les règlements peuvent s'effectuer par : \vfill +\mbox{} + +\vfill{} + \begin{center} \begin{tblr}{ - width=.75\linewidth, + width=.9\linewidth, colspec={ % < (Just not to disturb the parentheses % balancing detection of my editor.) @@ -4450,7 +4462,7 @@ Les règlements peuvent s'effectuer par : & \person{Bideault, Patrick} \\ Comité de rédaction : & {Patrick Bideault, Denis Bitouzé, \\ - Céline Chevalier \& Maxime Chupin} \\ + Céline Chevalier, Maxime Chupin \& Bastien Dumont} \\ Adresse de la rédaction : & { Association \gut\\ @@ -4461,8 +4473,6 @@ Les règlements peuvent s'effectuer par : \acs{issn} : & \letgutissn \end{tblr} \end{center} -\vfill -\mbox{} \clearpage \end{lstlisting} diff --git a/Master/texmf-dist/doc/lualatex/letgut/letgut.pdf b/Master/texmf-dist/doc/lualatex/letgut/letgut.pdf index 7b9adbc8e2a..343f249e1a1 100644 Binary files a/Master/texmf-dist/doc/lualatex/letgut/letgut.pdf and b/Master/texmf-dist/doc/lualatex/letgut/letgut.pdf differ diff --git a/Master/texmf-dist/doc/lualatex/letgut/letgut.tex b/Master/texmf-dist/doc/lualatex/letgut/letgut.tex index 14f005d8d79..773feef4595 100644 --- a/Master/texmf-dist/doc/lualatex/letgut/letgut.tex +++ b/Master/texmf-dist/doc/lualatex/letgut/letgut.tex @@ -377,6 +377,28 @@ Les options de la \letgutcls{} peuvent être spécifiées de deux façons : défaut. \end{docKey} +\begin{docKeys}[doc new={2024-10-07}] + { + { + doc name = watermark letter, + doc description = {\valinitdef[g]}, + }, + { + doc name = watermark scale, + doc description = {\valinitdef[1]}, + }, + }% + La première page de la \lettre{} comporte, en filigrane et en gris clair, + (entre autre) un (très grand) \enquote{g}, composé avec la fonte + \enquote{normale}. + \begin{itemize} + \item La clé \refKey{watermark letter} permet de spécifier une lettre autre + qu'un \enquote{g} et/ou composé avec une fonte autre que \enquote{normale}. + \item La clé \refKey{watermark scale} permet de spécifier échelle autre que~1 + pour cette lettre (par exemple si celle-ci s'avère par défaut trop grande). + \end{itemize} +\end{docKeys} + \subsection{Options autres} \label{sec:options-autres} @@ -716,7 +738,7 @@ Unicode a prévu le caractère \Ucode[symbole numéro]{2116}. { doc name = gut }, { doc name = assogut, doc new={2023-01-14} }, { doc name = Assogut, doc new={2023-01-14} }, - { doc name = lettresn doc new={2023-01-14} }, + { doc name = lettres, doc new={2023-01-14} }, { doc name = lettresgut, doc new={2023-01-14} }, { doc name = cahier }, { doc name = cahiers }, @@ -1109,54 +1131,21 @@ fournit la commande à arguments \enquote{verbatim} suivante. Ainsi le code suivant : \begingroup -\lstset{basicstyle=\ttfamily\scriptsize} -\begin{ltx-code}[listing options app={% - deletekeywords={[3]{latex,width,height,string,label,by,example,system,tex}},% - deletetexcs={edef,rlap,smash,expandafter,string}% -}] -\terminal{time rg foobar -g "*.sty" "/home/bitouze/texlive/2022"}{ -/home/bitouze/texlive/2022/texmf-dist/tex/latex/skeyval/skeyval.sty -445:% \usepackage[option1,option2]{foobar} -447:% \expandafter\show\csname foobar.sty.poxkeys\endcsname - -/home/bitouze/texlive/2022/texmf-dist/tex/latex/thmtools/thm-restate.sty -197:%%% support for keyval-style: restate=foobar - -/home/bitouze/texlive/2022/texmf-dist/tex/latex/pinlabel/pinlabel.sty -284:\edef\foobar{[width=\@p@swidth sp,height=\@p@sheight sp]{\@p@dffile}}% -286:\@message{\string\@includegraphics@\foobar}% -287:\rlap{\smash{\expandafter\@includegraphics@\foobar}}% - -/home/bitouze/texlive/2022/texmf-dist/tex/latex/theoremref/theoremref.sty -129: its label by ``\thlabel{foobar}''. For example, - -/home/bitouze/texlive/2022/texmf-dist/tex/latex/qrbill/qrbill.sty -12:%% Marei Peischl (peiTeX) and Alex Antener (foobar LLC). -rg -g 0,25s user 0,23s system 320% cpu 0,150 total +% \lstset{basicstyle=\ttfamily\scriptsize} +\begin{ltx-code} +\terminal{lualatex}{ +This is LuaHBTeX, Version 1.18.0 (TeX Live 2024) + restricted system commands enabled. +** } \end{ltx-code} donne-t-il : -\terminal{time rg foobar -g "*.sty" "/home/bitouze/texlive/2022"}{ -/home/bitouze/texlive/2022/texmf-dist/tex/latex/skeyval/skeyval.sty -445:% \usepackage[option1,option2]{foobar} -447:% \expandafter\show\csname foobar.sty.poxkeys\endcsname - -/home/bitouze/texlive/2022/texmf-dist/tex/latex/thmtools/thm-restate.sty -197:%%% support for keyval-style: restate=foobar - -/home/bitouze/texlive/2022/texmf-dist/tex/latex/pinlabel/pinlabel.sty -284:\edef\foobar{[width=\@p@swidth sp,height=\@p@sheight sp]{\@p@dffile}}% -286:\@message{\string\@includegraphics@\foobar}% -287:\rlap{\smash{\expandafter\@includegraphics@\foobar}}% - -/home/bitouze/texlive/2022/texmf-dist/tex/latex/theoremref/theoremref.sty -129: its label by ``\thlabel{foobar}''. For example, - -/home/bitouze/texlive/2022/texmf-dist/tex/latex/qrbill/qrbill.sty -12:%% Marei Peischl (peiTeX) and Alex Antener (foobar LLC). -rg -g 0,25s user 0,23s system 320% cpu 0,150 total +\terminal{lualatex}{ +This is LuaHBTeX, Version 1.18.0 (TeX Live 2024) + restricted system commands enabled. +** } \endgroup @@ -1290,7 +1279,7 @@ Les fiches de lecture d'un livre sont créées au moyen de l'environnement fichier local de configuration, cf. \vpageref{sec:fichier-local-de}) au moyen de la commande : \begin{ltx-code} -\addbibressource{£\meta{bibliographie}£.bib} +\addbibresource{£\meta{bibliographie}£.bib} \end{ltx-code} \end{dbwarning} \end{docKey} -- cgit v1.2.3