Well, I'm quite impressed with the new package so far. A few minor
glitches, but the problems I had installing on HP-UX before have all
been fixed. Thanks very much for that.
Here are some fixes for minor problems I encountered:
****************************************************************
****************************************************************
****************************************************************
****************************************************************
Tk configure assumes PATH contains ``.''. This is generally
considered to be a security hole.
> diff -C2 configure configure.orig
*** configure Thu Jul 25 14:56:18 1996
--- configure.orig Thu Jul 25 14:58:32 1996
***************
*** 1,5 ****
#! /bin/sh
! cd unix; sh ./configure
# Simple no?
--- 1,5 ----
#! /bin/sh
! cd unix; configure
# Simple no?
>
****************************************************************
****************************************************************
****************************************************************
****************************************************************
There is a misspelling of string-append in Lib/process.stk:
> diff -C2 process.stk process.stk.orig
*** process.stk Thu Jul 25 15:49:10 1996
--- process.stk.orig Thu Jul 25 15:49:06 1996
***************
*** 23,27 ****
(%init-process)
;; Try to load it dynamically
! (load (string-append "process." *shared-suffix*)))
(provide "process")
--- 23,27 ----
(%init-process)
;; Try to load it dynamically
! (load (sting-append "process." *shared-suffix*)))
(provide "process")
>
****************************************************************
****************************************************************
****************************************************************
****************************************************************
The files ``a4wide.sty'' and ``moreverb.sty'' are not in my Latex
distribution (TeTex, I believe). There may be others, but I stopped
after those failed.
The a4 problem was easy to fix; I didn't want the european size
anyway. moreverb I had to find on the net. I succeeded in getting
Extension.ps built. I am still having trouble with the Isotas paper.
Here are two files. When the first is latex'ed, it reads the second
and generates moreverb.sty.
****************************************************************
moreverb.ins:
****************************************************************
\def\batchfile{moreverb.ins}
\input docstrip.tex
%\errorcontextlines999
\preamble
\endpreamble
\def\batchfile{moreverb.dst} % ignored in distribution
\input docstrip.tex % ignored in distribution
\keepsilent
\preamble
\endpreamble
\generateFile{moreverb.sty}{f}{
\from{moreverb.dtx}{moreverb}}
\keepsilent
\ifToplevel{
\Msg{***********************************************************}
\Msg{*}
\Msg{* To finish the installation you have to move the file}
\Msg{* moreverb.sty into a directory searched by TeX}
\Msg{*}
\Msg{***********************************************************}
}
\endinput
****************************************************************
moreverb.dtx:
****************************************************************
%
% \iffalse
%
% RCS information:
%
% $Id: moreverb.dtx,v 1.5 1996/05/24 09:44:51 rf Exp $
%
% \section{Initially: identify the package}
%
% We use the same body for the \cs{ProvidesFile} as for the
% \cs{ProvidesPackage} command.
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
%<*dtx>
\ProvidesFile{moreverb.dtx}
%</dtx>
%<moreverb>\ProvidesPackage{moreverb}
[1996/05/24 v2.2c
%<moreverb> `more' verbatim facilities%
%<*dtx>
moreverb source file%
%</dtx>
]
% \end{macrocode}
% Code to compile the thing using LaTeX2e
%
%<*driver>
\documentclass{ltxdoc}
%
\setcounter{errorcontextlines}{999}
%
\GetFileInfo{moreverb.dtx}
%
% The definition of \star in ltxdoc.cls is useless (bug report
% LaTeX/2117). \env is something I would like to have -- I'm
% not sure this definition is entirely kosher (in any case, why aren't
% all these things in doc.sty?)
%
\renewcommand\star{\texttt{*}}
\DeclareRobustCommand\env[1]{\cs{begin\char`\{#1\char`\}}}
%
\begin{document}
\title{The \textsf{moreverb} package\thanks{This file
has version number \fileversion, last
revised \filedate}}
\author{Robin Fairbairns (\small\texttt{rf_at_cl.cam.ac.uk})\\
after\\
Angus Duggan, Rainer Sch\"opf and Victor Eijkhout}
\date{\the\year/\ifnum\month<10 0\fi\the\month
/\ifnum\day <10 0\fi\the\day}
\maketitle
\tableofcontents
\DocInput{moreverb.dtx}
\end{document}
%</driver>
%
% \fi
%
% \CheckSum{402}
%
% \section{This package}
%
% This package uses the facilities provide by the \textsf{verbatim}
% package in the \LaTeXe{} \emph{tools} distribution to provide a
% number of things that were rejected as unnecessary in the
% development of that package. (Nevertheless, the tab-expansion code
% in this package responds to one of the FAQs of |comp.text.tex|)
%
% The package provides things in three broad areas:
% \begin{itemize}
% \item Tab expansion and related stuff,
% \item Line numbering,
% \item Miscellaneous: writing verbatim to a file (for example, for
% later re-input) , and `boxed' verbatim.
% \end{itemize}
%
% \subsection{Tab expansion}
%
% The package enables you to specify the expected width of the
% tabulation, and also allows input of files containing tabs.
%
% \DescribeEnv{verbatimtab}
%
% \env{verbatimtab}\oarg{tab width}
% reproduces its body verbatim, with the tabs expanded to the given
% width (the default value is 8).
%
% \DescribeMacro{\verbatimtabinput}
%
% \cs{verbatimtabinput}\oarg{tab width}\marg{file name}
% is a file input version of the \texttt{verbatimtab} environment.
%
% \DescribeMacro{\verbatimtabsize}
%
% The size of the tabs is stored in \cs{verbatimtabsize}, and persists
% between uses of the environments. (I.e., an optional argument to
% one of them applies to all subsequent ones.)
%
% \noindent To replace the value other than by use of an optional
% argument, you need to say:
%
% \cs{renewcommand}\cs{verbatimtabsize}|{|\meta{value}\cs{relax}|}|
%
% There are no promises offered as to the performance if you omit the
% \cs{relax}!
%
% \subsection{Line numbering}
%
% Line numbering is often useful when reproducing code examples
% (useful, that is, for those of us who don't want to pretty-print
% such snippets).
%
% \DescribeEnv{listing}
%
% \env{listing}\oarg{interval}\marg{start line} numbers the lines of
% its body. The argument \meta{start line} specifies the starting
% line number. The optional argument \meta{interval} specifies the
% number of lines between numbered lines: that is, every line whose
% number \(=0\pmod{\mbox{\meta{interval}}}\) will be numbered in the
% output. (In addition, line number 1 will always be numbered.) The
% default value of the \meta{interval} is 1 (i.e., every line will be
% numbered).
%
% \DescribeEnv{listingcont}
%
% \env{listingcont} continues from the place where the last
% listing left off.
%
% The style in which the label is set can be altered, for either
% environment, by re-defining \cs{listinglabel}. Both environments
% also expand tabs.
%
% `\star' versions of both the listing environments are provided;
% these do the usual |verbatim*| thing of outputting spaces as
% `\verb*| |', but don't expand tabs.
%
% \DescribeMacro{listinginput}
%
% \cs{listinginput}\oarg{interval}\marg{start line}\marg{filename}
% is a file input version of listing. There is no `\star' form.
%
% \subsection{Miscellenea}
%
% \DescribeEnv{verbatimwrite}
%
% \env{verbatimwrite}\marg{filename} writes all text in its body to a
% file, the name of which it is given as an argument.
%
% \DescribeEnv{boxedverbatim}
%
% \env{boxedverbatim} puts the contents of a verbatim environment in a
% framing box. If you try to do this in a na\"\i ve way, you find
% that the verbatim lines have all become the width of the line, so
% that the box is, more often than not, a very poor fit to the text it
% surrounds.
%
% \DescribeEnv{verbatimcmd}
%
% The |verbatimcmd| environment was provided by the \LaTeX2.09 and
% early \LaTeXe{} versions of this package. However, its capabilities
% are now provided by |alltt|, which is defined by the \textsf{alltt}
% package, now part of the \LaTeX{} base distribution, and so
% |verbatimcmd| has been withdrawn.
%
% \StopEventually{}
%
% \section{The code of the package}
%
% \begin{macrocode}
%<*moreverb>
% \end{macrocode}
%
% \subsection{Initial code}
%
% Load the \textsf{verbatim} package if it's not already loaded.
%
% \begin{macrocode}
\_at_ifundefined{verbatim_at_processline}{\RequirePackage{verbatim}}{}
% \end{macrocode}
%
% \subsection{Writing to a file}
%
% \begin{environment}{verbatimwrite}
% \env{verbatimwrite}\marg{filename} writes all text in its body to a
% file, the name of which it is given as an argument. (This code was
% written by Rainer Sch\"opf.)
%
% \begin{macrocode}
\newwrite \verbatim_at_out
\def\verbatimwrite#1{%
\_at_bsphack
\immediate\openout \verbatim_at_out #1
\let\do\_at_makeother\dospecials
\catcode`\^^M\active \catcode`\^^I=12
\def\verbatim_at_processline{%
\immediate\write\verbatim_at_out
{\the\verbatim_at_line}}%
\verbatim_at_start}
% \end{macrocode}
% \begin{macrocode}
\def\endverbatimwrite{%
\immediate\closeout\verbatim_at_out
\_at_esphack}
% \end{macrocode}
% \end{environment}
%
% \subsection{Tab expansion}
%
% We define a few auxiliary macros and counters for expanding tabs.
% They are used by the |listing| and |verbatimtab| environments.
%
% \begin{macrocode}
\newcount\tab_at_position \newcount\tab_at_size
% \end{macrocode}
%
% \cs{verbatimtabsize} used to be a counter, but that seems to me
% overkill (\LaTeX{} uses too many counters as it is\dots).
%
% \begin{macrocode}
\def\verbatimtabsize{8\relax}
% \end{macrocode}
%
% \begin{macro}{\_at_xobeytab}
% \cs{_at_xobeytab} actually executes the positioning when a tab is
% encountered.
%
% \begin{macrocode}
\def\_at_xobeytab{\leavevmode\penalty\@M
{\loop\ \global\advance\tab_at_position-1 \ifnum\tab_at_position>0 \repeat}}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\_at_vobeytabs}
% \cs{_at_vobeytabs} initialises use of \cs{_at_xobeytab}. Needs to be
% executed within a group, as mustn't be allowed to leak out into the
% wide world.
%
% \begin{macrocode}
\begingroup
\catcode`\^^I=\active
\gdef\_at_vobeytabs{\catcode`\^^I\active\let^^I\@xobeytab}%
\endgroup
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\verbatim_at_tabexpand}
% \cs{verbatim_at_tabexpand}\meta{body of line}\cs{_at_nil} processes every
% character of a line by tail recursion, counting the characters and
% juggling things when a tab is encountered. (What used to be called
% `line imaging'\dots)
%
% \begin{macrocode}
\def\verbatim_at_tabexpand#1{%
\ifx#1\_at_nil \expandafter\par \else
\ifx#1\_at_xobeysp \@xobeysp\advance\tab_at_position-1 \else
\ifx#1\_at_xobeytab \@xobeytab\else
#1\advance\tab_at_position-1
\fi\fi
\ifnum\tab_at_position=0 \tab_at_position\tab_at_size \fi
\expandafter\verbatim_at_tabexpand
\fi
}
% \end{macrocode}
% \end{macro}
%
% \begin{environment}{listing}
% \env{listing}\oarg{interval}\marg{start line}
%
% Defines a verbatim environment with numbered lines; the optional
% argument \meta{interval} specifies the number of lines between
% numbered lines, and the argument \meta{start line} specifies the
% starting line.
%
% \begin{environment}{listingcont}
% \env{listingcont}
%
% Continues from the place where listing left off. The style in which
% the label is set can be altered by re-defining \cs{listinglabel}.
%
% `\star' versions of both environments are provided.
%
% \begin{macro}{\listing_at_line}
% \cs{listing_at_line} holds the current line number; its default value
% is 1, so one can merrily use |listingcont| throughout a document if
% there's but one stream of verbatim text being written.
%
% \begin{macrocode}
\newcount\listing_at_line \listing_at_line=1
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\listing_at_step}
% \cs{listing_at_step} is another case where a counter used to be used,
% to no very obvious utility, but using up a valuable count register.
% Again, the value is modal; the trailing \cs{relax} is necessary.
%
% \begin{macrocode}
\def\listing_at_step{1\relax}
% \end{macrocode}
% \end{macro}
%
% Adding an \cs{hbox} in front of the line causes a line break, so
% I\footnote{The personal pronoun was present in the comments in the
% original version of this package; I'm not sure who it relates
% to~--- RF} go through this rigmarole to get the lines aligned
% nicely. I probably missed some obvious reason why \cs{hbox}es don't
% work\footnote{It's because an \cs{hbox} in vertical mode makes a
% complete paragraph in its own right; this problem could be dealt
% with in the fullness of time, but just now\dots}.
%
% \begin{macrocode}
\def\listinglabel#1{\rlap{\small\rmfamily\the#1}\hskip2.5em}
\def\thelisting_at_line{%
\setbox0\hbox{\listinglabel\listing_at_line}%
\_at_tempcnta=\listing_at_line
\divide\_at_tempcnta\listing_at_step \multiply\@tempcnta\listing_at_step
\ifnum\listing_at_line=1
\unhbox0
\else
\ifnum\_at_tempcnta=\listing_at_line
\unhbox0
\else
\hskip\wd0
\fi
\fi}
% \end{macrocode}
%
% Define \cs{listing} simply to suck in parameters and then to use
% \cs{listingcont}
%
% \begin{macrocode}
\newcommand\listing[2][1]{%
\global\listing_at_line=#2\relax
\gdef\listing_at_step{#1\relax}
\listingcont}
% \end{macrocode}
%
% \cs{listingcont} is the business end of the two environments.
%
% \begin{macrocode}
\def\listingcont{%
\tab_at_size=\verbatimtabsize
\def\verbatim_at_processline{\tab_at_position\tab_at_size
\thelisting_at_line \global\advance\listing_at_line1
\expandafter\verbatim_at_tabexpand\the\verbatim_at_line\@nil}%
\_at_verbatim\frenchspacing\@vobeyspaces\@vobeytabs\verbatim_at_start}
% \end{macrocode}
%
% Nothing special at the end of the two environments.
%
% \begin{macrocode}
\let\endlisting=\endtrivlist
\let\endlistingcont=\endtrivlist
% \end{macrocode}
%
% Now the same rigmarole for the `\verb+*+' versions.
%
% \begin{macrocode}
\expandafter\newcommand\csname listing*\endcsname[2][1]{%
\global\listing_at_line=#2\relax
\gdef\listing_at_step{#1\relax}
\csname listingcont*\endcsname}
\_at_namedef{listingcont*}{%
\def\verbatim_at_processline{%
\thelisting_at_line \global\advance\listing_at_line1
\the\verbatim_at_line\par}%
\_at_verbatim\verbatim_at_start}
% \end{macrocode}
%
% Nobbut a bit of hassle in the name definitions for the end of the
% environments
%
% \begin{macrocode}
\expandafter\let\csname endlisting*\endcsname\endtrivlist
\expandafter\let\csname endlistingcont*\endcsname\endtrivlist
% \end{macrocode}
% \end{environment}
% \end{environment}
%
% \begin{macro}{listinginput}
% \cs{listinginput}\oarg{interval}\marg{start line}\marg{filename}
% is a file input version of listing.
%
% \begin{macrocode}
\def\listinginput{%
\_at_ifnextchar[%]
{\_at_listinginput}%
{\_at_listinginput[1]}}
{\catcode`\~=\active \lccode`\~=`\^^M \lccode`\N=`\N
\lowercase{%
\gdef\_at_listinginput[#1]#2#3{\begingroup
\global\listing_at_line=#2
\gdef\listing_at_step{#1\relax}
\tab_at_size=\verbatimtabsize
\def\verbatim_at_processline{\tab_at_position\tab_at_size
\thelisting_at_line \global\advance\listing_at_line1
\expandafter\verbatim_at_tabexpand\the\verbatim_at_line\@nil}%
\_at_verbatim\frenchspacing\@vobeyspaces\@vobeytabs
\def\verbatim_at_addtoline##1~{%
\verbatim_at_line\expandafter{\the\verbatim_at_line##1}}%
\openin\verbatim_at_in_at_stream=#3
\ifeof\verbatim_at_in_at_stream
\PackageWarning{moreverb}{No file #3.}%
\else
\verbtab_at_oktrue
\loop
\read\verbatim_at_in_at_stream to \verbtab_at_line
\ifeof\verbatim_at_in_at_stream
\verbtab_at_okfalse
\else
\expandafter\verbatim_at_addtoline\verbtab_at_line
\verbatim_at_processline
\verbatim_at_startline
\fi
\ifverbtab_at_ok\repeat
\closein\verbatim_at_in_at_stream\fi
\endtrivlist\endgroup\_at_doendpe}}}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{verbatimcmd}
% \texttt{verbatimcmd} was a verbatim environment with the exception
% of the escape and grouping characters \verb+\+, \verb+{+, \verb+}+.
% This is (err) exactly the specification of the \texttt{alltt}
% environment, and that is in the \textsf{alltt} package that is now
% part of the base distribution.
% \begin{macrocode}
\def\verbatimcmd{%
\PackageError{moreverb}{The verbatimcmd environment is obsolete%
\MessageBreak
Use alltt in its place}%
}
\let\endverbatimcmd\relax
% \end{macrocode}
% \end{macro}
%
% \begin{environment}{boxedverbatim}
% \texttt{boxedverbatim} puts the contents of a verbatim environment
% in a framing box.
%
% (Written by Victor Eijkhout.)
%
% Bug fix (supplied by David Carlisle) 1995/12/28, marked
% \verb+%%%DPC%%%+
%
% First, redefine `processline' to produce only a line as wide
% as the natural width of the line
%
% \begin{macrocode}
\def\boxedverbatim{%
\def\verbatim_at_processline{%
{\setbox0=\hbox{\the\verbatim_at_line}%
\hsize=\wd0 \the\verbatim_at_line\par}}%
% \end{macrocode}
%
% Now save the verbatim code in a box
%
% \begin{macrocode}
\_at_minipagetrue%%%DPC%%%
\_at_tempswatrue%%%DPC%%%
\setbox0=\vbox\bgroup \verbatim
}
% \end{macrocode}
%
% At the end of the environment, we (umm) simply have to stick the
% results into a frame.
%
% \begin{macrocode}
\def\endboxedverbatim{%
\endverbatim
\unskip\setbox0=\lastbox %%%DPC%%%
% \end{macrocode}
%
% Now everything's in the box, so we can close it\dots
%
% \begin{macrocode}
\egroup
% \end{macrocode}
%
% To change the code for centring, the net line needs a spot of
% hacking.
%
% \begin{macrocode}
\fbox{\box0}% <<<=== change here for centering,...
}
% \end{macrocode}
% \end{environment}
%
% \begin{environment}{verbatimtab}
% \env{verbatimtab}\oarg{tab width}
% is a verbatim environment which expands tab characters; the optional
% argument specifies the distance betwee tab stops.
%
% \begin{macrocode}
\newcommand\verbatimtab[1][\verbatimtabsize]{%
\do_at_verbatimtab{#1}{%
\_at_verbatim\frenchspacing\@vobeyspaces\@vobeytabs\verbatim_at_start}%
}
\def\do_at_verbatimtab#1#2{%
\tab_at_size=#1
\def\verbatim_at_processline{\tab_at_position\tab_at_size
\expandafter\verbatim_at_tabexpand\the\verbatim_at_line\@nil}#2
}
\let\endverbatimtab=\endtrivlist
% \end{macrocode}
%
% This conditional is used in \cs{listinginput} and
% \cs{verbatimtabinput} as well:
%
% \begin{macrocode}
\newif\ifverbtab_at_ok
% \end{macrocode}
% \end{environment}
%
% \begin{macro}{\verbatimtabinput}
% \cs{verbatimtabinput}\oarg{tab width}\marg{file name}
% is a file input version of the \texttt{verbatimtab} environment.
%
% We use the input stream acquired by the \textsf{verbatim} package;
% we did after all require it to be loaded. (One has to admit that
% the name of that stream isn't actually part of the package's defined
% interface, but on the other hand there's no particular likelihood
% that it will ever change.)
%
% We can't use fancy features of \cs{newcommand} since the definition
% has to be inside a group, and hence global. So \dots\ `traditional'
% code to provide a command with an optional argument:
%
% \begin{macrocode}
\def\verbatimtabinput{%
\_at_ifnextchar[%]
{\_at_verbatimtabinput}%
{\_at_verbatimtabinput[\verbatimtabsize]}}
{\catcode`\~=\active \lccode`\~=`\^^M \lccode`\N=`\N
\lowercase{%
\gdef\_at_verbatimtabinput[#1]#2{\begingroup
\do_at_verbatimtab{#1}{%
\_at_verbatim\frenchspacing\@vobeyspaces\@vobeytabs}%
\def\verbatim_at_addtoline##1~{%
\verbatim_at_line\expandafter{\the\verbatim_at_line##1}}%
\openin\verbatim_at_in_at_stream=#2
\ifeof\verbatim_at_in_at_stream
\PackageWarning{moreverb}{No file #2.}
\else
\verbtab_at_oktrue
\loop
\read\verbatim_at_in_at_stream to \verbtab_at_line
\ifeof\verbatim_at_in_at_stream\verbtab_at_okfalse
\else
\expandafter\verbatim_at_addtoline\verbtab_at_line
\verbatim_at_processline
\verbatim_at_startline
\fi
\ifverbtab_at_ok\repeat
\closein\verbatim_at_in_at_stream
\fi
\endtrivlist\endgroup\_at_doendpe}}}
%</moreverb>
% \end{macrocode}
% \end{macro}
%
% \Finale
%
\endinput
%
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%% Digits \0\1\2\3\4\5\6\7\8\9
%% Exclamation \! Double quote \" Hash (number) \#
%% Dollar \$ Percent \% Ampersand \&
%% Acute accent \' Left paren \( Right paren \)
%% Asterisk \* Plus \+ Comma \,
%% Minus \- Point \. Solidus \/
%% Colon \: Semicolon \; Less than \<
%% Equals \= Greater than \> Question mark \?
%% Commercial at \_at_ Left bracket \[ Backslash \\
%% Right bracket \] Circumflex \^ Underscore \_
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
Received on Fri Jul 26 1996 - 00:19:39 CEST
This archive was generated by hypermail 2.3.0
: Mon Jul 21 2014 - 19:38:59 CEST