diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /info/ltx3pub/vt02d01.tex |
Initial commit
Diffstat (limited to 'info/ltx3pub/vt02d01.tex')
-rw-r--r-- | info/ltx3pub/vt02d01.tex | 394 |
1 files changed, 394 insertions, 0 deletions
diff --git a/info/ltx3pub/vt02d01.tex b/info/ltx3pub/vt02d01.tex new file mode 100644 index 0000000000..3fb985d705 --- /dev/null +++ b/info/ltx3pub/vt02d01.tex @@ -0,0 +1,394 @@ +%%% ==================================================================== +%%% @LaTeX3-article{ LaTeX3-VT02-01, +%%% filename = "vt02d01.tex", +%%% archived = "ctan:/tex-archive/info/ltx3pub/", +%%% author = "Daniel Flipo", +%%% doc-group = "Volunteer Task VT02", +%%% title = "Validation of {\LaTeX}~2.09 +%%% as part of the {\LaTeX3} project", +%%% version = "1.02", +%%% date = "25 March 1993", +%%% time = "17:21:04 MET", +%%% status = "public, contributed", +%%% author-email = "flipo@alea.citilille.fr", +%%% author-address = "Daniel Flipo, UFR de Math\'ematiques B\^at M2, +%%% Universit\'e des Sciences et Technologies +%%% F-59655 Villeneuve d'Ascq Cedex", +%%% abstract = "This is both a call for volunteers to help +%%% us in validating \LaTeX~2.09 (one of the +%%% tasks of the \LaTeX3 project), and a brief +%%% explanation of the kind of work to be done +%%% in this area. ", +%%% keywords = "Validation, LaTeX", +%%% project-address = "LaTeX3 Project \\ +%%% c/o Dr. Chris Rowley \\ +%%% The Open University \\ +%%% Parsifal College \\ +%%% Finchley Road \\ +%%% London NW3 7BG, England, UK", +%%% project-tel = "+44 171 794 0575", +%%% project-FAX = "+44 171 433 6196", +%%% project-email = "LTX3-Mgr@SHSU.edu", +%%% copyright = "Copyright (C) 1993 LaTeX3 Project +%%% and Daniel Flipo. +%%% All rights reserved. +%%% +%%% Permission is granted to make and distribute +%%% verbatim copies of this publication or of +%%% coherent parts from this publication provided +%%% this copyright notice and this permission +%%% notice are preserved on all copies. +%%% +%%% Permission is granted to copy and distribute +%%% translations of this publication or of +%%% individual items from this publication into +%%% another language provided that the translation +%%% is approved by the original copyright holders. +%%% +%%% No other permissions to copy or distribute this +%%% publication in any form are granted and in +%%% particular no permission to copy parts of it +%%% in such a way as to materially change its +%%% meaning.", +%%% generalinfo = "To subscribe to the LaTeX3 discussion list: +%%% +%%% Send mail to listserv@vm.urz.uni-heidelberg.de +%%% with the following line as the body of the +%%% message (substituting your own name): +%%% +%%% subscribe LaTeX-L First-name Surname +%%% +%%% To find out about volunteer work: +%%% +%%% look at the document vol-task.tex which can +%%% be obtained electronically, see below. +%%% +%%% To retrieve project publications electronically: +%%% +%%% Project publications are available for +%%% retrieval by anonymous ftp from ctan hosts: +%%% ftp.tex.ac.uk +%%% ftp.dante.de +%%% ftp.shsu.edu +%%% in the directory /tex-archive/info/ltx3pub. +%%% +%%% The file ltx3pub.bib in that directory gives +%%% full bibliographical information including +%%% abstracts in BibTeX format. A brief history +%%% of the project and a description of its aims +%%% is contained in l3d001.tex. +%%% +%%% If you only have access to email, and not ftp +%%% You may use the ftpmail service. +%%% Send a message just containg the word +%%% help +%%% to ftpmail@ftp.shsu.edu +%%% for more information about this service. +%%% +%%% For offers of financial contributions or +%%% contributions of computing equipment or +%%% software, contact the project at the above +%%% address, or the TeX Users Group. +%%% +%%% For offers of technical assistance, contact the +%%% project at the above address. +%%% +%%% For technical enquiries and suggestions, send +%%% e-mail to the latex-l list or contact the +%%% project at the above address.", +%%% checksum = "36968 394 2248 16233", +%%% docstring = "The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== +\documentstyle{l3ms001} + +\title{Validation of \LaTeX~2.09\\ +as part of the \LaTeX3 project} +\author{Daniel \sc Flipo\thanks{\tt flipo@alea.citilille.fr}} +\date{25 March 1993 \\ +Version 1.02} + +\begin{document} +\thispagestyle{empty} + +\maketitle + +%\vfill +\begin{abstract} +This is both a call for volunteers to help us in validating +\LaTeX~2.09 (one of the tasks of the \LaTeX3 project), and a brief +explanation of the kind of work to be done in this area. +\end{abstract} + +%\vfill + +\section{Task description} + +The following is a short task description as it appears in the +volunteer task list document for the \LaTeX3 project~\cite{tub:MRD92}: +\begin{quote} +Writing test files for regression testing: checking bug fixes and +improvements to verify that they don't have undesirable +side effects; making sure that bug fixes really correct the problem +they were intended to correct; testing interaction with +various document styles, style options, and environments. + +We would like three kinds of validation files: +\begin{enumerate} +\item General documents. +\item Exhaustive tests of special environments/modules such as tables, +displayed equations, theorems, floating figures, pictures, etc. +\item Bug files containing tests of all bugs that are supposed to be +fixed (as well as those that are not fixed, with comments about their +status). +\end{enumerate} +\end{quote} + + +\section{Introduction} + +As coordinator of the task called ``Validating \LaTeX~2.09'', I would +like to invite some of the \LaTeX{} users to join our group. Some work +has been done already, but a lot remains to be done; at present only +two people are working on this task and I am afraid it is not enough +if we want to be able to complete the job in a reasonable amount of +time. The total amount of time required was estimated by +Frank~Mittelbach around 2 to 3 weeks, but Knuth's well known +correcting rule should probably be applied to these figures\dots + +I expect that a small team of four to five persons, spending each a +limited amount of time for the project could be much more efficient +and complete the job by the end of~93 or even earlier. + +This task does not require a \TeX{}pert (I'm not one myself but +\TeX{}perts are welcome!) and offers anybody wanting to help the +\LaTeX3 project a good opportunity to support this ambitious and +motivating project. + +I imagine that anybody having taken part in the project, even in a +very tiny bit of it, will feel a lot happier using \LaTeX3 when it is +available and this pleasure will `overcompensate' the time spent. + +\pagebreak[3] +\section{Goals and methods} + +% borrowed from testing.ltx: +%%%%%%%%%%%%%%%%%%%%%%%%%%% +The idea is to have a suite of test files, each one exercising a +particular set of related commands. These should be called in such a +way that one can tell from the {\tt .log} file (not the {\tt .dvi} +file) that the command has `met its specification'. The {\tt .log} +file is then edited to remove certain irrelevant information and will +then be stored, as a {\tt .tlg} file. Before a new release is issued, +all the test files will be run through the new version, and the +resulting {\tt .tlg} files will be automatically compared with the +saved original versions. Any tests which do not produce identical +results will then be notified to the maintainer of +\LaTeX, who can visually compare the {\tt .tlg} files to see whether the +differences are due to an `improvement' or are the result of a newly +introduced bug! +%%%%%%%%%%%%%%%%%%%%%%%%%%% + +The first thing we started with was to get the bug lists of the parts of +\LaTeX~2.09 which are used as basis for \LaTeX3, that is latex.tex, the +standard style files (article, book\dots), the so-called Mainz files +(nfss, array.sty, verbatim.sty\dots). The testing of reported problems +usually exercises tricky parts of the code and I believe that making +sure that the reported bugs are no longer present (or to {\em know} +that they are not corrected yet) is a better start than trying random +texts. + +When I start a series of validation tests, I first copy all the bug +reports of the part I am testing into the {\tt .lvt} file (the +\LaTeX{} sourcefile containing the tests). Then, for each bug I try to +build a short text that is supposed to show the bug. If I can't +(either because I do not fully understand the bug report or for any +reason) I leave the bug report with no test following it, in order to +keep the full list of what should be tested; someday myself or +somebody else might find a way to check it. + + +What seemed not so easy (for me anyway) at the beginning was to manage +to get the meaningful information into the {\tt .log} file and not +just on the screen or the {\tt .dvi} file. Fortunately, Frank +Mittelbach provided an input file called test209.tex which contains +helpful macros and David Carlisle wrote a paper explaining what to +do~\cite{package:validate92}. + +There are two main methods of passing relevant information to the {\tt +.log} file. + +\subsection{The {\tt\char"5C showoutput} command} + +The easiest way is to use the standard \LaTeX{} command +\verb|\showoutput|; all the material present in the part of the {\tt +.dvi} file following that command will appear in the {\tt .log} file. +The main drawback of this is that you get a huge {\tt .log} file +containing a lot of uninteresting things. Nevertheless I use this +command for instance when I am checking the contents of headers, +footnotes, margin notes or margin dimensions. + +Here is an example: bugs 190 and 198 in latex.tex. The problem is the +use of fragile commands in a footnote. I make a (nearly) empty page +containing only a line of text calling the footnote. + +\begin{verbatim} +%190. Fragile commands in the definition of \thefootnote led to +%an error, even with the use of \protect. (Found by Chris Hamlin. +%Corrected 1 Nov 91.) +%198. Fix 190 did not go far enough. (Found by Chris Rowley. +% Corrected 22 Nov 91.) +% + +\newpage +{\end{verbatim}% +\verb|\bugid|\footnote{{\tt \char"5C bugid} is a command provided in +{\tt test209.tex} which prints its argument (the bug number), in both +{\tt .dvi} and {\tt .log} files.}% +\verb|{190-198}| +\begin{verbatim} +Let's make a footnote\footnote% +{This footnote includes fragile commands:\\ +\begin{enumerate} +\item[\protect\( * \protect\)] First, +\item[\protect\( ** \protect\)] second, +\item[\protect\( *** \protect\)] third. +\end{enumerate} +} + +\showoutput + +\newpage +}\nonstopmode +\end{verbatim} + +The whole page is included in braces to restrict the scope of the +\verb|\showoutput| command and prevent the following tests falling +into the {\tt .log} file. + +\subsection{The {\tt\char"5C showbox} command} + +Another possibility is to build a box containing just the material +related to one precise bug. Suppose you have privatized a box (one for +the whole test file) using the \TeX{} command +\begin{verbatim} +\newbox\test +\end{verbatim} +then you can use \verb|\setbox| to fill it with a \verb|\hbox| or +\verb|\vbox| containing your material, as in the following example +which deals with bugs 138, 158 and 217 of latex.tex: + +\begin{verbatim} +%138. A command like \index or \label could incorrectly suppress a +%space after the next \end command. (Reported by Johannes Braams. +%Partially fixed on 30 Nov 88. Problem can still occur if \index +%or \label command comes inside the \end's environment.) +%158. The fix mentioned in 138 was added to the comments, but not +%to the code. (Reported by Piet van Oostrum in TeXhax V90 #42, +%corrected 2 May 90.) +%217. The fix mentioned in 138 and 158 was done wrong in the code. +%Also the problem was now corrected completely by introducing a +%new control sequence. (Suggested by Piet van Oostrum. +%Corrected 18 Mar 92.) +% +\bugid{138-158-217} + +\setbox\test\vbox{% +This is a tabular environment\label{tab1}\\ +\begin{tabular}{lcr} +aaa &bbb &ccc\label{tab2}\\ +\end{tabular} followed by a space. +Compare with the same\\ +\begin{tabular}{lcr} +aaa &bbb &ccc\label{tab3}\\ +\end{tabular}NOT followed by a space.} + +{\showboxdepth3\showboxbreadth999\showbox\test} + +\box\test +\end{verbatim} + +The command \verb|\showbox| copies the box to the {\tt .log} file and +the commands \verb|\showboxdepth| and \verb|\showboxbreath| allow you +to control the exact amount of information you want in the {\tt .log} +file (see the \TeX{}book p.~302 for the details). + +\verb|\box\test| prints the box into the {\tt .dvi} file, so that you +can check the result on your previewer: the first tabular should be +followed by a space, and not the second. + +\section{What is already done} + +As mentioned above, we have chosen to first of all tackle the bug lists +of the main \LaTeX{} files. Tests already completed or about to be are: +\begin{itemize} + \item {\tt nfss.tex} (version 1), a new version called {\tt nfss 2} +is about to be released, some new checking will probably be required. +\item {\tt latex.tex} most of the checking is done, the remaining part +is on the way. +\item the basic styles files are being checked by +Chris Martin\footnote{\tt c.martin@sheffield.ac.uk}. +\end{itemize} + +All the {\tt .lvt} test files already completed, as well as the tools +provided by Frank Mittelbach, are of course available on request to +those who want to help us in validating \LaTeX~2.09. + +\section{What remains to be done} + +I would like to have the validation of the Mainz files completed as +the next step: +\begin{itemize} + \item {\tt array.sty} + \item {\tt ftn.sty} + \item {\tt multicol.sty} + \item {\tt theorem.sty} + \item {\tt verbatim.sty}\footnote{% +very recently Mark Senn {\tt mds@stat.purdue.edu} volunteered to + validate {\tt verbatim.sty}.} +\end{itemize} + +Another direction would be (drifting apart from checking previous +bugs) exhaustive tests of special environments or modules such as +tables, floating figures, pictures etc. + +It would also be interesting to imagine complicated combinations of +environments to check the robustness of \LaTeX~2.09 when different +environments interact together. If anybody has experience in this +area, having, for instance, found a workaround where \LaTeX{} doesn't +behave as would be expected or desirable, it would be of great +interest for us to hear about these experiments. + +%\section{Rules to follow} + +%--precise description of the environment + + +%\section{Conclusion} + +%other tasks + +%\bibliography{string,tub92,package} +%\bibliographystyle{plain} + +\begin{thebibliography}{1} + +\bibitem{package:validate92} +Frank Mittelbach and David Carlisle. +\newblock The {\tt validation} package. +\newblock Distribution of tools for automatic validation of changes + in large macro packages, June 1992. + +\bibitem{tub:MRD92} +Frank Mittelbach, Chris Rowley, and Michael Downes. +\newblock Volunteer work for the {\LaTeX3} project. +\newblock {\em {TUG}boat}, 13(4):510--515, December 1992. + +\end{thebibliography} + +\end{document} |