diff options
author | Karl Berry <karl@freefriends.org> | 2014-10-28 22:36:18 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2014-10-28 22:36:18 +0000 |
commit | 6751ea76abc2df59197ab3c20fe780ecf9de81fb (patch) | |
tree | f0ddbcd0525b27fc8755bec4c667f0a4b076b2a0 /Master/texmf-dist/doc/generic/xint | |
parent | 1eff88f8256fc97ff44035cfd29e162947e4fd67 (diff) |
xint (28oct14)
git-svn-id: svn://tug.org/texlive/trunk@35458 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/generic/xint')
-rw-r--r-- | Master/texmf-dist/doc/generic/xint/CHANGES.html | 309 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/xint/CHANGES.pdf | bin | 0 -> 56756 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/xint/README | 307 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/xint/README.html | 128 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/xint/sourcexint.pdf | bin | 0 -> 517705 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/xint/xint.pdf | bin | 601724 -> 654384 bytes |
6 files changed, 599 insertions, 145 deletions
diff --git a/Master/texmf-dist/doc/generic/xint/CHANGES.html b/Master/texmf-dist/doc/generic/xint/CHANGES.html new file mode 100644 index 00000000000..82a02cb72a7 --- /dev/null +++ b/Master/texmf-dist/doc/generic/xint/CHANGES.html @@ -0,0 +1,309 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <meta http-equiv="Content-Style-Type" content="text/css" /> + <meta name="generator" content="pandoc" /> + <meta name="author" content="xint v1.1" /> + <title>CHANGE LOG</title> + <style type="text/css">code{white-space: pre;}</style> + <style type="text/css"> + body{margin-left : 10%; margin-right : 15%; margin-top: 4ex; font-size: 14pt;} + pre {white-space: pre-wrap;} + code {white-space: pre-wrap;} + #TOC {float: right; position: relative; top: 100px; margin-bottom: 100px;} + </style> +</head> +<body> +<div id="header"> +<h1 class="title">CHANGE LOG</h1> +<h2 class="author">xint v1.1</h2> +<h3 class="date">2014/10/28</h3> +</div> +<div id="TOC"> +<ul> +<li><a href="#section"><code>1.1 (2014/10/28)</code></a></li> +<li><a href="#n-20140401"><code>1.09n (2014/04/01)</code></a></li> +<li><a href="#m-20140226"><code>1.09m (2014/02/26)</code></a></li> +<li><a href="#kb-20140213"><code>1.09kb (2014/02/13)</code></a></li> +<li><a href="#k-20140121"><code>1.09k (2014/01/21)</code></a></li> +<li><a href="#j-20140109"><code>1.09j (2014/01/09)</code></a></li> +<li><a href="#i-20131218"><code>1.09i (2013/12/18)</code></a></li> +<li><a href="#h-20131128"><code>1.09h (2013/11/28)</code></a></li> +<li><a href="#g-20131122"><code>1.09g (2013/11/22)</code></a></li> +<li><a href="#f-20131104"><code>1.09f (2013/11/04)</code></a></li> +<li><a href="#e-20131029"><code>1.09e (2013/10/29)</code></a></li> +<li><a href="#d-20131022"><code>1.09d (2013/10/22)</code></a></li> +<li><a href="#c-20131009"><code>1.09c (2013/10/09)</code></a></li> +<li><a href="#b-20131003"><code>1.09b (2013/10/03)</code></a></li> +<li><a href="#a-20130924"><code>1.09a (2013/09/24)</code></a></li> +<li><a href="#b-20130614"><code>1.08b (2013/06/14)</code></a></li> +<li><a href="#a-20130611"><code>1.08a (2013/06/11)</code></a></li> +<li><a href="#section-1"><code>1.08 (2013/06/07)</code></a></li> +<li><a href="#section-2"><code>1.07 (2013/05/25)</code></a></li> +<li><a href="#b-20130514"><code>1.06b (2013/05/14)</code></a></li> +<li><a href="#section-3"><code>1.06 (2013/05/07)</code></a></li> +<li><a href="#section-4"><code>1.05 (2013/05/01)</code></a></li> +<li><a href="#section-5"><code>1.04 (2013/04/25)</code></a></li> +<li><a href="#section-6"><code>1.03 (2013/04/14)</code></a></li> +<li><a href="#section-7"><code>1.0 (2013/03/28)</code></a></li> +</ul> +</div> +<pre><code>Source: xint.dtx (v1.1, 2014/10/28) +Author: Jean-Francois Burnol +Info: Expandable operations on big integers, decimals, fractions +License: LPPL 1.3c or later</code></pre> +<h2 id="section"><code>1.1 (2014/10/28)</code></h2> +<dl> +<dt>bug fixes</dt> +<dd><ul> +<li><p><code>\xintZapFirstSpaces</code> hence also <code>\xintZapSpaces</code> from package <strong>xinttools</strong> were buggy when used with an argument either empty or containing only space tokens.</p></li> +<li><p><code>\xintiiexpr</code> did not strip leading zeroes, hence <code>\xinttheiiexpr 001+1\relax</code> did not obtain the expected result ...</p></li> +<li><p><code>\xinttheexpr \xintiexpr 1.23\relax\relax</code> should have produced <code>1</code>, but it produced <code>1.23</code></p></li> +<li><p>the catcode of <code>;</code> was not set at package launching time.</p></li> +<li><p>the <code>\XINTinFloatPrd:csv</code> macro name had a typo, hence <code>prd</code> was non-functional in <code>\xintfloatexpr</code>.</p></li> +</ul> +</dd> +<dt>breaking changes</dt> +<dd><ul> +<li><p>in <code>\xintiiexpr</code>, <code>/</code> does <em>rounded</em> division, rather than the Euclidean division (for positive arguments, this is truncated division). The new <code>//</code> operator does truncated division,</p></li> +<li><p>the <code>:</code> operator for three-way branching is gone, replaced with <code>??</code>,</p></li> +<li><p><code>1e(3+5)</code> is now illegal. The number parser identifies <code>e</code> and <code>E</code> in the same way it does for the decimal mark, earlier versions treated <code>e</code> as <code>E</code> rather as postfix operators,</p></li> +<li><p>the <code>add</code> and <code>mul</code> have a new syntax, old syntax is with <code>`+`</code> and <code>`*`</code> (quotes mandatory), <code>sum</code> and <code>prd</code> are gone,</p></li> +<li><p>no more special treatment for encountered brace pairs <code>{..}</code> by the number scanner, <code>a/b[N]</code> notation can be used without use of braces (the <code>N</code> will end up as is in a <code>\numexpr</code>, it is not parsed by the <code>\xintexpr</code>-ession scanner),</p></li> +<li><p>although <code>&</code> and <code>|</code> are still available as Boolean operators the use of <code>&&</code> and <code>||</code> is strongly recommended. The single letter operators might be assigned some other meaning in later releases (bitwise operations, perhaps). Do not use them.</p></li> +</ul> +</dd> +</dl> +<p>There are many novelties, most to be found in package <strong>xintexpr</strong>. But first the other changes.</p> +<ul> +<li><p>new package <strong>xintcore</strong> has been split off <strong>xint</strong>. It contains the core arithmetic macros. It is loaded by package <strong>bnumexpr</strong>,</p></li> +<li><p>neither <strong>xint</strong> nor <strong>xintfrac</strong> load <strong>xinttools</strong>. Only <strong>xintexpr</strong> does,</p></li> +<li><p>whenever some portion of code has been revised, often use has been made of the <code>\xint_dothis</code> and <code>\xint_orthat</code> pair of macros for expandably branching,</p></li> +<li><p>these tiny helpful macros, and a few others are in package <strong>xintkernel</strong> which contains also the catcode and loading order management code, initially inspired by code found in Heiko Oberdiek's packages,</p></li> +<li><p>the <code>\xintAdd</code> and <code>\xintSub</code> macros from package <strong>xintfrac</strong> check if one of the denominator is a multiple of the other, and only if this is not the case do they multiply the denominators. But systematic reduction would be too costly,</p></li> +<li><p>this naturally will be also the case for the <code>+</code> and <code>-</code> operations in <code>\xintexpr</code>,</p></li> +<li><p>new macros <code>\xintiiDivRound</code>, <code>\xintiiDivTrunc</code> and <code>\xintiiMod</code> for rounded and truncated division of big integers (now in <strong>xintcore</strong>), alongside the earlier <code>\xintiiQuo</code> and <code>\xintiiRem</code>,</p></li> +<li><p>with <strong>xintfrac</strong> loaded, the <code>\xintNum</code> macro does <code>\xintTTrunc</code> (which is truncation to an integer, same as <code>\xintiTrunc {0}</code>),</p></li> +<li><p>new macro <code>\xintMod</code> in <strong>xintfrac</strong> for modulo operation with fractional numbers,</p></li> +<li><p><code>\xintiexpr</code>, <code>\xinttheiexpr</code> admit an optional argument within brackets <code>[d]</code>, they round the computation result (or results, if comma separated) to <code>d</code> digits after decimal mark, (the whole computation is done exactly, as in <code>xintexpr</code>),</p></li> +<li><p><code>\xintfloatexpr</code>, <code>\xintthefloatexpr</code> similarly admit an optional argument which serves to keep only <code>d</code> digits of precision, getting rid of cumulated uncertainties in the last digits (the whole computation is done according to the precision set via <code>\xintDigits</code>),</p></li> +<li><p><code>\xinttheexpr</code> and <code>\xintthefloatexpr</code> ''pretty-print'' if possible, the former removing unit denominator or <code>[0]</code> brackets, the latter avoiding scientific notation if decimal notation is practical,</p></li> +<li><p>the <code>//</code> does truncated division and <code>/:</code> is the associated modulo,</p></li> +<li><p>multi-character operators <code>&&</code>, <code>|</code>, <code>==</code>, <code><=</code>, <code>>=</code>, <code>!=</code>, <code>**</code>,</p></li> +<li><p>multi-letter infix binary words <code>'and'</code>, <code>'or'</code>, <code>'xor'</code>, <code>'mod'</code> (quotes mandatory),</p></li> +<li><p>functions <code>even</code>, <code>odd</code>,</p></li> +<li><p><code>\xintdefvar A3:=3.1415;</code> for variable definitions (non expandable, naturally), usable in subsequent expressions; variable names may contain letters, digits, underscores. They should not start with a digit, the <code>@</code> is reserved, and single lowercase and uppercase Latin letters are predefined to work as dummy variables (see next),</p></li> +<li><p>generation of comma separated lists <code>a..b</code>, <code>a..[d]..b</code>,</p></li> +<li><p>Python syntax-like list extractors <code>[list][n:]</code>, <code>[list][:n]</code>, <code>[list][a:b]</code> allowing negative indices, but no optional step argument, and <code>[list][n]</code> (<code>n=0</code> for the number of items in the list),</p></li> +<li><p>functions <code>first</code>, <code>last</code>, <code>reversed</code>,</p></li> +<li><p>itemwise operations on comma separated lists <code>a*[list]</code>, etc.., possible on both sides <code>a*[list]^b</code>, an obeying the same precedence rules as with numbers,</p></li> +<li><p><code>add</code> and <code>mul</code> must use a dummy variable: <code>add(x(x+1)(x-1), x=-10..10)</code>,</p></li> +<li><p>variable substitutions with <code>subs</code>: <code>subs(subs(add(x^2+y^2,x=1..y),y=t),t=20)</code>,</p></li> +<li><p>sequence generation using <code>seq</code> with a dummy variable: <code>seq(x^3, x=-10..10)</code>,</p></li> +<li><p>simple recursive lists with <code>rseq</code>, with <code>@</code> given the last value, <code>rseq(1;2@+1,i=1..10)</code>,</p></li> +<li><p>higher recursion with <code>rrseq</code>, <code>@1</code>, <code>@2</code>, <code>@3</code>, <code>@4</code>, and <code>@@(n)</code> for earlier values, up to <code>n=K</code> where <code>K</code> is the number of terms of the initial stretch <code>rrseq(0,1;@1+@2,i=2..100)</code>,</p></li> +<li><p>iteration with <code>iter</code> which is like <code>rrseq</code> but outputs only the last <code>K</code> terms, where <code>K</code> was the number of initial terms,</p></li> +<li><p>inside <code>seq</code>, <code>rseq</code>, <code>rrseq</code>, <code>iter</code>, possibility to use <code>omit</code>, <code>abort</code> and <code>break</code> to control termination,</p></li> +<li><p><code>n++</code> potentially infinite index generation for <code>seq</code>, <code>rseq</code>, <code>rrseq</code>, and <code>iter</code>, it is advised to use <code>abort</code> or <code>break(..)</code> at some point,</p></li> +<li><p>the <code>add</code>, <code>mul</code>, <code>seq</code>, ... are nestable,</p></li> +<li><p><code>\xintthecoords</code> converts a comma separated list of an even number of items to the format expected by the <code>TikZ</code> <code>coordinates</code> syntax,</p></li> +<li><p>completely new version <code>\xintNewExpr</code>, <code>protect</code> function to handle external macros. Not all constructs are compatible with <code>\xintNewExpr</code>.</p></li> +</ul> +<h2 id="n-20140401"><code>1.09n (2014/04/01)</code></h2> +<ul> +<li><p>the user manual does not include by default the source code anymore: the <code>\NoSourceCode</code> toggle in file <code>xint.tex</code> has to be set to 0 before compilation to get source code inclusion.</p></li> +<li><p>bug fix (<strong>xinttools</strong>) in <code>\XINT_nthelt_finish</code> (this bug was introduced in <code>1.09i</code> of <code>2013/12/18</code> and showed up when the index <code>N</code> was larger than the number of elements of the list).</p></li> +</ul> +<h2 id="m-20140226"><code>1.09m (2014/02/26)</code></h2> +<ul> +<li><p>new in <strong>xinttools</strong>: <code>\xintKeep</code> keeps the first <code>N</code> or last <code>N</code> elements of a list (sequence of braced items); <code>\xintTrim</code> cuts out either the first <code>N</code> or the last <code>N</code> elements from a list.</p></li> +<li><p>new in <strong>xintcfrac</strong>: <code>\xintFGtoC</code> finds the initial partial quotients common to two numbers or fractions <code>f</code> and <code>g</code>; <code>\xintGGCFrac</code> is a clone of <code>\xintGCFrac</code> which however does not assume that the coefficients of the generalized continued fraction are numeric quantities. Some other minor changes.</p></li> +</ul> +<h2 id="kb-20140213"><code>1.09kb (2014/02/13)</code></h2> +<ul> +<li><p>bug fix (<strong>xintexpr</strong>): an aloof modification done by <code>1.09i</code> to <code>\xintNewExpr</code> had resulted in a spurious trailing space present in the outputs of all macros created by <code>\xintNewExpr</code>, making nesting of such macros impossible.</p></li> +<li><p>bug fix (<strong>xinttools</strong>): <code>\xintBreakFor</code> and <code>\xintBreakForAndDo</code> were buggy when used in the last iteration of an <code>\xintFor</code> loop.</p></li> +<li><p>bug fix (<strong>xinttools</strong>): <code>\xintSeq</code> from <code>1.09k</code> needed a <code>\chardef</code> which was missing from <code>xinttools.sty</code>, it was in <code>xint.sty</code>.</p></li> +</ul> +<h2 id="k-20140121"><code>1.09k (2014/01/21)</code></h2> +<ul> +<li><p>inside <code>\xintexpr..\relax</code> (and its variants) tacit multiplication is implied when a number or operand is followed directly with an opening parenthesis,</p></li> +<li><p>the <code>"</code> for denoting (arbitrarily big) hexadecimal numbers is recognized by <code>\xintexpr</code> and its variants (package <strong>xintbinhex</strong> is required); a fractional hexadecimal part introduced by a dot <code>.</code> is allowed.</p></li> +<li><p>re-organization of the first sections of the user manual.</p></li> +<li><p>bug fix (<strong>xinttools</strong>, <strong>xint</strong>, ...): forgotten catcode check of <code>"</code> at loading time has been added.</p></li> +</ul> +<h2 id="j-20140109"><code>1.09j (2014/01/09)</code></h2> +<ul> +<li><p>(<strong>xint</strong>) the core division routines have been re-written for some (limited) efficiency gain, more pronounced for small divisors. As a result the <em>computation of one thousand digits of <span class="math"><em>π</em></span></em> is close to three times faster than with earlier releases.</p></li> +<li><p>some various other small improvements, particularly in the power routines.</p></li> +<li><p>(<strong>xintfrac</strong>) a new macro <code>\xintXTrunc</code> is designed to produce thousands or even tens of thousands of digits of the decimal expansion of a fraction. Although completely expandable it has its use limited to inside an <code>\edef</code>, <code>\write</code>, <code>\message</code>, . It can thus not be nested as argument to another package macro.</p></li> +<li><p>(<strong>xintexpr</strong>) the tacit multiplication done in <code>\xintexpr..\relax</code> on encountering a count register or variable, or a <code>\numexpr</code>, while scanning a (decimal) number, is extended to the case of a sub <code>\xintexpr</code>-ession.</p></li> +<li><p><code>\xintexpr</code> can now be used in an <code>\edef</code> with no <code>\xintthe</code> prefix; it will execute completely the computation, and the error message about a missing <code>\xintthe</code> will be inhibited. Previously, in the absence of <code>\xintthe</code>, expansion could only be a full one (with <code>\romannumeral-`0</code>), not a complete one (with <code>\edef</code>). Note that this differs from the behavior of the non-expandable <code>\numexpr</code>: <code>\the</code> or <code>\number</code> are needed not only to print but also to trigger the computation, whereas <code>\xintthe</code> is mandatory only for the printing step.</p></li> +<li><p>the default behavior of <code>\xintAssign</code> is changed, it now does not do any further expansion beyond the initial full-expansion which provided the list of items to be assigned to macros.</p></li> +<li><p>bug fix (<strong>xintfrac</strong>): <code>1.09i</code> did an unexplainable change to <code>\XINT_infloat_zero</code> which broke the floating point routines for vanishing operands =:(((</p></li> +<li><p>bug fix: the <code>1.09i</code> <code>xint.ins</code> file produced a buggy <code>xint.tex</code> file.</p></li> +</ul> +<h2 id="i-20131218"><code>1.09i (2013/12/18)</code></h2> +<ul> +<li><p>(<strong>xintexpr</strong>) <code>\xintiiexpr</code> is a variant of <code>\xintexpr</code> which is optimized to deal only with (long) integers, <code>/</code> does a euclidean quotient.</p></li> +<li><p><code>\xintnumexpr</code>, <code>\xintthenumexpr</code>, <code>\xintNewNumExpr</code> are renamed, respectively, <code>\xintiexpr</code>, <code>\xinttheiexpr</code>, <code>\xintNewIExpr</code>. The earlier denominations are kept but to be removed at some point.</p></li> +<li><p>it is now possible within <code>\xintexpr...\relax</code> and its variants to use count, dimen, and skip registers or variables without explicit <code>\the/\number</code>: the parser inserts automatically <code>\number</code> and a tacit multiplication is implied when a register or variable immediately follows a number or fraction. Regarding dimensions and <code>\number</code>, see the further discussion in <em>Dimensions</em>.</p></li> +<li><p>(<strong>xintfrac</strong>) new conditional <code>\xintifOne</code>; <code>\xintifTrueFalse</code> renamed to <code>\xintifTrueAelseB</code>; new macros <code>\xintTFrac</code> (<code>fractional part</code>, mapped to function <code>frac</code> in <code>\xintexpr</code>-essions), <code>\xintFloatE</code>.</p></li> +<li><p>(<strong>xinttools</strong>) <code>\xintAssign</code> admits an optional argument to specify the expansion type to be used: <code>[]</code> (none, default), <code>[o]</code> (once), <code>[oo]</code> (twice), <code>[f]</code> (full), <code>[e]</code> (<code>\edef</code>),... to define the macros</p></li> +<li><p><strong>xinttools</strong> defines <code>\odef</code>, <code>\oodef</code>, <code>\fdef</code> (if the names have already been assigned, it uses <code>\xintoodef</code> etc...). These tools are provided for the case one uses the package macros in a non-expandable context, particularly <code>\oodef</code> which expands twice the macro replacement text and is thus a faster alternative to <code>\edef</code> taking into account that the <strong>xint</strong> bundle macros expand already completely in only two steps. This can be significant when repeatedly making <code>\def</code>-initions expanding to hundreds of digits.</p></li> +<li><p>some across the board slight efficiency improvement as a result of modifications of various types to <em>fork macros</em> and <em>branching conditionals</em> which are used internally.</p></li> +<li><p>bug fix (<strong>xint</strong>): <code>\xintAND</code> and <code>\xintOR</code> inserted a space token in some cases and did not expand as promised in two steps <code>:-((</code> (bug dating back to <code>1.09a</code> I think; this bug was without consequences when using <code>&</code> and <code>|</code> in <code>\xintexpr-essions</code>, it affected only the macro form).</p></li> +<li><p>bug fix (<strong>xintcfrac</strong>): <code>\xintFtoCCv</code> still ended fractions with the <code>[0]</code>'s which were supposed to have been removed since release <code>1.09b</code>.</p></li> +</ul> +<h2 id="h-20131128"><code>1.09h (2013/11/28)</code></h2> +<ul> +<li><p>parts of the documentation have been re-written or re-organized, particularly the discussion of expansion issues and of input and output formats.</p></li> +<li><p>the expansion types of macro arguments are documented in the margin of the macro descriptions, with conventions mainly taken over from those in the <code>LaTeX3</code> documentation.</p></li> +<li><p>a dependency of <strong>xinttools</strong> on <strong>xint</strong> (inside <code>\xintSeq</code>) has been removed.</p></li> +<li><p>(<strong>xintgcd</strong>) <code>\xintTypesetEuclideAlgorithm</code> and <code>\xintTypesetBezoutAlgorithm</code> have been slightly modified (regarding indentation).</p></li> +<li><p>(<strong>xint</strong>) macros <code>xintiSum</code> and <code>xintiPrd</code> are renamed to <code>\xintiiSum</code> and <code>\xintiiPrd</code>.</p></li> +<li><p>(<strong>xinttools</strong>) a count register used in <code>1.09g</code> in the <code>\xintFor</code> loops for parsing purposes has been removed and replaced by use of a <code>\numexpr</code>.</p></li> +<li><p>the few uses of <code>\loop</code> have been replaced by <code>\xintloop/\xintiloop</code>.</p></li> +<li><p>all macros of <strong>xinttools</strong> for which it makes sense are now declared <code>\long</code>.</p></li> +</ul> +<h2 id="g-20131122"><code>1.09g (2013/11/22)</code></h2> +<ul> +<li><p>a package <strong>xinttools</strong> is detached from <strong>xint</strong>, to make tools such as <code>\xintFor</code>, <code>\xintApplyUnbraced</code>, and <code>\xintiloop</code> available without the <strong>xint</strong> overhead.</p></li> +<li><p>new expandable nestable loops <code>\xintloop</code> and <code>\xintiloop</code>.</p></li> +<li><p>bugfix: <code>\xintFor</code> and <code>\xintFor*</code> do not modify anymore the value of <code>\count 255</code>.</p></li> +</ul> +<h2 id="f-20131104"><code>1.09f (2013/11/04)</code></h2> +<ul> +<li><p>(<strong>xint</strong>) new <code>\xintZapFirstSpaces</code>, <code>\xintZapLastSpaces</code>, <code>\xintZapSpaces</code>, <code>\xintZapSpacesB</code>, for expandably stripping away leading and/or ending spaces.</p></li> +<li><p><code>\xintCSVtoList</code> by default uses <code>\xintZapSpacesB</code> to strip away spaces around commas (or at the start and end of the comma separated list).</p></li> +<li><p>also the <code>\xintFor</code> loop will strip out all spaces around commas and at the start and the end of its list argument; and similarly for <code>\xintForpair</code>, <code>\xintForthree</code>, <code>\xintForfour</code>.</p></li> +<li><p><code>\xintFor</code> <em>et al.</em> accept all macro parameters from <code>#1</code> to <code>#9</code>.</p></li> +<li><p>for reasons of inner coherence some macros previously with one extra <code>i</code> in their names (e.g. <code>\xintiMON</code>) now have a doubled <code>ii</code> (<code>\xintiiMON</code>) to indicate that they skip the overhead of parsing their inputs via <code>\xintNum</code>. Macros with a <em>single</em> <code>i</code> such as <code>\xintiAdd</code> are those which maintain the non-<strong>xintfrac</strong> output format for big integers, but do parse their inputs via <code>\xintNum</code> (since release <code>1.09a</code>). They too may have doubled-<code>i</code> variants for matters of programming optimization when working only with (big) integers and not fractions or decimal numbers.</p></li> +</ul> +<h2 id="e-20131029"><code>1.09e (2013/10/29)</code></h2> +<ul> +<li><p>(<strong>xint</strong>) new <code>\xintintegers</code>, <code>\xintdimensions</code>, <code>\xintrationals</code> for infinite <code>\xintFor</code> loops, interrupted with <code>\xintBreakFor</code> and <code>\xintBreakForAndDo</code>.</p></li> +<li><p>new <code>\xintifForFirst</code>, <code>\xintifForLast</code> for the <code>\xintFor</code> and <code>\xintFor*</code> loops,</p></li> +<li><p>the <code>\xintFor</code> and <code>xintFor*</code> loops are now <code>\long</code>, the replacement text and the items may contain explicit <code>\par</code>'s.</p></li> +<li><p>new conditionals <code>\xintifCmp</code>, <code>\xintifInt</code>, <code>\xintifOdd</code>.</p></li> +<li><p>bug fix (<strong>xint</strong>): the <code>\xintFor</code> loop (not <code>\xintFor*</code>) did not correctly detect an empty list.</p></li> +<li><p>bug fix (<strong>xint</strong>): <code>\xintiSqrt {0}</code> crashed. <code>:-((</code></p></li> +<li><p>the documentation has been enriched with various additional examples, such as the <em>the quick sort algorithm illustrated</em> or the various ways of <em>computing prime numbers</em>.</p></li> +<li><p>the documentation explains with more details various expansion related issues, particularly in relation to conditionals.</p></li> +</ul> +<h2 id="d-20131022"><code>1.09d (2013/10/22)</code></h2> +<ul> +<li><p>bug fix (<strong>xint</strong>): <code>\xintFor*</code> is modified to gracefully handle a space token (or more than one) located at the very end of its list argument (as the space before <code>\do</code> in <code>\xintFor* #1 in {{a}{b}{c}<space>} \do {stuff}</code>; spaces at other locations were already harmless). Furthermore this new version <em>f-expands</em> the un-braced list items. After <code>\def\x{{1}{2}}</code> and <code>\def\y{{a}\x {b}{c}\x }</code>, <code>\y</code> will appear to <code>\xintFor*</code> exactly as if it had been defined as <code>\def\y{{a}{1}{2}{b}{c}{1}{2}}</code>.</p></li> +<li><p>same bug fix for <code>\xintApplyInline</code>.</p></li> +</ul> +<h2 id="c-20131009"><code>1.09c (2013/10/09)</code></h2> +<ul> +<li><p>(<strong>xintexpr</strong>) added <code>bool</code> and <code>togl</code> to the <code>\xintexpr</code> syntax; also added <code>\xintboolexpr</code> and <code>\xintifboolexpr</code>.</p></li> +<li><p>added <code>\xintNewNumExpr</code> (now <code>\xintNewIExpr</code> and <code>\xintNewBoolExpr</code>),</p></li> +<li><p>the factorial <code>!</code> and branching <code>?</code>, <code>:</code>, operators (in <code>\xintexpr...\relax</code>) have now less precedence than a function name located just before,</p></li> +<li><p>(<strong>xint</strong>) <code>\xintFor</code> is a new type of loop, whose replacement text inserts the comma separated values or list items via macro parameters, rather than encapsulated in macros; the loops are nestable up to four levels (nine levels since <code>1.09f</code>) and their replacement texts are allowed to close groups as happens with the tabulation in alignments,</p></li> +<li><p><code>\xintForpair</code>, <code>\xintForthree</code>, <code>\xintForfour</code> are experimental variants of <code>\xintFor</code>,</p></li> +<li><p><code>\xintApplyInline</code> has been enhanced in order to be usable for generating rows (partially or completely) in an alignment,</p></li> +<li><p>new command <code>\xintSeq</code> to generate (expandably) arithmetic sequences of (short) integers,</p></li> +<li><p>again various improvements and changes in the documentation.</p></li> +</ul> +<h2 id="b-20131003"><code>1.09b (2013/10/03)</code></h2> +<ul> +<li><p>various improvements in the documentation,</p></li> +<li><p>more economical catcode management and re-loading handling,</p></li> +<li><p>removal of all those <code>[0]</code>'s previously forcefully added at the end of fractions by various macros of <strong>xintcfrac</strong>,</p></li> +<li><p><code>\xintNthElt</code> with a negative index returns from the tail of the list,</p></li> +<li><p>new macro <code>\xintPRaw</code> to have something like what <code>\xintFrac</code> does in math mode; i.e. a <code>\xintRaw</code> which does not print the denominator if it is one.</p></li> +</ul> +<h2 id="a-20130924"><code>1.09a (2013/09/24)</code></h2> +<ul> +<li><p>(<strong>xintexpr</strong>) <code>\xintexpr..\relax</code> and <code>\xintfloatexpr..\relax</code> admit functions in their syntax, with comma separated values as arguments, among them <code>reduce, sqr, sqrt, abs, sgn, floor, ceil, quo, rem, round, trunc, float, gcd, lcm, max, min, sum, prd, add, mul, not, all, any, xor</code>.</p></li> +<li><p>comparison (<code><</code>, <code>></code>, <code>=</code>) and logical (<code>|</code>, <code>&</code>) operators.</p></li> +<li><p>the command <code>\xintthe</code> which converts <code>\xintexpr</code>essions into printable format (like <code>\the</code> with <code>\numexpr</code>) is more efficient, for example one can do <code>\xintthe\x</code> if <code>\x</code> was defined to be an <code>\xintexpr..\relax</code>:</p> +<pre><code>\def\x{\xintexpr 3^57\relax} +\def\y{\xintexpr \x^(-2)\relax} +\def\z{\xintexpr \y-3^-114\relax} +\xintthe\z</code></pre></li> +<li><p><code>\xintnumexpr .. \relax</code> (now renamed <code>\xintiexpr</code>) is <code>\xintexpr round( .. ) \relax</code>.</p></li> +<li><p><code>\xintNewExpr</code> now works with the standard macro parameter character <code>#</code>.</p></li> +<li><p>both regular <code>\xintexpr</code>-essions and commands defined by <code>\xintNewExpr</code> will work with comma separated lists of expressions,</p></li> +<li><p>new commands <code>\xintFloor</code>, <code>\xintCeil</code>, <code>\xintMaxof</code>, <code>\xintMinof</code> (package <strong>xintfrac</strong>), <code>\xintGCDof</code>, <code>\xintLCM</code>, <code>\xintLCMof</code> (package <strong>xintgcd</strong>), <code>\xintifLt</code>, <code>\xintifGt</code>, <code>\xintifSgn</code>, <code>\xintANDof</code>, ...</p></li> +<li><p>The arithmetic macros from package <strong>xint</strong> now filter their operands via <code>\xintNum</code> which means that they may use directly count registers and <code>\numexpr</code>-essions without having to prefix them by <code>\the</code>. This is thus similar to the situation holding previously already when <strong>xintfrac</strong> was loaded.</p></li> +<li><p>a bug (<strong>xintfrac</strong>) introduced in <code>1.08b</code> made <code>\xintCmp</code> crash when one of its arguments was zero. <code>:-((</code></p></li> +</ul> +<h2 id="b-20130614"><code>1.08b (2013/06/14)</code></h2> +<ul> +<li><p>(<strong>xintexpr</strong>) Correction of a problem with spaces inside <code>\xintexpr</code>-essions.</p></li> +<li><p>(<strong>xintfrac</strong>) Additional improvements to the handling of floating point numbers.</p></li> +<li><p>new section <em>Use of count registers</em> documenting how count registers may be directly used in arguments to the macros of <strong>xintfrac</strong>.</p></li> +</ul> +<h2 id="a-20130611"><code>1.08a (2013/06/11)</code></h2> +<ul> +<li><p>(<strong>xintfrac</strong>) Improved efficiency of the basic conversion from exact fractions to floating point numbers, with ensuing speed gains especially for the power function macros <code>\xintFloatPow</code> and <code>\xintFloatPower</code>,</p></li> +<li><p>Better management by <code>\xintCmp</code>, <code>\xintMax</code>, <code>\xintMin</code> and <code>\xintGeq</code> of inputs having big powers of ten in them.</p></li> +<li><p>Macros for floating point numbers added to the <strong>xintseries</strong> package.</p></li> +</ul> +<h2 id="section-1"><code>1.08 (2013/06/07)</code></h2> +<ul> +<li><p>(<strong>xint</strong> and <strong>xintfrac</strong>) Macros for extraction of square roots, for floating point numbers (<code>\xintFloatSqrt</code>), and integers (<code>\xintiSqrt</code>).</p></li> +<li><p>New package <strong>xintbinhex</strong> providing <em>conversion routines</em> to and from binary and hexadecimal bases.</p></li> +</ul> +<h2 id="section-2"><code>1.07 (2013/05/25)</code></h2> +<ul> +<li><p>The <strong>xintexpr</strong> package is a new core constituent (which loads automatically <strong>xintfrac</strong> and <strong>xint</strong>) and implements the expandable expanding parser</p> +<pre><code>\xintexpr . . . \relax,</code></pre> +<p>and its variant</p> +<pre><code>\xintfloatexpr . . . \relax</code></pre> +<p>allowing on input formulas using the infix operators <code>+</code>, <code>-</code>, <code>*</code>, <code>/</code>, and <code>^</code>, and arbitrary levels of parenthesizing. Within a float expression the operations are executed according to the current value of <code>\xintDigits</code>. Within an <code>\xintexpr</code>-ession the binary operators are computed exactly.</p> +<p>To write the <code>\xintexpr</code> parser I benefited from the commented source of the <code>l3fp</code> parser; the <code>\xintexpr</code> parser has its own features and peculiarities. <em>See its documentation</em>.</p></li> +<li><p>The floating point precision <code>D</code> is set (this is a local assignment to a <code>\mathchar</code> variable) with <code>\xintDigits := D;</code> and queried with <code>\xinttheDigits</code>. It may be set to anything up to <code>32767</code>.<a href="#fn1" class="footnoteRef" id="fnref1"><sup>1</sup></a> The macro incarnations of the binary operations admit an optional argument which will replace pointwise <code>D</code>; this argument may exceed the <code>32767</code> bound.</p></li> +<li><p>The <strong>xintfrac</strong> macros now accept numbers written in scientific notation, the <code>\xintFloat</code> command serves to output its argument with a given number <code>D</code> of significant figures. The value of <code>D</code> is either given as optional argument to <code>\xintFloat</code> or set with <code>\xintDigits := D;</code>. The default value is <code>16</code>.</p></li> +</ul> +<h2 id="b-20130514"><code>1.06b (2013/05/14)</code></h2> +<ul> +<li>Minor code and documentation improvements. Everywhere in the source code, a more modern underscore has replaced the @ sign.</li> +</ul> +<h2 id="section-3"><code>1.06 (2013/05/07)</code></h2> +<ul> +<li><p>Some code improvements, particularly for macros of <strong>xint</strong> doing loops.</p></li> +<li><p>New utilities in <strong>xint</strong> for expandable manipulations of lists:</p> +<pre><code>\xintNthElt, \xintCSVtoList, \xintRevWithBraces</code></pre></li> +<li><p>The macros did only a double expansion of their arguments. They now fully expand them (using <code>\romannumeral-`0</code>). Furthermore, in the case of arguments constrained to obey the TeX bounds they will be inserted inside a <code>\numexpr..\relax</code>, hence completely expanded, one may use count registers, even infix arithmetic operations, etc...</p></li> +</ul> +<h2 id="section-4"><code>1.05 (2013/05/01)</code></h2> +<p>Minor changes and additions to <strong>xintfrac</strong> and <strong>xintcfrac</strong>.</p> +<h2 id="section-5"><code>1.04 (2013/04/25)</code></h2> +<ul> +<li><p>New component <strong>xintcfrac</strong> devoted to continued fractions.</p></li> +<li><p>bug fix (<strong>xintfrac</strong>): <code>\xintIrr {0}</code> crashed.</p></li> +<li><p>faster division routine in <strong>xint</strong>, new macros to deal expandably with token lists.</p></li> +<li><p><code>\xintRound</code> added.</p></li> +<li><p><strong>xintseries</strong> has a new implementation of <code>\xintPowerSeries</code> based on a Horner scheme, and new macro <code>\xintRationalSeries</code>. Both to help deal with the <em>denominator buildup</em> plague.</p></li> +<li><p><code>tex xint.dtx</code> extracts style files (no need for a <code>xint.ins</code>).</p></li> +</ul> +<h2 id="section-6"><code>1.03 (2013/04/14)</code></h2> +<ul> +<li><p>new modules <strong>xintfrac</strong> (expandable operations on fractions) and <strong>xintseries</strong> (expandable partial sums with xint package).</p></li> +<li><p>slightly improved division and faster multiplication (the best ordering of the arguments is chosen automatically).</p></li> +<li><p>added illustration of Machin algorithm to the documentation.</p></li> +</ul> +<h2 id="section-7"><code>1.0 (2013/03/28)</code></h2> +<p>Initial announcement:</p> +<blockquote> +<p>The <strong>xint</strong> package implements with expandable TeX macros the basic arithmetic operations of addition, subtraction, multiplication and division, as applied to arbitrarily long numbers represented as chains of digits with an optional minus sign.</p> +</blockquote> +<blockquote> +<p>The <strong>xintgcd</strong> package provides implementations of the Euclidean algorithm and of its typesetting.</p> +</blockquote> +<blockquote> +<p>The packages may be used with Plain and with LaTeX.</p> +</blockquote> +<div class="footnotes"> +<hr /> +<ol> +<li id="fn1"><p>but values higher than 100 or 200 will presumably give too slow evaluations.<a href="#fnref1">↩</a></p></li> +</ol> +</div> +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/xint/CHANGES.pdf b/Master/texmf-dist/doc/generic/xint/CHANGES.pdf Binary files differnew file mode 100644 index 00000000000..40cf76b8a93 --- /dev/null +++ b/Master/texmf-dist/doc/generic/xint/CHANGES.pdf diff --git a/Master/texmf-dist/doc/generic/xint/README b/Master/texmf-dist/doc/generic/xint/README index 6d5fc644c85..8cc40dd45c9 100644 --- a/Master/texmf-dist/doc/generic/xint/README +++ b/Master/texmf-dist/doc/generic/xint/README @@ -1,158 +1,175 @@ -The xint bundle -Release 1.09n (2014/04/01). Documentation date: 2014/04/01 + Source: xint.dtx (v1.1, 2014/10/28) + Author: Jean-Francois Burnol + Info: Expandable operations on big integers, decimals, fractions + License: LPPL 1.3c or later -Copyright (C) 2013-2014 by Jean-Francois Burnol -License: LaTeX Project Public License 1.3c or later. +This README is also available as README.pdf and README.html. -Contents: Abstract, Installation, License. +Change log is in CHANGES.pdf and CHANGES.html. -Abstract -======== -xinttools is loaded by xint (hence by all other packages of the -bundle, too): it provides utilities of independent interest such as -expandable and non-expandable loops. -xint implements with expandable TEX macros additions, subtractions, -multiplications, divisions and powers with arbitrarily long numbers. +USAGE -xintfrac extends the scope of xint to decimal numbers, to numbers in -scientific notation and also to fractions with arbitrarily long such -numerators and denominators separated by a forward slash. -xintexpr extends xintfrac with an expandable parser - \xintexpr . . . \relax -of expressions involving arithmetic operations in infix notation on -decimal numbers, fractions, numbers in scientific notation, with -parentheses, factorial symbol, function names, comparison operators, -logic operators, twofold and threefold way conditionals, -sub-expressions, macros expanding to the previous items. +With LaTeX -Further modules: + \usepackage{xint} % expandable arithmetic with big integers + \usepackage{xintfrac} % decimal numbers, fractions, floats + \usepackage{xintexpr} % expressions with infix operators -xintbinhex is for conversions to and from binary and hexadecimal -bases. +Further packages: xintbinhex, xintgcd, xintseries and xintcfrac. All +dependencies are handled automatically. For example xintexpr +automatically loads xintfrac which itself loads xint. Package xintcore +is the subset of xint providing only the five operations on big +integers: \xintiiAdd, \xintiiMul, ... There is also xinttools which is a +separate package providing, among others, expandable and non-expandable +loops such as \xintFor. -xintseries provides some basic functionality for computing in an -expandable manner partial sums of series and power series with -fractional coefficients. -xintgcd implements the Euclidean algorithm and its typesetting. +With TeX -xintcfrac deals with the computation of continued fractions. +One does for example: + + \input xintexpr.sty\relax + +Again, all dependencies are handled automatically. The packages may be +loaded in any catcode context such that letters, digits, \ and % have +their standard catcodes. + +xintcore.sty and xinttools.sty both import xintkernel.sty which has the +catcode handler and package identifier and defines a few utilities such +as \oodef or \xint_dothis/\xint_orthat. + + + +INSTALLATION + + +Method A: using the package manager of your TeX distribution + +xint is included in TeXLive (hence also MacTeX) and MikTeX. + +There can be a few days of delay between apparition of a new version on +CTAN and availability via the distribution package manager. + + +Method B: manual installation using xint.tds.zip and unzip + +Assumes a GNU/Linux-like system (or Mac OS X). + +1. obtain xint.tds.zip from CTAN: + http://mirror.ctan.org/install/macros/generic/xint.tds.zip + +2. cd to the download repertory and issue: + + unzip xint.tds.zip -d <TEXMF> + + where <TEXMF> is a suitable TDS-compliant destination repertory. For + example, with TeXLive: + + - Linux, standard access rights, hence sudo is needed, + installation into the "local" tree: + + sudo unzip xint.tds.zip -d /usr/local/texlive/texmf-local + sudo texhash /usr/local/texlive/texmf-local + + - Mac OS X, installation into user home folder (no sudo needed, + and it is recommended to not have a ls-R file there, hence no + texhash): + + unzip xint.tds.zip -d ~/Library/texmf + + +Method C: manual installation using Makefile and xint.dtx + +The Makefile automatizes rebuilding from xint.dtx all documentation +files as well as xint.tds.zip. It is for GNU/Linux-like (inc. Mac OS X) +systems, with a teTeX like installation such as TeXLive. Furthermore the +Pandoc software is required. + +1. obtain xint.dtx and Makefile from http://www.ctan.org/pkg/xint. + +2. put them in an otherwise empty working repertory, run make or + equivalently make help for further instructions. + + +Method D: installation starting with only xint.dtx + +Run "tex xint.dtx" or "etex xint.dtx" to extract from xint.dtx all +packages as well as these files: + +README.md + the current README with Markdown formatting. + +CHANGES.md + the changes across successive releases. + +xint.tex + + used to generate xint.pdf via "latex xint.tex" (thrice) then + "dvipdfmx xint.dvi". For successful compilation, packages newtxtt, + newtxmath, etoc, mathastext are needed. Inclusion of the source code + is off by default, but the toggle can be set in xint.tex. + + It is also possible to compile xint.tex with pdflatex. + + A third option is to generate xint.pdf via pdflatex xint.dtx. Source + code is then included by default. + +Makefile.mk + this is for UNIX-like systems. Note: this file is only produced with + "etex xint.dtx", not with "tex xint.dtx". Rename it to Makefile and + run make on the command line for further help. + +doHTMLs.sh and doPDFs.sh + these are scripts (for UNIX-like systems) which can be used to + convert the README.md and CHANGES.md to HTML and PDF formats. They + require Pandoc. + +pandoctpl.latex + a Pandoc template used by doPDFs.sh. + +Finishing the installation in a TDS hierarchy: + +- move the style files to TDS:tex/generic/xint/ + +- xint.dtx goes to TDS:source/generic/xint/ + +- the documentation (xint.pdf, README.md,...) goes to + TDS:doc/generic/xint/ + +Depending on the destination, it may then be necessary to refresh a +filename database. + + + +LICENSE + + +Copyright (C) 2014 by Jean-Francois Burnol + +This Work may be distributed and/or modified under the conditions of the +LaTeX Project Public License, either version 1.3c of this license or (at +your option) any later version. This version of this license is in + + http://www.latex-project.org/lppl/lppl-1-3c.txt + +and 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 Author of this Work is Jean-Francois Burnol. + +This Work consists of the source file xint.dtx and of its derived files: +xintkernel.sty, xintcore.sty, xint.sty, xintfrac.sty, xintexpr.sty, +xintbinhex.sty, xintgcd.sty, xintseries.sty, xintcfrac.sty, +xinttools.sty, xint.ins, xint.tex, README, README.md, README.html, +README.pdf, CHANGES.md, CHANGES.html, CHANGES.pdf, pandoctpl.latex, +doHTMLs.sh, doPDFs.sh, xint.dvi, xint.pdf, Makefile.mk. -Most macros, and all of those doing computations, work purely by -expansion without assignments, and may thus be used almost everywhere -in TeX. The packages may be used with any flavor of TeX supporting the -e-TeX extensions. LaTeX users will use \usepackage and others \input -to load the package components. - -Installation -============ - -A. Installation using xint.tds.zip: ------------------------------------ - -obtain xint.tds.zip from CTAN: - http://mirror.ctan.org/install/macros/generic/xint.tds.zip - -cd to the download repertory and issue - unzip xint.tds.zip -d <TEXMF> -for example: (assuming standard access rights, so sudo needed) - sudo unzip xint.tds.zip -d /usr/local/texlive/texmf-local - sudo mktexlsr - -On Mac OS X, installation into user home folder: - unzip xint.tds.zip -d ~/Library/texmf - -B. Installation after file extractions: ---------------------------------------- - -obtain xint.dtx, xint.ins and the README from CTAN: - http://www.ctan.org/pkg/xint - -- "tex xint.ins" generates the style files -(pre-existing files in the same repertory will be overwritten). - -- without xint.ins: "tex or latex or pdflatex or xelatex xint.dtx" -will also generate the style files (and xint.ins). - -xint.tex is also extracted, use it for the documentation: - -- with latex+dvipdfmx: latex xint.tex thrice then dvipdfmx xint.dvi -Ignore dvipdfmx warnings, but if the pdf file has problems with fonts -(possibly from an old dvipdfmx), use then rather pdflatex or xelatex. - -- with pdflatex or xelatex: run it directly thrice on xint.dtx, or run -it on xint.tex after having edited the suitable toggle therein. - -Whether compiling xint.tex or xint.dtx, the documentation is by default -produced without inclusion of the source code. See instructions in the -file xint.tex for changing this default. - -Finishing the installation: (on first installation the destination -repertories may need to be created) - - xinttools.sty | - xint.sty | - xintfrac.sty | - xintexpr.sty | --> TDS:tex/generic/xint/ - xintbinhex.sty | - xintgcd.sty | - xintseries.sty | - xintcfrac.sty | - - xint.dtx --> TDS:source/generic/xint/ - xint.ins --> TDS:source/generic/xint/ - xint.tex --> TDS:source/generic/xint/ - - xint.pdf --> TDS:doc/generic/xint/ - README --> TDS:doc/generic/xint/ - -Depending on the TDS destination and the TeX installation, it may be -necessary to refresh the TeX installation filename database (mktexlsr) - -C. Usage: ---------- - -Usage with LaTeX: \usepackage{xinttools} - \usepackage{xint} % (loads xinttools) - \usepackage{xintfrac} % (loads xint) - \usepackage{xintexpr} % (loads xintfrac) - - \usepackage{xintbinhex} % (loads xint) - \usepackage{xintgcd} % (loads xint) - \usepackage{xintseries} % (loads xintfrac) - \usepackage{xintcfrac} % (loads xintfrac) - -Usage with TeX: \input xinttools.sty\relax - \input xint.sty\relax % (loads xinttools) - \input xintfrac.sty\relax % (loads xint) - \input xintexpr.sty\relax % (loads xintfrac) - - \input xintbinhex.sty\relax % (loads xint) - \input xintgcd.sty\relax % (loads xint) - \input xintseries.sty\relax % (loads xintfrac) - \input xintcfrac.sty\relax % (loads xintfrac) - -License -======= - - This work may be distributed and/or modified under the - conditions of the LaTeX Project Public License, either - version 1.3c of this license or (at your option) any later - version. This version of this license is in - http://www.latex-project.org/lppl/lppl-1-3c.txt - and 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 consists of the source file xint.dtx and of its derived files: -xinttools.sty, xint.sty, xintfrac.sty, xintexpr.sty, xintbinhex.sty, -xintgcd.sty, xintseries.sty, xintcfrac.sty, as well as xint.ins, xint.tex -and the documentation xint.pdf (or xint.dvi). - -The author of this work is Jean-Francois Burnol <jfbu at free dot fr>. -This work has the LPPL maintenance status `author-maintained'. - diff --git a/Master/texmf-dist/doc/generic/xint/README.html b/Master/texmf-dist/doc/generic/xint/README.html new file mode 100644 index 00000000000..be17b072a27 --- /dev/null +++ b/Master/texmf-dist/doc/generic/xint/README.html @@ -0,0 +1,128 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <meta http-equiv="Content-Style-Type" content="text/css" /> + <meta name="generator" content="pandoc" /> + <meta name="author" content="xint v1.1" /> + <title>README</title> + <style type="text/css">code{white-space: pre;}</style> + <style type="text/css"> + body{margin-left : 10%; margin-right : 15%; margin-top: 4ex; font-size: 14pt;} + pre {white-space: pre-wrap; } + code {white-space: pre-wrap; } + .mono {font-family: monospace;} + </style> +</head> +<body> +<div id="header"> +<h1 class="title">README</h1> +<h2 class="author">xint v1.1</h2> +<h3 class="date">2014/10/28</h3> +</div> +<div id="TOC"> +<ul> +<li><a href="#usage">Usage</a><ul> +<li><a href="#with-latex">With LaTeX</a></li> +<li><a href="#with-tex">With TeX</a></li> +</ul></li> +<li><a href="#installation">Installation</a><ul> +<li><a href="#method-a-using-the-package-manager-of-your-tex-distribution">Method A: using the package manager of your TeX distribution</a></li> +<li><a href="#method-b-manual-installation-using-xint.tds.zip-and-unzip">Method B: manual installation using <code>xint.tds.zip</code> and <code>unzip</code></a></li> +<li><a href="#method-c-manual-installation-using-makefile-and-xint.dtx">Method C: manual installation using <code>Makefile</code> and <code>xint.dtx</code></a></li> +<li><a href="#method-d-installation-starting-with-only-xint.dtx">Method D: installation starting with only <code>xint.dtx</code></a></li> +</ul></li> +<li><a href="#license">License</a></li> +</ul> +</div> +<pre><code>Source: xint.dtx (v1.1, 2014/10/28) +Author: Jean-Francois Burnol +Info: Expandable operations on big integers, decimals, fractions +License: LPPL 1.3c or later</code></pre> +<p>This README is also available as README.pdf and README.html.</p> +<p>Change log is in CHANGES.pdf and CHANGES.html.</p> +<h1 id="usage">Usage</h1> +<h2 id="with-latex">With LaTeX</h2> +<pre><code>\usepackage{xint} % expandable arithmetic with big integers +\usepackage{xintfrac} % decimal numbers, fractions, floats +\usepackage{xintexpr} % expressions with infix operators</code></pre> +<p>Further packages: <code>xintbinhex</code>, <code>xintgcd</code>, <code>xintseries</code> and <code>xintcfrac</code>. All dependencies are handled automatically. For example <code>xintexpr</code> automatically loads <code>xintfrac</code> which itself loads <code>xint</code>. Package <code>xintcore</code> is the subset of <code>xint</code> providing only the five operations on big integers: <code>\xintiiAdd</code>, <code>\xintiiMul</code>, ... There is also <code>xinttools</code> which is a separate package providing, among others, expandable and non-expandable loops such as <code>\xintFor</code>.</p> +<h2 id="with-tex">With TeX</h2> +<p>One does for example:</p> +<pre><code>\input xintexpr.sty\relax</code></pre> +<p>Again, all dependencies are handled automatically. The packages may be loaded in any catcode context such that letters, digits, <code>\</code> and <code>%</code> have their standard catcodes.</p> +<p><code>xintcore.sty</code> and <code>xinttools.sty</code> both import <code>xintkernel.sty</code> which has the catcode handler and package identifier and defines a few utilities such as <code>\oodef</code> or <code>\xint_dothis/\xint_orthat</code>.</p> +<h1 id="installation">Installation</h1> +<h2 id="method-a-using-the-package-manager-of-your-tex-distribution">Method A: using the package manager of your TeX distribution</h2> +<p><code>xint</code> is included in <a href="http://tug.org/texlive/">TeXLive</a> (hence also <a href="http://tug.org/mactex/">MacTeX</a>) and <a href="http://www.miktex.org/">MikTeX</a>.</p> +<p>There can be a few days of delay between apparition of a new version on <a href="http://www.ctan.org/pkg/xint">CTAN</a> and availability via the distribution package manager.</p> +<h2 id="method-b-manual-installation-using-xint.tds.zip-and-unzip">Method B: manual installation using <code>xint.tds.zip</code> and <code>unzip</code></h2> +<p>Assumes a GNU/Linux-like system (or Mac OS X).</p> +<ol style="list-style-type: decimal"> +<li><p>obtain <code>xint.tds.zip</code> from CTAN: <a href="http://mirror.ctan.org/install/macros/generic/xint.tds.zip" class="uri">http://mirror.ctan.org/install/macros/generic/xint.tds.zip</a></p></li> +<li><p>cd to the download repertory and issue:</p> +<pre><code>unzip xint.tds.zip -d <TEXMF></code></pre> +<p>where <code><TEXMF></code> is a suitable TDS-compliant destination repertory. For example, with TeXLive:</p> +<ul> +<li><p>Linux, standard access rights, hence sudo is needed, installation into the "local" tree:</p> +<pre><code>sudo unzip xint.tds.zip -d /usr/local/texlive/texmf-local +sudo texhash /usr/local/texlive/texmf-local</code></pre></li> +<li><p>Mac OS X, installation into user home folder (no sudo needed, and it is recommended to not have a ls-R file there, hence no texhash):</p> +<pre><code>unzip xint.tds.zip -d ~/Library/texmf</code></pre></li> +</ul></li> +</ol> +<h2 id="method-c-manual-installation-using-makefile-and-xint.dtx">Method C: manual installation using <code>Makefile</code> and <code>xint.dtx</code></h2> +<p>The Makefile automatizes rebuilding from <code>xint.dtx</code> all documentation files as well as <code>xint.tds.zip</code>. It is for GNU/Linux-like (inc. Mac OS X) systems, with a teTeX like installation such as TeXLive. Furthermore the <a href="http://johnmacfarlane.net/pandoc/">Pandoc</a> software is required.</p> +<ol style="list-style-type: decimal"> +<li><p>obtain <code>xint.dtx</code> and <code>Makefile</code> from <a href="http://www.ctan.org/pkg/xint" class="uri">http://www.ctan.org/pkg/xint</a>.</p></li> +<li><p>put them in an otherwise empty working repertory, run <code>make</code> or equivalently <code>make help</code> for further instructions.</p></li> +</ol> +<h2 id="method-d-installation-starting-with-only-xint.dtx">Method D: installation starting with only <code>xint.dtx</code></h2> +<p>Run <code>"tex xint.dtx"</code> or <code>"etex xint.dtx"</code> to extract from <code>xint.dtx</code> all packages as well as these files:</p> +<dl> +<dt><code>README.md</code></dt> +<dd>the current README with Markdown formatting. +</dd> +<dt><code>CHANGES.md</code></dt> +<dd>the changes across successive releases. +</dd> +<dt><code>xint.tex</code></dt> +<dd><p>used to generate <code>xint.pdf</code> via <code>"latex xint.tex"</code> (thrice) then <code>"dvipdfmx xint.dvi"</code>. For successful compilation, packages <code>newtxtt</code>, <code>newtxmath</code>, <code>etoc</code>, <code>mathastext</code> are needed. Inclusion of the source code is off by default, but the toggle can be set in <code>xint.tex</code>.</p> +<p>It is also possible to compile <code>xint.tex</code> with <code>pdflatex</code>.</p> +<p>A third option is to generate <code>xint.pdf</code> via <code>pdflatex xint.dtx</code>. Source code is then included by default.</p> +</dd> +<dt><code>Makefile.mk</code></dt> +<dd>this is for UNIX-like systems. Note: this file is only produced with <code>"etex xint.dtx"</code>, not with <code>"tex xint.dtx"</code>. Rename it to <code>Makefile</code> and run <code>make</code> on the command line for further help. +</dd> +<dt><code>doHTMLs.sh</code> and <code>doPDFs.sh</code></dt> +<dd>these are scripts (for UNIX-like systems) which can be used to convert the <code>README.md</code> and <code>CHANGES.md</code> to HTML and PDF formats. They require <a href="http://johnmacfarlane.net/pandoc/">Pandoc</a>. +</dd> +<dt><code>pandoctpl.latex</code></dt> +<dd>a Pandoc template used by <code>doPDFs.sh</code>. +</dd> +</dl> +<p>Finishing the installation in a TDS hierarchy:</p> +<ul> +<li><p>move the style files to <code>TDS:tex/generic/xint/</code></p></li> +<li><p><code>xint.dtx</code> goes to <code>TDS:source/generic/xint/</code></p></li> +<li><p>the documentation (xint.pdf, README.md,...) goes to <code>TDS:doc/generic/xint/</code></p></li> +</ul> +<p>Depending on the destination, it may then be necessary to refresh a filename database.</p> +<h1 id="license">License</h1> +<div class="mono"> +<p>Copyright (C) 2014 by Jean-Francois Burnol</p> +<p>This Work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license or (at your option) any later version. This version of this license is in</p> +<blockquote> +<p><a href="http://www.latex-project.org/lppl/lppl-1-3c.txt" class="uri">http://www.latex-project.org/lppl/lppl-1-3c.txt</a></p> +</blockquote> +<p>and the latest version of this license is in</p> +<blockquote> +<p><a href="http://www.latex-project.org/lppl.txt" class="uri">http://www.latex-project.org/lppl.txt</a></p> +</blockquote> +<p>and version 1.3 or later is part of all distributions of LaTeX version 2005/12/01 or later.</p> +<p>This Work has the LPPL maintenance status <code>author-maintained</code>.</p> +<p>The Author of this Work is Jean-Francois Burnol.</p> +This Work consists of the source file xint.dtx and of its derived files: xintkernel.sty, xintcore.sty, xint.sty, xintfrac.sty, xintexpr.sty, xintbinhex.sty, xintgcd.sty, xintseries.sty, xintcfrac.sty, xinttools.sty, xint.ins, xint.tex, README, README.md, README.html, README.pdf, CHANGES.md, CHANGES.html, CHANGES.pdf, pandoctpl.latex, doHTMLs.sh, doPDFs.sh, xint.dvi, xint.pdf, Makefile.mk. +</div> +</body> +</html> diff --git a/Master/texmf-dist/doc/generic/xint/sourcexint.pdf b/Master/texmf-dist/doc/generic/xint/sourcexint.pdf Binary files differnew file mode 100644 index 00000000000..7a622d72ff2 --- /dev/null +++ b/Master/texmf-dist/doc/generic/xint/sourcexint.pdf diff --git a/Master/texmf-dist/doc/generic/xint/xint.pdf b/Master/texmf-dist/doc/generic/xint/xint.pdf Binary files differindex 9f9f8440a62..dbf49051df8 100644 --- a/Master/texmf-dist/doc/generic/xint/xint.pdf +++ b/Master/texmf-dist/doc/generic/xint/xint.pdf |