summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/concepts
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-02-03 23:19:06 +0000
committerKarl Berry <karl@freefriends.org>2013-02-03 23:19:06 +0000
commit63e73c3808dd65036101306e76f07367375c2cbf (patch)
tree67976d02ae4cdfa20cb964ff64869460787a67f6 /Master/texmf-dist/tex/latex/concepts
parent8a8417f5836990019f938286ea9db43168c3c5ba (diff)
styles for doc in doc/
git-svn-id: svn://tug.org/texlive/trunk@29020 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/concepts')
-rw-r--r--Master/texmf-dist/tex/latex/concepts/dry.sty56
-rw-r--r--Master/texmf-dist/tex/latex/concepts/packagedoc.cls353
-rw-r--r--Master/texmf-dist/tex/latex/concepts/with.sty309
3 files changed, 0 insertions, 718 deletions
diff --git a/Master/texmf-dist/tex/latex/concepts/dry.sty b/Master/texmf-dist/tex/latex/concepts/dry.sty
deleted file mode 100644
index fd639991cee..00000000000
--- a/Master/texmf-dist/tex/latex/concepts/dry.sty
+++ /dev/null
@@ -1,56 +0,0 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \iffalse %%%%
-% %
-% Copyright (c) 2012 - Michiel Helvensteijn (www.mhelvens.net) %
-% %
-% http://latex-with.googlecode.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 (at your option) 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. %
-% %
-% This work has the LPPL maintenance status `author-maintained'. %
-% %
-% The Current Maintainer of this work is Michiel Helvensteijn. %
-% %
-% This work consists of the file dry.sty. %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \fi %%%%
-
-% I will 'officially' release this package at some point in the future. For
-% now I'm just using it to document a couple of packages. Still, it's
-% released under LPPL, so use it as you will.
-%
-% -- Michiel Helvensteijn
-
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{dry}
- [2012/12/19 convenience macros for reusing LaTeX code]
-
-\RequirePackage{filecontents}
-\RequirePackage{xparse}
-\RequirePackage{etoolbox}
-\RequirePackage{with}
-
-\newcommand\minput[1]{%
- \input{#1}\unskip%
-}
-
-\NewDocumentCommand{\NewDRYer}{m +m}{%
- \with{un} [#1] [#2] {%
- \newenvironment{#1}{%
- \begingroup%
- \@tempswafalse\filec@ntents{##1.tmp}%
- }{%
- \endfilecontents%
- \endgroup%
- }%
- \AfterEndEnvironment{#1}{%
- \with{xn} [##1.tmp] [\minput{##1.tmp}] {%
- ##2%
- }%
- }%
- }%
-}
diff --git a/Master/texmf-dist/tex/latex/concepts/packagedoc.cls b/Master/texmf-dist/tex/latex/concepts/packagedoc.cls
deleted file mode 100644
index 1c261b98362..00000000000
--- a/Master/texmf-dist/tex/latex/concepts/packagedoc.cls
+++ /dev/null
@@ -1,353 +0,0 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% %
-% Copyright (C) 2012 by Michiel Helvensteijn - www.mhelvens.net %
-% %
-% 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 (at your option) 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. %
-% %
-% This work has the LPPL maintenance status `author-maintained'. %
-% %
-% The Current Maintainer of this work is Michiel Helvensteijn. %
-% %
-% This work consists of the file packagedoc.cls. %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\let\packagename\jobname
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Document Class %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\LoadClassWithOptions{ltxdoc}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Importing The Relevant Package %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\RequirePackage{\packagename}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Importing Other Packages %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\RequirePackage{etoolbox}
-\RequirePackage[xcolor]{mdframed}
-\RequirePackage{marginnote}
-\RequirePackage{listings}
-\RequirePackage{textcomp}
-\RequirePackage[pdftex,colorlinks=true]{hyperref}
-\RequirePackage{dry}
-\RequirePackage{needspace}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Documentation Options %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\EnableCrossrefs
-\CodelineIndex
-\RecordChanges
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% File Info %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\GetFileInfo{\packagename.sty}
-
-\title{The \textsf{\packagename} package\thanks{%
- This document corresponds to \textsf{\packagename}~\fileversion,
- dated \filedate.%
-}}
-
-\author{
- Michiel Helvensteijn\\
- \href{mailto:mhelvens+latex@gmail.com}{mhelvens+latex@gmail.com}
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Development Info %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newmdenv[
- leftline = false,
- rightline = false
-]{bannerframe}
-
-\apptocmd{\maketitle}{
- \begin{bannerframe}
- \small
- \begin{center}
- Development of this package is organized at
- \href{http://latex-\packagename.googlecode.com}
- {latex-\packagename.googlecode.com}.\\
- I am happy to receive feedback there!
- \end{center}
- \end{bannerframe}
-}{}{}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Skipping Paragraph Indentation After Specific Stuff %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\let\packagedoc@old@par\par
-
-\newcommand*{\noindentnext}{%
- \def\par{%
- \packagedoc@old@par%
- \noindent%
- \let\par\packagedoc@old@par%
- }%
-}
-
-\newcommand*{\noindentafterenv}[1]{
- \AfterEndEnvironment{#1}{\noindentnext}
-}
-
-\newcommand*{\noindentaftercmd}[1]{
- \apptocmd{#1}{\noindentnext}{}{
- \ClassError{packagedoc}
- {Could not patch \protect#1\space command.}
- {Oops! I tried to auto-skip any indentation after the
- \protect#1\space command, but I failed somehow.}
- }
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Example Environment Setup %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%% Extra keywords for LaTeX
-%
-\newcommand{\moretexcs}[1]{
- \lstdefinelanguage{latex}{
- language=[LaTeX]tex,
- moretexcs={ExplSyntaxOn,ExplSyntaxOff,lstinputlisting,detokenize,#1}
- }
-}
-
-%%% Code formatting
-%
-\lstdefinestyle{examplecode}{%
- language=latex,%
- basicstyle=\ttfamily\small,%
- texcsstyle=*\bfseries,%
- upquote=true%
-}
-
-
-
-%%% Setting up example code block
-%
-\definecolor{examplecodelinecolor}{rgb}{0,0,0}
-\definecolor{examplecodebackgroundcolor}{rgb}{.9,.9,.9}
-\newmdenv[
- linecolor = examplecodelinecolor,
- backgroundcolor = examplecodebackgroundcolor,
- skipabove = 0px,
- skipbelow = 0px,
- innertopmargin = -3px,
- innerrightmargin = 4px,
- innerbottommargin = -3px,
- innerleftmargin = 4px
-]{examplecodeframe}
-
-%%% Defining example output block
-%
-\definecolor{exampleoutputbackgroundcolor}{rgb}{1,1,1}
-\newmdenv[
- linecolor = examplecodelinecolor,
- backgroundcolor = exampleoutputbackgroundcolor,
- skipabove = 0px,
- skipbelow = 0px,
- innertopmargin = 4px,
- innerrightmargin = 4px,
- innerbottommargin = 4px,
- innerleftmargin = 4px
-]{exampleoutputframe}
-
-%%% Macros for counting lines in file, adapted from
-%%% http://andreas.scherbaum.la/blog/archives/
-%%% 670-Read-number-lines-in-a-file-in-LaTeX.html
-%
-\RequirePackage{ifthen}
-\newboolean{packagedoc@restfile}
-\newcommand*{\packagedoc@fileline}{}
-\newread\packagedoc@file
-\newcommand*{\packagedoc@readnextline}[1]{%
- \ifthenelse{\boolean{packagedoc@restfile}}{%
- \read#1 to \packagedoc@fileline%
- \ifeof#1\setboolean{packagedoc@restfile}{false}%
- \else\fi%
- }{}%
-}
-\newcommand*{\countlinesinfile}[2]{%
- \setboolean{packagedoc@restfile}{true}%
- \setcounter{packagedoc@linecount}{0}%
- \openin\packagedoc@file=#1%
- \whiledo{\boolean{packagedoc@restfile}}{%
- \packagedoc@readnextline{\packagedoc@file}%
- \ifthenelse{\boolean{packagedoc@restfile}}{%
- \stepcounter{packagedoc@linecount}%
- }{}%
- }%
- \closein\packagedoc@file%
- \edef#2{\thepackagedoc@linecount}%
-}
-
-\newcounter{packagedoc@linecount}
-\newlength{\packagedoc@spacetoreserve}
-
-%%% DRYer without output
-%
-\NewDRYer{latex-example}{%
- \addvspace{4px}%
- {%
- \ttfamily\small%
- \countlinesinfile{#1}{\countedlines}%
- \setlength{\packagedoc@spacetoreserve}{\countedlines\baselineskip}%
- \addtolength{\packagedoc@spacetoreserve}{-4px}%
- \needspace{\packagedoc@spacetoreserve}%
- }%
- \begin{examplecodeframe}%
- \renewcommand{\ttdefault}{pcr}%
- \lstinputlisting[style=examplecode]{#1}%
- \end{examplecodeframe}%
- #2%
- \noindentnext%
- \addvspace{4px}%
-}
-
-%%% DRYer WITH output but WITHOUT side-effects
-%
-\NewDRYer{latex-example-show}{%
- \addvspace{4px}%
- {%
- \ttfamily\small%
- \countlinesinfile{#1}{\countedlines}%
- \setlength{\packagedoc@spacetoreserve}{\countedlines\baselineskip}%
- \addtolength{\packagedoc@spacetoreserve}{\baselineskip}%
- \needspace{\packagedoc@spacetoreserve}%
- }%
- \begin{examplecodeframe}%
- \renewcommand{\ttdefault}{pcr}%
- \lstinputlisting[style=examplecode]{#1}%
- \end{examplecodeframe}\vspace{-4px}%
- \begin{exampleoutputframe}%
- #2%
- \end{exampleoutputframe}%
- \noindentnext%
- \addvspace{4px}%
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Implementation Code Box Setup %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%% Saving old implementation code block font
-%
-\AtBeginDocument{\let\old@macro@font\macro@font}
-
-%%% Setup for 'interesting' implementation code blocks
-%
-\definecolor{interestingcodebackgroundcolor}{rgb}{.9,.9,.9}
-\definecolor{interestingcodelinecolor}{rgb}{0,0,0}
-\mdfdefinestyle{interestingcode}{
- linecolor = interestingcodelinecolor,
- backgroundcolor = interestingcodebackgroundcolor
-}
-\newcommand*{\interesting}{%
- \def\codestyle{interestingcode}%
- \def\codeskipabove{5px}%
- \let\macro@font\old@macro@font%
-}
-
-%%% Setup for 'UNinteresting' implementation code blocks
-%
-\definecolor{uninterestingcodebackgroundcolor}{rgb}{.97,.97,.97}
-\definecolor{uninterestingcodelinecolor}{rgb}{.5,.5,.5}
-\definecolor{uninterestingcodecolor}{rgb}{.4,.4,.4}
-\mdfdefinestyle{uninterestingcode}{
- linecolor = uninterestingcodelinecolor,
- backgroundcolor = uninterestingcodebackgroundcolor,
-}
-\newcommand*{\uninteresting}{%
- \def\codestyle{uninterestingcode}%
- \def\codeskipabove{-5px}%
- \def\macro@font{\color{uninterestingcodecolor}\old@macro@font}%
-}
-
-%%% Actually surround 'macrocode' with the frame
-%
-\surroundwithmdframed[
- style = \codestyle,
- skipabove = \codeskipabove,
- skipbelow = 5px,
- splittopskip = 10px,
- splitbottomskip = 4px,
- innertopmargin = 4px,
- innerrightmargin = 4px,
- innerbottommargin = 4px,
- innerleftmargin = 4px
-]{macrocode}
-
-\noindentafterenv{macrocode}
-
-%%% Start out with 'interesting' code status and
-%%% always go back to it after one code block
-%
-\interesting
-\AfterEndEnvironment{macrocode}{\interesting}
-
-%%% No indentation after macrocode block
-%
-\noindentafterenv{macrocode}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Argument Specifiers and such %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newcommand*{\movarg}[1]{[ \texttt{#1} ]}
-\newcommand*{\momarg}[1]{[ \meta{#1} ]}
-
-\newcommand{\describemacro}[2]{%
- \needspace{3\baselineskip}%
- \noindent\\\DescribeMacro{#1} #2\\\noindentnext%
-}
-
-\newcommand{\describemetamacro}[2]{%
- \needspace{3\baselineskip}%
- \noindent\\\marginnote{\meta{#1}} #2\\\noindentnext%
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Other Stuff %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\noindentafterenv{description}
-\noindentafterenv{itemize}
-\noindentafterenv{enumerate}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Automatic Implementation Docs %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\AtEndDocument{
- \pagebreak
-
- \section{Implementation}
-
- \StopEventually {\PrintChanges}
-
- We now show and explain the entire implementation from \texttt{\packagename.sty}.
-
- \DocInput{\packagename.sty}
-
- \Finale
-
- \PrintIndex
-}
diff --git a/Master/texmf-dist/tex/latex/concepts/with.sty b/Master/texmf-dist/tex/latex/concepts/with.sty
deleted file mode 100644
index 49e16dac493..00000000000
--- a/Master/texmf-dist/tex/latex/concepts/with.sty
+++ /dev/null
@@ -1,309 +0,0 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \iffalse %%%%
-% %
-% Copyright (c) 2012 - Michiel Helvensteijn (www.mhelvens.net) %
-% %
-% http://latex-with.googlecode.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 (at your option) 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. %
-% %
-% This work has the LPPL maintenance status `author-maintained'. %
-% %
-% The Current Maintainer of this work is Michiel Helvensteijn. %
-% %
-% This work consists of the file with.sty and with.tex. %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \fi %%%%
-
-% \CheckSum{0}
-%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \subsection{Package Info} %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
-% \begin{macrocode}
-\NeedsTeXFormat{LaTeX2e}
-\RequirePackage{expl3}
-\ProvidesExplPackage{with}{2012/12/23}{0.0.1}
- {an inline construct for passing token lists as parameters}
-% \end{macrocode}
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \subsection{Required Packages} %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
-% \begin{macrocode}
-\RequirePackage{xparse}
-\RequirePackage{l3regex}
-% \end{macrocode}
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \subsection{Package Code} %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
-% \begin{macrocode}
-\cs_generate_variant:Nn \cs_generate_variant:Nn {cn}
-% \end{macrocode}
-
-
-
-% \begin{macrocode}
-\cs_new:Nn \gen_use:nn {
- \cs_generate_variant:cn
- { #1 : \prg_replicate:nn{\tl_count:n{#2}}{n} }
- { #2 }
- \use:c{ #1 : #2 }
-}
-% \end{macrocode}
-
-
-
-% \begin{macrocode}
-\cs_new_protected:Nn \with:n {#1}
-\cs_new_protected:Nn \with:nn {
- \cs_set:Npn \__with:n ##1 {#2}
- \__with:n {#1} }
-\cs_new_protected:Nn \with:nnn {
- \cs_set:Npn \__with:nn ##1##2 {#3}
- \__with:nn {#1}{#2} }
-\cs_new_protected:Nn \with:nnnn {
- \cs_set:Npn \__with:nnn ##1##2##3 {#4}
- \__with:nnn {#1}{#2}{#3} }
-\cs_new_protected:Nn \with:nnnnn {
- \cs_set:Npn \__with:nnnn ##1##2##3##4 {#5}
- \__with:nnnn {#1}{#2}{#3}{#4} }
-\cs_new_protected:Nn \with:nnnnnn {
- \cs_set:Npn \__with:nnnnn ##1##2##3##4##5 {#6}
- \__with:nnnnn {#1}{#2}{#3}{#4}{#5} }
-\cs_new_protected:Nn \with:nnnnnnn {
- \cs_set:Npn \__with:nnnnnn ##1##2##3##4##5##6 {#7}
- \__with:nnnnnn {#1}{#2}{#3}{#4}{#5}{#6} }
-\cs_new_protected:Nn \with:nnnnnnnn {
- \cs_set:Npn \__with:nnnnnnn ##1##2##3##4##5##6##7 {#8}
- \__with:nnnnnnn {#1}{#2}{#3}{#4}{#5}{#6}{#7} }
-\cs_new_protected:Nn \with:nnnnnnnnn {
- \cs_set:Npn \__with:nnnnnnnn ##1##2##3##4##5##6##7##8 {#9}
- \__with:nnnnnnnn {#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8} }
-% \end{macrocode}
-
-
-
-% \begin{macrocode}
-\msg_new:nnnn{with}{invalid-parameter-specs}{
- The~argument~specification~'#1'~is~not~valid.
-}{
- The~argument~specification~should~consist~of~between~
- one~and~seven~of~the~letters~'n',~'o',~'f',~'x',~'u'~or~'U'.
-}
-% \end{macrocode}
-
-
-
-% \begin{macrocode}
-\msg_new:nnnn{with}{invalid-parameter-number}{
- You~specified~#1~arguments~but~provided~#2.
-}{
- Your~argument~specification~is~'#3',~which~means~you~should~
- provide~#1~optional~arguments.~However,~you~provided~only~#2.
-}
-% \end{macrocode}
-
-
-
-% \begin{macrocode}
-\tl_new:N \l__with_argspec_tl
-\tl_new:c {l__with_p_1_tl} \tl_new:c {l__with_p_2_tl}
-\tl_new:c {l__with_p_3_tl} \tl_new:c {l__with_p_4_tl}
-\tl_new:c {l__with_p_5_tl} \tl_new:c {l__with_p_6_tl}
-\tl_new:c {l__with_p_7_tl}
-\tl_new:N \l__with_code_tl
-% \end{macrocode}
-
-
-
-% \begin{macrocode}
-\int_new:N \l__with_arg_int
-\cs_new:Nn \__with_param_name: {
- l__with_p_
- \int_use:N\l__with_arg_int
- _tl
-}
-% \end{macrocode}
-
-
-
-% \begin{macrocode}
-\tl_new:N \l__with_unique_counter_tl
-\tl_new:N \l__with_param_tl
-% \end{macrocode}
-
-
-
-% \begin{macrocode}
-\cs_generate_variant:Nn \with:nn {xn}
-\cs_generate_variant:Nn \with:nnnnnnnnn {oooooooon}
-% \end{macrocode}
-
-
-
-% \begin{macrocode}
-\NewDocumentCommand \with {m +o +o +o +o +o +o +o +m} {
-% \end{macrocode}
-
-
-
-% \begin{macrocode}
- \regex_match:nnF {^[noxfuU]{1,7}$} {#1}
- { \msg_critical:nnn{with}{invalid-parameter-specs}{#1} }
-% \end{macrocode}
-
-
-
-% \begin{macrocode}
- \tl_set:Nn \l__with_argspec_tl {#1}
- \int_zero:N \l__with_arg_int
- \IfValueT{#2} {
- \tl_set:cn {l__with_p_1_tl} {#2} \int_incr:N \l__with_arg_int
- \IfValueT{#3} {
- \tl_set:cn {l__with_p_2_tl} {#3} \int_incr:N \l__with_arg_int
- \IfValueT{#4} {
- \tl_set:cn {l__with_p_3_tl} {#4} \int_incr:N \l__with_arg_int
- \IfValueT{#5} {
- \tl_set:cn {l__with_p_4_tl} {#5} \int_incr:N \l__with_arg_int
- \IfValueT{#6} {
- \tl_set:cn {l__with_p_5_tl} {#6} \int_incr:N \l__with_arg_int
- \IfValueT{#7} {
- \tl_set:cn {l__with_p_6_tl} {#7} \int_incr:N \l__with_arg_int
- \IfValueT{#8} {
- \tl_set:cn {l__with_p_7_tl} {#8} \int_incr:N \l__with_arg_int
- }}}}}}}
- \tl_set:Nn \l__with_code_tl {#9}
-% \end{macrocode}
-
-
-
-% \begin{macrocode}
- \int_compare:nNnF {\tl_count:n{#1}} = {\l__with_arg_int} {
- \msg_error:nnxxx{with}{invalid-parameter-number}
- { \tl_count:n{#1} }
- { \int_use:N \l__with_arg_int }
- { #1 }
- }
-% \end{macrocode}
-
-
-
-% \begin{macrocode}
- \tl_replace_all:Nnn \l__with_argspec_tl {u} {x}
- \tl_replace_all:Nnn \l__with_argspec_tl {U} {c}
-% \end{macrocode}
-
-
-
-% \begin{macrocode}
- \int_zero:N \l__with_arg_int
- \tl_map_inline:nn {#1} {
- \int_incr:N \l__with_arg_int
-% \end{macrocode}
-
-
-
-% \begin{macrocode}
- \tl_if_in:nnT {uU} {##1} {
- \tl_set:Nx \l__with_unique_counter_tl
- { g__with_unique_ \use:c{\__with_param_name:} _count_int }
-
- \int_if_exist:cF {\l__with_unique_counter_tl}
- { \int_new:c {\l__with_unique_counter_tl} }
-
- \int_incr:c {\l__with_unique_counter_tl}
-
- \tl_put_left:cx {\__with_param_name:}
- { g_with_unique_ }
-
- \tl_put_right:cx {\__with_param_name:}
- { _ \int_use:c{\l__with_unique_counter_tl} }
- }
-% \end{macrocode}
-
-
-
-% \uninteresting\begin{macrocode}
- }
-% \end{macrocode}
-
-
-
-% \begin{macrocode}
- \with:oooooooon {\l__with_argspec_tl}
- {\cs:w l__with_p_1_tl \cs_end:}
- {\cs:w l__with_p_2_tl \cs_end:}
- {\cs:w l__with_p_3_tl \cs_end:}
- {\cs:w l__with_p_4_tl \cs_end:}
- {\cs:w l__with_p_5_tl \cs_end:}
- {\cs:w l__with_p_6_tl \cs_end:}
- {\cs:w l__with_p_7_tl \cs_end:} {
- \with:oooooooon {##1o}{##2}{##3}{##4}
- {##5}{##6}{##7}{##8} {
- \int_case:nnn {\l__with_arg_int} {
- {1} { \gen_use:nn{with}{####1}
- {####2} {\l__with_code_tl} }
- {2} { \gen_use:nn{with}{####1}
- {####2}{####3} {\l__with_code_tl} }
- {3} { \gen_use:nn{with}{####1}
- {####2}{####3}{####4} {\l__with_code_tl} }
- {4} { \gen_use:nn{with}{####1}
- {####2}{####3}{####4}
- {####5} {\l__with_code_tl} }
- {5} { \gen_use:nn{with}{####1}
- {####2}{####3}{####4}
- {####5}{####6} {\l__with_code_tl} }
- {6} { \gen_use:nn{with}{####1}
- {####2}{####3}{####4}
- {####5}{####6}{####7} {\l__with_code_tl} }
- {7} { \gen_use:nn{with}{####1}
- {####2}{####3}{####4}
- {####5}{####6}{####7}
- {####8} {\l__with_code_tl} }
- }{}
- }
- }
-% \end{macrocode}
-
-
-
-% \uninteresting\begin{macrocode}
-}
-% \end{macrocode}
-
-