diff options
author | Karl Berry <karl@freefriends.org> | 2010-05-19 23:24:35 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-05-19 23:24:35 +0000 |
commit | fb8881a67bb8f860de4fed71bbdb2b2b7c39ac89 (patch) | |
tree | f59784032722714800a2d0f2d2a519e8a40c4a3b /Master/texmf-dist | |
parent | 97a0746aa6e947818c4d32c3b70e899907124c22 (diff) |
xpackages 1902 (18may10)
git-svn-id: svn://tug.org/texlive/trunk@18358 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
19 files changed, 138 insertions, 1689 deletions
diff --git a/Master/texmf-dist/doc/latex/xpackages/xbase/ldcsetup.pdf b/Master/texmf-dist/doc/latex/xpackages/xbase/ldcsetup.pdf Binary files differindex b62d9fa5e56..59fad8a0d68 100644 --- a/Master/texmf-dist/doc/latex/xpackages/xbase/ldcsetup.pdf +++ b/Master/texmf-dist/doc/latex/xpackages/xbase/ldcsetup.pdf diff --git a/Master/texmf-dist/doc/latex/xpackages/xbase/template.pdf b/Master/texmf-dist/doc/latex/xpackages/xbase/template.pdf Binary files differindex 397e456e3e4..61fae371165 100644 --- a/Master/texmf-dist/doc/latex/xpackages/xbase/template.pdf +++ b/Master/texmf-dist/doc/latex/xpackages/xbase/template.pdf diff --git a/Master/texmf-dist/doc/latex/xpackages/xbase/xparse.pdf b/Master/texmf-dist/doc/latex/xpackages/xbase/xparse.pdf Binary files differindex e8937251978..90c64ec0228 100644 --- a/Master/texmf-dist/doc/latex/xpackages/xbase/xparse.pdf +++ b/Master/texmf-dist/doc/latex/xpackages/xbase/xparse.pdf diff --git a/Master/texmf-dist/doc/latex/xpackages/xbase/xtemplate.pdf b/Master/texmf-dist/doc/latex/xpackages/xbase/xtemplate.pdf Binary files differindex 464cf177937..3a1cb4026c8 100644 --- a/Master/texmf-dist/doc/latex/xpackages/xbase/xtemplate.pdf +++ b/Master/texmf-dist/doc/latex/xpackages/xbase/xtemplate.pdf diff --git a/Master/texmf-dist/doc/latex/xpackages/xhead/xhead-test.tex b/Master/texmf-dist/doc/latex/xpackages/xhead/xhead-test.tex deleted file mode 100644 index f845a1f077a..00000000000 --- a/Master/texmf-dist/doc/latex/xpackages/xhead/xhead-test.tex +++ /dev/null @@ -1,245 +0,0 @@ -\documentclass[twoside,check-declarations]{article} - -\pagestyle{headings} -\usepackage{xparse,xtemplate} - - -\usepackage{xgalley} - -\ExplSyntaxOn - -\DeclareTemplateInterface { parshape } { rectangle } { 0 } { - forbid-page-break : boolean = false , -} - -\DeclareTemplateCode { parshape } { rectangle } { 0 } - { - forbid-page-break = \l_xgalley_parshape_no_break_bool , - } - { - \AssignTemplateKeys - \xgalley_measure_adjust_parshape: - } - -\DeclareInstance { parshape } { plain } { rectangle } { - forbid-page-break = false -} - -\DeclareInstance {measure} {fullwidth} {absolute} { - left-margin = 0pt , - right-margin = 0pt -} - -\ExplSyntaxOff - - -\usepackage{xhead} - - -\DeclareDocumentCommand \sectionII {som} - { \UseInstance{heading}{sectionII} {#1}{#2}\BooleanFalse\NoValue\BooleanFalse{#3}{} } - -\DeclareDocumentCommand \subsectionII {som} - { \UseInstance{heading}{subsectionII} {#1}{#2}\BooleanFalse\NoValue\BooleanFalse{#3}{} } - -\DeclareDocumentCommand \subsubsectionII {som} - { \UseInstance{heading}{subsubsectionII} {#1}{#2}\BooleanFalse\NoValue\BooleanFalse{#3}{} } - - - -\DeclareInstance {heading} {sectionII} {2e-vertical} - { - name = section, - level = 1, - indent = 0pt, - above-skip = 3.5ex plus 1ex minus 0.2ex, - below-skip = 2.3ex plus 0.2ex, - title-decl = \normalfont\Large\bfseries, - indent-after = false, - } -\DeclareInstance {heading} {subsectionII} {2e-vertical} - { - name = subsection, - level = 2, - indent = 0pt, - above-skip = 3.25ex plus 1ex minus 0.2ex, - below-skip = 1.5ex plus 0.2ex, - title-decl = \normalfont\large\bfseries, - indent-after = false, - } - -\DeclareInstance {heading} {subsubsectionII} {2e-vertical} - { - name = subsubsection, - level = 3, - indent = 0pt, - above-skip = 3.25ex plus 1ex minus 0.2ex, - below-skip = 1.5ex plus 0.2ex, - title-decl = \normalfont\normalsize\bfseries, - indent-after = false, - } - - -\DeclareDocumentCommand \section {D<>{} sososm} - { \UseInstance{heading}{section} {#2}{#3}{#4}{#5}{#6}{#7}{#1} } - -\DeclareDocumentCommand \subsection {D<>{} sososm} - { \UseInstance{heading}{subsection} {#2}{#3}{#4}{#5}{#6}{#7}{#1} } - -\DeclareDocumentCommand \subsubsection {D<>{} sososm} - { \UseInstance{heading}{subsubsection} {#2}{#3}{#4}{#5}{#6}{#7}{#1} } - - -\DeclareInstance {heading} {section} {3a-vertical} - { - name = section, - level = 1, - indent = 0pt, - above-skip = 3.5ex plus 1ex minus 0.2ex, - below-skip = 2.3ex plus 0.2ex, - font = \normalfont\Large\bfseries, - indent-after = false, - } -\DeclareInstance {heading} {subsection} {3a-vertical} - { - name = subsection, - level = 2, - indent = 0pt, - above-skip = 3.25ex plus 1ex minus 0.2ex, - below-skip = 1.5ex plus 0.2ex, - font = \normalfont\large\bfseries, - indent-after = false, - } - -\DeclareInstance {heading} {subsubsection} {3a-vertical} - { - name = subsubsection, - level = 3, - indent = 0pt, - above-skip = 3.25ex plus 1ex minus 0.2ex, - below-skip = 1.5ex plus 0.2ex, - font = \normalfont\normalsize\bfseries, - indent-after = false, - } - -\DeclareInstance {heading} {section} {3b-vertical} - { - name = section, - level = 1, - indent = 0pt, - above-skip = 3.25ex plus 1ex minus 0.2ex, - below-skip = 1.5ex plus 0.2ex, - indent-after = false, - title-format = \UseTemplate{textblock-2}{hangfrom} - { - font-1 = \normalfont\Huge\sffamily , - font-2 = \normalfont\Large\bfseries, - parshape = plain , - justification = flush-left , - } - } - - -\setcounter{secnumdepth}{2} - -\begin{document} - - -\tableofcontents - - -\sectionII{2e section test} -Some text - -\subsectionII*{2e subsection test - star} -Some text - -\subsectionII{2e subsection test} -Some text - -\subsectionII{2e subsection test - very long very long very long very long - very long very long very long very long very long very long very with some - variance in text long very long very long very long very long very long } -Some text - -\subsubsectionII{2e subsubsection test} -Some text - -\subsectionII[2e subsection short]{2e subsection test - optional arg} -Some text - -\newpage - -\subsubsectionII*{2e subsubsection test - star} -Some text - -\subsubsectionII[2e subsubsection short]{2e subsubsection test - optional arg} -Some text - - -\sectionII[2e section short]{2e section test - optional arg} -Some text - -\sectionII*{2e section test - star} -Some text - -\newpage - - -\section{3a section test} -Some text - -\subsection*{3a subsection test - star} -Some text - -\subsection*[subsection star - forced]*{3a subsection test - star - forced} -Some text - -\subsection{3a subsection test} -Some text - -\subsection{3a subsection test - very long very long very long very long - very long very long very long very long very long very long very with some - variance in text long very long very long very long very long very long } -Some text - -\subsubsection{3a subsubsection test} -Some text - -\subsection[3a subsection short]{3a subsection test - optional arg} -Some text - -\newpage - -\subsubsection*{3a subsubsection test - star} -Some text - -\subsubsection*[subsubsection star - forced]*{3a subsubsection test - star - forced} -Some text - -\subsubsection[3a subsubsection short]{3a subsubsection test - optional arg} -Some text - -\section[3a section short]{3a section test - optional arg} -Some text - -\section*{3a section test - star} -Some text - -\section***{3a section test - 3 stars} -Some text - -\section*[][]*{3a section test - 2 stars} -Some text - -\section[3a section short2][3a section run]{3a section test - 2 optional args} -Some text - -\newpage - -Some more text - -\section<test>{3a section test - angles} -Some text - -\end{document} diff --git a/Master/texmf-dist/doc/latex/xpackages/xhead/xhead.pdf b/Master/texmf-dist/doc/latex/xpackages/xhead/xhead.pdf Binary files differdeleted file mode 100644 index c7859c06146..00000000000 --- a/Master/texmf-dist/doc/latex/xpackages/xhead/xhead.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/xpackages/xtras/l3keys2e.pdf b/Master/texmf-dist/doc/latex/xpackages/xtras/l3keys2e.pdf Binary files differindex 7654ce77360..f3b1e7af46b 100644 --- a/Master/texmf-dist/doc/latex/xpackages/xtras/l3keys2e.pdf +++ b/Master/texmf-dist/doc/latex/xpackages/xtras/l3keys2e.pdf diff --git a/Master/texmf-dist/doc/latex/xpackages/xbase/template-test.tex b/Master/texmf-dist/source/latex/xpackages/xbase/template-test.tex index 5684ce7a90f..5684ce7a90f 100644 --- a/Master/texmf-dist/doc/latex/xpackages/xbase/template-test.tex +++ b/Master/texmf-dist/source/latex/xpackages/xbase/template-test.tex diff --git a/Master/texmf-dist/doc/latex/xpackages/xbase/template-test2.tex b/Master/texmf-dist/source/latex/xpackages/xbase/template-test2.tex index 489e9f2304a..489e9f2304a 100644 --- a/Master/texmf-dist/doc/latex/xpackages/xbase/template-test2.tex +++ b/Master/texmf-dist/source/latex/xpackages/xbase/template-test2.tex diff --git a/Master/texmf-dist/doc/latex/xpackages/xbase/tprestrict-test.tex b/Master/texmf-dist/source/latex/xpackages/xbase/tprestrict-test.tex index d981888d450..d981888d450 100644 --- a/Master/texmf-dist/doc/latex/xpackages/xbase/tprestrict-test.tex +++ b/Master/texmf-dist/source/latex/xpackages/xbase/tprestrict-test.tex diff --git a/Master/texmf-dist/doc/latex/xpackages/xbase/xparse-test.tex b/Master/texmf-dist/source/latex/xpackages/xbase/xparse-test.tex index 8614c4ed06a..8614c4ed06a 100644 --- a/Master/texmf-dist/doc/latex/xpackages/xbase/xparse-test.tex +++ b/Master/texmf-dist/source/latex/xpackages/xbase/xparse-test.tex diff --git a/Master/texmf-dist/source/latex/xpackages/xbase/xparse.dtx b/Master/texmf-dist/source/latex/xpackages/xbase/xparse.dtx index 32514be2fe1..45b7ab9bb96 100644 --- a/Master/texmf-dist/source/latex/xpackages/xbase/xparse.dtx +++ b/Master/texmf-dist/source/latex/xpackages/xbase/xparse.dtx @@ -41,7 +41,7 @@ \RequirePackage{l3names} %</driver|package> %\fi -\GetIdInfo$Id: xparse.dtx 1897 2010-04-26 05:56:56Z joseph $ +\GetIdInfo$Id: xparse.dtx 1905 2010-05-19 07:45:31Z joseph $ {Generic document command parser} %\iffalse %<*driver> @@ -428,6 +428,23 @@ % before the split takes place. %\end{function} % +%\begin{function}{ \SplitList } +% \begin{syntax} +% \cs{SplitList} \Arg{token} +% \end{syntax} +% This processor splits the argument given at each occurrence of the +% \meta{token} where the number of items is not fixed. Each item is +% then wrapped in braces within "#1". The result is that the +% processed argument can be further processed using a mapping function. +% \begin{verbatim} +% \DeclareDocumentCommand \foo +% { > { \SplitList { ; } } m } +% { \MappingFunction #1 } +% \end{verbatim} +% Any category code \( 13 \) (active) \meta{tokens} will be replaced +% before the split takes place. +%\end{function} +% %\subsection{Separating interface and implementation} % % One \emph{experimental} idea implemented in \pkg{xparse} is to @@ -2106,7 +2123,7 @@ { \exp_not:n {#2} } {#1} { \exp_not:n {#3} } } } - \tl_set:Nx \_l_xparse_tmp_tl + \tl_set:Nx \l_xparse_tmp_tl { \prg_replicate:nn { #1 + 1 } { \_xparse_split_argument_aux_i:w } @@ -2116,7 +2133,7 @@ \prg_replicate:nn {#1} { \exp_not:n {#2} \NoValue } \exp_not:n { #2 \q_stop } } - \_l_xparse_tmp_tl + \l_xparse_tmp_tl } \group_end: \cs_set_protected:Npn \_xparse_split_argument_aux_i:w { } @@ -2134,6 +2151,48 @@ %\end{macro} %\end{macro} % +%\begin{macro}{\_l_xparse_split_list_tl} +%\begin{macro}{\_xparse_split_list:nn} +%\begin{macro}{\_xparse_split_list_aux:w} +% Splitting a list is done again by first dealing with active +% characters, then looping over the list using the same method as the +% \cs{clist_map_\ldots} functions. +% \begin{macrocode} +\tl_new:N \_l_xparse_split_list_tl +\group_begin: + \char_make_active:N \@ + \cs_gset_protected:Npn \_xparse_split_list:nn #1#2 + { + \tl_set:Nn \_l_xparse_split_list_tl {#2} + \group_begin: + \char_set_lccode:nn { `\@ } { `#1 } + \tl_to_lowercase:n + { + \group_end: + \tl_replace_all_in:Nnn \_l_xparse_split_list_tl { @ } {#1} + } + \cs_set:Npn \_xparse_split_list_aux:w ##1 #1 + { + \quark_if_recursion_tail_stop:n {##1} + \tl_put_right:Nn \ProcessedArgument { {##1} } + \_xparse_split_list_aux:w + } + \tl_if_empty:NTF \_l_xparse_split_list_tl + { \tl_set:Nn \ProcessedArgument { { } } } + { + \tl_clear:N \ProcessedArgument + \exp_last_unbraced:NV \_xparse_split_list_aux:w + \_l_xparse_split_list_tl #1 + \q_recursion_tail #1 \q_recursion_stop + } + } +\group_end: +\cs_set:Npn \_xparse_split_list_aux:w { } +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +% %\subsection{Creating expandable functions} % % The trick here is to pass each grabbed argument along a chain of @@ -2756,11 +2815,14 @@ %\end{macro} % %\begin{macro}{\SplitArgument} +%\begin{macro}{\SplitList} % Another simple copy. % \begin{macrocode} \cs_new_eq:NN \SplitArgument \_xparse_split_argument:nnn +\cs_new_eq:NN \SplitList \_xparse_split_list:nn % \end{macrocode} %\end{macro} +%\end{macro} % % \begin{macrocode} %</initex|package> diff --git a/Master/texmf-dist/source/latex/xpackages/xhead/xhead.dtx b/Master/texmf-dist/source/latex/xpackages/xhead/xhead.dtx deleted file mode 100644 index b5a980b8ee1..00000000000 --- a/Master/texmf-dist/source/latex/xpackages/xhead/xhead.dtx +++ /dev/null @@ -1,986 +0,0 @@ -% \iffalse -%% File xhead.dtx (C) Copyright 2010 Frank Mittelbach, LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of the -%% LaTeX Project Public License (LPPL), either version 1.3c of this -%% license or (at your option) any later version. The latest version -%% of this license is in the file -%% -%% http://www.latex-project.org/lppl.txt -%% -%% This file is part of the ``xhead bundle'' (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% The released version of this bundle is available from CTAN. -%% -%% ----------------------------------------------------------------------- -%% -%% The development version of the bundle can be found at -%% -%% http://www.latex-project.org/svnroot/experimental/trunk/ -%% -%% for those people who are interested. -%% -%%%%%%%%%%% -%% NOTE: %% -%%%%%%%%%%% -%% -%% Snapshots taken from the repository represent work in progress and may -%% not work or may contain conflicting material! We therefore ask -%% people _not_ to put them into distributions, archives, etc. without -%% prior consultation with the LaTeX Project Team. -%% -%% ----------------------------------------------------------------------- -%% -%<*driver|package> -\RequirePackage{expl3} -\GetIdInfo$Id: xhead.dtx 1686 2009-11-03 08:19:19Z joseph $ - {Templates heading commands} -%</driver|package> -%<*driver> -%\fi -\ProvidesFile{\filename.\filenameext} - [\filedate\space v\fileversion\space\filedescription] -%\iffalse -\documentclass{l3doc} - - -% next three definitions are big hacks to run the file -% without the above packages -% -\makeatother - -\newcommand\key[1]{\textbf{#1}} - - \begin{document} - \DocInput{xhead.dtx} - \end{document} -%</driver> -% \fi -% -% ^^A\CheckSum{343} -% -% -% \title{The \textsf{xhead} package\thanks{This file -% has version number \fileversion, last -% revised \filedate.}} -% \author{FMi} -% \date{\filedate} -% \maketitle -% -% \tableofcontents -% -% \bigskip -% -% \begin{abstract} -% This module contains basic templates generating typical headings for -% various levels. This is very much work in progress and none of its content -% should be considered stable. Concepts and implementation are still under -% development. -% \end{abstract} -% -% -% \newcommand\NOVALUE{\texttt{\string\NoValue}} -% \newcommand\EMPTY{\textit{<empty>}} -% \newcommand\STRING{\textit{<string>}} -% \newcommand\TRUE{\texttt{true}} -% \newcommand\FALSE{\texttt{false}} -% \newcommand\KEYVALS{\textit{<key/value list>}} -% \newcommand\HASH[1]{\texttt{\##1}} -% -% \makeatletter -% \renewenvironment{TemplateInterfaceDescription}[1] -% {\subsection{The~object~type~`#1'}% -% \begingroup -% \@beginparpenalty\@M -% \description -% \def\TemplateArgument##1##2{\item[Arg:~##1 (##2)]}^^A -% \def\TemplateSemantics{\enddescription\endgroup -% \subsubsection*{Semantics:}}^^A -% } -% {\par\bigskip} -% \makeatother -% -% \section{Introduction} -% -% -% \section{Interfaces} -% -% \begin{TemplateInterfaceDescription}{heading} -% -% -% \TemplateArgument{1}{boolean} -% If \TRUE{} generate an unnumbered heading, otherwise a number is -% generated up to a certain heading level. If \TRUE{} TOC entries and -% running headers are suppressed unless explicitly forced by other -% arguments below. -% -% \TemplateArgument{2} -% {\STRING/\NOVALUE/\EMPTY} -% Specifies an alternate heading text for the TOC if one is produced. If -% \NOVALUE{} or \EMPTY{} the TOC receives the the main title text. -% -% \TemplateArgument{3} -% {boolean} -% If \TRUE{} a TOC entry is forced (i.e., generated even if normally supressed). -% -% \TemplateArgument{4} -% {\STRING/\NOVALUE/\EMPTY} -% Specifies an alternate heading text for the running header if one is -% produced. If \NOVALUE{} or \EMPTY{} the running header receives the the -% main title text. -% -% \TemplateArgument{5} -% {boolean} -% If \TRUE{} a running header is forced (i.e., generated even if normally -% supressed). -% -% \TemplateArgument{6} -% {\STRING} -% The title of the heading in the document. Also used for the TOC entry and -% running header (if produced) unless overwritten by other arguments. -% -% \TemplateArgument{7} -% {\KEYVALS} -% Extension argument to receive less use key value pairs to manipulate the -% heading. Exact syntax and semantics still need to be defined. -% -% \TemplateSemantics -% This template type defines the basic interface for headings both display -% headings as well as run-in headings. -% -% A TOC entry is generated if \HASH{1} is \FALSE{} or \HASH{3} being -% \TRUE{}. The heading title for the TOC entry is \HASH{6} unless -% overwritten by a non-empty HASH{2}. Whether or not this TOC entry -% actually appears in the TOC depends on settings for the TOC -% generation. (However, if not generated if will obviously not appear.) -% -% A running header is generated if \HASH{1} is \FALSE{} or \HASH{5} or -% \TRUE{}. The heading title for the determined as follows: if \HASH{4} is -% non-empty it will be used, otherwise if \HASH{2} is non-empty it will be -% used, otherwise HASH{6} will be used. -% -% \HASH{7} will hold additional key/value pairs that define more specific -% semantics. This isn't implemented yet. -% -% The above describes my current thinking about how those arguments should -% interact. In simpler templates (based on 2e semantics) the arguments -% \HASH{3} to \HASH{5} and \HASH{7} will get ignored. -% -% -% \end{TemplateInterfaceDescription} -% -% -% \begin{TemplateDescription}{heading}{2e-vertical} -% -% -% \TemplateKey{name}{tokenlist} -% {Name of the heading. Used to refer to parts of its data structure, -% e.g., the counter associated with the heading will have this name. Must -% be set to a suitable string like ``section''} -% {none} -% -% \TemplateKey{level}{integer} -% {The level of the heading in the hierarchy. Required.} -% {none} -% -% \TemplateKey{break-penalty}{penalty} -% {Penlty to break in front of the heading unless it is immediately -% preceeded a higher-level heading in which case breaking is prohibited.} -% {-300} -% -% \TemplateKey{indent}{length} -% {Indentation of the heading from the left margin.} -% {0pt} -% -% \TemplateKey{above-skip}{skip} -% {Vertical space above the heading.} -% {0pt} -% -% \TemplateKey{below-skip}{skip} -% {Vertical space below the heading.} -% {0pt} -% -% \TemplateKey{title-decl}{function 0} -% {Declarations to format the heading, e.g., font changes.} -% {\EMPTY} -% -% \TemplateKey{number-format}{function 1} -% {Formatting instruction for the heading number (if present), receiving -% the heading counter representation as an argument.} -% {\cs{xhead_default_number_format:n}} -% -% \TemplateKey{indent-after}{boolean} -% {Should the first paragraph after the heading be indented?} -% {\FALSE} -% -% \TemplateSemantics -% -% This is, or should be, a reimplementation of the 2e |\@startsection| -% command for generating vertical headings. |\@startsection| is also able -% to produce run-in headings, but this is not covered by the current -% template. -% -% \end{TemplateDescription} -% -% -% -% -% -% \StopEventually{} -% -% \section{Implementation} -% -% \begin{macrocode} -%<*package> -\RequirePackage{expl3,xtemplate} -% \end{macrocode} -% -% \begin{macrocode} -\GetIdInfo$Id: xhead.dtx 1771 2010-02-05 20:51:22Z frank $ - {heading module} -\ProvidesExplPackage - {\filename}{\filedate}{\fileversion}{\filedescription} -% \end{macrocode} -% -% -% \subsection{The heading object type} -% -% Arguments: -%\begin{verbatim} -% #1 (boolean) : produce no number -% #2 (string/\NoValue/empty) : toc-title if different from title -% #3 (boolean) : force toc entry -% #4 (string/\NoValue/empty) : mark-title if different from toc-title -% #5 (Boolean) : force mark entry -% #6 (string) : title -% #7 (extra key vals) -%\end{verbatim} -% -% \begin{macrocode} -\DeclareObjectType {heading} {7} -% \end{macrocode} -% -% -% \subsection{Interfaces to other components} -% -% This section holds code that is (or should be) common between different -% heading templates, for example, code for passing a title to the TOC system -% will always use the same TOC interface so it is encapsulated -% here. Effectively this means that this section should be the only part that -% needs modification if we update these other components and intorduce new -% interfaces for them. -% -% At the moment everything is set up to use the old 2e interfaces, but this -% will change over time. -% -% -% -% \subsubsection{Generating TOC and mark entries} -% -% -% \begin{macro}{\xhead_generate_toc:NNNNN} -% \begin{macro}{\xhead_generate_toc:NNNNo} -% This command provides the interface to the TOC system (currently the 2e -% one). It uses its first two arguments to decide if a TOC entry should be produced -% and if so generates the entry from the remaining arguments. -% -% Arguments: -%\begin{verbatim} -% #1 (boolean) : produce no number -% #2 (boolean) : force toc entry -% #3 (string) : heading name (\l_xhead_name_tl) -% #4 (string) : heading number if any (\l_xhead_number_tl) -% #5 (string) : toc-title (\l_xhead_toc_title_tl) -%\end{verbatim} -% -% \begin{macrocode} -\cs_new:Npn \xhead_generate_toc:NNNNN #1#2#3#4#5 { -%<*trace> - \typeout{xhead_generate_toc:NNNNN=#1:#2:#3:#4:#5} -%</trace> -% \end{macrocode} -% A TOC entry is produced if the heading number was not suppressed (|!#1|) -% or it is forced (|#2|). -% \begin{macrocode} - \bool_if:nT - { #2 || ! #1 } - { - \group_begin: -% \end{macrocode} -% Guard against use of mark commands in the heading title (from old sources). -% \begin{macrocode} - \cs_set_eq:NN \@mkboth \use_none:nn - \cs_set_eq:NN \markboth \use_none:nn - \cs_set_eq:NN \markright \use_none:n -% \end{macrocode} -% Use the old 2e |\addcontentsline| interface: -% \begin{macrocode} - \addcontentsline{toc}{#3} - { - \tl_if_empty:NF #4 - { \protect\numberline{ #4 } } - #5 - } - \group_end: - } -} -% \end{macrocode} -% In the templates we really want to make sure that the title in the last -% argument is passed and not a tokenlist in which it is saved. After all, -% this text will get passed around over long distances. We therefore -% provide the following variant for use in templates: -% \begin{macrocode} -\cs_generate_variant:Nn \xhead_generate_toc:NNNNN {NNNNo} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% -% -% \begin{macro}{\xhead_generate_mark:NNNNN} -% \begin{macro}{\xhead_generate_mark:NNNNo} -% This command provides the interface to the mark system for running -% headers(currently the 2e one). It uses its first two arguments to decide -% if a mark entry should be produced and if so generates the entry from the -% remaining arguments. -% -% Arguments: -%\begin{verbatim} -% #1 (boolean) : produce no number -% #2 (boolean) : force running header entry -% #3 (string) : heading name (\l_xhead_name_tl) -% #4 (string) : heading number if any (\l_xhead_number_tl) -% #5 (string) : mark-title (\l_xhead_mark_title_tl) -%\end{verbatim} -% -% \begin{macrocode} -\cs_new:Npn \xhead_generate_mark:NNNNN #1#2#3#4#5 { -%<*trace> - \typeout{xhead_generate_mark:NNNNN=#1:#2:#3:#4:#5} -%</trace> -% \end{macrocode} -% A running header entry is produced if the heading number was not -% suppressed (|!#1|) or it is forced (|#2|). -% \begin{macrocode} - \bool_if:nT - { #2 || ! #1 } - { - \group_begin: -% \end{macrocode} -% Guard against use of mark command in heading titles (from old -% sources)\footnote{This is wrong here, needs thought.} -% \begin{macrocode} - \cs_set_eq:NN \@mkboth \use_none:nn -% \end{macrocode} -% Again we use the original 2e interface. |\markright|, etc.\ currently adds -% the section number so we do not add it here---for now. -% \begin{macrocode} - \use:c {#3 mark} {#5} - \group_end: - } -} -% \end{macrocode} -% In the templates we really want to make sure that the title in the last -% argument is passed and not a tokenlist in which it is saved. After all, -% this text will get passed around over long distances. We therefore -% provide the following variant for use in templates: -% \begin{macrocode} -\cs_generate_variant:Nn \xhead_generate_mark:NNNNN {NNNNo} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% -% -% \begin{macro}{\xhead_generate_toc_and_mark:NNNNNNN} -% -% This is just putting it all together, may not be worth having. -% -% Arguments: -%\begin{verbatim} -% #1 (boolean) : produce no number -% #2 (boolean) : force toc entry -% #3 (boolean) : force running header entry -% #4 (string) : heading name (\l_xhead_name_tl) -% #5 (string) : heading number or empty (\l_xhead_number_tl) -% #6 (string) : toc-title (\l_xhead_toc_title_tl) -% #7 (string) : mark-title (\l_xhead_mark_title_tl) -%\end{verbatim} -% -% \begin{macrocode} -\cs_new:Npn \xhead_generate_toc_and_mark:NNNNNNN #1#2#3#4#5#6#7 { - \xhead_generate_toc:NNNNo - #1 #2 #4 #5 #6 - \xhead_generate_mark:NNNNo - #1 #3 #4 #5 #7 -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \subsubsection{Prepare heading number} -% -% -% -% \begin{macro}{\xhead_update_prepare_number:N} -% -% This command checks if a number should be produced and if so increments -% the corresponding counter and stores the number in -% |\l_xhead_number_tl|. Otherwise |\l_xhead_number_tl| will be set to empty -% to indicate that no number should be displayed. -% -% Arguments: -%\begin{verbatim} -% #1 (boolean) : produce no number -%\end{verbatim} - -% Assumptions: -%\begin{verbatim} -% \l_xhead_name_tl : holds heading name -% \l_xhead_level_int : holds heading level -%\end{verbatim} -% -% Outputs: -%\begin{verbatim} -% \l_xhead_number_tl : holds heading number or returns empty -%\end{verbatim} -% -% \begin{macrocode} -\cs_new:Npn \xhead_update_prepare_number:N #1 { - \bool_if:nTF - { #1 || \intexpr_compare_p:n { \l_xhead_level_int > \c@secnumdepth } } - { \tl_clear:N \l_xhead_number_tl } - { - \refstepcounter \l_xhead_name_tl - \tl_set:Nx \l_xhead_number_tl { \use:c {the \l_xhead_name_tl} } - } -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \subsubsection{Prepare indentation after heading} -% -% To set the paragraph indentation after a heading we need to interact with -% the galley mechanism, which at one point will be \texttt{xgalley}. Right -% now we use the 2e interface. -% -% \begin{macro}{\xhead_set_after_indention:N} -% Here we set the 2e flag depending -% \begin{macrocode} -\cs_new:Npn \xhead_set_after_indention:N #1 { - \bool_if:NTF #1 \@afterindenttrue \@afterindentfalse -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% -% \subsubsection{Evaluating the title arguments} -% -% According to the heading object type spec the title text for the toc and -% running header may differ from the main title in dependence of the -% arguments passed to the template. -% The code below implements the documented logic. -% -% \begin{macro}{\xhead_set_titles:nnn} -% -% Arguments: -%\begin{verbatim} -% #1 (string/\NoValue/empty) : toc-title if different from title -% #2 (string/\NoValue/empty) : mark-title if different from toc-title -% #3 (string) : title -%\end{verbatim} -% -% \begin{macrocode} -\cs_new:Npn \xhead_set_titles:nnn #1#2#3 { -% \end{macrocode} -% Determine title for toc: -% If \HASH{1} is \NOVALUE{} or \EMPTY{} use \HASH{3} for the toc-title. -% Otherwise use \HASH{1}. -% \begin{macrocode} - \IfNoValueTF{#1} - { \tl_set:Nn \l_xhead_toc_title_tl {#3} } - { \tl_if_empty:nTF {#1} - { \tl_set:Nn \l_xhead_toc_title_tl {#3} } - { \tl_set:Nn \l_xhead_toc_title_tl {#1} } - } -% \end{macrocode} -% Determine title for mark: If \HASH{2} is \NOVALUE{} then use whatever was -% determined for the toc-title as value (i.e., if a special toc-title was -% used this will be also used for the running header, if not the main title -% is used). Otherwise, if \HASH{2} is \EMPTY{} use \HASH{3}. Otherwise use -% \HASH{2} (i.e., a special title was passed for the running header). -% \begin{macrocode} - \IfNoValueTF{#2} - { \tl_set_eq:NN \l_xhead_mark_title_tl \l_xhead_toc_title_tl } - { \tl_if_empty:nTF {#2} - { \tl_set:Nn \l_xhead_mark_title_tl {#3} } - { \tl_set:Nn \l_xhead_mark_title_tl {#2} } - } -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \subsection{Support variables for template code} -% -% -% \begin{macrocode} -\dim_new:N \l_xhead_indent_dim -% \end{macrocode} -% -% -% -% \begin{macrocode} -\skip_new:N \l_xhead_above_skip -\skip_new:N \l_xhead_below_skip -% \end{macrocode} -% -% -% -% \begin{macrocode} -\int_new:N \l_xhead_level_int -\int_new:N \l_xhead_break_penalty_int -% \end{macrocode} -% -% \begin{macrocode} -\tl_new:N \l_xhead_name_tl -\tl_new:N \l_xhead_number_tl -\tl_new:N \l_xhead_toc_title_tl -\tl_new:N \l_xhead_mark_title_tl -% \end{macrocode} -% -% \begin{macrocode} -\bool_new:N \l_xhead_indent_after_bool - -\cs_new:Npn \xhead_title_decl: {} - -\cs_new:Npn \xhead_number_format:n #1 {} - -\cs_new:Npn \xhead_default_number_format:n #1 { #1 \quad} -% \end{macrocode} -% -% -% -% -% \subsection{The template \texttt{2e-vertical}} -% -% \begin{macrocode} -\DeclareTemplateInterface {heading} {2e-vertical} {7} - { - name : tokenlist = ??? , - level : integer = 0 , - break-penalty: integer = -300 , - indent : length = 0pt , - above-skip : skip = 0pt , - below-skip : skip = 0pt , - title-decl : function {0} = , - number-format: function {1} = \xhead_default_number_format:n {#1} , - indent-after : boolean = false , - } -% \end{macrocode} -% -% \begin{macrocode} -\DeclareTemplateCode {heading} {2e-vertical} {7} - { - name = \l_xhead_name_tl , - level = \l_xhead_level_int , - break-penalty = \l_xhead_break_penalty_int , - indent = \l_xhead_indent_dim , - above-skip = \l_xhead_above_skip , - below-skip = \l_xhead_below_skip , - title-decl = \xhead_title_decl: , - number-format = \xhead_number_format:n , - indent-after = \l_xhead_indent_after_bool , - } - { - \AssignTemplateKeys -% \end{macrocode} -% Determine title for toc and mark using the 2e logic: Do not generate -% them if the star-form of the heading is used and always use the same text -% for TOC and mark: -% \begin{macrocode} - \bool_if:NF #1 - { - \IfNoValueTF{#2} - { \tl_set:Nn \l_xhead_toc_title_tl {#6} } - { \tl_set:Nn \l_xhead_toc_title_tl {#2} } - \tl_set_eq:NN \l_xhead_mark_title_tl \l_xhead_toc_title_tl - } -% \end{macrocode} -% If heading number increment counter and set |\l_xhead_number_tl| -% \begin{macrocode} - \xhead_update_prepare_number:N #1 -% \end{macrocode} -% Indent after heading if requested (use old mechanism): -% \begin{macrocode} - \xhead_set_after_indention:N \l_xhead_indent_after_bool -% \end{macrocode} -% Produce the space above the heading (using old 2e methods): -% \begin{macrocode} - \if@noskipsec \leavevmode \fi - \par - \if@nobreak - \everypar{} - \else: - \addpenalty \l_xhead_break_penalty_int - \addvspace \l_xhead_above_skip - \fi: -% \end{macrocode} -% Produce the title of the heading (using old 2e methods) -% \begin{macrocode} - \group_begin: - \xhead_title_decl: - { - \@hangfrom{\hskip \l_xhead_indent_dim \scan_stop: - \tl_if_empty:NF \l_xhead_number_tl - { \xhead_number_format:n \l_xhead_number_tl } - } - \interlinepenalty \@M #6\@@par - } - \group_end: -% \end{macrocode} -% Generate toc entry and mark if required: -% \begin{macrocode} - \xhead_generate_toc_and_mark:NNNNNNN - #1 \BooleanFalse \BooleanFalse % no forcing in 2e - \l_xhead_name_tl - \l_xhead_number_tl - \l_xhead_toc_title_tl - \l_xhead_mark_title_tl -% \end{macrocode} -% Produce the space below the heading and the handling of following -% paragraph (using old 2e methods): -% \begin{macrocode} - \par \nobreak - \vspace \l_xhead_below_skip - \@afterheading - \ignorespaces - } -% \end{macrocode} -% -% -% -% -% \subsection{The template \texttt{3a-vertical}} -% -% Right now this template is more or less equal to \texttt{2e-vertical} -% except that it supports the extended heading arguments with the exception -% of \HASH{7}. -% -% \begin{macrocode} -\DeclareTemplateInterface {heading} {3a-vertical} {7} - { - name : tokenlist = ??? , - level : integer = 0 , - break-penalty : integer = -300 , - indent : length = 0pt , - above-skip : skip = 0pt , - below-skip : skip = 0pt , - format : tokenlist = indent-by-number , - parshape : instance {parshape} = plain , - justification : instance {justification} = flush-left , - font : tokenlist = , - number-format : function {1} = \xhead_default_number_format:n {#1} , - indent-after : boolean = false , - } -% \end{macrocode} -% - -% \begin{macro}{\l_xhead_title_format_tl} -% -% \begin{macrocode} -\tl_new:N \l_xhead_title_format_tl -\tl_new:N \l_xhead_title_font_tl - -\cs_new:Npn \xhead_title_parshape: {} -\cs_new:Npn \xhead_title_justification: {} - -% \end{macrocode} -% \end{macro} -% -% -% \begin{macrocode} -\DeclareTemplateCode {heading} {3a-vertical} {7} - { - name = \l_xhead_name_tl , - level = \l_xhead_level_int , - break-penalty = \l_xhead_break_penalty_int , - indent = \l_xhead_indent_dim , - above-skip = \l_xhead_above_skip , - below-skip = \l_xhead_below_skip , - format = \l_xhead_title_format_tl , - parshape = \xhead_title_parshape: , - justification = \xhead_title_justification: , - font = \l_xhead_title_font_tl , - number-format = \xhead_number_format:n , - indent-after = \l_xhead_indent_after_bool , - } - { - \AssignTemplateKeys -% \end{macrocode} -% Set title text for TOC and mark entry: -% \begin{macrocode} - \xhead_set_titles:nnn {#2} {#4} {#6} -% \end{macrocode} -% If heading gets a number, increment counter and set -% |\l_xhead_number_tl|. -% \begin{macrocode} - \xhead_update_prepare_number:N #1 -% \end{macrocode} -% Indent after heading if requested (use old mechanism) -% \begin{macrocode} - \xhead_set_after_indention:N \l_xhead_indent_after_bool -% \end{macrocode} -% -% Produce the space above the heading (using old 2e methods) -% -% \begin{macrocode} - \if@noskipsec \leavevmode \fi - \par - \if@nobreak - \everypar{} - \else: - \addpenalty \l_xhead_break_penalty_int - \addvspace \l_xhead_above_skip - \fi: -% \end{macrocode} -% -% Produce the title of the heading -% -% \begin{macrocode} - \xhead_use_title_format:nn \l_xhead_title_format_tl {#6} - -% \end{macrocode} -% Generate toc entry and mark: -% \begin{macrocode} - \xhead_generate_toc_and_mark:NNNNNNN - #1 #3 #5 - \l_xhead_name_tl - \l_xhead_number_tl - \l_xhead_toc_title_tl - \l_xhead_mark_title_tl -% \end{macrocode} -% Produce the space below the heading and the handling of following -% paragraph (using old 2e methods) -% \begin{macrocode} - \par \nobreak - \vspace \l_xhead_below_skip - \@afterheading - \ignorespaces - } -% \end{macrocode} -% -% -% -% \begin{macro}{\xhead_use_title_format:nn} -% Select a formatting command (based on first arg string) and use it to -% format the title (second arg). -% -% The formatting command makes a bunch of -% assumptions with respect to the variable names used by the templates (it -% might ignore some of them): -%\begin{verbatim} -% \l_xhead_title_font_tl : font declarations for title text -% \l_xhead_indent_dim : indentation from the left of title -% \xhead_title_parshape: : parshape instance to use for title -% \xhead_title_justification: : justification instance to use for title -% \l_xhead_number_tl : raw title number or empty -% \xhead_number_format:n : formatting command for title number -%\end{verbatim} -% In addition it takes a single mandatory argument holding the title text. -% -% \begin{macrocode} -\cs_new:Npn \xhead_use_title_format:nn #1 { - \cs_if_exist:cTF {xhead_format_ #1:n} - { \use:c{xhead_format_ #1:n} } - { \ERROR xhead format not defined } -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\xhead_format_indent-by-number:n} -% Implementing vertical version of |\@startsection| \ldots -% \begin{macrocode} -\cs_new:cpn {xhead_format_indent-by-number:n} #1 { - \group_begin: - \l_xhead_title_font_tl - \hbox_set:Nn \l_tmpa_box - { - \tl_if_empty:NF \l_xhead_number_tl - { \xhead_number_format:n \l_xhead_number_tl } - } - - \UseInstance{measure}{fullwidth} - {\l_xhead_indent_dim + \box_wd:N \l_tmpa_box } - - \xhead_title_parshape: - \xhead_title_justification: - \interlinepenalty \@M - - \noindent \hbox_overlap_left:n { \box_use:N \l_tmpa_box } - #1\@@par - \group_end: -} -% \end{macrocode} -% \end{macro} -% -% -% -% -% \begin{macro}{\xhead_format_number-above-text:n} -% -% \begin{macrocode} -\cs_new:cpn {xhead_format_number-above-text:n} #1 { - \group_begin: - \l_xhead_title_font_tl - \xhead_title_parshape: - \xhead_title_justification: - \interlinepenalty \@M - - \tl_if_empty:NF \l_xhead_number_tl - { - \xhead_number_format:n \l_xhead_number_tl - } - - #1\@@par - \group_end: -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macrocode} - -\input{xtextblock.sty} - - -\DeclareTemplateInterface {heading} {3b-vertical} {7} - { - name : tokenlist = ??? , - level : integer = 0 , - break-penalty : integer = -300 , - indent : length = 0pt , - above-skip : skip = 0pt , - below-skip : skip = 0pt , - title-format : instance {textblock-2} = heading , - number-format : function {1} = \xhead_default_number_format:n {#1} , - indent-after : boolean = false , - } - -\cs_new:Npn \xhead_title_format:nn #1#2 {} - -\DeclareTemplateCode {heading} {3b-vertical} {7} - { - name = \l_xhead_name_tl , - level = \l_xhead_level_int , - break-penalty = \l_xhead_break_penalty_int , - indent = \l_xhead_indent_dim , - above-skip = \l_xhead_above_skip , - below-skip = \l_xhead_below_skip , - title-format = \xhead_title_format:nn , - number-format = \xhead_number_format:n , - indent-after = \l_xhead_indent_after_bool , - } - { - \AssignTemplateKeys - - \xhead_set_titles:nnn {#2} {#4} {#6} - - \xhead_update_prepare_number:N #1 - - \xhead_set_after_indention:N \l_xhead_indent_after_bool - - \if@noskipsec \leavevmode \fi - \par - \if@nobreak - \everypar{} - \else: - \addpenalty \l_xhead_break_penalty_int - \addvspace \l_xhead_above_skip - \fi: - - \xhead_title_format:nn \l_xhead_number_tl {#6} - - \xhead_generate_toc_and_mark:NNNNNNN - #1 #3 #5 - \l_xhead_name_tl - \l_xhead_number_tl - \l_xhead_toc_title_tl - \l_xhead_mark_title_tl - - \par \nobreak - \vspace \l_xhead_below_skip - \@afterheading - \ignorespaces - } - - -% \end{macrocode} -% -% \Finale -% -% -% \begin{macrocode} -\endinput -%</package> -% \end{macrocode} -% -% \endinput -% -% -% -% -% \begin{TemplateInterfaceDescription}{} -% -% \TemplateArgument{1} -% {} -% -% \TemplateSemantics -% -% \end{TemplateInterfaceDescription} -% -% - - - - motto/quote text to display alongside the heading title - - flag to number heading - -label name for cross-reference - -% -% \begin{InstanceDescription}[\textbf{no-page-break-boolean}xx] -% {pshape}{staggered}{cutout} -% -% \InstanceKey{no-page-break-boolean}{true} -% -% \InstanceKey{left-side-boolean}{true} -% -% \InstanceKey{normal-lines-int}{1} -% -% \InstanceKey{parshape-list}{20pt,40pt,60pt} -% -% \InstanceSemantics -% This instance will indent each line by an additional 20pt (up to -% the fourth line). A possible application would be a heading text -% (with a maximum number of four lines). -% This should then perhaps be combined with a special justification -% instance which does ragged right except for the last line which is -% set to full measure. -% -% \end{InstanceDescription} -% -% - diff --git a/Master/texmf-dist/source/latex/xpackages/xhead/xhead.ins b/Master/texmf-dist/source/latex/xpackages/xhead/xhead.ins deleted file mode 100644 index 7d4286021a7..00000000000 --- a/Master/texmf-dist/source/latex/xpackages/xhead/xhead.ins +++ /dev/null @@ -1,73 +0,0 @@ -% \iffalse -%% -%% This file will generate fast loadable files and documentation -%% driver files from the dtx files in this package when run through -%% LaTeX or TeX. -%% -%% (C) Copyright 2009-2010 LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of the -%% LaTeX Project Public License (LPPL), either version 1.3c of this -%% license or (at your option) any later version. The latest version -%% of this license is in the file -%% -%% http://www.latex-project.org/lppl.txt -%% -%% This file is part of the ``xhead bundle'' (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% The released version of this bundle is available from CTAN. -%% -%% ----------------------------------------------------------------------- -%% -%% The development version of the bundle can be found at -%% -%% http://www.latex-project.org/svnroot/experimental/trunk/ -%% -%% for those people who are interested. -%% -%%%%%%%%%%% -%% NOTE: %% -%%%%%%%%%%% -%% -%% Snapshots taken from the repository represent work in progress and may -%% not work or may contain conflicting material! We therefore ask -%% people _not_ to put them into distributions, archives, etc. without -%% prior consultation with the LaTeX Project Team. -%% -%% ----------------------------------------------------------------------- -%% -%% $Id: xhead.ins 1628 2009-10-25 09:54:34Z mittelba $ -%% -% \fi -% - -\input docstrip -\keepsilent -\askforoverwritefalse - -\preamble - -(C) Copyright The LaTeX3 Project and any individual authors -listed elsewhere in this file. - -This is a generated file. - -This file was generated from file(s) of the xhead bundle. ------------------------------------------------------------ - -This file may only be distributed together with a copy of this bundle. -You may however distribute the bundle without such generated files. - -====================================================================== - -\endpreamble - - -\generate{% - \file{xhead.sty}{\from{xhead.dtx}{package,trace}} -% \file{xhead-sample.tex}{\from{xhead.dtx}{sample}} -} - -\endbatchfile - diff --git a/Master/texmf-dist/doc/latex/xpackages/xtras/l3keys2e-demo.tex b/Master/texmf-dist/source/latex/xpackages/xtras/l3keys2e-demo.tex index a00531e0741..a00531e0741 100644 --- a/Master/texmf-dist/doc/latex/xpackages/xtras/l3keys2e-demo.tex +++ b/Master/texmf-dist/source/latex/xpackages/xtras/l3keys2e-demo.tex diff --git a/Master/texmf-dist/source/latex/xpackages/xtras/l3keys2e.dtx b/Master/texmf-dist/source/latex/xpackages/xtras/l3keys2e.dtx index 91e4dac4c48..0120127f93e 100644 --- a/Master/texmf-dist/source/latex/xpackages/xtras/l3keys2e.dtx +++ b/Master/texmf-dist/source/latex/xpackages/xtras/l3keys2e.dtx @@ -105,6 +105,17 @@ % \end{verbatim} %\end{function} % +%\begin{function}{\ProcessKeysPackageOptions} +% \begin{syntax} +% "\ProcessKeysPackageOptions" \Arg{module} +% \end{syntax} +% This function works in a similar manner to \cs{ProcessKeysOptions}. +% When used in a LaTeX2e package, \cs{ProcessKeysPackageOptions} +% will not examine any class options available. In contrast, +% \cs{ProcessKeysOptions} does parse class options (in common with the +% LaTeX2e kernel function \cs{ProcessOptions}). +%\end{function} +% %\subsection{Internal functions and variables} % %\begin{variable}{\keys_latexe_options_clist} @@ -187,6 +198,14 @@ \clist_new:N \keys_latexe_options_clist % \end{macrocode} %\end{macro} +% +%\begin{macro}{\_l_keys_process_class_bool} +% A flag to indicate that class options should be processed for +% packages. +% \begin{macrocode} +\bool_new:N \_l_keys_process_class_bool +% \end{macrocode} +%\end{macro} % %\begin{macro}{\keys_latexe_options:n} % The main function calls functions to collect up the global and local @@ -229,7 +248,8 @@ \cs_if_eq:NNTF \@currext \@clsextension { \keys_latexe_options_class:n {#1} }{ - \keys_latexe_options_package:n {#1} + \bool_if:NT \_l_keys_process_class_bool + { \keys_latexe_options_package:n {#1} } } } } @@ -302,16 +322,24 @@ %\end{macro} % %\begin{macro}{\ProcessKeysOptions} -% The user macro is simply a wrapper around the internal process. In +%\begin{macro}{\ProcessKeysOptions} +% The user macro are simply wrappers around the internal process. In % contrast to other similar packages, the module name is always required % here. % \begin{macrocode} \NewDocumentCommand \ProcessKeysOptions { m } { + \bool_set_true:N \_l_keys_process_class_bool + \keys_latexe_options:n {#1} +} +\NewDocumentCommand \ProcessKeysPackageOptions { m } { + \bool_set_false:N \_l_keys_process_class_bool \keys_latexe_options:n {#1} } \@onlypreamble \ProcessKeysOptions +\@onlypreamble \ProcessKeysPackageOptions % \end{macrocode} %\end{macro} +%\end{macro} % % \begin{macrocode} %</package> diff --git a/Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty b/Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty index 18e704e88cd..d3a64fcc10f 100644 --- a/Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty +++ b/Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty @@ -57,7 +57,7 @@ %% ----------------------------------------------------------------------- %% \RequirePackage{l3names} -\GetIdInfo$Id: xparse.dtx 1897 2010-04-26 05:56:56Z joseph $ +\GetIdInfo$Id: xparse.dtx 1905 2010-05-19 07:45:31Z joseph $ {Generic document command parser} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -687,7 +687,7 @@ { \exp_not:n {#2} } {#1} { \exp_not:n {#3} } } } - \tl_set:Nx \_l_xparse_tmp_tl + \tl_set:Nx \l_xparse_tmp_tl { \prg_replicate:nn { #1 + 1 } { \_xparse_split_argument_aux_i:w } @@ -697,7 +697,7 @@ \prg_replicate:nn {#1} { \exp_not:n {#2} \NoValue } \exp_not:n { #2 \q_stop } } - \_l_xparse_tmp_tl + \l_xparse_tmp_tl } \group_end: \cs_set_protected:Npn \_xparse_split_argument_aux_i:w { } @@ -708,6 +708,36 @@ { \_xparse_split_argument_aux_iii:w #2 \q_stop } } \cs_set_protected:Npn \_xparse_split_argument_aux_iii:w { } +\tl_new:N \_l_xparse_split_list_tl +\group_begin: + \char_make_active:N \@ + \cs_gset_protected:Npn \_xparse_split_list:nn #1#2 + { + \tl_set:Nn \_l_xparse_split_list_tl {#2} + \group_begin: + \char_set_lccode:nn { `\@ } { `#1 } + \tl_to_lowercase:n + { + \group_end: + \tl_replace_all_in:Nnn \_l_xparse_split_list_tl { @ } {#1} + } + \cs_set:Npn \_xparse_split_list_aux:w ##1 #1 + { + \quark_if_recursion_tail_stop:n {##1} + \tl_put_right:Nn \ProcessedArgument { {##1} } + \_xparse_split_list_aux:w + } + \tl_if_empty:NTF \_l_xparse_split_list_tl + { \tl_set:Nn \ProcessedArgument { { } } } + { + \tl_clear:N \ProcessedArgument + \exp_last_unbraced:NV \_xparse_split_list_aux:w + \_l_xparse_split_list_tl #1 + \q_recursion_tail #1 \q_recursion_stop + } + } +\group_end: +\cs_set:Npn \_xparse_split_list_aux:w { } \cs_new:Npn \xparse_exp_add_type_d:w #1#2 { \xparse_exp_add_type_D:w #1 #2 { \NoValue } } @@ -1089,6 +1119,7 @@ \cs_new:Npn \ProcessedArgument { } \cs_new_eq:NN \ReverseBoolean \_xparse_bool_reverse:N \cs_new_eq:NN \SplitArgument \_xparse_split_argument:nnn +\cs_new_eq:NN \SplitList \_xparse_split_list:nn \endinput %% %% End of file `xparse.sty'. diff --git a/Master/texmf-dist/tex/latex/xpackages/xhead/xhead.sty b/Master/texmf-dist/tex/latex/xpackages/xhead/xhead.sty deleted file mode 100644 index 1e80bf977d2..00000000000 --- a/Master/texmf-dist/tex/latex/xpackages/xhead/xhead.sty +++ /dev/null @@ -1,376 +0,0 @@ -%% -%% This is file `xhead.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% xhead.dtx (with options: `package,trace') -%% -%% (C) Copyright The LaTeX3 Project and any individual authors -%% listed elsewhere in this file. -%% -%% This is a generated file. -%% -%% This file was generated from file(s) of the xhead bundle. -%% ----------------------------------------------------------- -%% -%% This file may only be distributed together with a copy of this bundle. -%% You may however distribute the bundle without such generated files. -%% -%% ====================================================================== -%% -%% File xhead.dtx (C) Copyright 2010 Frank Mittelbach, LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of the -%% LaTeX Project Public License (LPPL), either version 1.3c of this -%% license or (at your option) any later version. The latest version -%% of this license is in the file -%% -%% http://www.latex-project.org/lppl.txt -%% -%% This file is part of the ``xhead bundle'' (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% The released version of this bundle is available from CTAN. -%% -%% ----------------------------------------------------------------------- -%% -%% The development version of the bundle can be found at -%% -%% http://www.latex-project.org/svnroot/experimental/trunk/ -%% -%% for those people who are interested. -%% -%%%%%%%%%%% -%% NOTE: %% -%%%%%%%%%%% -%% -%% Snapshots taken from the repository represent work in progress and may -%% not work or may contain conflicting material! We therefore ask -%% people _not_ to put them into distributions, archives, etc. without -%% prior consultation with the LaTeX Project Team. -%% -%% ----------------------------------------------------------------------- -%% -\RequirePackage{expl3} -\GetIdInfo$Id: xhead.dtx 1686 2009-11-03 08:19:19Z joseph $ - {Templates heading commands} -\RequirePackage{expl3,xtemplate} -\GetIdInfo$Id: xhead.dtx 1771 2010-02-05 20:51:22Z frank $ - {heading module} -\ProvidesExplPackage - {\filename}{\filedate}{\fileversion}{\filedescription} -\DeclareObjectType {heading} {7} -\cs_new:Npn \xhead_generate_toc:NNNNN #1#2#3#4#5 { - \typeout{xhead_generate_toc:NNNNN=#1:#2:#3:#4:#5} - \bool_if:nT - { #2 || ! #1 } - { - \group_begin: - \cs_set_eq:NN \@mkboth \use_none:nn - \cs_set_eq:NN \markboth \use_none:nn - \cs_set_eq:NN \markright \use_none:n - \addcontentsline{toc}{#3} - { - \tl_if_empty:NF #4 - { \protect\numberline{ #4 } } - #5 - } - \group_end: - } -} -\cs_generate_variant:Nn \xhead_generate_toc:NNNNN {NNNNo} -\cs_new:Npn \xhead_generate_mark:NNNNN #1#2#3#4#5 { - \typeout{xhead_generate_mark:NNNNN=#1:#2:#3:#4:#5} - \bool_if:nT - { #2 || ! #1 } - { - \group_begin: - \cs_set_eq:NN \@mkboth \use_none:nn - \use:c {#3 mark} {#5} - \group_end: - } -} -\cs_generate_variant:Nn \xhead_generate_mark:NNNNN {NNNNo} -\cs_new:Npn \xhead_generate_toc_and_mark:NNNNNNN #1#2#3#4#5#6#7 { - \xhead_generate_toc:NNNNo - #1 #2 #4 #5 #6 - \xhead_generate_mark:NNNNo - #1 #3 #4 #5 #7 -} - -\cs_new:Npn \xhead_update_prepare_number:N #1 { - \bool_if:nTF - { #1 || \intexpr_compare_p:n { \l_xhead_level_int > \c@secnumdepth } } - { \tl_clear:N \l_xhead_number_tl } - { - \refstepcounter \l_xhead_name_tl - \tl_set:Nx \l_xhead_number_tl { \use:c {the \l_xhead_name_tl} } - } -} -\cs_new:Npn \xhead_set_after_indention:N #1 { - \bool_if:NTF #1 \@afterindenttrue \@afterindentfalse -} -\cs_new:Npn \xhead_set_titles:nnn #1#2#3 { - \IfNoValueTF{#1} - { \tl_set:Nn \l_xhead_toc_title_tl {#3} } - { \tl_if_empty:nTF {#1} - { \tl_set:Nn \l_xhead_toc_title_tl {#3} } - { \tl_set:Nn \l_xhead_toc_title_tl {#1} } - } - \IfNoValueTF{#2} - { \tl_set_eq:NN \l_xhead_mark_title_tl \l_xhead_toc_title_tl } - { \tl_if_empty:nTF {#2} - { \tl_set:Nn \l_xhead_mark_title_tl {#3} } - { \tl_set:Nn \l_xhead_mark_title_tl {#2} } - } -} -\dim_new:N \l_xhead_indent_dim -\skip_new:N \l_xhead_above_skip -\skip_new:N \l_xhead_below_skip -\int_new:N \l_xhead_level_int -\int_new:N \l_xhead_break_penalty_int -\tl_new:N \l_xhead_name_tl -\tl_new:N \l_xhead_number_tl -\tl_new:N \l_xhead_toc_title_tl -\tl_new:N \l_xhead_mark_title_tl -\bool_new:N \l_xhead_indent_after_bool - -\cs_new:Npn \xhead_title_decl: {} - -\cs_new:Npn \xhead_number_format:n #1 {} - -\cs_new:Npn \xhead_default_number_format:n #1 { #1 \quad} -\DeclareTemplateInterface {heading} {2e-vertical} {7} - { - name : tokenlist = ??? , - level : integer = 0 , - break-penalty: integer = -300 , - indent : length = 0pt , - above-skip : skip = 0pt , - below-skip : skip = 0pt , - title-decl : function {0} = , - number-format: function {1} = \xhead_default_number_format:n {#1} , - indent-after : boolean = false , - } -\DeclareTemplateCode {heading} {2e-vertical} {7} - { - name = \l_xhead_name_tl , - level = \l_xhead_level_int , - break-penalty = \l_xhead_break_penalty_int , - indent = \l_xhead_indent_dim , - above-skip = \l_xhead_above_skip , - below-skip = \l_xhead_below_skip , - title-decl = \xhead_title_decl: , - number-format = \xhead_number_format:n , - indent-after = \l_xhead_indent_after_bool , - } - { - \AssignTemplateKeys - \bool_if:NF #1 - { - \IfNoValueTF{#2} - { \tl_set:Nn \l_xhead_toc_title_tl {#6} } - { \tl_set:Nn \l_xhead_toc_title_tl {#2} } - \tl_set_eq:NN \l_xhead_mark_title_tl \l_xhead_toc_title_tl - } - \xhead_update_prepare_number:N #1 - \xhead_set_after_indention:N \l_xhead_indent_after_bool - \if@noskipsec \leavevmode \fi - \par - \if@nobreak - \everypar{} - \else: - \addpenalty \l_xhead_break_penalty_int - \addvspace \l_xhead_above_skip - \fi: - \group_begin: - \xhead_title_decl: - { - \@hangfrom{\hskip \l_xhead_indent_dim \scan_stop: - \tl_if_empty:NF \l_xhead_number_tl - { \xhead_number_format:n \l_xhead_number_tl } - } - \interlinepenalty \@M #6\@@par - } - \group_end: - \xhead_generate_toc_and_mark:NNNNNNN - #1 \BooleanFalse \BooleanFalse % no forcing in 2e - \l_xhead_name_tl - \l_xhead_number_tl - \l_xhead_toc_title_tl - \l_xhead_mark_title_tl - \par \nobreak - \vspace \l_xhead_below_skip - \@afterheading - \ignorespaces - } -\DeclareTemplateInterface {heading} {3a-vertical} {7} - { - name : tokenlist = ??? , - level : integer = 0 , - break-penalty : integer = -300 , - indent : length = 0pt , - above-skip : skip = 0pt , - below-skip : skip = 0pt , - format : tokenlist = indent-by-number , - parshape : instance {parshape} = plain , - justification : instance {justification} = flush-left , - font : tokenlist = , - number-format : function {1} = \xhead_default_number_format:n {#1} , - indent-after : boolean = false , - } - -\tl_new:N \l_xhead_title_format_tl -\tl_new:N \l_xhead_title_font_tl - -\cs_new:Npn \xhead_title_parshape: {} -\cs_new:Npn \xhead_title_justification: {} - -\DeclareTemplateCode {heading} {3a-vertical} {7} - { - name = \l_xhead_name_tl , - level = \l_xhead_level_int , - break-penalty = \l_xhead_break_penalty_int , - indent = \l_xhead_indent_dim , - above-skip = \l_xhead_above_skip , - below-skip = \l_xhead_below_skip , - format = \l_xhead_title_format_tl , - parshape = \xhead_title_parshape: , - justification = \xhead_title_justification: , - font = \l_xhead_title_font_tl , - number-format = \xhead_number_format:n , - indent-after = \l_xhead_indent_after_bool , - } - { - \AssignTemplateKeys - \xhead_set_titles:nnn {#2} {#4} {#6} - \xhead_update_prepare_number:N #1 - \xhead_set_after_indention:N \l_xhead_indent_after_bool - \if@noskipsec \leavevmode \fi - \par - \if@nobreak - \everypar{} - \else: - \addpenalty \l_xhead_break_penalty_int - \addvspace \l_xhead_above_skip - \fi: - \xhead_use_title_format:nn \l_xhead_title_format_tl {#6} - - \xhead_generate_toc_and_mark:NNNNNNN - #1 #3 #5 - \l_xhead_name_tl - \l_xhead_number_tl - \l_xhead_toc_title_tl - \l_xhead_mark_title_tl - \par \nobreak - \vspace \l_xhead_below_skip - \@afterheading - \ignorespaces - } -\cs_new:Npn \xhead_use_title_format:nn #1 { - \cs_if_exist:cTF {xhead_format_ #1:n} - { \use:c{xhead_format_ #1:n} } - { \ERROR xhead format not defined } -} -\cs_new:cpn {xhead_format_indent-by-number:n} #1 { - \group_begin: - \l_xhead_title_font_tl - \hbox_set:Nn \l_tmpa_box - { - \tl_if_empty:NF \l_xhead_number_tl - { \xhead_number_format:n \l_xhead_number_tl } - } - - \UseInstance{measure}{fullwidth} - {\l_xhead_indent_dim + \box_wd:N \l_tmpa_box } - - \xhead_title_parshape: - \xhead_title_justification: - \interlinepenalty \@M - - \noindent \hbox_overlap_left:n { \box_use:N \l_tmpa_box } - #1\@@par - \group_end: -} -\cs_new:cpn {xhead_format_number-above-text:n} #1 { - \group_begin: - \l_xhead_title_font_tl - \xhead_title_parshape: - \xhead_title_justification: - \interlinepenalty \@M - - \tl_if_empty:NF \l_xhead_number_tl - { - \xhead_number_format:n \l_xhead_number_tl - } - - #1\@@par - \group_end: -} - -\input{xtextblock.sty} - -\DeclareTemplateInterface {heading} {3b-vertical} {7} - { - name : tokenlist = ??? , - level : integer = 0 , - break-penalty : integer = -300 , - indent : length = 0pt , - above-skip : skip = 0pt , - below-skip : skip = 0pt , - title-format : instance {textblock-2} = heading , - number-format : function {1} = \xhead_default_number_format:n {#1} , - indent-after : boolean = false , - } - -\cs_new:Npn \xhead_title_format:nn #1#2 {} - -\DeclareTemplateCode {heading} {3b-vertical} {7} - { - name = \l_xhead_name_tl , - level = \l_xhead_level_int , - break-penalty = \l_xhead_break_penalty_int , - indent = \l_xhead_indent_dim , - above-skip = \l_xhead_above_skip , - below-skip = \l_xhead_below_skip , - title-format = \xhead_title_format:nn , - number-format = \xhead_number_format:n , - indent-after = \l_xhead_indent_after_bool , - } - { - \AssignTemplateKeys - - \xhead_set_titles:nnn {#2} {#4} {#6} - - \xhead_update_prepare_number:N #1 - - \xhead_set_after_indention:N \l_xhead_indent_after_bool - - \if@noskipsec \leavevmode \fi - \par - \if@nobreak - \everypar{} - \else: - \addpenalty \l_xhead_break_penalty_int - \addvspace \l_xhead_above_skip - \fi: - - \xhead_title_format:nn \l_xhead_number_tl {#6} - - \xhead_generate_toc_and_mark:NNNNNNN - #1 #3 #5 - \l_xhead_name_tl - \l_xhead_number_tl - \l_xhead_toc_title_tl - \l_xhead_mark_title_tl - - \par \nobreak - \vspace \l_xhead_below_skip - \@afterheading - \ignorespaces - } - -\endinput -%% -%% End of file `xhead.sty'. diff --git a/Master/texmf-dist/tex/latex/xpackages/xtras/l3keys2e.sty b/Master/texmf-dist/tex/latex/xpackages/xtras/l3keys2e.sty index e108b0aff35..6c18e8ba3f0 100644 --- a/Master/texmf-dist/tex/latex/xpackages/xtras/l3keys2e.sty +++ b/Master/texmf-dist/tex/latex/xpackages/xtras/l3keys2e.sty @@ -51,6 +51,7 @@ {\filename}{\filedate}{\fileversion}{\filedescription} \RequirePackage{xparse} \clist_new:N \keys_latexe_options_clist +\bool_new:N \_l_keys_process_class_bool \cs_new:Npn \keys_latexe_options:n #1 { \clist_clear:N \keys_latexe_options_clist \keys_latexe_options_global:n {#1} @@ -75,7 +76,8 @@ \cs_if_eq:NNTF \@currext \@clsextension { \keys_latexe_options_class:n {#1} }{ - \keys_latexe_options_package:n {#1} + \bool_if:NT \_l_keys_process_class_bool + { \keys_latexe_options_package:n {#1} } } } } @@ -109,9 +111,15 @@ } \cs_new:Npn \keys_latexe_remove_equals:w #1 = #2 \q_stop {#1} \NewDocumentCommand \ProcessKeysOptions { m } { + \bool_set_true:N \_l_keys_process_class_bool + \keys_latexe_options:n {#1} +} +\NewDocumentCommand \ProcessKeysPackageOptions { m } { + \bool_set_false:N \_l_keys_process_class_bool \keys_latexe_options:n {#1} } \@onlypreamble \ProcessKeysOptions +\@onlypreamble \ProcessKeysPackageOptions \endinput %% %% End of file `l3keys2e.sty'. |