diff options
author | Karl Berry <karl@freefriends.org> | 2018-04-29 23:02:37 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-04-29 23:02:37 +0000 |
commit | f00655c17fbdf03e3f77fdec53d6a64d76082f86 (patch) | |
tree | 0a8f8a343300cfb307c91005e6456fc00e55f121 /Master | |
parent | f8834f35084ceda8688cd138ef75fc19828c23f8 (diff) |
robustindex (25apr18)
git-svn-id: svn://tug.org/texlive/trunk@47495 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/latex/robustindex/README.md | 26 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/robustindex/multisample.pdf | bin | 162769 -> 162849 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/robustindex/multisample.tex | 23 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/robustindex/robustmanual.pdf | bin | 121079 -> 122602 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/robustindex/robustmanual.tex | 65 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/robustindex/robustsample.pdf | bin | 177607 -> 177933 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/robustindex/robustsample.tex | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/robustindex/stind.html | 8 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/robustindex/robustindex.sty | 107 |
9 files changed, 130 insertions, 103 deletions
diff --git a/Master/texmf-dist/doc/latex/robustindex/README.md b/Master/texmf-dist/doc/latex/robustindex/README.md index 4fba9984300..6968a05727f 100644 --- a/Master/texmf-dist/doc/latex/robustindex/README.md +++ b/Master/texmf-dist/doc/latex/robustindex/README.md @@ -1,4 +1,5 @@ -Package robustindex.sty, Wilberd van der Kallen 2017. +Package robustindex.sty, Wilberd van der Kallen 2018. +Date of last change of _anything_ in the bundle 2018/04/25 This package uses \pageref to ensure that the page numbers in the index are synchronous with the manuscript, even when a third party changes the page numbers and fails to @@ -6,16 +7,17 @@ Package robustindex.sty, Wilberd van der Kallen 2017. Some features of makeindex had to be disabled. - https://www.staff.science.uu.nl/~kalle101/stind.html + [Home page of package](https://www.staff.science.uu.nl/~kalle101/stind.html) - There is an option multind for multiple indices with pagerefs. - It uses just one index file and disables even more features of makeindex. + There is an option multind for many indexes with pagerefs. + It uses just one index file and relies on the old compile cycle + (latex, makeindex, latex) in the standard TeX setup. -% Copyright 2005, 2017 Wilberd van der Kallen -% -% This file may be distributed under the conditions of the LaTeX Project Public -% License, either version 1.2 of this license or (at your option) any -% later version. The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.2 or later is part of all distributions of LaTeX -% version 1999/12/01 or later.
\ No newline at end of file + Copyright 2005, 2017, 2018 Wilberd van der Kallen + + This package may be distributed under the conditions of the + LaTeX Project Public License, either version 1.2 of this license or + (at your option) any later version. The latest version of this license is in + [lpp.txt](http://www.latex-project.org/lppl.txt) + and version 1.2 or later is part of all distributions of LaTeX + version 1999/12/01 or later. diff --git a/Master/texmf-dist/doc/latex/robustindex/multisample.pdf b/Master/texmf-dist/doc/latex/robustindex/multisample.pdf Binary files differindex c5cdebbcb64..cfe76e57aeb 100644 --- a/Master/texmf-dist/doc/latex/robustindex/multisample.pdf +++ b/Master/texmf-dist/doc/latex/robustindex/multisample.pdf diff --git a/Master/texmf-dist/doc/latex/robustindex/multisample.tex b/Master/texmf-dist/doc/latex/robustindex/multisample.tex index 545d19f8149..1e0458ee86a 100644 --- a/Master/texmf-dist/doc/latex/robustindex/multisample.tex +++ b/Master/texmf-dist/doc/latex/robustindex/multisample.tex @@ -1,23 +1,22 @@ -% multisample.tex 2017/09/29 +% multisample.tex 2018/04/11 \documentclass{book} \usepackage{makeidx} \usepackage[multind]{robustindex} -\usepackage[plainpages=false,hyperindex=false]{hyperref} +\usepackage[plainpages=false,hyperindex=false,colorlinks=true]{hyperref} \title {A file with several indexes} \author{Wilberd van der Kallen\index{wilberd@Wilberd}} -\date{2017} +\date{April 2018} \makeindex % obligatory with robustindex -\makeglossary % obligatory with robustglossary + \begin{document} %\renewcommand{\indexcapstyle}[1]{\par\vskip1em plus.5em minus.3em\textbf{\uppercase{#1}}} \renewcommand\thepage{\roman{page}} -\index{zz@z} - +\index{z} \setindex{b1} @@ -35,13 +34,9 @@ \addcontentsline{toc}{chapter}{Preface} \markboth{Preface}{Preface} This file illustrates some features of the \verb!robustindex! package with option \verb!multind!. This option - supports multiple indexes. We require that -the argument to an \verb!\index! command starts with at least two lower case -letters or with the symbol \verb!<!. So use \verb!\index{new york@New York}! instead of \verb!\index{New York}!, \verb!\index{za@z}! -instead of \verb!\index{z}!. - - -Although this is not a book, we have chosen the book style for illustration. + supports multiple indexes. + + Although this is not a book, we have chosen the book style for illustration. Let us say we want to use four indexes. First we choose tags to identify them. In this file we use the tags \verb|main|, \verb|bis|, \verb|a1|, \verb|b1|. With the \verb!\setindex! command we activate an index. @@ -87,7 +82,7 @@ it again with the same index active as when you opened the range. We have hacked various mechanisms of makeindex. Subentries are still supported. We illustrate this in \verb|multisample.tex| and appendix \ref{appendix} with alpha, beta and gamma. -This also illustrates the use of \verb|\gobblepageref|. +This also illustrates the use of \verb|\gobblepageref|, a variant of \verb!\see!. \setindex{a1}\index{alpha!see beta} \index{alpha!see also gamma\gobblepageref} diff --git a/Master/texmf-dist/doc/latex/robustindex/robustmanual.pdf b/Master/texmf-dist/doc/latex/robustindex/robustmanual.pdf Binary files differindex 831f9eb5204..3488a6a2497 100644 --- a/Master/texmf-dist/doc/latex/robustindex/robustmanual.pdf +++ b/Master/texmf-dist/doc/latex/robustindex/robustmanual.pdf diff --git a/Master/texmf-dist/doc/latex/robustindex/robustmanual.tex b/Master/texmf-dist/doc/latex/robustindex/robustmanual.tex index 103733c2580..6c7b2354159 100644 --- a/Master/texmf-dist/doc/latex/robustindex/robustmanual.tex +++ b/Master/texmf-dist/doc/latex/robustindex/robustmanual.tex @@ -1,13 +1,13 @@ -% robustmanual.tex 2017/09/29 +% robustmanual.tex 2018/04/23 \documentclass{article} -\usepackage{makeidx} -\usepackage[multind]{robustindex} -\usepackage[hyperindex=false]{hyperref} +%\usepackage{makeidx} +\usepackage[multind]{robustindex}[2018/04/15] +\usepackage[hyperindex=false,colorlinks=true]{hyperref} \title {Manual of robustindex package} -\author{Wilberd van der Kallen\index{wilberd@Wilberd}} -\date{2017} +\author{Wilberd van der Kallen\index{Wilberd}} +\date{April 2018} \makeindex % obligatory with robustindex @@ -36,9 +36,9 @@ Keep an eye on the \TeX\ log file. It often contains a warning that you need to \section*{Standard usage} Put -$$ -\verb!\usepackage{makeidx}! -$$ +%$$ +%\verb!\usepackage{makeidx}! +%$$ $$ \verb!\usepackage{robustindex}! $$ @@ -52,7 +52,7 @@ $$ \verb!\usepackage[plainpages=false,hyperindex=false]{hyperref}!. $$ -That should be all. (You may have to trash old auxiliary files.) +That should be all. (You may have to trash old auxiliary files, the \emph{filename}.\verb!ind! file included.) You can now use \index{alpha}\index{gamma|textbf} $$\verb!\index{alpha}!$$ @@ -70,7 +70,7 @@ The symbol \verb!|! has a special meaning inside an \verb!\index! command and c To get \verb!|! as output use the \LaTeX\ command \verb!\vert!. -We also have a command \verb!\gobblepageref! +We also have a command \verb!\gobblepageref!, a variant of \verb!\see!, used as in $$\verb?\index{alpha!see also gamma\gobblepageref}?$$ \index{alpha!see also gamma\gobblepageref} @@ -102,17 +102,10 @@ Before discussing the \verb|multind| option we now use $\verb!\printindex!$ to \section*{The \texttt{multind} option} The \verb!multind! option provides -support for multiple indexes. For the package to function properly we now require that -the argument to an \verb!\index! command starts with at least two lower case -letters or with the symbol \verb!<!. -So use \verb!\index{new york@New York}! instead of \verb!\index{New York}!, \verb!\index{za@z}! -instead of \verb!\index{z}!. - -If you have an entry that should go before the letter a, then start the argument of \verb!\index! with \verb!<!, -as in \index{<@$<$ comes before alphabet}\verb!\index{<@$<$ comes before alphabet}!. - - -Suppose the preamble contains \verb!\usepackage[multind]{robustindex}!. +support for many indexes. +Suppose the preamble contains\\ + \verb!\usepackage[multind]{robustindex}[2018/04/15]!.\\ +\verb!\makeindex!. Let us say we want to use four indexes. First we choose tags to identify them. Say we use the tags \verb|main|, \verb|bis|, \verb|a1|, \verb|b1|. @@ -126,20 +119,21 @@ If a tag has not been encountered before, then a new index with that tag is created. The \verb!\index! command and the \verb|\printindex| commands write to/from the active index. All indexes are hidden in one -big index file and \LaTeX\ knows how to find the active index in there. +big index file (with extension \verb!ind!) and \LaTeX\ knows how to find the active index in there. -If you wish you may use \verb!\sindex[bis]{!\emph{entry}\verb!}! as shorthand for\\ +If you wish you may use \verb!\sindex[bis]{!\emph{entry}\verb!}! as shorthand for -\hspace{5em} \verb!\setindex{bis}\index{!\emph{entry}\verb!}!\\ +\hspace{5em} \verb!\setindex{bis}\index{!\emph{entry}\verb!}! -and \verb!\sindex{!\emph{entry}\verb!}! as shorthand for\\ +and \verb!\sindex{!\emph{entry}\verb!}! as shorthand for - \hspace{5em} \verb!\setindex{main}\index{!\emph{entry}\verb!}!.\\ + \hspace{5em} \verb!\setindex{main}\index{!\emph{entry}\verb!}!. -The compilation sequence does not change. That is the main point of all our hacking. -For instance, the file \verb!multisample.tex! produces multiple indexes and is processed like this +Option \verb!multind! works with the original compilation sequence. That is the main point of all our hacking. +For instance, the file \verb!multisample.tex! produces multiple indexes and may be processed in this +old fashioned way: latex multisample.tex @@ -147,10 +141,19 @@ makeindex multisample latex multisample.tex -latex multisample.tex +latex multisample.tex\\ + +Older versions of \verb!robustindex.sty! +may give different results. Use version \verb!2018/04/15! or later. +We recommend to bundle \verb!robustindex.sty! with your \emph{filename}.\verb!tex! and \emph{filename}.\verb!ind! when moving +files to another computer.\\ + + +If you have an entry that should go before the letter a, then you may start the argument of \verb!\index! with \verb!<!, +as in \index{<@$<$ comes before alphabet}\verb!\index{<@$<$ comes before alphabet}!. \subsection*{Embellishment} -One may embellish an index with headings, like this. +One may embellish an index with letter headings, like this. \verb!\setindex{main}! diff --git a/Master/texmf-dist/doc/latex/robustindex/robustsample.pdf b/Master/texmf-dist/doc/latex/robustindex/robustsample.pdf Binary files differindex 94ebf5e57e0..d971e0e02d1 100644 --- a/Master/texmf-dist/doc/latex/robustindex/robustsample.pdf +++ b/Master/texmf-dist/doc/latex/robustindex/robustsample.pdf diff --git a/Master/texmf-dist/doc/latex/robustindex/robustsample.tex b/Master/texmf-dist/doc/latex/robustindex/robustsample.tex index 437b9854cc5..c7d9c959aba 100644 --- a/Master/texmf-dist/doc/latex/robustindex/robustsample.tex +++ b/Master/texmf-dist/doc/latex/robustindex/robustsample.tex @@ -1,10 +1,10 @@ -% robustsample.tex 2017/09/29 +% robustsample.tex 2018/03/23 \documentclass{book} \usepackage{makeidx} \usepackage{robustindex} \usepackage{robustglossary} -\usepackage[plainpages=false,hyperindex=false]{hyperref} +\usepackage[plainpages=false,hyperindex=false,colorlinks=true]{hyperref} \title {A file with robust index} diff --git a/Master/texmf-dist/doc/latex/robustindex/stind.html b/Master/texmf-dist/doc/latex/robustindex/stind.html index 91cf56ee78c..516814c1700 100644 --- a/Master/texmf-dist/doc/latex/robustindex/stind.html +++ b/Master/texmf-dist/doc/latex/robustindex/stind.html @@ -14,7 +14,7 @@ without rerunning makeindex. (Yes, it happened also to my 1993 book.) <P>It is much nicer to have an index that adapts itself to all changes but the adding/deleting/rearranging of \index commands. <P>Our package -<A HREF="robustindex.sty">robustindex.sty</A> (version 2017/09/28) +<A HREF="robustindex.sty">robustindex.sty</A> (version 2018/04/25) achieves this with the \pageref mechanism. <P> Here is our <A HREF="robustmanual.pdf">Manual for the robustindex package</A>. @@ -26,7 +26,7 @@ illustrates more than you ever need. It also requires the package <A HREF="robustglossary.sty">robustglossary.sty</A>. -<P>After +<P>After the old fashioned <DL> <DD>pdflatex <A HREF="robustsample.tex">robustsample.tex</A> <DD>makeindex robustsample @@ -35,7 +35,7 @@ It also requires the package </DL> you should have something like <A HREF="robustsample.pdf">this PDF file</A>. -<P>If you want multiple indexes with pagerefs you may try +<P>If you want several indexes with pagerefs you may try \usepackage[multind]{robustindex}. <P>After @@ -46,6 +46,8 @@ you should have something like <A HREF="robustsample.pdf">this PDF file</A>. <DD>pdflatex multisample.tex </DL> you should have something like <A HREF="multisample.pdf">this PDF file</A>. +So we require very little of the TeX setup. This becomes relevant when the final +production is done elsewhere. <BR> diff --git a/Master/texmf-dist/tex/latex/robustindex/robustindex.sty b/Master/texmf-dist/tex/latex/robustindex/robustindex.sty index 8ddcecbc27b..490758af944 100644 --- a/Master/texmf-dist/tex/latex/robustindex/robustindex.sty +++ b/Master/texmf-dist/tex/latex/robustindex/robustindex.sty @@ -1,4 +1,4 @@ -% Package robustindex.sty, Wilberd van der Kallen 2005, 2017. +% Package robustindex.sty, Wilberd van der Kallen 2005, 2017, 2018. % % Third parties often change the page numbers without rerunning makeindex. % One would like to make the page numbers in the index entries more robust. @@ -37,26 +37,24 @@ % the active one at any given moment. % This steers the behaviour of \index and \printindex. % +% We introduce tools to embellish an index with letter headings. +% % That is the positive part. % % While robustindex.sty broke the automatic page range feature of -% makeindex, the multind option also breaks the insertions -% of \indexspace in the index file. And it messes up the sorting a bit. -% Therefore, when using the option multind, we require that the argument of -% an \index command always starts with at least two lower case letters. -% We then hack some more to restore the placement of \indexspace -% and also introduce tools to embellish an index with letter headings. -% -% The various hacks make the index file pretty unreadable -% and style files of makeindex will probably fail. +% makeindex, the multind option also broke the insertions +% of \indexspace in the index file. And it messed up the sorting. +% We use various hacks to restore reasonable behaviour. This makes the index file +% pretty unreadable and style files of makeindex will probably fail. % +% % Remark. % The package imakeidx also synchronises the index with the manuscript, % but it has a different method and different requirements. % % https://www.staff.science.uu.nl/~kalle101/stind % -% Copyright 2017 Wilberd van der Kallen +% Copyright 2018 Wilberd van der Kallen % % This file may be distributed under the conditions of the LaTeX Project Public % License, either version 1.2 of this license or (at your option) any @@ -66,9 +64,11 @@ % version 1999/12/01 or later. \ProvidesPackage{robustindex} - [2017/09/28 + [2018/04/25 index entries with pagerefs] +\RequirePackage{makeidx} + \DeclareOption{multind}{ \AtBeginDocument{\setindex{main}}% \def\robust@mult{\relax} @@ -112,11 +112,12 @@ \@esphack \protected@write \@indexfile {}{\string \indexentry - {\string\indnr\robustchoice bs\findencap#1|\relax }{\theindexctr}}% + {\string\indnr\robustchoice d\gr@bltr#1-\relax b \findencap#1|\relax}{\theindexctr}}% \endgroup \@esphack } + \ifx\robust@mult\undefined\else\let\@wrindex\@multwrindex\fi \newcommand\sindex{\@ifnextchar[{\@sindex}{\@@sindex}}% @@ -137,6 +138,12 @@ \newcommand{\indexpreamble}{\relax}% compare the preamble of makeindex +\newcommand{\mult@err}{\PackageWarning{robustindex}{% + Index file is obsolete. Run makeindex. Detected}Index file is obsolete. Run makeindex. + \end{theindex}\endinput}% + +\newcommand{\gobbletillnine}{\mult@err} + \newcommand{\indexincontents}{% \def\indexpreamble{% \refstepcounter{subsection}% @@ -209,6 +216,7 @@ }% + % Now it gets ugly, because we wish to implement a poor man's encap % mechanism, distinguishing \index{entry}, \index{entry|(}, \index{entry|)}, % \index{entry|towrap}, \index{entry|(towrap}, \index{entry|)towrap}, where @@ -226,6 +234,7 @@ \fi }% + \newcommand{\wr@pencap}{}% \def\wr@pencap#1|{encpageref{#1}}% @@ -289,24 +298,29 @@ % Now the part that supports multiple indices. We hack the sorting mechanism of % Makeindex and put instructions for the mouth of TeX in the index file. +\newcommand{\gr@bltr}{\relax}% + +\def\gr@bltr#1#2\relax{\ifcat A#1\the\uccode`#1\else 60\fi}% to keep "a" and "A" together. + % But first some code for embellishing an index. Our hacking brakes the insertion of % \indexspace at appropriate places. We have to work hard to restore that. While we % are at it, we may as well add the possibility to insert a letter T after the -% \indexspace that precedes the entries that start with t. -% First we describe the default style, without the T. +% \indexspace that precedes the entries that start with t or T. +% First we describe the default style, that does not insert the T. \newcommand{\indexcapstyle}[1]{\indexspace} % To get the T one changes the style like this % \renewcommand{\indexcapstyle}[1]{\indexspace\textbf{#1}\par}% -\newcommand{\nxtletre}{\relax}% nextletter in alphabet +\newcommand{\nxtletre}{\def\item{\letr@test}}% about next letter in alphabet \newcommand{\indexcapitalhead}[1]{% Preparing for a heading; not printed. -\index{#1@\protect\nxtletre\protect\def\protect -\item{\protect\olditem\protect\letretst}% -\protect\edef\protect\nwletre{\uppercase{#1}}\gobblepageref}}% + \protected@write + \@indexfile {}{\string \indexentry + {\string\indnr \robustchoice d\gr@bltr#1\relax a #1@\protect\nxtletre + \protect\def\protect\nwletre{#1}\string\jmptonine}{9}}% +}% \newcommand{\capitalsinindex}[1]{% Will be called by \newindex with full alphabet. -\index{-@\protect\let\protect\olditem\protect\item\gobblepageref}% \find@capitals#1\relax}% \newcommand{\find@capitals}{\relax}% @@ -317,31 +331,34 @@ \else\find@capitals#2\relax \fi}% -\newcommand{\letretst}{\relax}% To test if entry starts with new letter. +\newcommand{\letr@test}{\relax}% To test if entry starts with new letter. -\long\def\letretst#1{\ifx#1\nxtletre\else\procletter{#1}\fi}% +\long\def\letr@test#1{\ifx#1\nxtletre\else\procletter{#1}\fi}% -\newcommand{\procletter}{\relax}% To process a new letter. +\newcommand{\procletter}{\relax}% \def\procletter#1{\long\def\item{\olditem}\indexcapstyle{\nwletre}\ifx#1\indnr \expandafter\ja@\else #1\fi}% \newcommand{\olditem}{\relax}% -\def\ja@#1s{\fi}% Seems necessary. +\newcommand{\ja@}{\relax} + +\def\ja@#1 {\fi}% Mysterious. Seems necessary. % All this just to embellish an index. Now the support for multiple indexes. \newcommand{\setindex}[1]{% \@bsphack -\expandafter\ifx\csname#1ind\endcsname\relax +\expandafter\ifx\csname#1@rbstind\endcsname\relax \newindex{#1}% \else - \edef\robustchoice{\csname#1ind\endcsname}% + \edef\robustchoice{\csname#1@rbstind\endcsname}% \fi \@esphack}% -\ifx\robust@mult\undefined\def\setindex{\relax}\fi +\ifx\robust@mult\undefined\def\setindex{\PackageWarning{robustindex}{% + \string\setindex{} requires option multind. Detected}}\fi \newcounter{multindctr}% \newcommand{\robustcutpoint}{\relax}% @@ -350,38 +367,46 @@ \newcommand{\robustchoice}{\relax}% \newcommand{\indnr}{\relax}% -\setcounter{multindctr}{999}% +\setcounter{multindctr}{999}% Fewer than 899 indexes expected. \long\def\untilrobustcutpoint#1\robustcutpoint{\fi}% % This tels the mouth of TeX not to send too much to the stomach. % It should only forward the part that belongs to the active index. -\def\indnr#1s{}% +\def\indnr#1 {}% The \indnr part is used for sorting by makeindex and needs to be ignored + % by TeX thereafter. + +\newcommand\multindpreamble{\let\olditem\item\let\jmptonine\jmp@tnine}% +% \multindpreamble may serve as hook for further code. + +\newcommand{\jmptonine}{\mult@err}% -\newcommand{\gobbletillnine}{\relax} +\newcommand{\jmp@tnine}{\relax}% -\def\gobbletillnine#1 9{\relax} +\def\jmp@tnine#1 9{\relax} \def\newindex#1{\@bsphack +\ifx\@indexfile\undefined\PackageWarning{robustindex}{% +Package needs \string\make index in preamble. Detected}\fi \ifnum\c@multindctr=999% \protected@write \@indexfile {}{\string \indexentry - {\string\indnr 999bs @\string\nxtletre - \string\robustcutpoint\string\gobbletillnine}{9}}% + {\string\indnr 999b @\string\nxtletre + \string\robustcutpoint\string\jmptonine}{9}}% \@esphack \fi \addtocounter{multindctr}{-1}% -\expandafter\edef\csname#1ind\endcsname{\the\c@multindctr}% -\edef\robustchoice{\csname#1ind\endcsname}% +\expandafter\edef\csname#1@rbstind\endcsname{\the\c@multindctr}% +\edef\robustchoice{\csname#1@rbstind\endcsname}% \@esphack \protected@write \@indexfile {}{\string \indexentry - {\string\indnr\the\c@multindctr as @\string\robustcutpoint -\string\ifnum \string\robustchoice=\the\c@multindctr\string\relax -\string\else\string\nxtletre\string\untilrobustcutpoint -\string\fi\string\gobbletillnine + {\string\indnr\the\c@multindctr a @\string\robustcutpoint +\string\ifnum\string\robustchoice=\the\c@multindctr\string\multindpreamble +\string\else\string\untilrobustcutpoint +\string\fi\string\jmptonine }{9}}% -\capitalsinindex{abcdefghijklmnopqrstuvwxyz}% +\capitalsinindex{ABCDEFGHIJKLMNOPQRSTUVWXYZ}% \@esphack }% -\endinput
\ No newline at end of file +\endinput |