diff options
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/lexref/lexref.sty | 278 |
1 files changed, 142 insertions, 136 deletions
diff --git a/Master/texmf-dist/tex/latex/lexref/lexref.sty b/Master/texmf-dist/tex/latex/lexref/lexref.sty index ed804a95500..220c356aef8 100644 --- a/Master/texmf-dist/tex/latex/lexref/lexref.sty +++ b/Master/texmf-dist/tex/latex/lexref/lexref.sty @@ -1,5 +1,9 @@ +%lexref 2015/01/11 v1.1 alpha +%Copyright (c) Adrien Vion. adrien[dot]vion3[at]gmail[dot]com. +%This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 of this license or any later version. +%The latest version of this license is in http://www.latex-project.org/lppl.txt and version 1.3 or later is part of all distributions of LaTeX version 2005/12/01 or later. %------------ identification -------------- -\ProvidesPackage{lexref}[2014/01/21 v1.0.1a]% +\ProvidesPackage{lexref}[2015/01/11 v1.1a]% \NeedsTeXFormat{LaTeX2e}% %------------ package loading -------------- \RequirePackage{etoolbox}% @@ -23,13 +27,13 @@ \newcounter{lexcitecountinteger} % Error messages setting \newcommand{\lexcite@err@invalidthirdarg@DeclareLex}{\PackageError{lexref}{% -Third argument of \protect\DeclareLex\space must +Fourth argument of \protect\DeclareLex\space must be either 'alt' or nothing. Check your \protect\DeclareCite\space macros}} %------------ declaration of options -------------- \DeclareOption{noprint}{\toggletrue{lexnoprint}} \DeclareOption{indexing}{\toggletrue{lexindexing}\makeindex} \DeclareOption{nomencl}{\toggletrue{lexnomencl}\robustify{\nomenclature}\makenomenclature} -\DeclareOption{shortcutstolist}{\toggletrue{lexshortcutstolist}\makenomenclature}%\robustify{\nomenclature}} +\DeclareOption{shortcutstolist}{\toggletrue{lexshortcutstolist}\makenomenclature} \DeclareOption{CHfr}{\toggletrue{lexrefCHfr}} \DeclareOption{CHde}{\toggletrue{lexrefCHde}} \DeclareOption{DE}{\toggletrue{lexrefDE}} @@ -37,180 +41,166 @@ be either 'alt' or nothing. Check your \protect\DeclareCite\space macros}} \ProcessOptions %------------ main code -------------- % DEFINITION OF LITERAL PREFIXES AND SHORTCUTS +% +% \NewLexShortcut +% #1 = Shortcutname +% #2 = Printed Shortcut +% #3 (optional) = Unabreviated shortcut \newcommandx{\NewLexShortcut}[3][3]{% -\ifdef{#1}{% This test makes sure an already defined command is overrided, ensuring the nomenclature tests will work properly -\renewrobustcmd{#1}{#2% -\iftoggle{lexshortcutstolist}{% Entry in nomenclature, if option activated and #3 defined. - \ifstrempty{#3}% - {}% - {\ifcsdef{nomalreadydef#2}% Nomencl crashes if the same act is already passed to \nomenclature in another page, so this test ensures it won't be passed more than once - {}% - {% - \nomenclature{#2}{#3}% - \expandafter\newcommand\csname nomalreadydef#2\endcsname\relax% - }% - }% - }% - {}% -}}% -{% -\newrobustcmd{#1}{#2% -\iftoggle{lexshortcutstolist}{% Entry in nomenclature, if option activated and #3 defined. - \ifstrempty{#3}% +% 1) Creation of a toggle for nomenclature, if needed +\iftoggle{lexshortcutstolist}{\newtoggle{#1nmcl}\global\togglefalse{#1nmcl}}{}% +% 2) Creation of the Shortcut macro +\expandafter\newcommandx\csname#1\endcsname{#2% +% 3) Adding to nomenclature list, if needed +\iftoggle{lexshortcutstolist}{% +\ifstrempty{#3}{}{% + \iftoggle{#1nmcl}% {}% - {\ifcsdef{nomalreadydef#2}% Nomencl crashes if the same act is already passed to \nomenclature in another page, so this test ensures it won't be passed more than once - {}% - {% - \nomenclature{#2}{#3}% - \expandafter\newcommand\csname nomalreadydef#2\endcsname\relax% - }% - }% + {\nomenclature{#2}{#3}\global\toggletrue{#1nmcl}}% + }}% + {}% }% - {}% -}}% -}% -% Following shortcuts may be redefined using \RenewLexShortcut +} +% \RenewLexShortcut \newcommandx{\RenewLexShortcut}[3][3]{% -\renewrobustcmd{#1}{#2% -\iftoggle{lexshortcutstolist}{% Entry in nomenclature, if option activated and #3 defined. - \ifstrempty{#3}% +% 1) Creation of the Shortcut macro +\expandafter\renewcommandx\csname#1\endcsname{#2% +% 2) Adding to nomenclature list, if needed +\iftoggle{lexshortcutstolist}{% +\ifstrempty{#3}{}{% + \iftoggle{#1nmcl}% {}% - {\ifcsdef{nomalreadydef#2}% Nomencl crashes if the same act is already passed to \nomenclature in another page, so this test ensures it won't be passed more than once - {}% - {% - \nomenclature{#2}{#3}% - \expandafter\newcommand\csname nomalreadydef#2\endcsname\relax% - }% - }% + {\nomenclature{#2}{#3}\global\toggletrue{#1nmcl}}% + }}% + {}% }% - {}% -}} +} % Default shortcuts: english -\NewLexShortcut{\DispPrefixMain}{art.}[article(s)]% -\NewLexShortcut{\DispsPrefixMain}{art.}% -\NewLexShortcut{\DispPrefixAlt}{\S}% -\NewLexShortcut{\DispsPrefixAlt}{\S\S}% -\NewLexShortcut{\SubPrefix}{par.}[paragraph(s)] -\NewLexShortcut{\SubSubPrefixNumber}{nr.}[number(s)] -\NewLexShortcut{\SubSubPrefixLetter}{let.}[letter(s)] -\NewLexShortcut{\sq}{sq.}[sequiturque] -\NewLexShortcut{\sqq}{sqq.}[sequunturque] -\NewLexShortcut{\analog}{by an.}[by analogy] +\NewLexShortcut{DispPrefixMain}{art.}[article(s)]% +\NewLexShortcut{DispsPrefixMain}{art.}% +\NewLexShortcut{DispPrefixAlt}{\S}% +\NewLexShortcut{DispsPrefixAlt}{\S\S}% +\NewLexShortcut{SubPrefix}{par.}[paragraph(s)] +\NewLexShortcut{SubSubPrefixNumber}{nr.}[number(s)] +\NewLexShortcut{SubSubPrefixLetter}{let.}[letter(s)] +\NewLexShortcut{sq}{sq.}[sequiturque] +\NewLexShortcut{sqq}{sqq.}[sequunturque] +\NewLexShortcut{analog}{by an.}[by analogy] % french shortcuts \iftoggle{lexrefCHfr}{% -\RenewLexShortcut{\DispPrefixMain}{art.}[article(s)]% -\RenewLexShortcut{\DispsPrefixMain}{art.}% -\RenewLexShortcut{\DispPrefixAlt}{\S}% -\RenewLexShortcut{\DispsPrefixAlt}{\S\S}% -\RenewLexShortcut{\SubPrefix}{al.}[alin\'ea(s)] -\RenewLexShortcut{\SubSubPrefixNumber}{ch.}[chiffre(s)] -\RenewLexShortcut{\SubSubPrefixLetter}{let.}[lettre(s)] -\RenewLexShortcut{\sq}{s.}[et suivant(e)] -\RenewLexShortcut{\sqq}{ss}[et suivant(e)s] -\RenewLexShortcut{\analog}{p. an.}[par analogie] +\RenewLexShortcut{DispPrefixMain}{art.}[article(s)]% +\RenewLexShortcut{DispsPrefixMain}{art.}% +\RenewLexShortcut{DispPrefixAlt}{\S}% +\RenewLexShortcut{DispsPrefixAlt}{\S\S}% +\RenewLexShortcut{SubPrefix}{al.}[alin\'ea(s)] +\RenewLexShortcut{SubSubPrefixNumber}{ch.}[chiffre(s)] +\RenewLexShortcut{SubSubPrefixLetter}{let.}[lettre(s)] +\RenewLexShortcut{sq}{s.}[et suivant(e)] +\RenewLexShortcut{sqq}{ss}[et suivant(e)s] +\RenewLexShortcut{analog}{p. an.}[par analogie] \renewrobustcmd{\nomname}{Abr\'eviations} }{} % german CH shortcuts \iftoggle{lexrefCHde}{% -\RenewLexShortcut{\DispPrefixMain}{Art.}[Artikel(n)]% -\RenewLexShortcut{\DispsPrefixMain}{Art.}% -\RenewLexShortcut{\DispPrefixAlt}{\S}% -\RenewLexShortcut{\DispsPrefixAlt}{\S\S}% -\RenewLexShortcut{\SubPrefix}{Abs.}[Absatz, -\"{ }e] -\RenewLexShortcut{\SubSubPrefixNumber}{Ziff.}[Ziffer(n)] -\RenewLexShortcut{\SubSubPrefixLetter}{lit.}[litera] -\RenewLexShortcut{\sq}{f.}[und die folgende] -\RenewLexShortcut{\sqq}{ff.}[und die folgenden] -\RenewLexShortcut{\analog}{analog} +\RenewLexShortcut{DispPrefixMain}{Art.}[Artikel(n)]% +\RenewLexShortcut{DispsPrefixMain}{Art.}% +\RenewLexShortcut{DispPrefixAlt}{\S}% +\RenewLexShortcut{DispsPrefixAlt}{\S\S}% +\RenewLexShortcut{SubPrefix}{Abs.}[Absatz, -\"{ }e] +\RenewLexShortcut{SubSubPrefixNumber}{Ziff.}[Ziffer(n)] +\RenewLexShortcut{SubSubPrefixLetter}{lit.}[litera] +\RenewLexShortcut{sq}{f.}[und die folgende] +\RenewLexShortcut{sqq}{ff.}[und die folgenden] +\RenewLexShortcut{analog}{analog} \renewrobustcmd{\nomname}{Abk\"urzungen} }{} % german DE shortcuts \iftoggle{lexrefDE}{% -\RenewLexShortcut{\DispPrefixMain}{\S}% -\RenewLexShortcut{\DispsPrefixMain}{\S\S}% -\RenewLexShortcut{\DispPrefixAlt}{Art.}[Artikel(n)]% -\RenewLexShortcut{\DispsPrefixAlt}{Art.}% -\RenewLexShortcut{\SubPrefix}{Abs.}[Absatz, -\"{ }e] -\RenewLexShortcut{\SubSubPrefixNumber}{Ziff.}[Ziffer(n)] -\RenewLexShortcut{\SubSubPrefixLetter}{lit.}[litera] -\RenewLexShortcut{\sq}{f.}[und die folgende] -\RenewLexShortcut{\sqq}{ff.}[und die folgenden] -\RenewLexShortcut{\analog}{analog} +\RenewLexShortcut{DispPrefixMain}{\S}% +\RenewLexShortcut{DispsPrefixMain}{\S\S}% +\RenewLexShortcut{DispPrefixAlt}{Art.}[Artikel(n)]% +\RenewLexShortcut{DispsPrefixAlt}{Art.}% +\RenewLexShortcut{SubPrefix}{Abs.}[Absatz, -\"{ }e] +\RenewLexShortcut{SubSubPrefixNumber}{Ziff.}[Ziffer(n)] +\RenewLexShortcut{SubSubPrefixLetter}{lit.}[litera] +\RenewLexShortcut{sq}{f.}[und die folgende] +\RenewLexShortcut{sqq}{ff.}[und die folgenden] +\RenewLexShortcut{analog}{analog} \renewrobustcmd{\nomname}{Abk\"urzungen} }{} % Latin shortcuts -\NewLexShortcut{\bis}{$^{bis}$} -\NewLexShortcut{\ter}{$^{ter}$} -\NewLexShortcut{\quater}{$^{quater}$} -\NewLexShortcut{\quinquies}{$^{quinquies}$} -\NewLexShortcut{\sexies}{$^{sexies}$} -\NewLexShortcut{\septies}{$^{septies}$} -\NewLexShortcut{\octies}{$^{octies}$} -\NewLexShortcut{\nonies}{$^{nonies}$} +\NewLexShortcut{bis}{$^{bis}$} +\NewLexShortcut{ter}{$^{ter}$} +\NewLexShortcut{quater}{$^{quater}$} +\NewLexShortcut{quinquies}{$^{quinquies}$} +\NewLexShortcut{sexies}{$^{sexies}$} +\NewLexShortcut{septies}{$^{septies}$} +\NewLexShortcut{octies}{$^{octies}$} +\NewLexShortcut{nonies}{$^{nonies}$} % FRONT-END USER INTERFACE - % #1 = Act abbr. - % #2 = Act full name - % #3 = alt option + % #1 = CSname + % #2 = Printed Act abbr. + % #3 = Act full name + % #4 = alt option -\newcommandx{\DeclareLex}[3][2,3]{% +\newcommandx{\DeclareLex}[4][3,4]{% \protecting{% -% 1) Creation of \newindex, if needed -\iftoggle{lexindexing}{\newindex[#2]{#1}}{}% +% 1) Creation of \newindex + toggle for nomenclature, if needed +\iftoggle{lexindexing}{\newindex[#3]{#1}}{}% +\iftoggle{lexnomencl}{\newtoggle{#1nmcl}\global\togglefalse{#1nmcl}}{}% % 2) Creation of \#1 command \expandafter\newcommandx\csname#1\endcsname[4][2,3,4]{% -\ifstrempty{#3}{\togglefalse{lexaltoverride}}{\ifstrequal{#3}{alt}{\toggletrue{lexaltoverride}}{\lexcite@err@invalidthirdarg@DeclareLex}}%Checking whether #3 is blank or set to 'alt', else: error -\iftoggle{lexnoprint}{}{\LexRef{#1}{##1}[##2][##3][##4]}% Printing, unless noprint option activated -\iftoggle{lexnomencl}{% Entry in nomenclature, if option activated and #2 defined. - \ifstrempty{#2}% +\ifstrempty{#4}{\togglefalse{lexaltoverride}}{\ifstrequal{#4}{alt}{\toggletrue{lexaltoverride}}{\lexcite@err@invalidthirdarg@DeclareLex}}%Checking whether #4 is blank or set to 'alt', else: error +\iftoggle{lexnoprint}{}{\LexRef{#2}{##1}[##2][##3][##4]}% Printing, unless noprint option activated +\iftoggle{lexnomencl}{% Entry in nomenclature, if option activated and #3 defined. + \ifstrempty{#3}% {}% - {\ifcsdef{nomalreadydef#1}% Nomencl crashes if the same act is already passed to \nomenclature in another page, so this test ensures it won't be passed more than once + {\iftoggle{#1nmcl}% {}% - {% - \nomenclature{#1}{#2}% - \expandafter\newcommand\csname nomalreadydef#1\endcsname\relax}% + {\nomenclature{#2}{#3}\global\toggletrue{#1nmcl}}% }% }% {}% -\iftoggle{lexindexing}{\LexIndex{#1}{##1}[##2][##3][##4]}{}% Indexing, if option activated +\iftoggle{lexindexing}{\LexIndex{#1}{##1}[##2][##3][##4]{#2}}{}% Indexing, if option activated }% % 3) Creation of \#1ns command \expandafter\newcommandx\csname #1ns\endcsname[4][2,3,4]{% -\ifstrempty{#3}{\togglefalse{lexaltoverride}}{\ifstrequal{#3}{alt}{\toggletrue{lexaltoverride}}{\lexcite@err@invalidthirdarg@DeclareLex}}%Checking whether #3 is blank or set to 'alt', else: error -\iftoggle{lexnoprint}{}{\LexRefns{#1}{##1}[##2][##3][##4]}% Printing, unless noprint option activated -\iftoggle{lexindexing}{\LexIndex{#1}{##1}[##2][##3][##4]}{}% Indexing, if option activated +\ifstrempty{#4}{\togglefalse{lexaltoverride}}{\ifstrequal{#4}{alt}{\toggletrue{lexaltoverride}}{\lexcite@err@invalidthirdarg@DeclareLex}}%Checking whether #4 is blank or set to 'alt', else: error +\iftoggle{lexnoprint}{}{\LexRefns{#2}{##1}[##2][##3][##4]}% Printing, unless noprint option activated +\iftoggle{lexindexing}{\LexIndex{#1}{##1}[##2][##3][##4]{#2}}{}% Indexing, if option activated }% +% no need to entry anything in nomenclature here, cause act's name doesn't appear with \#1ns % 4) Creation of \np#1 command \expandafter\newcommandx\csname np#1\endcsname[4][2,3,4]{% -\iftoggle{lexnoprint}{}{\npLexRef{#1}{##1}[##2][##3][##4]}% Printing, unless noprint option activated -\iftoggle{lexnomencl}{% Entry in nomenclature, if option activated and #2 defined. - \ifstrempty{#2}% +% no need to test alt option here, cause no prefix is printed with \np#1 +\iftoggle{lexnoprint}{}{\npLexRef{#2}{##1}[##2][##3][##4]}% Printing, unless noprint option activated +\iftoggle{lexnomencl}{% Entry in nomenclature, if option activated and #3 defined. + \ifstrempty{#3}% {}% - {\ifcsdef{nomalreadydef#1}% Nomencl crashes if the same act is already passed to \nomenclature in another page, so this test ensures it won't be passed more than once + {\iftoggle{#1nmcl}% {}% - {% - \nomenclature{#1}{#2}% - \expandafter\newcommand\csname nomalreadydef#1\endcsname\relax}% - }% + {\nomenclature{#2}{#3}\global\toggletrue{#1nmcl}}% + }% }% {}% -\iftoggle{lexindexing}{\LexIndex{#1}{##1}[##2][##3][##4]}{}% Indexing, if option activated +\iftoggle{lexindexing}{\LexIndex{#1}{##1}[##2][##3][##4]{#2}}{}% Indexing, if option activated }% % 5) Creation of \np#1ns command \expandafter\newcommandx\csname np#1ns\endcsname[4][2,3,4]{% -\iftoggle{lexnoprint}{}{\npLexRefns{#1}{##1}[##2][##3][##4]}% Printing, unless noprint option activated -\iftoggle{lexindexing}{\LexIndex{#1}{##1}[##2][##3][##4]}{}% Indexing, if option activated +\iftoggle{lexnoprint}{}{\npLexRefns{#2}{##1}[##2][##3][##4]}% Printing, unless noprint option activated +\iftoggle{lexindexing}{\LexIndex{#1}{##1}[##2][##3][##4]{#2}}{}% Indexing, if option activated }% % 6) Creation of \idx#1 command \iftoggle{lexindexing}{\expandafter\newcommandx\csname idx#1\endcsname[4][2,3,4]{% -\LexIndex{#1}{##1}[##2][##3][##4]}}{}% Indexing, if option activated +\LexIndex{#1}{##1}[##2][##3][##4]{#2}}}{}% Indexing, if option activated }} % PRINTING MACROS +% Testing if singular or plural prefix needed \newrobustcmd{\LexRefPrefixTests}[1]{% -% Testing if singular or plural profix needed \IfSubStr{#1}{\sq}% First testing if string contains \psq or \psqq {\toggletrue{lexpluralform}}% if yes, plural form {% else @@ -222,7 +212,7 @@ be either 'alt' or nothing. Check your \protect\DeclareCite\space macros}} {\togglefalse{lexpluralform}}% else singular form }% }% -% Printing MAIN or ALT Prefix depending on lexaltoverride, and singular/plural depending on previous test +% Printing MAIN or ALT Prefix depending on lexaltoverride toggle, and singular/plural depending on previous test \iftoggle{lexpluralform}% {\iftoggle{lexaltoverride}% {\DispsPrefixAlt}% @@ -235,6 +225,14 @@ be either 'alt' or nothing. Check your \protect\DeclareCite\space macros}} } % Macro with prefix and suffix + +% \LexRef and derivates' arguments +% #1 = Printed Act's name +% #2 = Cited art. number +% #3 (optionnal) = paragraph number +% #4 (optionnal) = number +% #5 (optionnal) = letter + \newcommandx{\LexRef}[5][3,4,5]{% \LexRefPrefixTests{#2} % #2% @@ -273,7 +271,15 @@ be either 'alt' or nothing. Check your \protect\DeclareCite\space macros}} % INDEXING MACRO -\newcommandx{\LexIndex}[5][3,4,5]{% +% \LexIndex arguments +% #1 = Act's CSname (= also name of the Act's index) +% #2 = Cited art. number +% #3 (optionnal) = paragraph number +% #4 (optionnal) = number +% #5 (optionnal) = letter +% #6 = Act's printed abbreviation (to be printed in the index) + +\newcommandx{\LexIndex}[6][3,4,5]{% % 1) First cleaning \noexpandarg% \IfSubStr{#2}{\sq}% Test \sq @@ -364,9 +370,9 @@ be either 'alt' or nothing. Check your \protect\DeclareCite\space macros}} and% not test {\ifstrempty{#5}}% }% - {\sindex[#1]{1@#1 #2!-- \SubPrefix{} #3}}% index only takes #3 as subentry + {\sindex[#1]{1@#6 #2!-- \SubPrefix{} #3}}% index only takes #3 as subentry {% - \sindex[#1]{1@#1 #2% else: indexing everything + \sindex[#1]{1@#6 #2% else: indexing everything \ifstrempty{#3}{}{!-- \SubPrefix{} #3}% \ifstrempty{#4}{}{!-- \SubSubPrefixNumber{} #4}% \ifstrempty{#5}{}{!-- \SubSubPrefixLetter{} #5}% @@ -380,9 +386,9 @@ be either 'alt' or nothing. Check your \protect\DeclareCite\space macros}} and% not test {\ifstrempty{#5}}% }% - {\sindex[#1]{10@#1 #2!-- \SubPrefix{} #3}}% index only takes #3 as subentry + {\sindex[#1]{10@#6 #2!-- \SubPrefix{} #3}}% index only takes #3 as subentry {% - \sindex[#1]{10@#1 #2% else: indexing everything + \sindex[#1]{10@#6 #2% else: indexing everything \ifstrempty{#3}{}{!-- \SubPrefix{} #3}% \ifstrempty{#4}{}{!-- \SubSubPrefixNumber{} #4}% \ifstrempty{#5}{}{!-- \SubSubPrefixLetter{} #5}% @@ -396,9 +402,9 @@ be either 'alt' or nothing. Check your \protect\DeclareCite\space macros}} and% not test {\ifstrempty{#5}}% }% - {\sindex[#1]{100@#1 #2!-- \SubPrefix{} #3}}% index only takes #3 as subentry + {\sindex[#1]{100@#6 #2!-- \SubPrefix{} #3}}% index only takes #3 as subentry {% - \sindex[#1]{100@#1 #2% else: indexing everything + \sindex[#1]{100@#6 #2% else: indexing everything \ifstrempty{#3}{}{!-- \SubPrefix{} #3}% \ifstrempty{#4}{}{!-- \SubSubPrefixNumber{} #4}% \ifstrempty{#5}{}{!-- \SubSubPrefixLetter{} #5}% @@ -412,9 +418,9 @@ be either 'alt' or nothing. Check your \protect\DeclareCite\space macros}} and% not test {\ifstrempty{#5}}% }% - {\sindex[#1]{1000@#1 #2!-- \SubPrefix{} #3}}% index only takes #3 as subentry + {\sindex[#1]{1000@#6 #2!-- \SubPrefix{} #3}}% index only takes #3 as subentry {% - \sindex[#1]{1000@#1 #2% else: indexing everything + \sindex[#1]{1000@#6 #2% else: indexing everything \ifstrempty{#3}{}{!-- \SubPrefix{} #3}% \ifstrempty{#4}{}{!-- \SubSubPrefixNumber{} #4}% \ifstrempty{#5}{}{!-- \SubSubPrefixLetter{} #5}% @@ -428,9 +434,9 @@ be either 'alt' or nothing. Check your \protect\DeclareCite\space macros}} and% not test {\ifstrempty{#5}}% }% - {\sindex[#1]{10000@#1 #2!-- \SubPrefix{} #3}}% index only takes #3 as subentry + {\sindex[#1]{10000@#6 #2!-- \SubPrefix{} #3}}% index only takes #3 as subentry {% - \sindex[#1]{10000@#1 #2% else: indexing everything + \sindex[#1]{10000@#6 #2% else: indexing everything \ifstrempty{#3}{}{!-- \SubPrefix{} #3}% \ifstrempty{#4}{}{!-- \SubSubPrefixNumber{} #4}% \ifstrempty{#5}{}{!-- \SubSubPrefixLetter{} #5}% |