summaryrefslogtreecommitdiff
path: root/macros/plain/contrib/histyle
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/plain/contrib/histyle
Initial commit
Diffstat (limited to 'macros/plain/contrib/histyle')
-rw-r--r--macros/plain/contrib/histyle/histyle.tex381
-rw-r--r--macros/plain/contrib/histyle/hstest.tex137
2 files changed, 518 insertions, 0 deletions
diff --git a/macros/plain/contrib/histyle/histyle.tex b/macros/plain/contrib/histyle/histyle.tex
new file mode 100644
index 0000000000..57e057ac58
--- /dev/null
+++ b/macros/plain/contrib/histyle/histyle.tex
@@ -0,0 +1,381 @@
+% author: norm
+
+% HISTYLE.TEX
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 07/23/1991: -started working on it (ndw)
+% -1.0
+% 07/24/1991: -added \begin{box}...\end{box}
+% -added \setboxthickness
+% -added \in, \inr, \inboth
+% -added \begin{inboth}{}...\end{inboth}{}
+% -1.1
+% 07/25/1991: -added \begin{points}, \begin{bullets}, \begin{list}
+% -cleaned up some comments (there still aren't enough)
+% -1.2
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% make sure we don't get loaded twice
+\ifx\HighStyleLoaded\relax\endinput\fi
+\let\HighStyleLoaded=\relax
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\HighStyleMacrosVer{1.2}
+\message{cLoading HighStyle macros|}
+\input startup % defines bullets used in the \begin{bullets} environment
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% this file contains the very rudimentary beginnings of a ``HighStyle''
+% environment for TeX. It is in Plain TeX and not LaTeX ... don't say
+% I didn't warn you!
+%
+% Note: the grouping mechanisms in HighStyle and TeX are fundamentally
+% different and they are, in a small way, incompatible. In
+% HighStyle functions, the function name goes inside the curly
+% braces, in TeX, it must go outside the braces.
+%
+% For example, in HighStyle you would say {q This is in quotes}
+% but in TeX, you must say \q{This is in quotes}. There's not
+% much that we can do about this...
+%
+% The following macros have been defined:
+%
+% \abs{} returns the absolute value of a number (for printing, not
+% for use in math in macros! Also, only for integers)
+% \accept reads from the keyboard and creates a control sequence
+% (variable)
+% \blank{} creates a blank line of the requested length (i.e. \blank{1in}
+% produces a blank line 1 inch long).
+% \bo turns on bold, it should be used within {}'s
+% \begin{boldtext} Like \bo but it does the grouping for you...
+% \end{boldtext}
+% \begin{box} A box environment. It's not real robust but it does handle
+% \end{box} \leftskip and \rightskip's
+% \setboxthickness{} Sets the thickness of the rules used in \begin{box}...
+% \setboxgutter{} Sets the box gutter (\graphboxborder)
+% \center{} Center's text
+% \in{} Moves the left margin in
+% \inr{} Moves the right margin in
+% \inboth{} Moves in the left and right margins
+% \begin{inboth}{} Indents the left and right margins by parameter
+% \end{inboth}
+% \begin{points}width=<dimen> just=<l|r|c|f> text=<i|r|b> Starts a points
+% \end{points} environment. Use \p{} to define points
+% \begin{list} Begins a numbered list. Lists can be nested up to three
+% \end{list} levels deep, level one is numbered 1,2,3..., level two is
+% numbered a,b,c..., and level 3 is numbered i,ii,iii,iv...
+% \begin{bullets} Starts a bulleted environment, six levels are defined.
+% \end{bullets}
+% \q{} Produces quoted text (i.e. typographic ``quotes'')
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% for the duration of of this input file, @ is a letter ... this makes
+% it possible to create control sequences that cannot (easily) be used
+% outside this macro file...neat, sorta...
+\catcode`@=11 % @ is a letter here
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% We're going to screw with the meaning of \end, so make sure we can
+% still use the real one ...
+\let\@end=\end
+% now redefine \bye to use the @end
+\outer\def\bye{\par\vfil\supereject\@end} % just like the real \bye...
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcount\workreg % just a work integer
+\newdimen\workdim % just another workreg...
+\newread\console % input file for accept
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% My \begin{box} box macro tries to be really clever. It probably
+% isn't, but it's as clever as my TeXnical ability can get me right
+% now. I collect the material in a \vbox then I use the values of
+% \leftskip and \rightskip to trim it down, (the \vbox is always
+% \hsize in width because that's the way TeX set it). From this
+% box, I generate a box with a border that is indented by the
+% appropriate \leftskip amount. Improvements are welcome...
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newbox\graphbox % \begin{box} box
+\newdimen\graphboxwidth % width of box
+\newdimen\graphboxleftmar % left margin of box
+\newdimen\graphboxborder % border distance (from rules to text)
+\graphboxborder=0.25in % defaults to 0.25in
+\newdimen\graphboxthick % border thickness (thickness of rules)
+\graphboxthick=0.4pt % defaults to 0.4pt
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \begin and \end macros, thanks (mostly) to Bert Bos <bert@let.rug.nl>.
+% Thanks Bert!
+\def\begin#1{\begingroup \let\@group\relax%
+ \expandafter\let\expandafter\@group\csname @begin#1\endcsname%
+ \csname @begin#1\endcsname} % execute command
+\def\end#1{\expandafter\ifx\csname @begin#1\endcsname\@group\else%
+ \errmessage{End doesn't match begin: \noexpand\end{#1}}\fi%
+ \expandafter\ifx\csname @end#1\endcsname\relax \else
+ \csname @end#1\endcsname\fi
+ \endgroup}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Absolute value, no one is ever going to use this but...it was in
+% HighStyle, so here it is. Actually, it was in HighStyle and it was
+% easy to do so here it is (there are lots of things in HighStyle that
+% I haven't (and probably won't) implement.
+\def\abs#1{%
+ \workreg=#1
+ \ifnum0>\workreg
+ \number -\workreg
+ \else
+ \number \workreg
+ \fi
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% asks the user for a string
+\def\accept{\immediate\read\console to}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% makes a blank rule
+\def\blank#1{\hbox to #1{\hrulefill}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bold faced text
+\def\bo{\bf}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bold faced text in a group
+\def\@beginboldtext{\begingroup\bo}
+\def\@endboldtext{\endgroup}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is a rather fragile set of macros for handling the \begin{box}...
+% \end{box} environment. It will handle changes in \leftskip and \rightskip
+% and it will handle multiple paragraphs, but I don't think it will
+% handle really complex things like multiple pages or anything like that.
+%
+\def\setboxthickness#1{\global\graphboxthick=#1}
+\def\setboxgutter#1{\global\graphboxborder=#1}
+\def\@beginbox{\par%
+ \global\graphboxleftmar=\leftskip%
+ \global\graphboxwidth=\hsize%
+ \global\advance\graphboxwidth by -\graphboxleftmar%
+ \global\advance\graphboxwidth by -\rightskip%
+ \global\advance\graphboxwidth by 2\graphboxborder%
+ \global\advance\graphboxleftmar by -\graphboxborder%
+ \setbox\graphbox=\vbox\bgroup}
+\def\@endbox{\par\egroup%
+ \setbox\graphbox=\vbox{\hbox to \graphboxwidth{\hss\box\graphbox\hss}}%
+ \hbox{\hskip\graphboxleftmar%
+ \vrule width\graphboxthick%
+ \vbox{%
+ \hrule height\graphboxthick depth0pt%
+ \vskip\graphboxborder%
+ \box\graphbox%
+ \vskip\graphboxborder%
+ \hrule depth\graphboxthick height0pt%
+ }%
+ \vrule width\graphboxthick%
+ }%
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\center#1{\hbox to \hsize{\hfil#1\hfil}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\in#1{\global\advance\leftskip by #1}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\inr#1{\global\advance\rightskip by #1}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\inboth#1{\in{#1}\inr{#1}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\@begininboth#1{\bgroup\leftskip=#1\rightskip=#1}
+\def\@endinboth{\egroup}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This defines \begin{points}, \begin{bullets}, and \begin{list}. Of
+% course, it also defines the appropriate \end{}s...
+%
+% \begin{points}width=1in just=f|l|r|c text=i|r|b
+% \begin{list} up to three levels...
+% \begin{bullets} up to six levels...
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Make sure we don't load the file more than once...
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newdimen\pointwidth % how wide are the points
+\newdimen\pointindent % how much indentation
+\newdimen\pointgutter % gutter between points and text
+\newcount\listnumnormal % list item number (depth 1)
+\newcount\listnumalpha % list item number (depth 2)
+\newcount\listnumroman % list item number (depth 3)
+\newcount\listdepth % current list depth
+\newcount\bulldepth % current bullet list depth
+\def\pointfulljust{f} % full justification?
+\def\pointrightjust{r} % right justification?
+\def\pointleftjust{l} % left justification?
+\def\pointcenterjust{c} % center justification?
+\def\pointtextitalic{i} % italic text
+\def\pointtextbold{b} % bold text
+\def\pointitalic{\it} % \it is defined in plain tex, change
+% this to use other fonts
+\def\pointbold{\bf} % \bf is for emphasized text, change
+% (or redefine after \input) for other
+% fonts...
+\def\pointedges{\raggedright} % intially, fully justified points are
+% \raggedright
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% These macros let you change the justification of fully justified points.
+% Initially they are \raggedright because it is less likely to be ugly when
+% text is set in the narrow column. If you make it \justifiedpoints, then
+% they will be justified, IF your text is currently being justified. I'm
+% not sure, off the top of my head, how to get justified points if you
+% have said \raggedright somewhere in your document...
+%
+\def\raggedpoints{\global\def\pointedges{\raggedright}}
+\def\justifiedpoints{\global\def\pointedges{\relax}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Now we initialize the things we just defined.
+\listdepth=0 % initial depth is zero
+\bulldepth=0
+\pointgutter=1em % gutterwidth is 1em
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\long\def\@pointpara#1{% %
+ \vtop{\leftskip=0pt\rightskip=0pt % Make width ok
+ \hsize=\pointwidth %
+ \parindent=0pt %
+ \everypar={} %
+ \lineskip=1pt %
+ \lineskiplimit=1pt %
+ \pointedges % setup justification
+ \hbadness=10000 % I don't care about underfull boxes
+ \tolerance=10000 % I don't care about overfull ones
+ \noindent #1\relax % either
+ \vrule width 0pt depth 6pt}% % hold depth of box
+}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\@beginpoints width=#1 just=#2 text=#3{ % starts points environment...
+ \par % end this env. with \@endpoints
+ \bgroup
+ \def\pointjust{#2}
+ \def\pointtext{#3}
+ \pointwidth=#1
+ \pointindent=\leftskip
+ \advance\leftskip by \pointwidth
+ \advance\leftskip by \pointgutter
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\@endpoints{\par\egroup}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\p#1{% % this macro does the grunt work
+ \par\vskip\parskip % workaround, why doesn't \par do
+% the skip here.
+ \def\pointtextstyle{} % initially unchanged text style
+ \ifx\pointtextitalic\pointtext
+ \def\pointtextstyle{\pointitalic}
+ \else
+ \ifx\pointtextbold\pointtext
+ \def\pointtextstyle{\pointbold}
+ \fi
+ \fi
+ \ifx\pointfulljust\pointjust
+ \setbox0=\vbox{\@pointpara{\pointtextstyle #1}}
+ \else
+ \ifx\pointrightjust\pointjust
+ \setbox0=\vbox{\hbox to \pointwidth{\hfil\pointtextstyle #1}}
+ \else
+ \ifx\pointleftjust\pointjust
+ \setbox0=\vbox{\hbox to \pointwidth{\pointtextstyle #1\hfill}}
+ \else
+ \ifx\pointcenterjust\pointjust
+ \setbox0=\vbox{\hbox to \pointwidth{\hfil\pointtextstyle #1\hfil}}
+ \else
+ \message{begin{points}: invalid justification}
+ \setbox0=\vbox{\@pointpara{\pointtextstyle #1}}
+ \fi
+ \fi
+ \fi
+ \fi
+ \workdim=\ht0
+ \advance \workdim by \dp0
+ \vbox{\hbox{\hskip\pointindent\box0}}%
+ \vskip-\workdim
+ \vskip-\parskip
+ \nointerlineskip
+ \indent
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\@beginlist{ % starts a list environment. Lists
+ \par % may be nested up to 3 levels deep.
+ \bgroup % end with \@endlist
+ \advance\listdepth by 1
+ \ifcase\listdepth \or % level=0, do nothing (won't happen)
+ \listnumnormal=0%
+ \def\listnumber{\number\listnumnormal.}\or % level=1
+ \listnumalpha=96%
+ \def\listnumber{\char\listnumalpha.}\or % level=2
+ \listnumroman=0%
+ \def\listnumber{\romannumeral\listnumroman.}\or % level=3
+ \errmessage{Lists are nested too deep!}%
+ \fi % level>3, error message...
+ \@beginpoints width=0.4in just=r text=r%
+ \everypar={\hangindent=\parindent\hangafter=1\@listp}%
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\@listp{%
+ \ifcase\listdepth \or% immediately skip the zero case ...
+ \advance\listnumnormal by 1\or % level=1
+ \advance\listnumalpha by 1\or % level=2
+ \advance\listnumroman by 1\or % level=3
+ \fi % do nothing for > 3
+ % redefine \everypar around \p so that we don't get an infinite loop
+ \everypar={\hangindent=\parindent\hangafter=1}%
+ % the \vskips below are a really kludgy workaround. For some reason
+ % the \p macro in a list environment is inserting one extra \baselineskip
+ % and one extra \parskip. Probably need to end a few of the lines in
+ % these macros with %'s to get rid of any extra spaces. In any event,
+ % I use negative space to back them out rather than spending time now
+ % figuring out how to really fix the problem (which I'm afraid might
+ % break something else anyway) Hopefully the list and points environments
+ % are well-defined enough so that lack of robustness won't be a problem...
+ \vskip-\baselineskip
+ \vskip-\parskip
+ \p{\listnumber}%
+ \everypar={\hangindent=\parindent\hangafter=1\@listp}%
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\@endlist{%
+ \@endpoints
+ \egroup
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\@beginbullets{ % starts a bullet environment. Lists
+ \par % may be nested up to 3 levels deep.
+ \bgroup % end with \@endbullets
+ \advance\bulldepth by 1
+%
+% If you want/have to use other bullets, just redefine them here...
+% for example $\bullet$ is about the same as \circle (but these come
+% from a special font)
+%
+ \ifcase\bulldepth \or % level=0, do nothing (won't happen)
+ \def\@bullpt{\circle}\or % level=1
+ \def\@bullpt{\ocircle}\or % level=2
+ \def\@bullpt{\square}\or % level=3
+ \def\@bullpt{\osquare}\or % level=4
+ \def\@bullpt{\triangle}\or % level=5
+ \def\@bullpt{\otriangle}\or % level=6
+ \errmessage{Bullets are nested too deep!}%
+ \fi % level>3, error message...
+ \@beginpoints width=0.25in just=r text=r%
+ \everypar={\hangindent=\parindent\hangafter=1\@bullp}%
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\@bullp{%
+ % redefine \everypar around \p so that we don't get an infinite loop
+ \everypar={\hangindent=\parindent\hangafter=1}%
+ % the \vskips below are a really kludgy workaround. For some reason
+ % the \p macro in a list environment is inserting one extra \baselineskip
+ % and one extra \parskip. Probably need to end a few of the lines in
+ % these macros with %'s to get rid of any extra spaces. In any event,
+ % I use negative space to back them out rather than spending time now
+ % figuring out how to really fix the problem (which I'm afraid might
+ % break something else anyway) Hopefully the list and points environments
+ % are well-defined enough so that lack of robustness won't be a problem...
+ \vskip-\baselineskip
+ \vskip-\parskip
+ \p{\@bullpt}%
+ \everypar={\hangindent=\parindent\hangafter=1\@bullp}%
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\@endbullets{% you MUST end the \bulletpoints environment this way!
+ \@endpoints
+ \egroup
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\q#1{``#1''}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\catcode`@=12 % @ is not a letter, this has to be the last thing in the file
+% eof % HISTYLE.TEX %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/plain/contrib/histyle/hstest.tex b/macros/plain/contrib/histyle/hstest.tex
new file mode 100644
index 0000000000..9aa140ecd2
--- /dev/null
+++ b/macros/plain/contrib/histyle/hstest.tex
@@ -0,0 +1,137 @@
+% file : hstest.tex (tests histyle.tex)
+% author :
+
+Here is a sample document that uses (in stupid ways) most of the
+features of this set of macros. The only thing missing here is
+the 'startup.tex' file. This file relies on a special font so I
+haven't bothered to include it. You will have to redefine the
+\@bullpt macros in HISTYLE.TEX in order to use the \begin{bullets}
+environment. Something like the following will do just fine for
+a start:
+
+ \ifcase\bulldepth \or % level=0, do nothing (won't happen)
+ \def\@bullpt{*}\or % level=1
+ \def\@bullpt{o}\or % level=2
+ \def\@bullpt{x}\or % level=3
+ \def\@bullpt{-}\or % level=4
+ \def\@bullpt{>}\or % level=5
+ \def\@bullpt{=}\or % level=6
+ \errmessage{Bullets are nested too deep!}%
+ \fi % level>3, error message...
+
+Flavor to taste, obviously. Here's the test file:
+
+%HSTEST.TEX
+\input histyle
+\parskip=\baselineskip
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Here goes...
+\accept\yourname
+\yourname, the absolute value of -4 is \abs{-4}, the absolute value
+of 4 is \abs{4}. You can't ask for the absolute value of real numbers
+with this macro, at least not yet. Here's a one inch blank: \blank{1in}.
+This is {\bo bold faced} and \q{Quoted Text}.
+\begin{boldtext}
+Here's (potentially) a lot of boldfaced text.
+\end{boldtext}
+\vskip1in
+\begin{inboth}{1in}
+ \begin{box}
+ \setboxthickness{0.1in}
+ This text is in a box!
+ \end{box}
+\end{inboth}
+\in{3in}
+This text will be indented 3 inches
+
+\in{-3in}
+This text will be back to normal
+
+\center{this text is centered}
+
+\begin{points}width=1in just=f text=i
+ \p{this is point 1}
+ This some text describing point 1
+ This some text describing point 1
+ This some text describing point 1
+ This some text describing point 1
+ This some text describing point 1
+ This some text describing point 1
+ This some text describing point 1
+ \p{this is point number 2}
+ This is some text describing point 2
+ This is some text describing point 2
+ This is some text describing point 2
+ This is some text describing point 2
+ This is some text describing point 2
+ This is some text describing point 2
+ This is some text describing point 2
+ This is some text describing point 2
+ This is some text describing point 2
+\end{points}
+
+\setboxthickness{0.4pt}
+\begin{inboth}{0.25in}
+ \begin{box}
+ {\par\vskip\parskip\parskip=0pt\parindent=0pt\obeylines
+ \begin{bullets}
+ this is first level
+ this is first level
+ \begin{bullets}
+ this is second level
+ \begin{bullets}
+ this is third level
+ \begin{bullets}
+ this is fourth level
+ \begin{bullets}
+ this is fifth level
+ \begin{bullets}
+ this is sixth level
+ \end{bullets}
+ \end{bullets}
+ \end{bullets}
+ \end{bullets}
+ \end{bullets}
+ this is first level
+ \end{bullets}
+ }
+ \end{box}
+\end{inboth}
+
+\vfill\supereject
+{\par\vskip\parskip\parskip=0pt\parindent=0pt\obeylines
+\pointgutter=.1in
+\begin{list}
+ Item 1
+ Item 2
+ Item 3
+ \begin{list}
+ Item a
+ Item b
+ Item c
+ \end{list}
+ Item 4
+ \begin{list}
+ Item a
+ \begin{list}
+ Item i
+ Item ii
+ Item iii
+ Item iv
+ \end{list}
+ Item b
+ \end{list}
+ Item 5
+ Item 6
+\end{list}
+}
+
+This is some normal paragraph text.
+This is some normal paragraph text.
+This is some normal paragraph text.
+This is some normal paragraph text.
+This is some normal paragraph text.
+This is some normal paragraph text.
+This is some normal paragraph text.
+\bye
+% eof % HSTEST.TEX %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%