summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/expl3/l3num.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/expl3/l3num.dtx')
-rw-r--r--Master/texmf-dist/source/latex/expl3/l3num.dtx505
1 files changed, 0 insertions, 505 deletions
diff --git a/Master/texmf-dist/source/latex/expl3/l3num.dtx b/Master/texmf-dist/source/latex/expl3/l3num.dtx
deleted file mode 100644
index 45759166b46..00000000000
--- a/Master/texmf-dist/source/latex/expl3/l3num.dtx
+++ /dev/null
@@ -1,505 +0,0 @@
-% \iffalse
-%% File: l3num.dtx Copyright (C) 2005-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 ``expl3 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{l3names}
-%</driver|package>
-%\fi
-\GetIdInfo$Id: l3num.dtx 2063 2010-10-03 08:26:49Z mittelba $
- {L3 Experimental token numbers}
-%\iffalse
-%<*driver>
-%\fi
-\ProvidesFile{\filename.\filenameext}
- [\filedate\space v\fileversion\space\filedescription]
-%\iffalse
-\documentclass[full]{l3doc}
-\begin{document}
-\DocInput{l3num.dtx}
-\end{document}
-%</driver>
-% \fi
-%
-%
-% \title{The \textsf{l3num} package\thanks{This file
-% has version number \fileversion, last
-% revised \filedate.}\\
-% Integers in macros}
-% \author{\Team}
-% \date{\filedate}
-% \maketitle
-%
-% \begin{documentation}
-%
-% Instead of using counter registers for manipulation of
-% integer values it is sometimes useful to keep such values in
-% macros. For this \LaTeX3 offers the type ``num''.
-%
-% One reason is the limited number of registers inside
-% \TeX{}. However, when using \eTeX{} this is no longer an issue. It
-% remains to be seen if there are other compelling reasons to keep
-% this module.
-%
-% It turns out there might be as with a \meta{num} data type, the
-% allocation module can do its bookkeeping without the aid of
-% \meta{int} registers.
-%
-% \section{Functions}
-%
-% \begin{function}{%
-% \num_new:N |
-% \num_new:c |
-% }
-% \begin{syntax}
-% "\num_new:N" <num>
-% \end{syntax}
-% Defines <num> to be a new variable of type "num" (initialized to
-% zero). There is no way to
-% define constant counters with these functions.
-% \end{function}
-%
-% \begin{function}{%
-% \num_incr:N |
-% \num_incr:c |
-% \num_gincr:N |
-% \num_gincr:c
-% }
-% \begin{syntax}
-% "\num_incr:N" <num>
-% \end{syntax}
-% Increments <num> by one. For global variables the global versions
-% should be used.
-% \end{function}
-%
-% \begin{function}{%
-% \num_decr:N |
-% \num_decr:c |
-% \num_gdecr:N |
-% \num_gdecr:c |
-% }
-% \begin{syntax}
-% "\num_decr:N" <num>
-% \end{syntax}
-% Decrements <num> by one. For global variables the global versions
-% should be used.
-% \end{function}
-%
-% \begin{function}{%
-% \num_zero:N |
-% \num_zero:c |
-% \num_gzero:N |
-% \num_gzero:c |
-% }
-% \begin{syntax}
-% "\num_zero:N" <num>
-% \end{syntax}
-% Resets <num> to zero. For global variables the global versions
-% should be used.
-% \end{function}
-%
-% \begin{function}{%
-% \num_set:Nn |
-% \num_set:cn |
-% \num_gset:Nn |
-% \num_gset:cn |
-% }
-% \begin{syntax}
-% "\num_set:Nn" <num> \Arg{integer}
-% \end{syntax}
-% These functions will set the <num> register to the <integer> value.
-% \end{function}
-%
-% \begin{function}{%
-% \num_set_eq:NN |
-% \num_set_eq:cN |
-% \num_set_eq:Nc |
-% \num_set_eq:cc |
-% }
-% \begin{syntax}
-% "\num_gset_eq:NN" <num1> <num2>
-% \end{syntax}
-% These functions will set the <num1> register equal to <num2>.
-% \end{function}
-%
-% \begin{function}{%
-% \num_gset_eq:NN |
-% \num_gset_eq:cN |
-% \num_gset_eq:Nc |
-% \num_gset_eq:cc |
-% }
-% \begin{syntax}
-% "\num_gset_eq:NN" <num1> <num2>
-% \end{syntax}
-% These functions will globally set the <num1> register equal to <num2>.
-% \end{function}
-%
-% \begin{function}{%
-% \num_add:Nn |
-% \num_add:cn |
-% \num_gadd:Nn |
-% \num_gadd:cn |
-% }
-% \begin{syntax}
-% "\num_add:Nn" <num> \Arg{integer}
-% \end{syntax}
-% These functions will add to the <num> register the value <integer>. If
-% the second argument is a <num> register too, the surrounding braces
-% can be left out.
-%
-% \end{function}
-%
-%
-% \begin{function}{%
-% \num_use:N |
-% \num_use:c |
-% }
-% \begin{syntax}
-% "\num_use:N" <num>
-% \end{syntax}
-% This function returns the integer value kept in <num> in a way
-% suitable for further processing.
-% \begin{texnote}
-% Since these <num>s are implemented as macros, the function
-% "\num_use:N" is effectively a noop and mainly there for
-% consistency with similar functions in other modules.
-% \end{texnote}
-% \end{function}
-%
-% \begin{function}{ \num_show:N |
-% \num_show:c }
-% \begin{syntax}
-% "\num_show:N" <num>
-% \end{syntax}
-% This function pauses the compilation and displays the integer value kept
-% in <num> on the console output.
-% \end{function}
-%
-%
-%
-% \begin{function}{%
-% \num_elt_count:n |
-% \num_elt_count_prop:Nn |
-% }
-% \begin{syntax}
-% "\num_elt_count:n" \Arg{balanced text}
-% "\num_elt_count_prop:Nn" <prop> \Arg{balanced text}
-% \end{syntax}
-% Discards their arguments and puts a "+1" in the input stream. Used
-% to count elements in a token list.
-% \end{function}
-%
-% \section{Formatting a counter value}
-%
-% See the \textsf{l3int} module for ways of doing this.
-%
-% \section{Variable and constants}
-%
-% \begin{variable}{ \c_max_register_num }
-% Maximum number of registers; possibly engine-specific.
-% \end{variable}
-%
-% \begin{variable}{%
-% \l_tmpa_num |
-% \l_tmpb_num |
-% \l_tmpc_num |
-% \g_tmpa_num |
-% \g_tmpb_num |
-% }
-% Scratch register for immediate use. They are not used by conditionals
-% or predicate functions.
-% \end{variable}
-%
-% \section{Primitive functions}
-%
-%
-% \begin{function}{%
-% \if_num:w |
-% }
-% \begin{syntax}
-% "\if_num:w" <number1> <rel> <number2> <true> "\else:" <false> "\fi:"
-% \end{syntax}
-% Compare two numbers. It is recommended to use "\int_eval:n" to
-% correctly evaluate and terminate these numbers. <rel> is one of
-% "<", "=" or ">" with catcode 12.
-% \begin{texnote}
-% This is the \TeX{} primitive \tn{ifnum}.
-% \end{texnote}
-% \end{function}
-%
-% \begin{function}{%
-% \if_case:w |
-% \or: |
-% }
-% \begin{syntax}
-% "\if_case:w" <number> <case0> "\or:" <case1> "\or:" "..." "\else:"
-% <default> "\fi:"
-% \end{syntax}
-% Chooses case <number>. If you wish to use negative numbers as well,
-% you can offset them with "\int_eval:n".
-% \begin{texnote}
-% These are the \TeX{} primitives \tn{ifcase} and \tn{or}.
-% \end{texnote}
-% \end{function}
-%
-% \end{documentation}
-%
-% \begin{implementation}
-%
-% \section{\pkg{l3num} implementation}
-%
-%
-% We start by ensuring that the required packages are loaded.
-% \begin{macrocode}
-%<*package>
-\ProvidesExplPackage
- {\filename}{\filedate}{\fileversion}{\filedescription}
-\package_check_loaded_expl:
-%</package>
-%<*initex|package>
-% \end{macrocode}
-%
-% \begin{macro}{\if_num:w}
-% \begin{macro}{\if_case:w}
-% Here are the remaining primitives for number comparisons and
-% expressions.
-% \begin{macrocode}
-\cs_set_eq:NN \if_num:w \tex_ifnum:D
-\cs_set_eq:NN \if_case:w \tex_ifcase:D
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% Functions that support \LaTeX's user accessible counters should be
-% added here, too. But first the internal counters.
-%
-% \begin{macro}{\num_incr:N}
-% \begin{macro}{\num_decr:N}
-% \begin{macro}{\num_gincr:N}
-% \begin{macro}{\num_gdecr:N}
-% Incrementing and decrementing of integer registers is done with
-% the following functions.
-% \begin{macrocode}
-\cs_set_protected_nopar:Npn \num_incr:N #1{\num_add:Nn#1 1}
-\cs_set_protected_nopar:Npn \num_decr:N #1{\num_add:Nn#1 \c_minus_one}
-\cs_set_protected_nopar:Npn \num_gincr:N #1{\num_gadd:Nn#1 1}
-\cs_set_protected_nopar:Npn \num_gdecr:N #1{\num_gadd:Nn#1 \c_minus_one}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\num_incr:c}
-% \begin{macro}{\num_decr:c}
-% \begin{macro}{\num_gincr:c}
-% \begin{macro}{\num_gdecr:c}
-% We also need \ldots
-% \begin{macrocode}
-\cs_generate_variant:Nn \num_incr:N {c}
-\cs_generate_variant:Nn \num_decr:N {c}
-\cs_generate_variant:Nn \num_gincr:N {c}
-\cs_generate_variant:Nn \num_gdecr:N {c}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\num_zero:N}
-% \begin{macro}{\num_zero:c}
-% \begin{macro}{\num_gzero:N}
-% \begin{macro}{\num_gzero:c}
-% We also need \ldots
-% \begin{macrocode}
-\cs_new_protected_nopar:Npn \num_zero:N #1 {\num_set:Nn #1 0}
-\cs_new_protected_nopar:Npn \num_gzero:N #1 {\num_gset:Nn #1 0}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\cs_generate_variant:Nn \num_zero:N {c}
-\cs_generate_variant:Nn \num_gzero:N {c}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-%
-%
-% \begin{macro}{\num_new:N}
-% \begin{macro}{\num_new:c}
-% Allocate a new \m{num} variable and initialize it with zero.
-% \begin{macrocode}
-\cs_new_protected_nopar:Npn \num_new:N #1{\tl_new:Nn #1{0}}
-\cs_generate_variant:Nn \num_new:N {c}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\num_set:Nn}
-% \begin{macro}{\num_set:cn}
-% \begin{macro}{\num_gset:Nn}
-% \begin{macro}{\num_gset:cn}
-% Assigning values to \m{num} registers.
-% \begin{macrocode}
-\cs_new_protected_nopar:Npn \num_set:Nn #1#2{
- \tl_set:No #1{ \tex_number:D \int_eval:n {#2} }
-}
-\cs_generate_variant:Nn\num_set:Nn {c}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\cs_new_protected_nopar:Npn \num_gset:Nn {\pref_global:D \num_set:Nn}
-\cs_generate_variant:Nn\num_gset:Nn {c}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\num_set_eq:NN}
-% \begin{macro}{\num_set_eq:cN}
-% \begin{macro}{\num_set_eq:Nc}
-% \begin{macro}{\num_set_eq:cc}
-% Setting \m{num} registers equal to each other.
-% \begin{macrocode}
-\cs_new_eq:NN \num_set_eq:NN \tl_set_eq:NN
-\cs_generate_variant:Nn\num_set_eq:NN {c,Nc,cc}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\num_gset_eq:NN}
-% \begin{macro}{\num_gset_eq:cN}
-% \begin{macro}{\num_gset_eq:Nc}
-% \begin{macro}{\num_gset_eq:cc}
-% Setting \m{num} registers equal to each other.
-% \begin{macrocode}
-\cs_new_eq:NN \num_gset_eq:NN \tl_gset_eq:NN
-\cs_generate_variant:Nn\num_gset_eq:NN {c,Nc,cc}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\num_add:Nn}
-% \begin{macro}{\num_add:cn}
-% \begin{macro}{\num_gadd:Nn}
-% \begin{macro}{\num_gadd:cn}
-% Adding is easily done as the second argument goes through
-% |\int_eval:n|.
-% \begin{macrocode}
-\cs_new_protected_nopar:Npn \num_add:Nn #1#2 {\num_set:Nn #1{#1+#2}}
-\cs_generate_variant:Nn\num_add:Nn {c}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\cs_new_protected_nopar:Npn \num_gadd:Nn {\pref_global:D \num_add:Nn}
-\cs_generate_variant:Nn\num_gadd:Nn {c}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-%
-% \begin{macro}{\num_use:N}
-% \begin{macro}{\num_use:c}
-% Here is how num macros are accessed:
-% \begin{macrocode}
-\cs_new_eq:NN\num_use:N \use:n
-\cs_new_eq:NN\num_use:c \use:c
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\num_show:N}
-% \begin{macro}{\num_show:c}
-% Here is how num macros are diagnosed:
-% \begin{macrocode}
-\cs_new_eq:NN\num_show:N \cs_show:N
-\cs_new_eq:NN\num_show:c \cs_show:c
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-%
-%
-% \begin{macro}{\num_elt_count:n}
-% \begin{macro}{\num_elt_count_prop:Nn}
-% Helper function for counting elements in a list.
-% \begin{macrocode}
-\cs_new:Npn \num_elt_count:n #1 { + 1 }
-\cs_new:Npn \num_elt_count_prop:Nn #1#2 { + 1 }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\l_tmpa_num}
-% \begin{macro}{\l_tmpb_num}
-% \begin{macro}{\l_tmpc_num}
-% \begin{macro}{\g_tmpa_num}
-% \begin{macro}{\g_tmpb_num}
-% We provide an number local and two global \m{num}s, maybe we
-% need more or less.
-% \begin{macrocode}
-\num_new:N \l_tmpa_num
-\num_new:N \l_tmpb_num
-\num_new:N \l_tmpc_num
-\num_new:N \g_tmpa_num
-\num_new:N \g_tmpb_num
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\c_max_register_num}
-% \begin{macrocode}
-\tex_mathchardef:D \c_max_register_num = 32767 \scan_stop:
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macrocode}
-%</initex|package>
-% \end{macrocode}
-%
-% \end{implementation}
-% \PrintIndex
-%
-% \endinput