diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/misc209/example.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/misc209/example.sty | 414 |
1 files changed, 0 insertions, 414 deletions
diff --git a/Master/texmf-dist/tex/latex/misc209/example.sty b/Master/texmf-dist/tex/latex/misc209/example.sty deleted file mode 100644 index 1144ed56572..00000000000 --- a/Master/texmf-dist/tex/latex/misc209/example.sty +++ /dev/null @@ -1,414 +0,0 @@ -% Save file as: EXAMPLE.STY Source: FILESERV@SHSU.BITNET -% example.sty 20 May 91 -%------------------------------------------------------------ -% Copyright (c) 1988, 1991 by J.Schrod. -% Distributed under the terms of the GNU General Public License. - -% -% LaTeX style option example -% tested with style article, should also work with other styles -% don't use it with twoside or twocolumn option -% -% [LaTeX in MAKEPROG] - - -% -% Author -% js: Joachim Schrod <xitijsch@ddathd21.bitnet> -% Contributors -% (** enough place for your name **) -% - -% -% VERSION HISTORY (MSCF -- most significant change first) -% -% DATE WHO REMARKS -% 91-05-20 js documentation added for distribution -% 88-06-29 js created it for THD LaTeX tutorial - - - - -%%%% -%%%% -%%%% These TeX macros were documented with the documentation system -%%%% MAKEPROG and automatically converted to the current form. -%%%% If you have MAKEPROG available you may transform it back to -%%%% the original input: Remove every occurence of three percents -%%%% and one optional blank from the beginning of a line and remove -%%%% every line which starts with four percents. The following lex -%%%% program will do this: -%%%% -%%%% %% -%%%% -%%%% ^%%%\ ? ; -%%%% ^%%%%.*\n ; -%%%% -%%%% MAKEPROG may be obtained over the net from the Bitnet-Listserver -%%%% LISTSERV@DHDURZ1 (filelist WEBWARE), from tuglib@science.utah.edu, -%%%% or via ftp from june.cs.washington.edu. -%%%% -%%%% -%%% \documentstyle[progltx,example]{article} - - -%%% \nofiles % don't need an aux file -%%% \hfuzz=18pt % expected overfull hboxes in code - - -%%% \begin{document} - - -%%% \title{The {\tt example\/} Style Option} -%%% \author{% % LaTeX does not discard unnecessary glue... -%%% Joachim Schrod% -%%% \thanks{% -%%% TU~Darmstadt, Alexanderstr.~10, D-6100 Darmstadt, Germany.\hfil\break -%%% Email: {\tt xitijsch@ddathd21.bitnet}.% -%%% }% -%%% } -%%% \date{20 May 91} - -%%% \maketitle - - - -%%% \chap What's this style option for?. - -%%% This style option makes it easier to produce examples for \TeX{} -%%% courses. It realizes an |example| environment; the text within such -%%% an environment is typeset two times: On the left side just like any -%%% ordinary text, on the right side verbatim. So an author can be sure -%%% that the verbatim and the typeset part of an \TeX{} example is -%%% consistent. The usage is simple: Type -%%% % -%%% \begin{quote} -%%% |\begin{example}| -%%% |Some \TeX{} text.| -%%% |\end{example}| -%%% \end{quote} -%%% % -%%% and you get -%%% % -%%% \begin{example} -%%% Some \TeX{} text. -%%% \end{example} -%%% % -%%% Just note one important point: {\it The end of the environment must -%%% be on a line of it's own, there must be no space in front of the -%%% |\end|, and there must be no text -- even no comment -- behind}. For -%%% further information have a look at the section on possible -%%% enhancements. - - -%%% \sect This program is free software; you can redistribute it and/or -%%% modify it under the terms of the GNU General Public License as -%%% published by the Free Software Foundation; either version~1, or (at your -%%% option) any later version. - -%%% This program is distributed in the hope that it will be useful, but -%%% {\bf without any warranty\/}; without even the implied warranty of -%%% {\bf merchantability\/} or {\bf fitness for a particular purpose}. See -%%% the GNU General Public License for more details. - -%%% You should have received a copy of the GNU General Public License -%%% along with this program; if not, write to the Free Software Foundation, -%%% Inc., 675~Mass Ave, Cambridge, MA~02139, USA. - - -%%% \sect The implementation uses an auxiliary file. This file has the -%%% extension |tmp|. Be aware of this if you use such a file name in other -%%% options. The file is not needed outside of the environment. - -%%% All public markups start with |Example|, all private ones with -%%% |example_|. These two prefixes are reserved. - -%%% The width of an example column is available for inspection and change -%%% in the dimension register |\ExampleWidth|. - - -%%% \sect This style option still has at least one problem which you -%%% should be aware of: I've encountered false indentation while I've -%%% used it within an item of a |list| environment. I remember that there -%%% was a difference if it was used with or without text in front of it. -%%% But I didn't needed this stuff so I decided not to look at. - -%%% Might be, that |\everypar| is not handled correctly or that some flags -%%% should be looked at. (Remember that an |\item| in \LaTeX{} does not -%%% set anything -- it just stores it away until the start of the next -%%% paragraph!) - -%%% Furthermore I set |\oddsidemargin| and |\evensidemargin| to 0\,pt, but -%%% I do not remember why. Is this really necessary? (I should have -%%% documented it in the beginning, nothing lives longer than a -%%% provision\,\dots) - - -%%% \sect And some future enhancements would be easy to make: -%%% % -%%% \begin{itemize} - -%%% \item The algorithm for typesetting the verbatim text should be those -%%% of |progltx|. Then tabulators and all those stuff would be handled -%%% right. - -%%% \item The algorithm for detecting the environment end should be those -%%% of |progltx|, too. It would allow for comments; a markup which forbids -%%% a comment behind it should be forbidden. - -%%% \item There should be a way to specify texts which are only printed in -%%% the \TeX{} part resp.\ the verbatim part. This would be helpful for -%%% inserting help lines, additional information etc. (Implementation is -%%% straightforward.) - -%%% \item The implementation does not care for the |twoside| option. Then -%%% the order should be mirrored. I.e., verbatim left and \TeX{} text -%%% right. - -%%% \item Other arrangements of \TeX{} text and verbatim text should be -%%% possible. E.g., on a slide there should not be beside each other but -%%% below. Perhaps also on a multi-column layout. - -%%% \end{itemize} - - -%%% \sect Before we start we declare some shorthands for category codes. -%%% By declaring the underscore~`(|_|)' as letters we can use it in our -%%% macros. (I agree with {\sc D.~Knuth} that -%%% |\identifier_several_words_long| is more readable than -%%% |\IdentifierSeveralWordsLong| and in every case better than -%%% |\p@@@s|.) As this is a \LaTeX{} style option the at sign is a letter -%%% anyhow; so we can use the ``private'' Plain and \LaTeX{} macros; and -%%% with the underscore we can make our own macros more readable. But as -%%% we have to restore this category code at the end of this macro file -%%% we store its former value in the control sequence |\uscode|. This -%%% method is better than to use a group because not all macros have to -%%% be defined global this way. - -%%% \beginprog -\chardef\escape=0 -\chardef\open=1 -\chardef\close=2 -\chardef\letter=11 -\chardef\other=12 -%\chardef\active=13 % is defined in Plain already - -\chardef\uscode=\catcode`\_ % top level macro file! - -\catcode`\_=\letter -%%% \endprog - - -%%% \sect Now some setup where I don't remember why I've done them, -%%% perhaps it was only needed in our tutorials. -- But never change a -%%% running program by yourself, let others do the work\,\dots - -%%% \beginprog -\oddsidemargin=0pt -\evensidemargin=\oddsidemargin -%%% \endprog - - - - -%%% \chap The Work is Simple. - -%%% Guess, the problem of implementation is no problem: We write the whole -%%% stuff to a file and read it back twice. One time for typesetting it as -%%% it is, second time for typesetting it verbatim. That's all. - -%%% So let's define our file variable and name first: - -%%% \beginprog -\newwrite\example_file -\def\example_name{\jobname.tmp } % <-- space! -%%% \endprog - - -%%% \sect Both parts of one example will be placed besides each other. We -%%% use the margin for the example, too. (There is not much place anyhow.) -%%% Between the two parts there is |\columnsep| space left. - -%%% \beginprog -\newdimen\ExampleWidth - \ExampleWidth=\textwidth - \advance\ExampleWidth by \marginparwidth % stick into margins - \advance\ExampleWidth by -\columnsep % between columns - \divide\ExampleWidth by 2 -%%% \endprog - - -%%% \sect When we're about, we may specify how to set the two parts. We -%%% may assume that the complete text is in the file |\example_name|. Both -%%% parts are typeset as minipages (it's better than vtop's for -%%% |\footnote| examples and such like). Sectioning markups and other -%%% stuff which setup things must behave as if they were not there -- -%%% nobody wants an entry in his table of contents because he has used a -%%% |\section| markup in an example. - -%%% The horizontal rules are needed for a better (still not correct) -%%% interline spacing. - -%%% {\it FIXME: How about index and glossary entries?} - -%%% \beginprog -\def\ExampleSet{% - \begin{minipage}[t]{\ExampleWidth}% - \hrule height\z@ - \def\markboth##1##2{}% - \def\markright##1{}% - \def\addcontentsline##1##2##3{}% - \input \example_name - \par - \hrule height\z@ - \end{minipage}% - } -%%% \endprog - - -%%% \sect Grmpfh, the \LaTeX{} |verbatim| environment is sloppy -%%% implemented (to say it polite). I will establish at least that a tab -%%% is typeset as 8~spaces; this will help some people. - -%%% {\it FIXME: other\/ |verbatim| implementation!} - -%%% \beginprog -\begingroup - \catcode`\^^I=\active - \gdef\@vobeytabs{\catcode`\^^I\active \let^^I\@xobeytab} - \global\let^^I=\@xobeytab% % for \write's -\endgroup -\def\@xobeytab{\space\space\space\space\space\space\space\space} -%%% \endprog - - -%%% \sect The verbatim code is taken from \LaTeX{}: - -%%% \beginprog -\def\ExampleVerb{% - \begin{minipage}[t]{\ExampleWidth}% - \hrule height\z@ - \begingroup - \small - \parindent\z@ - \rightskip\@flushglue - \@makeother\"\@verbatim - \frenchspacing \@vobeyspaces \@vobeytabs - \input \example_name - \endverbatim - \endgroup - \hrule height\z@ - \end{minipage}% - } -%%% \endprog - - - - -%%% \chap Writing the example to the auxiliary file. - -%%% Now we come to the real environment: We open our auxiliary file and -%%% start copying line by line afterwards. When we see the environment -%%% end we will finish. As a convenience for input we will ignore empty -%%% lines at the beginning of the example, this is flagged by |@ignore|. - -%%% \beginprog -\def\example{ - \par - \immediate\openout\example_file\example_name - \begingroup - \@makeother\"\let\do\@makeother \dospecials - \obeylines \obeyspaces - \@ignoretrue \copy_line - } -%%% \endprog - - -%%% \sect We need a reference line of the example end to compare against. -%%% This line we call |\end_of_example|. Of course all catcodes have to -%%% set up appropriately. - -%%% \beginprog -\begingroup - \catcode`\|=\escape % | is temporary escape character - \catcode`\[=\open % [ and ] are temporary grouping symbols - \catcode`\]=\close - \catcode`\{=\other % these are `other' in verbatim mode - \catcode`\}=\other - \catcode`\\=|other - |gdef|end_of_example[\end{example}] -|endgroup -%%% \endprog - - -%%% \sect Following the ``golden rules of \TeX{} macro coding,'' we will -%%% split gathering of the next line and working with it. If the line -%%% equals our reference line we will stop our envirenment. Of course, we -%%% must call |\end| ourselves as we have just read it from the input and -%%% it is already tokenized. - -%%% If we are inmidst the example we write the line to the auxiliary file, -%%% if we shall not skip empty lines as indicated by |@ignore|. - -%%% {\it FIXME: The comparison should not be so rude!} - -%%% \beginprog -\begingroup - \obeylines \gdef\copy_line#1^^M{\write_line{#1}}% -\endgroup - -\def\write_line#1{% - \def\Next{#1}% - \ifx \Next\end_of_example - \def\Next{\end{example}}% % finish example - \else - \ifx \Next\empty - \if@ignore % ignore empty lines at the beginning - \else % but write them out later - \immediate\write\example_file{\Next}% - \fi - \else - \immediate\write\example_file{\Next}% - \@ignorefalse % at least one non-empty line written - \fi - \let\Next\copy_line % next line of example - \fi - \Next - } -%%% \endprog - - -%%% \sect Now we may handle our real work: The example text is written -%%% out, we just have to set it two times. But first we must close the -%%% file. Both parts are set by a |\leftline| which inserts glue by |\hss| -%%% and will not yield an overfull hbox this way, it just sticks out to -%%% the right. - -%%% We try to mimic a displayed equation in spacing -- it's better than -%%% nothing (polishing needed). - -%%% \beginprog -\def\endexample{% - \endgroup - \immediate\closeout\example_file - \penalty \predisplaypenalty - \vskip \abovedisplayskip - \leftline{\ExampleSet \hskip\columnsep \ExampleVerb}% - \penalty \postdisplaypenalty - \vskip \belowdisplayskip - } -%%% \endprog - - -%%% \sect We must restore our catcode and are finished. - -%%% \beginprog -\catcode`\_=\uscode - -\endinput -%%% \endprog - - - -%%% \end{document} - |