summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tablenotes/mynotes.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/tablenotes/mynotes.sty')
-rw-r--r--Master/texmf-dist/tex/latex/tablenotes/mynotes.sty699
1 files changed, 699 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/tablenotes/mynotes.sty b/Master/texmf-dist/tex/latex/tablenotes/mynotes.sty
new file mode 100644
index 00000000000..d79cbbf4f59
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/tablenotes/mynotes.sty
@@ -0,0 +1,699 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ****************************************
+% * myNOTES x1
+% ****************************************
+%
+% Date of this version: Sun Sep 6 00:25:59 2009
+
+% Matthias Borck-Elsner
+%
+%% Based on endnotes.sty Copyright 2002 John Lavagnino
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.2
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%
+% Uses an extra external file, with .mnt extension, to hold the
+% text of the mynotes. This may be deleted after the run; a new
+% version is generated each time--it doesn't require information
+% collected from the previous run.
+%
+% This code does not obey \nofiles. Perhaps it should.
+%
+%
+% To turn all the footnotes in your documents into mynotes, say
+%
+% \let\footnote=\mynote
+%
+% in your preamble, and then add something like
+%
+% \newpage
+% \begingroup
+% \parindent 0pt
+% \parskip 2ex
+% \def\mntnotesize{\normalsize}
+% \themynotes
+% \endgroup
+%
+% as the last thing in your document. (But \themynotes all
+% by itself will work.)
+%
+
+%
+%
+% ****************************************
+% * myNOTE COMMANDS *
+% ****************************************
+%
+%
+% \mynote{NOTE} : User command to insert a mynote.
+%
+% \mynote[NUM]{NOTE} : User command to insert a mynote numbered
+% NUM, where NUM is a number -- 1, 2,
+% etc. For example, if mynotes are numbered
+% *, **, etc. within pages, then \mynote[2]{...}
+% produces mynote '**'. This command does not
+% step the mynote counter.
+%
+% \mynotemark[NUM] : Command to produce just the mynote mark in
+% the text, but no mynote. With no argument,
+% it steps the mynote counter before generating
+% the mark.
+%
+% \mynotetext[NUM]{TEXT} : Command to produce the mynote but no
+% mark. \mynote is equivalent to
+% \mynotemark \mynotetext .
+%
+% \addtomynotes{TEXT} : Command to add text or commands to current
+% mynotes file: for inserting headings,
+% pagebreaks, and the like into mynotes
+% sections. TEXT a moving argument:
+% \protect required for fragile commands.
+%
+% ****************************************
+% * myNOTE USER COMMANDS *
+% ****************************************
+%
+% mynotes use the following parameters, similar to those relating
+% to footnotes:
+%
+% \mntnotesize : Size-changing command for mynotes.
+%
+% \themynote : In usual LaTeX style, produces the mynote number.
+%
+% \themntmark : Holds the current mynote's mark--e.g., \dag or '1' or 'a'.
+% (You don't want to set this yourself, as it comes
+% either from the autonumbering of notes or from
+% the optional argument to \mynote. But you'll need
+% to use it if you define your own \makemntmark.)
+%
+% \makemntmark : A macro to generate the mynote marker from \themntmark
+% The default definition is \hbox{$^\themntmark$}.
+%
+% \@makemnttext{NOTE} :
+% Must produce the actual mynote, using \themntmark as the mark
+% of the mynote and NOTE as the text. It is called when effectively
+% inside a \parbox, with \hsize = \columnwidth. For example, it might
+% be as simple as
+% $^{\themntmark}$ NOTE
+%
+%
+% ****************************************
+% * myNOTE PSEUDOCODE *
+% ****************************************
+%
+% \mynote{NOTE} ==
+% BEGIN
+% \stepcounter{mynote}
+% \@themntmark :=G eval (\themynote)
+% \@mynotemark
+% \@mynotetext{NOTE}
+% END
+%
+% \mynote[NUM]{NOTE} ==
+% BEGIN
+% begingroup
+% counter mynote :=L NUM
+% \@themntmark :=G eval (\themynote)
+% endgroup
+% \@mynotemark
+% \@mynotetext{NOTE}
+% END
+%
+% \@mynotetext{NOTE} ==
+% BEGIN
+% write to \@mntnotes file: "\@doanmntnote{myNOTE MARK}"
+% begingroup
+% \next := NOTE
+% set \newlinechar for \write to \space
+% write to \@mntnotes file: \meaning\next
+% (that is, "macro:->NOTE)
+% endgroup
+% END
+%
+% \addtomynotes{TEXT} ==
+% BEGIN
+% open mynotes file if not already open
+% begingroup
+% let \protect to \string
+% set \newlinechar for \write to \space
+% write TEXT to \@mntnotes file
+% endgroup
+% END
+%
+% \mynotemark ==
+% BEGIN \stepcounter{mynote}
+% \@themntmark :=G eval(\themynote)
+% \@mynotemark
+% END
+%
+% \mynotemark[NUM] ==
+% BEGIN
+% begingroup
+% mynote counter :=L NUM
+% \@themntmark :=G eval(\themynote)
+% endgroup
+% \@mynotemark
+% END
+%
+% \@mynotemark ==
+% BEGIN
+% \leavevmode
+% IF hmode THEN \@x@sf := \the\spacefactor FI
+% \makemntmark % put number in main text
+% IF hmode THEN \spacefactor := \@x@sf FI
+% END
+%
+% \mynotetext ==
+% BEGIN \@themntmark :=G eval (\themynote)
+% \@mynotetext
+% END
+%
+% \mynotetext[NUM] ==
+% BEGIN begingroup counter mynote :=L NUM
+% \@themntmark :=G eval (\themynote)
+% endgroup
+% \@mynotetext
+% END
+%
+% ****************************************
+% * myNOTE MACROS *
+% ****************************************
+%
+
+\@definecounter{mynote}
+\def\themynote{\@arabic\c@mynote}
+
+\def\@makemntmark{\hbox{\@textsuperscript{\begin{tiny}\@themntmark\end{tiny}}}}
+\def\makemntmark{\@makemntmark}
+
+\def\themntmark{\@themntmark}
+
+\newdimen\mynotesep
+
+\def\mynote{\@ifnextchar[\@xmynote{\stepcounter{mynote}%
+ \protected@xdef\@themntmark{\themynote}%
+ \@mynotemark\@mynotetext}}
+
+\def\@xmynote[#1]{
+ \begingroup
+ \c@mynote=#1\relax
+ \unrestored@protected@xdef\@themntmark{\themynote}%
+ \endgroup
+ \@mynotemark\@mynotetext }
+
+% Here begins a section of mynote code that's really different from
+% the footnote code of LaTeX.
+
+\let\@doanmntnote=0
+\let\@endanmntnote=0
+
+\newwrite\@mntnotes
+\newif\if@mntnotesopen \global\@mntnotesopenfalse
+
+\def\@openmntnotes{\immediate\openout\@mntnotes=\jobname.mnt\relax
+ \global\@mntnotesopentrue}
+
+% The stuff with \next and \meaning is a trick from the TeXbook, 382,
+% there intended for setting verbatim text, but here used to avoid
+% macro expansion when the footnote text is written. \next will have
+% the entire text of the footnote as one long line, which might well
+% overflow limits on output line length; the business with \newlinechar
+% makes every space become a newline in the \@mntnotes file, so that all
+% of the lines wind up being quite short.
+
+\long\def\@mynotetext#1{%
+ \if@mntnotesopen \else \@openmntnotes \fi
+ \immediate\write\@mntnotes{\@doanmntnote{\@themntmark}}%
+ \begingroup
+ \def\next{#1}%
+ \newlinechar='40
+ \immediate\write\@mntnotes{\meaning\next}%
+ \endgroup
+ \immediate\write\@mntnotes{\@endanmntnote}}
+
+% \addtomynotes works the way the other mynote macros probably should
+% have, requiring the use of \protect for fragile commands.
+
+\long\def\addtomynotes#1{%
+ \if@mntnotesopen \else \@openmntnotes \fi
+ \begingroup
+ \newlinechar='40
+ \let\protect\string
+ \immediate\write\@mntnotes{#1}%
+ \endgroup}
+
+% End of unique mynote code
+
+\def\mynotemark{%
+ \@ifnextchar[\@xmynotemark
+ {\stepcounter{mynote}%
+ \protected@xdef\@themntmark{\themynote}%
+ \@mynotemark}}
+
+\def\@xmynotemark[#1]{%
+ \begingroup
+ \c@mynote #1\relax
+ \unrestored@protected@xdef\@themntmark{\themynote}%
+ \endgroup
+ \@mynotemark}
+
+\def\@mynotemark{%
+ \leavevmode
+ \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi
+ \makemntmark
+ \ifhmode\spacefactor\@x@sf\fi
+ \relax}
+
+\def\mynotetext{
+ \@ifnextchar [\@xmynotenext
+ {\protected@xdef\@themntmark{\themynote}%
+ \@mynotetext}}
+
+\def\@xmynotenext[#1]{\begingroup \c@mynote=#1\relax
+ \xdef\@themntmark{\themynote}\endgroup \@mynotetext}
+
+\def\@xmynotenext[#1]{%
+ \begingroup
+ \c@mynote=#1\relax
+ \unrestored@protected@xdef\@themntmark{\themynote}%
+ \endgroup
+ \@mynotetext}
+
+
+% \themynotes actually prints out the mynotes.
+
+% The user may want separate mynotes for each chapter, or a big
+% block of them at the end of the whole document. As it stands,
+% either will work; you just say \themynotes wherever you want the
+% mynotes so far to be inserted. However, you must add
+% \setcounter{mynote}{0} after that if you want subsequent mynotes
+% to start numbering at 1 again.
+
+% \mntnoteformat is provided so user can specify some special formatting
+% for the mynotes. It needs to set up the paragraph parameters, start
+% the paragraph, and print the label. The \mbox stuff in \mntnoteheading
+% is to make and undo a dummy paragraph, to get around the games \section*
+% plays with paragraph indenting and instead give us uniform
+% indenting for all notes.
+
+\def\mntnotesname{ mynotes }
+\def\mntnoteheading{ \subsubsection*{\mntnotesname
+ \@mkboth{\MakeUppercase{\mntnotesname}}{\MakeUppercase{\mntnotesname}}}
+ \mbox{ }\par\vskip-\baselineskip}
+
+\def\mntnoteformat{\rightskip\z@ \leftskip\z@ \parindent=1.8em
+ \leavevmode\llap{\makemntmark}}
+
+\def\mntnotesize{\footnotesize}
+
+\def\themynotes{\immediate\closeout\@mntnotes \global\@mntnotesopenfalse
+ \begingroup
+ \makeatletter
+ %
+ % The machinery with \@ResetGT and > here ensures that
+ % \@doanmntnote works properly even if > is an active character
+ % at the point where \themynotes is invoked. > needs to have
+ % catcode 12 when the arguments of \@doanmntnote are scanned, so
+ % that the > in the string "macro:->" is matched. The actual
+ % footnote text is not an argument to \@doanmntnote, but just
+ % follows it in the .mnt file; so \@ResetGT can reset the
+ % category code for > that should be used when processing
+ % that text. That resetting takes place within a
+ % \begingroup-\endgroup block set up by \@doanmntnote and
+ % \@endanmntnote, so the catcode for > is back to 12 for the
+ % next note.
+ %
+ \edef\@tempa{`\string >}%
+ \ifnum\catcode\@tempa=12%
+ \let\@ResetGT\relax
+ \else
+ \edef\@ResetGT{\noexpand\catcode\@tempa=\the\catcode\@tempa}%
+ \@makeother\>%
+ \fi
+ \def\@doanmntnote##1##2>{\def\@themntmark{##1}\par\begingroup
+ \@ResetGT
+ \edef\@currentlabel{\csname p@mynote\endcsname\@themntmark}%
+ \mntnoteformat}
+ \def\@endanmntnote{\par\endgroup}%
+ \mntnoteheading
+ \mntnotesize
+ \input{\jobname.mnt}%
+ \endgroup}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ****************************************
+% * noNOTES x2
+% ****************************************
+%
+% Date of this version: 28 August 2009.
+% Matthias Borck-Elsner
+%
+%% Based on endnotes.sty Copyright 2002 John Lavagnino
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.2
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%
+% Uses an extra external file, with .not extension, to hold the
+% text of the nonotes. This may be deleted after the run; a new
+% version is generated each time--it doesn't require information
+% collected from the previous run.
+%
+% This code does not obey \nofiles. Perhaps it should.
+%
+%
+% To turn all the footnotes in your documents into nonotes, say
+%
+% \let\footnote=\nonote
+%
+% in your preamble, and then add something like
+%
+% \newpage
+% \begingroup
+% \parindent 0pt
+% \parskip 2ex
+% \def\notnotesize{\normalsize}
+% \thenonotes
+% \endgroup
+%
+% as the last thing in your document. (But \thenonotes all
+% by itself will work.)
+%
+
+%
+%
+% ****************************************
+% * noNOTE COMMANDS *
+% ****************************************
+%
+%
+% \nonote{NOTE} : User command to insert a nonote.
+%
+% \nonote[NUM]{NOTE} : User command to insert a nonote numbered
+% NUM, where NUM is a number -- 1, 2,
+% etc. For example, if nonotes are numbered
+% *, **, etc. within pages, then \nonote[2]{...}
+% produces nonote '**'. This command does not
+% step the nonote counter.
+%
+% \nonotemark[NUM] : Command to produce just the nonote mark in
+% the text, but no nonote. With no argument,
+% it steps the nonote counter before generating
+% the mark.
+%
+% \nonotetext[NUM]{TEXT} : Command to produce the nonote but no
+% mark. \nonote is equivalent to
+% \nonotemark \nonotetext .
+%
+% \addtononotes{TEXT} : Command to add text or commands to current
+% nonotes file: for inserting headings,
+% pagebreaks, and the like into nonotes
+% sections. TEXT a moving argument:
+% \protect required for fragile commands.
+%
+% ****************************************
+% * noNOTE USER COMMANDS *
+% ****************************************
+%
+% nonotes use the following parameters, similar to those relating
+% to footnotes:
+%
+% \notnotesize : Size-changing command for nonotes.
+%
+% \thenonote : In usual LaTeX style, produces the nonote number.
+%
+% \thenotmark : Holds the current nonote's mark--e.g., \dag or '1' or 'a'.
+% (You don't want to set this yourself, as it comes
+% either from the autonumbering of notes or from
+% the optional argument to \nonote. But you'll need
+% to use it if you define your own \makenotmark.)
+%
+% \makenotmark : A macro to generate the nonote marker from \thenotmark
+% The default definition is \hbox{$^\thenotmark$}.
+%
+% \@makenottext{NOTE} :
+% Must produce the actual nonote, using \thenotmark as the mark
+% of the nonote and NOTE as the text. It is called when effectively
+% inside a \parbox, with \hsize = \columnwidth. For example, it might
+% be as simple as
+% $^{\thenotmark}$ NOTE
+%
+%
+% ****************************************
+% * noNOTE PSEUDOCODE *
+% ****************************************
+%
+% \nonote{NOTE} ==
+% BEGIN
+% \stepcounter{nonote}
+% \@thenotmark :=G eval (\thenonote)
+% \@nonotemark
+% \@nonotetext{NOTE}
+% END
+%
+% \nonote[NUM]{NOTE} ==
+% BEGIN
+% begingroup
+% counter nonote :=L NUM
+% \@thenotmark :=G eval (\thenonote)
+% endgroup
+% \@nonotemark
+% \@nonotetext{NOTE}
+% END
+%
+% \@nonotetext{NOTE} ==
+% BEGIN
+% write to \@notnotes file: "\@doannotnote{noNOTE MARK}"
+% begingroup
+% \next := NOTE
+% set \newlinechar for \write to \space
+% write to \@notnotes file: \meaning\next
+% (that is, "macro:->NOTE)
+% endgroup
+% END
+%
+% \addtononotes{TEXT} ==
+% BEGIN
+% open nonotes file if not already open
+% begingroup
+% let \protect to \string
+% set \newlinechar for \write to \space
+% write TEXT to \@notnotes file
+% endgroup
+% END
+%
+% \nonotemark ==
+% BEGIN \stepcounter{nonote}
+% \@thenotmark :=G eval(\thenonote)
+% \@nonotemark
+% END
+%
+% \nonotemark[NUM] ==
+% BEGIN
+% begingroup
+% nonote counter :=L NUM
+% \@thenotmark :=G eval(\thenonote)
+% endgroup
+% \@nonotemark
+% END
+%
+% \@nonotemark ==
+% BEGIN
+% \leavevmode
+% IF hmode THEN \@x@sf := \the\spacefactor FI
+% \makenotmark % put number in main text
+% IF hmode THEN \spacefactor := \@x@sf FI
+% END
+%
+% \nonotetext ==
+% BEGIN \@thenotmark :=G eval (\thenonote)
+% \@nonotetext
+% END
+%
+% \nonotetext[NUM] ==
+% BEGIN begingroup counter nonote :=L NUM
+% \@thenotmark :=G eval (\thenonote)
+% endgroup
+% \@nonotetext
+% END
+%
+% ****************************************
+% * noNOTE MACROS *
+% ****************************************
+%
+
+\@definecounter{nonote}
+\def\thenonote{\@arabic\c@nonote}
+
+\def\@makenotmark{\hbox{\@textsuperscript{\begin{tiny}\@thenotmark\end{tiny}}}}
+\def\makenotmark{\@makenotmark}
+
+\def\thenotmark{\@thenotmark}
+
+\newdimen\nonotesep
+
+\def\nonote{\@ifnextchar[\@xnonote{\stepcounter{nonote}%
+ \protected@xdef\@thenotmark{\thenonote}%
+ \@nonotemark\@nonotetext}}
+
+\def\@xnonote[#1]{
+ \begingroup
+ \c@nonote=#1\relax
+ \unrestored@protected@xdef\@thenotmark{\thenonote}%
+ \endgroup
+ \@nonotemark\@nonotetext }
+
+% Here begins a section of nonote code that's really different from
+% the footnote code of LaTeX.
+
+\let\@doannotnote=0
+\let\@endannotnote=0
+
+\newwrite\@notnotes
+\newif\if@notnotesopen \global\@notnotesopenfalse
+
+\def\@opennotnotes{\immediate\openout\@notnotes=\jobname.not\relax
+ \global\@notnotesopentrue}
+
+% The stuff with \next and \meaning is a trick from the TeXbook, 382,
+% there intended for setting verbatim text, but here used to avoid
+% macro expansion when the footnote text is written. \next will have
+% the entire text of the footnote as one long line, which might well
+% overflow limits on output line length; the business with \newlinechar
+% makes every space become a newline in the \@notnotes file, so that all
+% of the lines wind up being quite short.
+
+\long\def\@nonotetext#1{
+ \if@notnotesopen \else \@opennotnotes \fi
+ \immediate\write\@notnotes{\@doannotnote{\@thenotmark}}%
+ \begingroup
+ \def\next{#1}%
+ \newlinechar='40
+ \immediate\write\@notnotes{\meaning\next}%
+ \endgroup
+ \immediate\write\@notnotes{\@endannotnote}}
+
+% \addtononotes works the way the other nonote macros probably should
+% have, requiring the use of \protect for fragile commands.
+
+\long\def\addtononotes#1{%
+ \if@notnotesopen \else \@opennotnotes \fi
+ \begingroup
+ \newlinechar='40
+ \let\protect\string
+ \immediate\write\@notnotes{#1}%
+ \endgroup}
+
+% End of unique nonote code
+
+\def\nonotemark{%
+ \@ifnextchar[\@xnonotemark
+ {\stepcounter{nonote}%
+ \protected@xdef\@thenotmark{\thenonote}%
+ \@nonotemark}}
+
+\def\@xnonotemark[#1]{%
+ \begingroup
+ \c@nonote #1\relax
+ \unrestored@protected@xdef\@thenotmark{\thenonote}%
+ \endgroup
+ \@nonotemark}
+
+\def\@nonotemark{%
+ \leavevmode
+ \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi
+ \makenotmark
+ \ifhmode\spacefactor\@x@sf\fi
+ \relax}
+
+\def\nonotetext{%
+ \@ifnextchar [\@xnonotenext
+ {\protected@xdef\@thenotmark{\thenonote}%
+ \@nonotetext}}
+
+\def\@xnonotenext[#1]{\begingroup \c@nonote=#1\relax
+ \xdef\@thenotmark{\thenonote}\endgroup \@nonotetext}
+
+\def\@xnonotenext[#1]{%
+ \begingroup
+ \c@nonote=#1\relax
+ \unrestored@protected@xdef\@thenotmark{\thenonote}%
+ \endgroup
+ \@nonotetext}
+
+
+% \thenonotes actually prints out the nonotes.
+
+% The user may want separate nonotes for each chapter, or a big
+% block of them at the end of the whole document. As it stands,
+% either will work; you just say \thenonotes wherever you want the
+% nonotes so far to be inserted. However, you must add
+% \setcounter{nonote}{0} after that if you want subsequent nonotes
+% to start numbering at 1 again.
+
+% \notnoteformat is provided so user can specify some special formatting
+% for the nonotes. It needs to set up the paragraph parameters, start
+% the paragraph, and print the label. The \mbox stuff in \notnoteheading
+% is to make and undo a dummy paragraph, to get around the games \section*
+% plays with paragraph indenting and instead give us uniform
+% indenting for all notes.
+
+\def\notnotesname{ nonotes }
+\def\notnoteheading{\subsubsection*{\notnotesname
+ \@mkboth{\MakeUppercase{\notnotesname}}{\MakeUppercase{\notnotesname}}}
+ \mbox{}\par\vskip-\baselineskip}
+
+\def\notnoteformat{\rightskip\z@ \leftskip\z@ \parindent=1.8em
+ \leavevmode\llap{\makenotmark}}
+
+\def\notnotesize{\footnotesize}
+
+\def\thenonotes{\immediate\closeout\@notnotes \global\@notnotesopenfalse
+ \begingroup
+ \makeatletter
+ %
+ % The machinery with \@ResetGT and > here ensures that
+ % \@doannotnote works properly even if > is an active character
+ % at the point where \thenonotes is invoked. > needs to have
+ % catcode 12 when the arguments of \@doannotnote are scanned, so
+ % that the > in the string "macro:->" is matched. The actual
+ % footnote text is not an argument to \@doannotnote, but just
+ % follows it in the .not file; so \@ResetGT can reset the
+ % category code for > that should be used when processing
+ % that text. That resetting takes place within a
+ % \begingroup-\endgroup block set up by \@doannotnote and
+ % \@endannotnote, so the catcode for > is back to 12 for the
+ % next note.
+ %
+ \edef\@tempa{`\string >}%
+ \ifnum\catcode\@tempa=12%
+ \let\@ResetGT\relax
+ \else
+ \edef\@ResetGT{\noexpand\catcode\@tempa=\the\catcode\@tempa}%
+ \@makeother\>%
+ \fi
+ \def\@doannotnote##1##2>{\def\@thenotmark{##1}\par\begingroup
+ \@ResetGT
+ \edef\@currentlabel{\csname p@nonote\endcsname\@thenotmark}%
+ \notnoteformat}
+ \def\@endannotnote{\par\endgroup}%
+ \notnoteheading
+ \notnotesize
+ \input{\jobname.not}
+ \endgroup}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+