diff options
author | Karl Berry <karl@freefriends.org> | 2022-04-05 22:15:26 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-04-05 22:15:26 +0000 |
commit | 6d0c6f724ad2952e20446c2431d265cdfc75788c (patch) | |
tree | 2b849513fc9a4d1ac57dee12fa84fbe731197e77 /Master | |
parent | 7285fff5ec4ef65da7f999cdccc0a92ed6ba843f (diff) |
letgut (22mar22)
git-svn-id: svn://tug.org/texlive/trunk@62949 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
16 files changed, 1019 insertions, 42 deletions
diff --git a/Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md b/Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md index 3aa86a94252..a1090d00528 100644 --- a/Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md +++ b/Master/texmf-dist/doc/lualatex/letgut/CHANGELOG.md @@ -7,6 +7,12 @@ Versioning](http://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [0.9.1] - 2022-03-22 + +### Changed +File renamed (Karl Berry request) + ## [0.9] - 2022-03-18 -### Added First public testing release +### Added +First public testing release diff --git a/Master/texmf-dist/doc/lualatex/letgut/README.md b/Master/texmf-dist/doc/lualatex/letgut/README.md index 83e3c69e9d6..9d38f9500d2 100644 --- a/Master/texmf-dist/doc/lualatex/letgut/README.md +++ b/Master/texmf-dist/doc/lualatex/letgut/README.md @@ -9,7 +9,7 @@ GUTenberg” with the current main font. Release ------- -2022-03-18 v0.9 +2022-03-22 v0.9.1 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 Binary files differnew file mode 100644 index 00000000000..4d8ed777808 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.pdf diff --git a/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.tex b/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.tex new file mode 100644 index 00000000000..aab61f02767 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/letgut/letgut-banner-code.tex @@ -0,0 +1,806 @@ +% Created 2022-03-22 mar. 11:25 +% Intended LaTeX compiler: lualatex +\documentclass{letgut} + \setmainfont{KpRoman} +\setsansfont{KpSans} +\setmonofont[Scale = MatchLowercase]{RobotoMono} +\letgutsetup{editorial=false} +\input{listings-conf} +\author{Association GUTenberg} +\date{\today} +\title{Support for the banner of the newsletter “La Lettre de GUTenberg”} +\begin{document} + + +\section{Identification} +\label{sec:org4c9ba67} + +\begin{lstlisting} +% This is file `letgut.cls', +% generated with the Emacs Org-babel utility. +% +% The original source file is letgut-banner.org +% +% -------------:| --------------------------------------------------- +% letgut-banner:| Package for the banner of the newsletter +% | “La Lettre GUTenberg” +% Author:| Association GUTenberg +% E-mail:| secretariat@gutenberg.eu.org +% License:| Released under the LaTeX Project Public License +% | v1.3c or later +% See:| http://www.latex-project.org/lppl.txt +% +% Copyright (C) 1994-2022 by Association GUTenberg +% <secretariat@gutenberg.eu.org> +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License (LPPL), either +% version 1.3c of this license or (at your option) any later +% version. The latest version of this license is in the file: +% +% http://www.latex-project.org/lppl.txt +% +% This work is “maintained” (as per LPPL maintenance status) +% by Association GUTenberg. +\end{lstlisting} + +\section{Implementation} +\label{sec:orgb1ea800} + +These document classes can only be used with \LaTeXe, so we make +sure that an appropriate message is displayed when another \TeX{} +format is used. + +\begin{lstlisting} +\NeedsTeXFormat{LaTeX2e}[2020-10-01] +\end{lstlisting} + +Now, we can announce the package name and its version: + +\begin{lstlisting} +\ProvidesExplPackage{letgut-banner} +{2022-03-22} +{0.9.1} +{ + Package for the banner of the newsletter “La Lettre de GUTenberg” +} +\end{lstlisting} + +\subsection{Packages loaded} +\label{sec:org09b0cd2} + +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} + +Till the Lua-based color will be added to the core \package{l3color} approach, +we have to rely on \package{xcolor} + +\begin{lstlisting} +\RequirePackage{xcolor} +\end{lstlisting} + +We want the material added to the first page to be not selectable in order to let the +reader who wants to copy the interesting text be able to select it (see below). + +\begin{lstlisting} +\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:org61842b5} + +\subsubsection{Dimensions} +\label{sec:org447090b} + +\begin{lstlisting} +\dim_new:N \g__letgutbanner_area_height_dim +\dim_new:N \g__letgutbanner_La_height_dim +\dim_new:N \g__letgutbanner_La_depth_dim +\dim_new:N \g__letgutbanner_La_yoffset_dim +\dim_new:N \g__letgutbanner_banner_vertical_contents_width_dim +\dim_new:N \g__letgutbanner_largest_LETR_box_height_dim +\dim_new:N \g__letgutbanner_between_letters_yoffset_dim +\dim_new:N \g__letgutbanner_between_letters_vertical_space_dim +\dim_new:N \g__letgutbanner_banner_padding_dim +\dim_if_exist:NF \g__letgutbanner_first_page_shrink_dim { + \dim_new:N \g__letgutbanner_first_page_shrink_dim +} +\end{lstlisting} + +\begin{itemize} +\item Dimensions of the page. If the present package is used with the +\class*{letgut}, they are borrowed from it. Otherwise, they are set to default +values. For this, we first generate a variant of \lstinline+\dim_const:Nn+ (see +\url{https://github.com/latex3/latex3/issues/947\#issuecomment-860950569}). +\begin{lstlisting} +\cs_generate_variant:Nn \dim_const:Nn { NV } +\dim_if_exist:NTF \c__letgut_textheight_dim { + \dim_const:NV \c__letgutbanner_textheight_dim + \c__letgut_textheight_dim +}{ + \dim_const:Nn \c__letgutbanner_textheight_dim + { 25cm } +} +\dim_if_exist:NTF \c__letgut_textwidth_dim { + \dim_const:NV \c__letgutbanner_textwidth_dim + \c__letgut_textwidth_dim +}{ + \dim_const:Nn \c__letgutbanner_textwidth_dim + { 14cm } +} +\dim_if_exist:NTF \c__letgut_lmargin_dim { + \dim_const:NV \c__letgutbanner_lmargin_dim + \c__letgut_lmargin_dim +}{ + \dim_const:Nn \c__letgutbanner_lmargin_dim + { 5cm } +} +\dim_if_exist:NTF \c__letgut_tmargin_dim { + \dim_const:NV \c__letgutbanner_tmargin_dim + \c__letgut_tmargin_dim +}{ + \dim_const:Nn \c__letgutbanner_tmargin_dim + { 2.92cm } + % \dim_const:Nn \c__letgutbanner_tmargin_dim + % { 3cm } +} +\dim_if_exist:NTF \c__letgut_head_dim { + \dim_const:NV \c__letgutbanner_head_dim + \c__letgut_head_dim +}{ + \dim_const:Nn \c__letgutbanner_head_dim + { 0.6cm } +} +\dim_if_exist:NTF \c__letgut_headsep_dim { + \dim_const:NV \c__letgutbanner_headsep_dim + \c__letgut_headsep_dim +}{ + \dim_const:Nn \c__letgutbanner_headsep_dim + { 0.82cm } + % \dim_const:Nn \c__letgutbanner_headsep_dim + % { 0.9cm } +} +\dim_if_exist:NTF \c__letgut_marginparwidth_dim { + \dim_const:NV \c__letgutbanner_marginparwidth_dim + \c__letgut_marginparwidth_dim +}{ + \dim_const:Nn \c__letgutbanner_marginparwidth_dim + { 3.74cm } +} +\end{lstlisting} +\item Dimensions of the banner. If the present package is used with the +\class*{letgut}, they are borrowed from it. Otherwise, they are set to +default values. +\begin{itemize} +\item Thickness of the “L”. +\begin{lstlisting} +\dim_if_exist:NTF \c__letgut_banner_thickness_dim { + \dim_const:NV \c__letgutbanner_banner_thickness_dim + \c__letgut_banner_thickness_dim +}{ + \dim_const:Nn \c__letgutbanner_banner_thickness_dim + { 4cm } +} +\end{lstlisting} +\item Height of the “L” (that of the text area plus 3cm). +\begin{lstlisting} +\dim_if_exist:NTF \c__letgut_banner_height_dim { + \dim_const:NV \c__letgutbanner_banner_height_dim + \c__letgut_banner_height_dim +}{ + \dim_const:Nn \c__letgutbanner_banner_height_dim { + \c__letgutbanner_textheight_dim + + + 3cm + } +} +\end{lstlisting} +\item Initial padding of the text embedded in the vertical bar of the “L”. +\begin{lstlisting} +\dim_const:Nn \c__letgutbanner_banner_padding_dim { .25cm } +\end{lstlisting} +\item Width of the “L” (the width (\(w\)) of the text zone plus the width (\(l\)) of +the left margin minus half the difference between the width of the left +margin and the width (\(d\)) of the “L”: \(=w+l-(l-d)/2=w+(l+d)/2\)). +\begin{lstlisting} +\dim_const:Nn \c__letgutbanner_banner_width_dim { + \c__letgutbanner_textwidth_dim + + + ( + \c__letgutbanner_banner_thickness_dim + + + \c__letgutbanner_lmargin_dim + )/2 +} +\end{lstlisting} +\item Initial width of the text embedded in the “L” vertical bar. +\begin{lstlisting} +\dim_const:Nn +\c__letgutbanner_banner_vertical_contents_width_dim { + \c__letgutbanner_banner_thickness_dim + - + 2\c__letgutbanner_banner_padding_dim +} +\end{lstlisting} +\item Width of the text embedded in the horizontal bar of the “L” (of the text +area plus half the difference between that of the left margin and that of +the thickness of the “L”, minus the padding -- and not 2 times the +padding because this text will be stuck to its left “margin”). +\begin{lstlisting} +\dim_const:Nn +\c__letgutbanner_banner_horizontal_contents_width_dim { + \c__letgutbanner_textwidth_dim + - ( + \c__letgutbanner_banner_thickness_dim + - + \c__letgutbanner_lmargin_dim + )/2 + - + \c__letgutbanner_banner_padding_dim +} +\end{lstlisting} +\end{itemize} +\end{itemize} + +\subsubsection{Boxes} +\label{sec:org5711d86} + +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} +\box_new:N \g__letgutbanner_L_box +\box_new:N \g__letgutbanner_E_box +\box_new:N \g__letgutbanner_T_box +\box_new:N \g__letgutbanner_R_box +\box_new:N \g__letgutbanner_La_box +\box_new:N \g__letgutbanner_GUTenberg_box +\box_new:N \g__letgutbanner_largest_LETR_box +\box_new:N \g__letgutbanner_g_box +\end{lstlisting} + +\subsubsection{Floating point numbers} +\label{sec:orge5b5c6b} + +\begin{itemize} +\item Minimum percentage of the common height of the letters of the word “LETTRE” +that their line spacing must represent. +\end{itemize} +\begin{lstlisting} +\fp_const:Nn \c__letgutbanner_leading_minimum_percent_fp { 0.15 } +\end{lstlisting} +\begin{itemize} +\item Factor applied to the line spacing between “La” and the 1st letter of +“LETTRE” compared to that between the letters of “LETTRE”. +\end{itemize} +\begin{lstlisting} +\fp_const:Nn \c__letgutbanner_leading_La_factor_fp { 1.5 } +\end{lstlisting} + +\subsection{Application des dimensions de la page} +\label{sec:orgbda0ae2} + +\begin{lstlisting} +\geometry{ + asymmetric, + textheight = \c__letgutbanner_textheight_dim, + textwidth = \c__letgutbanner_textwidth_dim, + lmargin = \c__letgutbanner_lmargin_dim, + tmargin = \c__letgutbanner_tmargin_dim, + head = \c__letgutbanner_head_dim, + headsep = \c__letgutbanner_headsep_dim, + marginparwidth= \c__letgutbanner_marginparwidth_dim, + % showframe, + % verbose, +} +\end{lstlisting} + +\subsection{Filling of the boxes} +\label{sec:orgb3e9382} +\begin{lstlisting} +\hbox_gset:Nn \g__letgutbanner_L_box { \textbf{L} } +\hbox_gset:Nn \g__letgutbanner_E_box { \textbf{E} } +\hbox_gset:Nn \g__letgutbanner_T_box { \textbf{T} } +\hbox_gset:Nn \g__letgutbanner_R_box { \textbf{R} } +\hbox_gset:Nn \g__letgutbanner_La_box { \textbf{\textit{La}} } +\hbox_gset:Nn \g__letgutbanner_GUTenberg_box { + \textbf{\textit{GUTenberg}} +} +\hbox_gset:Nn \g__letgutbanner_g_box { \textbf{g} } +\end{lstlisting} + +\subsection{Computations} +\label{sec:orgdd18dd8} + +Determination of the widths of each of the letter boxes of the word “LETTRE”. +\begin{lstlisting} +\dim_const:Nn \c__letgutbanner_L_width_dim { + \box_wd:N \g__letgutbanner_L_box +} +\dim_const:Nn \c__letgutbanner_E_width_dim { + \box_wd:N \g__letgutbanner_E_box +} +\dim_const:Nn \c__letgutbanner_T_width_dim { + \box_wd:N \g__letgutbanner_T_box +} +\dim_const:Nn \c__letgutbanner_R_width_dim { + \box_wd:N \g__letgutbanner_R_box +} +\end{lstlisting} +Determination of the largest of these widths, stored in the scratch dimension +\lstinline+\g_tmpa_dim+. +\begin{lstlisting} +\dim_gset:Nn \g_tmpa_dim { + \fp_eval:n { + max ( + \c__letgutbanner_L_width_dim, + \c__letgutbanner_E_width_dim, + \c__letgutbanner_T_width_dim, + \c__letgutbanner_R_width_dim, + ) + }pt +} +\end{lstlisting} +Determination of the (1st) box whose width is the largest of all (\lstinline+argmax+, as +it were). +\begin{lstlisting} +\box_gset_eq:NN \g__letgutbanner_largest_LETR_box \dim_case:nnF +{ \g_tmpa_dim } +{ + { \c__letgutbanner_L_width_dim } { \g__letgutbanner_L_box } + { \c__letgutbanner_E_width_dim } { \g__letgutbanner_E_box } + { \c__letgutbanner_T_width_dim } { \g__letgutbanner_T_box } + { \c__letgutbanner_R_width_dim } { \g__letgutbanner_R_box } +} +{ No~ idea! } +\end{lstlisting} +Resize the box containing “GUTenberg” to the width of the text embedded in the +horizontal bar of the “L”. +\begin{lstlisting} +\box_gresize_to_wd:Nn \g__letgutbanner_GUTenberg_box { + \c__letgutbanner_banner_horizontal_contents_width_dim +} +\end{lstlisting} +Determination of the height and depth of the box containing “GUTenberg” resized. +\begin{lstlisting} +\dim_const:Nn \c__letgutbanner_GUTenberg_height_dim { + \box_ht:N \g__letgutbanner_GUTenberg_box +} +\dim_const:Nn \c__letgutbanner_GUTenberg_depth_dim { + \box_dp:N \g__letgutbanner_GUTenberg_box +} +\end{lstlisting} +Determining the size of the vertical offset of the box containing the resized +“GUTenberg”, so that it is vertically centered in the horizontal bar of the “L”: +the box positioned in \(0\) would be at the very bottom of the box containing the +banner so with base line at the bottom the horizontal bar of the “L” so we raise +it first by its depth (\(d\)) and then by half the difference between the heights +(\(H\)) of the horizontal bar of the “L” and (\(h+d\)) total of the box containing +“GUTenberg” resized (\(=d+H/2-(h+d)/2=(H-h+d)/2\)). +\begin{lstlisting} +\dim_const:Nn \c__letgutbanner_GUTenberg_yoffset_dim { + ( + \c__letgutbanner_banner_thickness_dim + - + \c__letgutbanner_GUTenberg_height_dim + + + \c__letgutbanner_GUTenberg_depth_dim + )/2 +} +\end{lstlisting} +Once the height of the zone devoted to “La LETTRE” in the vertical bar of the +“L” has been fixed, the line spacing between the letters of the word “LETTRE” +depends in fact only on the width occupied by the widest of them, by definition +equal to the width allocated to the text embedded in the vertical bar of the +“L”. The latter, stored in \lstinline+\g__letgutbanner_banner_vertical_contents_width_dim+, is +initially fixed: +\begin{lstlisting} +\dim_gset:Nn +\g__letgutbanner_banner_vertical_contents_width_dim +\c__letgutbanner_banner_vertical_contents_width_dim +\end{lstlisting} +but, to avoid this line spacing being too small (or even negative), we test that +it is greater than a certain threshold, equal to a certain minimum percentage of +the height common to the letters of the word “LETTRE”, stored in: + +\lstinline+\c__letgutbanner_leading_minimum_percent_fp+ + +and fixed at 0.15. If this is not the +case, we reduce (by 1pt): + +\lstinline+\g__letgutbanner_banner_vertical_contents_width_dim+ + +and loop until it is the case. +\begin{lstlisting} +\dim_do_until:nNnn { + \g__letgutbanner_between_letters_vertical_space_dim +} +> +{ + \fp_use:N\c__letgutbanner_leading_minimum_percent_fp + \g__letgutbanner_largest_LETR_box_height_dim +}{ +\end{lstlisting} +Resize the largest of these boxes to the width of the text embedded in the “L”. +\begin{lstlisting} +\box_gresize_to_wd:Nn \g__letgutbanner_largest_LETR_box { + \g__letgutbanner_banner_vertical_contents_width_dim +} +\end{lstlisting} +Height of this resized larger box. +\begin{lstlisting} +\dim_gset:Nn \g__letgutbanner_largest_LETR_box_height_dim { + \box_ht:N \g__letgutbanner_largest_LETR_box +} +\end{lstlisting} +Resize the boxes for each of the letters in the word “LETTRE” so that they are +all the same height as the widest of them. +\begin{lstlisting} +\box_gresize_to_ht:Nn \g__letgutbanner_L_box { + \g__letgutbanner_largest_LETR_box_height_dim +} +\box_gresize_to_ht:Nn \g__letgutbanner_E_box { + \g__letgutbanner_largest_LETR_box_height_dim +} +\box_gresize_to_ht:Nn \g__letgutbanner_T_box { + \g__letgutbanner_largest_LETR_box_height_dim +} +\box_gresize_to_ht:Nn \g__letgutbanner_R_box { + \g__letgutbanner_largest_LETR_box_height_dim +} +\end{lstlisting} +Resize the box containing “La” to the width of the text embedded in the “L” +vertical bar. +\begin{lstlisting} +\box_gresize_to_wd:Nn \g__letgutbanner_La_box { + \g__letgutbanner_banner_vertical_contents_width_dim +} +\end{lstlisting} +Determine the height (\(h\)) and depth (\(d\)) of the resized box containing “La”. +\begin{lstlisting} +\dim_gset:Nn \g__letgutbanner_La_height_dim { + \box_ht:N \g__letgutbanner_La_box +} +\dim_gset:Nn \g__letgutbanner_La_depth_dim { + \box_dp:N \g__letgutbanner_La_box +} +\end{lstlisting} +Determining the size of the vertical offset of the resized box containing “La” +so that its top is, relative to the top of the “L”, offset by the same amount as +the bottom of the box containing “GUTenberg” is offset from the bottom of the +“L” (i.e., the distance from the top of the page to the top of “La” and the +distance from the bottom of the page to the baseline of “GUTenberg” are +identical). +\begin{lstlisting} +\dim_gset:Nn \g__letgutbanner_La_yoffset_dim { + \c__letgutbanner_banner_height_dim + - + \c__letgutbanner_GUTenberg_yoffset_dim + - + \g__letgutbanner_La_height_dim + + + \g__letgutbanner_La_depth_dim +} +\end{lstlisting} +For the following, the area containing the letters of the word “LETTRE” aligned +vertically is fixed, defined as follows: +\begin{itemize} +\item its top is the baseline of “La”, +\item its bottom is the baseline of “GUTenberg”. +\end{itemize} +Determination of the height of this area. +\begin{lstlisting} +\dim_gset:Nn \g__letgutbanner_area_height_dim { + \g__letgutbanner_La_yoffset_dim + - + \g__letgutbanner_La_depth_dim + - + \c__letgutbanner_GUTenberg_yoffset_dim +} +\end{lstlisting} +Determining the vertical jump (\(s\)) between the letters in the word “LETTRE” +with the constraints that: +\begin{itemize} +\item the top of the 1st letter (“L”) is \(3e/2\) below the top of the area (where +\(e\) is the common vertical space separating the letters of the word +“LETTRE”), +\item the baseline of the last letter (“E”) is merged with the bottom of the area, +\item this jump must not be less than 20 \% of the common height \(h\) to all these +letters i.e.: + +\lstinline+\g__letgutbanner_largest_LETR_box_height_dim+ + +otherwise the size of the largest of these boxes is reduced to less than the +width of the text embedded in the “L”. +\end{itemize} + +The sum of : +\begin{itemize} +\item the 5 vertical spaces (\(5e\)) between the letters in the word “LETTRE”, +\item the 6 common heights (\(6h\)) to all these letters, +\item \(3e/2\), +\end{itemize} +must equal the height (\(H\)) of the zone. So we have \(H=3e/2+5e+6h\), that is +\(e=2(H-6h)/13\). Once initialized, the vertical jump between the letters is +\(s=e+h\) that is \(s=(2H+h)/13\). Therefore: + +\begin{enumerate} +\item Determine the vertical half-space between the letters. +\begin{lstlisting} +\dim_set:Nn \l_tmpa_dim { + ( + \g__letgutbanner_area_height_dim + - + 6\g__letgutbanner_largest_LETR_box_height_dim + )/13 +} +\end{lstlisting} +\item Vertical space between letters. +\begin{lstlisting} +\dim_gset:Nn \g__letgutbanner_between_letters_vertical_space_dim { + 2\l_tmpa_dim +} +\end{lstlisting} +\item If this space does not check the condition explained above, we reduce: + +\lstinline+\g__letgutbanner_banner_vertical_contents_width_dim+ + +and loop. +\begin{lstlisting} +\dim_gsub:Nn \g__letgutbanner_banner_vertical_contents_width_dim { + 1pt + } +} +\end{lstlisting} +\end{enumerate} +The width allocated to the text embedded in the vertical bar of the “L” may have +been re-evaluated, so the padding (which must be symmetrical) may have changed +as well. +\begin{lstlisting} +\dim_gset:Nn \g__letgutbanner_banner_padding_dim { + ( + \c__letgutbanner_banner_thickness_dim + - + \g__letgutbanner_banner_vertical_contents_width_dim + )/2 +} +\end{lstlisting} +\begin{enumerate} +\item Determination of the vertical offset of the 1st letter (“L”). +\begin{lstlisting} +\dim_const:Nn \c__letgutbanner_first_letter_yoffset_dim { + \g__letgutbanner_La_yoffset_dim + - + \g__letgutbanner_largest_LETR_box_height_dim + - + \fp_use:N \c__letgutbanner_leading_La_factor_fp + \g__letgutbanner_between_letters_vertical_space_dim +} +\end{lstlisting} +\item Determination of the vertical jump between letters. +\begin{lstlisting} +\dim_gset:Nn \g__letgutbanner_between_letters_yoffset_dim { + \g__letgutbanner_between_letters_vertical_space_dim + + + \g__letgutbanner_largest_LETR_box_height_dim +} +\end{lstlisting} +\end{enumerate} +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 +} +\end{lstlisting} +Calculates the size by which the height of the text box on the 1st page must be +reduced so that the banner does not encroach on the text. Relative to the top of +the page: +\begin{itemize} +\item the top of the horizontal bar of “L” is at a distance equal to the sum of : +\begin{itemize} +\item the distance between this top of page and the top of the vertical bar of +“L”, equal to the height (\(p\)) of the paper minus the height (\(l\)) of “L” +\end{itemize} +\end{itemize} +\begin{lstlisting} +\dim_gset:Nn \g__letgutbanner_first_page_shrink_dim { + \c__letgutbanner_tmargin_dim + + + \c__letgutbanner_textheight_dim + + + \c__letgutbanner_banner_thickness_dim + - + .5\paperheight + - + .5\c__letgutbanner_banner_height_dim + + + .5\baselineskip +} +\end{lstlisting} +Automatic addition on the 1st page (only) of the banner. +\begin{lstlisting} +\AddToHookNext{shipout/background}{ +\end{lstlisting} +We want the material added to this page to be not selectable in order to let the +reader who wants to copy the interesting text be able to select it. +\begin{lstlisting} +\BeginAccSupp{ActualText={}} +\end{lstlisting} +We put now the big “L” at the right place. +\begin{lstlisting} +\put( +.5\c__letgutbanner_lmargin_dim-.5\c__letgutbanner_banner_thickness_dim +, +-.5\paperheight-.5\c__letgutbanner_banner_height_dim +){ + \put(0,0){ + \rule{ + \c__letgutbanner_banner_width_dim + }{ + \c__letgutbanner_banner_thickness_dim + } + } + \put(0,0){ + \rule{ + \c__letgutbanner_banner_thickness_dim + }{ + \c__letgutbanner_banner_height_dim + } + } +\end{lstlisting} +The color should not be systematically white, but should be identical to the one +chosen for the page background. +\begin{lstlisting} + % \color_fill:nV {rgb}{ \g__letgutbanner_pagecolor_clist } + \color[rgb]{ \g__letgutbanner_pagecolor_clist } + \put( + \g__letgutbanner_banner_padding_dim + , + \g__letgutbanner_La_yoffset_dim + ){ + \box_use:N \g__letgutbanner_La_box + } + \put( + \g__letgutbanner_banner_padding_dim + , + \c__letgutbanner_first_letter_yoffset_dim + -0\g__letgutbanner_between_letters_yoffset_dim + ){ + \box_use:N \g__letgutbanner_L_box + } + \put( + \g__letgutbanner_banner_padding_dim + , + \c__letgutbanner_first_letter_yoffset_dim + -1\g__letgutbanner_between_letters_yoffset_dim + ){ + \box_use:N \g__letgutbanner_E_box + } + \put( + \g__letgutbanner_banner_padding_dim + , + \c__letgutbanner_first_letter_yoffset_dim + -2\g__letgutbanner_between_letters_yoffset_dim + ){ + \box_use:N \g__letgutbanner_T_box + } + \put( + \g__letgutbanner_banner_padding_dim + , + \c__letgutbanner_first_letter_yoffset_dim + -3\g__letgutbanner_between_letters_yoffset_dim + ){ + \box_use:N \g__letgutbanner_T_box + } + \put( + \g__letgutbanner_banner_padding_dim + , + \c__letgutbanner_first_letter_yoffset_dim + -4\g__letgutbanner_between_letters_yoffset_dim + ){ + \box_use:N \g__letgutbanner_R_box + } + \put( + \g__letgutbanner_banner_padding_dim + , + \c__letgutbanner_first_letter_yoffset_dim + -5\g__letgutbanner_between_letters_yoffset_dim + ){ + \box_use:N \g__letgutbanner_E_box + } + \put( + \c__letgutbanner_banner_thickness_dim + , + \c__letgutbanner_GUTenberg_yoffset_dim + ){ + \box_use:N \g__letgutbanner_GUTenberg_box + } + % \color_fill:n {black!10} + \color{ black!10 } + \put( + .5\c__letgutbanner_lmargin_dim+.5\c__letgutbanner_banner_thickness_dim + , + .5\paperheight + + + .5\c__letgutbanner_banner_height_dim + - + \c__letgutbanner_tmargin_dim + ){ + \box_move_down:nn {.5\c__letgutbanner_textheight_dim} + {\box_use:N \g__letgutbanner_g_box} + } +} +\end{lstlisting} +We end the part which isn't selectable. +\begin{lstlisting} +\EndAccSupp{} +} +\end{lstlisting} + +We close \lstinline+\AddToHook{begindocument}+. + +\begin{lstlisting} +} +\end{lstlisting} + +If the package is used with another class than \class{letgut}, we reduce the +textheight of the first page of the height of the horizontal bar of the “L”. + +\begin{lstlisting} +\@ifclassloaded{letgut}{ +}{ + \AddToHook{begindocument/end}{% + \enlargethispage{ + - \g__letgutbanner_first_page_shrink_dim + } + \thispagestyle{empty} + } +} +\end{lstlisting} + +\section{Example file (\texttt{letgut-banner-example.tex})} +\label{sec:org4c5e60d} + +\begin{lstlisting} +\documentclass[twoside]{article} +\usepackage{fontspec} +\usepackage[a4paper]{geometry} +\usepackage{fancyhdr} +\usepackage{letgut-banner} +\usepackage{lipsum} +\setmainfont{TeX Gyre Schola} +\fancyhf{} +\fancyhead[RO,LE]{\thepage} +\fancyhead[RE,LO]{Test~\textsf{letgut-banner}} +\pagestyle{fancy} +\begin{document} +\lipsum[1-20] +\end{document} +\end{lstlisting} +\end{document} diff --git a/Master/texmf-dist/doc/lualatex/letgut/letgut-code.pdf b/Master/texmf-dist/doc/lualatex/letgut/letgut-code.pdf Binary files differindex bf4c676520e..12da2cdac84 100644 --- a/Master/texmf-dist/doc/lualatex/letgut/letgut-code.pdf +++ b/Master/texmf-dist/doc/lualatex/letgut/letgut-code.pdf diff --git a/Master/texmf-dist/doc/lualatex/letgut/letgut-code.tex b/Master/texmf-dist/doc/lualatex/letgut/letgut-code.tex index 347a2a5c798..672935a5fb0 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-03-18 ven. 19:02 +% Created 2022-03-22 mar. 11:24 % Intended LaTeX compiler: lualatex \documentclass{letgut} \setmainfont{KpRoman} @@ -88,8 +88,8 @@ Now, we can announce the class name and its version: \begin{lstlisting} \ProvidesExplClass{letgut} -{2022-03-18} -{0.9} +{2022-03-22} +{0.9.1} { Class~ for~ the~ newsletter~ “\c__letgut_La_lettre_gutenberg_tl” @@ -1928,7 +1928,7 @@ items are correct. \NewDocumentCommand {\francophony} { } { \raisebox{-1.5pt}{ \includegraphics[width=\f@size pt]{ - Flag_of_La_Francophonie-crop + letgut-francophony-icon } } } @@ -2497,7 +2497,7 @@ full name of the authors. \end{lstlisting} The keys options are created. \begin{lstlisting} -\keys_define:nn { gzt/bookreview } +\keys_define:nn { letgut/bookreview } { title .tl_gset:N = \g__letgut_bookreview_title_tl, frontcover .tl_gset:N = \g__letgut_bookreview_frontcover_tl, @@ -2523,7 +2523,7 @@ We create the new environment for the book reviews. \cs_generate_variant:Nn \msg_error:nnnn { nnVV } \NewDocumentEnvironment{bookreview}{ m } { - \keys_set:nn { gzt/bookreview } { #1 } + \keys_set:nn { letgut/bookreview } { #1 } \section{\g__letgut_bookreview_title_tl} \tl_if_empty:NTF \g__letgut_bookreview_frontcover_tl { \msg_warning:nnV{letgut}{frontcover-missing}{ @@ -2992,7 +2992,7 @@ several purposes: \end{itemize} \begin{lstlisting} -\ProvidesFile{letgut.lbx}[2022-03-18 v0.9 letgut localization] +\ProvidesFile{letgut.lbx}[2022-03-22 v0.9.1 letgut localization] \InheritBibliographyExtras{french} \DeclareBibliographyStrings{ inherit = {french}, @@ -3006,7 +3006,7 @@ We create the new bibliography driver \lstinline+bookreview+ (that seems to create the corresponding new entry). \begin{lstlisting} -\ProvidesFile{letgut.dbx}[2022-03-18 v0.9 letgut data model macros] +\ProvidesFile{letgut.dbx}[2022-03-22 v0.9.1 letgut data model macros] \DeclareBibliographyDriver{bookreview}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% @@ -3061,7 +3061,7 @@ create the corresponding new entry). We provide a specific \lstinline+biblatex+ citation style . \begin{lstlisting} -\ProvidesFile{letgut.cbx}[2022-03-18 v0.9 letgut base citation style] +\ProvidesFile{letgut.cbx}[2022-03-22 v0.9.1 letgut base citation style] \RequireCitationStyle{numeric} \end{lstlisting} diff --git a/Master/texmf-dist/doc/lualatex/letgut/letgut.pdf b/Master/texmf-dist/doc/lualatex/letgut/letgut.pdf Binary files differindex 76847e9bce9..e0d2740a0bc 100644 --- a/Master/texmf-dist/doc/lualatex/letgut/letgut.pdf +++ b/Master/texmf-dist/doc/lualatex/letgut/letgut.pdf diff --git a/Master/texmf-dist/doc/lualatex/letgut/letgut.tex b/Master/texmf-dist/doc/lualatex/letgut/letgut.tex index 4d8c219baa4..f782959e7c8 100644 --- a/Master/texmf-dist/doc/lualatex/letgut/letgut.tex +++ b/Master/texmf-dist/doc/lualatex/letgut/letgut.tex @@ -88,7 +88,7 @@ } \author{Association GUTenberg} \date{% - Version 0.9 en date du \today% + Version 0.9.1 en date du \today% \texorpdfstring{% \\ \url{https://framagit.org/gutenberg/classe-lettre-gut}% diff --git a/Master/texmf-dist/source/lualatex/letgut/letgut-banner.org b/Master/texmf-dist/source/lualatex/letgut/letgut-banner.org index 44fa5fdec9b..6769c179052 100644 --- a/Master/texmf-dist/source/lualatex/letgut/letgut-banner.org +++ b/Master/texmf-dist/source/lualatex/letgut/letgut-banner.org @@ -36,7 +36,7 @@ Release ------- - 2022-03-18 v0.9 + 2022-03-22 v0.9.1 Development ----------- @@ -89,8 +89,8 @@ Now, we can announce the package name and its version: #+begin_src latex \ProvidesExplPackage{letgut-banner} -{2022-03-18} -{0.9} +{2022-03-22} +{0.9.1} { Package for the banner of the newsletter “La Lettre de GUTenberg” } diff --git a/Master/texmf-dist/source/lualatex/letgut/letgut.org b/Master/texmf-dist/source/lualatex/letgut/letgut.org index 11bd545dec7..b4244888a2f 100644 --- a/Master/texmf-dist/source/lualatex/letgut/letgut.org +++ b/Master/texmf-dist/source/lualatex/letgut/letgut.org @@ -22,21 +22,186 @@ #+PROPERTY: header-args :padline no :tangle letgut.cls :exports both :noweb yes :eval always #+export_file_name: letgut-code +* Ctanomat file :noexport: + +We crete here a ~ctanomat~ description file in order to simplify the upload of +new versions of the class on CTAN. + +#+begin_src markdown :tangle letgut.pkg + % This is a description file for ctan-o-mat. + % It manages uploads of a package to + % CTAN -- the Comprehensive TeX Archive Network. + % + % The syntax is roughly oriented towards (La)TeX. + % Two form of the macros are used. The simple macros take one argument + % in braces. Here the argument may not contain embedded macros. + % + % The second form uses an environment enclosed in \begin{}/\end{}. + % In the long text fields logo macros can be used. + % + % You should enter your values between the begin and the end of the + % named type. + % ------------------------------------------------------------------------- + % This field contains the CTAN id of the package. + % The value is optional. + % The value is restricted to 32 characters. + \pkg{letgut} + % ------------------------------------------------------------------------- + % This field contains the version of the package. + % The value is optional. + % The value is restricted to 32 characters. + \version{0.9.1 2022-03-22} + % ------------------------------------------------------------------------- + % This field contains the name of the author(s). + % The value is optional. + % The value is restricted to 128 characters. + \author{Association GUTenberg} + % ------------------------------------------------------------------------- + % This field contains the email address of the uploader. + % The value is an email address. + % The value is restricted to 255 characters. + \email{secretariat@gutenberg.eu.org} + % ------------------------------------------------------------------------- + % This field contains the name of the uploader. + % The value is restricted to 255 characters. + \uploader{Denis Bitouzé} + % ------------------------------------------------------------------------- + % This field contains the directory on CTAN. + % The value is optional. + % The value is restricted to 255 characters. + \ctanPath{/macros/luatex/latex/letgut} + % ------------------------------------------------------------------------- + % This field contains the license. + % The value is optional. + % The value is restricted to 2048 characters. + % Multiple values are allowed. + \license{lppl1.3c} + % ------------------------------------------------------------------------- + % This field contains the URL of the home page. + % The value is optional. + % The value is a URL. + % The value is restricted to 255 characters. + % Multiple values are allowed. + \home{} + % ------------------------------------------------------------------------- + % This field contains the URL of the bug tracker. + % The value is optional. + % The value is a URL. + % The value is restricted to 255 characters. + % Multiple values are allowed. + \bugtracker{https://framagit.org/gutenberg/classe-lettre-gut/-/issues} + % ------------------------------------------------------------------------- + % This field contains the support channel. + % The value is optional. + % The value is a URL. + % The value is restricted to 255 characters. + % Multiple values are allowed. + \support{} + % ------------------------------------------------------------------------- + % This field contains the version management. + % The value is optional. + % The value is a URL. + % The value is restricted to 255 characters. + % Multiple values are allowed. + \repository{https://framagit.org/gutenberg/classe-lettre-gut/} + % ------------------------------------------------------------------------- + % This field contains the developer's channel. + % The value is optional. + % The value is a URL. + % The value is restricted to 255 characters. + % Multiple values are allowed. + \development{https://framagit.org/gutenberg/classe-lettre-gut/-/merge_requests} + % ------------------------------------------------------------------------- + % This field contains the update indicator; true for update. + % The value is optional. + % The value is restricted to 8 characters. + \update{true} + % ------------------------------------------------------------------------- + % This field contains the topics id. + % The value is optional. + % The value is restricted to 1024 characters. + % Multiple values are allowed. + \topic{} + % ------------------------------------------------------------------------- + % This field contains the text for the mail announcement. + % The value is optional. + % The value is restricted to 8192 characters. + \begin{announcement} + \end{announcement} + % ------------------------------------------------------------------------- + % This field contains the one-liner for the package. + % The value is optional. + % The value is restricted to 128 characters. + \summary{Class for the newsletter “La Lettre GUTenberg” of the French TeX User Group GUTenberg} + % ------------------------------------------------------------------------- + % This field contains the descriptive abstract for the package. + % The value is optional. + % The value is restricted to 4096 characters. + \begin{description} + # English + + The French TeX User Group GUTenberg has been publishing “The GUTenberg Letter”, + its irregular newsletter, since February 1993. + + For this purpose, a dedicated, in-house (La)TeX class was gradually created but, + depending on new needs and on the people who were publishing the Newsletter, its + development was somewhat erratic; in particular, it would not have been possible + to publish its code as it was. In addition, its documentation was non-existent. + + The Board of Directors of the association, elected in November 2020, wished to + provide a better structured, more perennial and documented class, able to be + published on the CTAN. This is now done with the present `letgut` class. + + # French + + L'association GUTenberg publie « La Lettre GUTenberg », son bulletin + irrégulomestriel, depuis février 1993. + + Pour ce faire, une classe (La)TeX dédiée, maison, a peu à peu vu le jour mais, + au gré des nouveaux besoins et des personnes qui ont assuré la publication de la + Lettre, son développement a été quelque peu erratique ; il n'aurait notamment + pas été possible de publier son code en l'état. En outre, sa documentation était + inexistante. + + Le Conseil d'Administration de l'association, élu en novembre 2020, a souhaité + fournir une classe mieux structurée, davantage pérenne et documentée, à même + d'être publiée sur le CTAN. C'est désormais chose faite avec la présente classe + `letgut`. + \end{description} + % ------------------------------------------------------------------------- + % This field contains the note to the CTAN upload managers. + % The value is optional. + % The value is restricted to 2048 characters. + \begin{note} + \end{note} + % ------------------------------------------------------------------------- + % This field contains the archive file. + % The value is the file name of the archive to be uploaded. + % It may have a relative or absolute directory. + \file{../dtx-forge/letgut.zip} +#+end_src + * Changelog file :noexport: #+begin_src markdown :tangle CHANGELOG.md -# Changelog -All notable changes to this project will be documented in this file. + # Changelog + All notable changes to this project will be documented in this file. + + The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), + and this project adheres to [Semantic + Versioning](http://semver.org/spec/v2.0.0.html). + + ## [Unreleased] -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), -and this project adheres to [Semantic -Versioning](http://semver.org/spec/v2.0.0.html). + ## [0.9.1] - 2022-03-22 -## [Unreleased] + ### Changed + File renamed (Karl Berry request) -## [0.9] - 2022-03-18 + ## [0.9] - 2022-03-18 -### Added First public testing release + ### Added + First public testing release #+end_src * Readme file :noexport: @@ -52,7 +217,7 @@ to the newsletter “La Lettre GUTenberg” of GUTenberg, the French TeX User Gr Release ------- -2022-03-18 v0.9 +2022-03-22 v0.9.1 Development ----------- @@ -182,8 +347,8 @@ Now, we can announce the class name and its version: #+begin_src latex \ProvidesExplClass{letgut} - {2022-03-18} - {0.9} + {2022-03-22} + {0.9.1} { Class~ for~ the~ newsletter~ “\c__letgut_La_lettre_gutenberg_tl” @@ -2004,7 +2169,7 @@ We define the command that lets us specify the newsletter setup. \NewDocumentCommand {\francophony} { } { \raisebox{-1.5pt}{ \includegraphics[width=\f@size pt]{ - Flag_of_La_Francophonie-crop + letgut-francophony-icon } } } @@ -2556,7 +2721,7 @@ full name of the authors. #+end_src The keys options are created. #+begin_src latex - \keys_define:nn { gzt/bookreview } + \keys_define:nn { letgut/bookreview } { title .tl_gset:N = \g__letgut_bookreview_title_tl, frontcover .tl_gset:N = \g__letgut_bookreview_frontcover_tl, @@ -2582,7 +2747,7 @@ We create the new environment for the book reviews. \cs_generate_variant:Nn \msg_error:nnnn { nnVV } \NewDocumentEnvironment{bookreview}{ m } { - \keys_set:nn { gzt/bookreview } { #1 } + \keys_set:nn { letgut/bookreview } { #1 } \section{\g__letgut_bookreview_title_tl} \tl_if_empty:NTF \g__letgut_bookreview_frontcover_tl { \msg_warning:nnV{letgut}{frontcover-missing}{ @@ -3037,7 +3202,7 @@ several purposes: - the books advertisements. #+begin_src latex :tangle letgut.lbx :exports both - \ProvidesFile{letgut.lbx}[2022-03-18 v0.9 letgut localization] + \ProvidesFile{letgut.lbx}[2022-03-22 v0.9.1 letgut localization] \InheritBibliographyExtras{french} \DeclareBibliographyStrings{ inherit = {french}, @@ -3051,7 +3216,7 @@ several purposes: create the corresponding new entry). #+begin_src latex :tangle letgut.dbx :exports both - \ProvidesFile{letgut.dbx}[2022-03-18 v0.9 letgut data model macros] + \ProvidesFile{letgut.dbx}[2022-03-22 v0.9.1 letgut data model macros] \DeclareBibliographyDriver{bookreview}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% @@ -3106,7 +3271,7 @@ several purposes: We provide a specific ~biblatex~ citation style . #+begin_src latex :tangle letgut.cbx :exports both - \ProvidesFile{letgut.cbx}[2022-03-18 v0.9 letgut base citation style] + \ProvidesFile{letgut.cbx}[2022-03-22 v0.9.1 letgut base citation style] \RequireCitationStyle{numeric} #+end_src diff --git a/Master/texmf-dist/tex/lualatex/letgut/letgut-banner.sty b/Master/texmf-dist/tex/lualatex/letgut/letgut-banner.sty index 6fcb483dbac..44ac08e871b 100644 --- a/Master/texmf-dist/tex/lualatex/letgut/letgut-banner.sty +++ b/Master/texmf-dist/tex/lualatex/letgut/letgut-banner.sty @@ -26,8 +26,8 @@ % by Association GUTenberg. \NeedsTeXFormat{LaTeX2e}[2020-10-01] \ProvidesExplPackage{letgut-banner} -{2022-03-18} -{0.9} +{2022-03-22} +{0.9.1} { Package for the banner of the newsletter “La Lettre de GUTenberg” } diff --git a/Master/texmf-dist/tex/lualatex/letgut/Flag_of_La_Francophonie-crop.pdf b/Master/texmf-dist/tex/lualatex/letgut/letgut-francophony-icon.pdf Binary files differindex f57796b134a..f57796b134a 100644 --- a/Master/texmf-dist/tex/lualatex/letgut/Flag_of_La_Francophonie-crop.pdf +++ b/Master/texmf-dist/tex/lualatex/letgut/letgut-francophony-icon.pdf diff --git a/Master/texmf-dist/tex/lualatex/letgut/letgut.cbx b/Master/texmf-dist/tex/lualatex/letgut/letgut.cbx index 229c1f97c95..4d1a824a020 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-03-18 v0.9 letgut base citation style] +\ProvidesFile{letgut.cbx}[2022-03-22 v0.9.1 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 f1c93271986..74150f6d0cc 100644 --- a/Master/texmf-dist/tex/lualatex/letgut/letgut.cls +++ b/Master/texmf-dist/tex/lualatex/letgut/letgut.cls @@ -44,8 +44,8 @@ } \ExplSyntaxOff \ProvidesExplClass{letgut} -{2022-03-18} -{0.9} +{2022-03-22} +{0.9.1} { Class~ for~ the~ newsletter~ “\c__letgut_La_lettre_gutenberg_tl” @@ -1141,7 +1141,7 @@ belowskip=0pt, \NewDocumentCommand {\francophony} { } { \raisebox{-1.5pt}{ \includegraphics[width=\f@size pt]{ - Flag_of_La_Francophonie-crop + letgut-francophony-icon } } } @@ -1558,7 +1558,7 @@ belowskip=0pt, } \tl_new:N \g__letgut_bookreview_frontcover_tl \tl_new:N \g__letgut_bookreview_bibkey_tl -\keys_define:nn { gzt/bookreview } +\keys_define:nn { letgut/bookreview } { title .tl_gset:N = \g__letgut_bookreview_title_tl, frontcover .tl_gset:N = \g__letgut_bookreview_frontcover_tl, @@ -1574,7 +1574,7 @@ title .value_required:n = true, \cs_generate_variant:Nn \msg_error:nnnn { nnVV } \NewDocumentEnvironment{bookreview}{ m } { - \keys_set:nn { gzt/bookreview } { #1 } + \keys_set:nn { letgut/bookreview } { #1 } \section{\g__letgut_bookreview_title_tl} \tl_if_empty:NTF \g__letgut_bookreview_frontcover_tl { \msg_warning:nnV{letgut}{frontcover-missing}{ diff --git a/Master/texmf-dist/tex/lualatex/letgut/letgut.dbx b/Master/texmf-dist/tex/lualatex/letgut/letgut.dbx index 980e08a909b..fbd6a99f855 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-03-18 v0.9 letgut data model macros] +\ProvidesFile{letgut.dbx}[2022-03-22 v0.9.1 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 da57f1770ca..48df7b7c943 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-03-18 v0.9 letgut localization] +\ProvidesFile{letgut.lbx}[2022-03-22 v0.9.1 letgut localization] \InheritBibliographyExtras{french} \DeclareBibliographyStrings{ inherit = {french}, |