From 38a85335a98b9ebd1d72dc8423ac1a4aa9061000 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 14 Jan 2023 20:48:59 +0000 Subject: letgut (14jan23) git-svn-id: svn://tug.org/texlive/trunk@65536 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/lualatex/letgut/informations-gut.tex | 2 +- .../tex/lualatex/letgut/letgut-lstlang.sty | 682 ++++++++++++++++++++- Master/texmf-dist/tex/lualatex/letgut/letgut.cbx | 2 +- Master/texmf-dist/tex/lualatex/letgut/letgut.cls | 567 +++++++++++++---- Master/texmf-dist/tex/lualatex/letgut/letgut.dbx | 2 +- Master/texmf-dist/tex/lualatex/letgut/letgut.lbx | 2 +- 6 files changed, 1124 insertions(+), 133 deletions(-) (limited to 'Master/texmf-dist/tex/lualatex') 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 % % % 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}, -- cgit v1.2.3