STk-3.1 installation

From: Clifford Beshers <beshers_at_cs.columbia.edu>
Date: Thu, 25 Jul 1996 18:17:39 -0400 (EDT)

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