summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/spverbatim
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/latex/contrib/spverbatim
Initial commit
Diffstat (limited to 'macros/latex/contrib/spverbatim')
-rw-r--r--macros/latex/contrib/spverbatim/README43
-rw-r--r--macros/latex/contrib/spverbatim/spverbatim.dtx268
-rw-r--r--macros/latex/contrib/spverbatim/spverbatim.ins55
-rw-r--r--macros/latex/contrib/spverbatim/spverbatim.pdfbin0 -> 117132 bytes
4 files changed, 366 insertions, 0 deletions
diff --git a/macros/latex/contrib/spverbatim/README b/macros/latex/contrib/spverbatim/README
new file mode 100644
index 0000000000..85e512887d
--- /dev/null
+++ b/macros/latex/contrib/spverbatim/README
@@ -0,0 +1,43 @@
+ +-------------------------------------------------+
+ | SPVERBATIM: Verbatim text with breakable spaces |
+ | By Scott Pakin, scott+spverb@pakin.org |
+ +-------------------------------------------------+
+
+
+Description
+-----------
+
+LaTeX's \verb macro treats its argument as an unbreakable unit of
+text. This can lead to poor typesetting, especially when the argument
+is long. The spverbatim package provides an \spverb macro that is
+analogous to \verb and an spverbatim environment that is analogous to
+verbatim with the difference being that \spverb and spverbatim allow
+LaTeX to break lines at space characters.
+
+
+Installation
+------------
+
+There's nothing special about building spverbatim:
+
+ latex spverbatim.ins <== Generate spverbatim.sty
+
+If you're new to this, see
+http://www.tex.ac.uk/cgi-bin/texfaq2html?label=instpackages for more
+information on installing packages.
+
+
+Copyright and license
+---------------------
+
+Copyright (C) 2009 Scott Pakin, scott+spverb@pakin.org
+
+This package may be distributed and/or modified under the conditions
+of the LaTeX Project Public License, either version 1.3c of this
+license or (at your option) any later version. The latest version of
+this license is in:
+
+ http://www.latex-project.org/lppl.txt
+
+and version 1.3c or later is part of all distributions of LaTeX version
+2006/05/20 or later.
diff --git a/macros/latex/contrib/spverbatim/spverbatim.dtx b/macros/latex/contrib/spverbatim/spverbatim.dtx
new file mode 100644
index 0000000000..28be23894e
--- /dev/null
+++ b/macros/latex/contrib/spverbatim/spverbatim.dtx
@@ -0,0 +1,268 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2009 by Scott Pakin <scott+spverb@pakin.org>
+% -------------------------------------------------------
+%
+% This file may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, either version 1.3c of this license
+% or (at your option) any later version. The latest version of this
+% license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{spverbatim.dtx}
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<package>\ProvidesPackage{spverbatim}
+%<*package>
+ [2009/08/10 v1.0 Verbatim with breakable spaces]
+%</package>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{spverbatim}[2009/08/10]
+\usepackage{hyperref}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+ \DocInput{spverbatim.dtx}
+% \PrintChanges
+ \PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{36}
+%
+% \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 \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+%
+% \changes{v1.0}{2009/08/10}{Initial version}
+%
+% \GetFileInfo{spverbatim.dtx}
+%
+% \DoNotIndex{\begingroup,\bgroup,\catcode,\def,\egroup,\end,\gdef}
+% \DoNotIndex{\let,\mbox,\newenvironment,\relax}
+%
+% \let\pkgname=\textsf
+%
+%
+% \title{The \pkgname{spverbatim} package\thanks{This document
+% corresponds to \pkgname{spverbatim}~\fileversion, dated \filedate.}}
+% \author{^^A
+% Scott Pakin \\
+% \href{mailto:scott+spverb@pakin.org}{\textit{scott+spverb@pakin.org}}}
+% \hypersetup{^^A
+% pdftitle={The spverbatim package},
+% pdfauthor={Scott Pakin <scott+spverb@pakin.org>},
+% pdfsubject={Package that enables LaTeX to break lines within
+% verbatim text},
+% pdfkeywords={LaTeX, \textbackslash verb macro, verbatim environment,
+% line breaks at spaces}
+% }
+%
+% \maketitle
+% \sloppy
+%
+% \section{Introduction}
+% \label{sec:introduction}
+%
+% \LaTeX's |\verb| macro treats its argument as an unbreakable unit of
+% text. This can lead to poor typesetting, especially when the argument
+% is long:
+%
+% \begin{quote}
+% Be sure to run
+% ``\verb!my_program | awk '$1 ~ /^[0-9]+$/ {printf "%s & %s \\\n", $2, $NF}' > $HOME/.myprogrc!''
+% to extract the data. Otherwise, when you
+% run ``\verb!bad_program && rm $HOME/.*#backup_file#~!'', the program will
+% delete all of your files.
+% \end{quote}
+%
+% \noindent
+% The \pkgname{spverbatim} package enables \LaTeX\ to break lines at
+% spaces within verbatim text:
+%
+% \begin{quote}
+% Be sure to run
+% ``\spverb!my_program | awk '$1 ~ /^[0-9]+$/ {printf "%s & %s \\\n", $2, $NF}' > $HOME/.myprogrc!''
+% to extract the data. Otherwise, when you
+% run ``\spverb!bad_program && rm $HOME/.*#backup_file#~!'', the program will
+% delete all of your files.
+% \end{quote}
+%
+%
+% \section{Usage}
+%
+% \DescribeMacro{\spverb}
+% The \pkgname{spverbatim} package provides an |\spverb| macro that
+% resembles |\verb| except that it allows line breaks at space characters.
+% Like |\verb|, |\spverb| must be followed by a character that ends the
+% verbatim text on its second occurrence:
+%
+% \begin{center}
+% |\spverb| \meta{char} \meta{literal text} \meta{char}
+% \end{center}
+%
+% \noindent
+% The following shows how the final sentence in
+% Section~\ref{sec:introduction} was entered:
+%
+% \begin{verbatim}
+% Otherwise, when you run
+% ``\spverb!bad_program && rm $HOME/.*#backup_file#~!'', the program will
+% delete all of your files.
+% \end{verbatim}
+%
+% Although |\spverb| allows line breaks on \emph{output}, it does not
+% allow line breaks on \emph{input} (i.e.,~within \meta{literal text}).
+% Hence, the following \LaTeX\ code is \textbf{incorrect}:
+%
+% \begin{verbatim}
+% Otherwise, when you run ``\spverb!bad_program && rm
+% $HOME/.*#backup_file#~!'', the program will delete all of
+% your files.
+% \end{verbatim}
+%
+% \bigskip
+%
+% \DescribeEnv{spverbatim}
+% In addition to the |\spverb| macro, \pkgname{spverbatim} provides an
+% |spverbatim| environment. |spverbatim| resembles |verbatim| except
+% that it allows line breaks at space characters. For example,
+%
+% \begin{verbatim}
+% \begin{spverbatim}
+% my_program | awk '$1 ~ /^[0-9]+$/ {printf "%s & %s \\\n", $2, $NF}' > $HOME/.myprogrc
+% \end{spverbatim}
+% \end{verbatim}
+%
+% \noindent
+% produces
+%
+% \begin{verbatim}
+% my_program | awk '$1 ~ /^[0-9]+$/ {printf "%s & %s \\\n", $2, $NF}' >
+% $HOME/.myprogrc
+% \end{verbatim}
+%
+% Unlike |\verb| and |verbatim|, |\spverb| and |spverbatim| do not
+% support a |*|-form in which space characters are typeset as
+% ``\verb*+ +''. Please contact the author if this is a feature you'd
+% like to see in \pkgname{spverbatim}.
+%
+%
+% \StopEventually{^^A
+% \section{Legal notices}
+%
+% \noindent
+% Copyright \textcopyright\ 2009 Scott Pakin,
+% \href{mailto:scott+spverb@pakin.org}{\textit{scott+spverb@pakin.org}}
+%
+% \bigskip
+%
+% This package may be distributed and/or modified under the
+% conditions of the \LaTeX\ Project Public License, either
+% version~1.3c of this license or (at your option) any later
+% version. The latest version of this license is in:
+%
+% \begin{center}
+% \url{http://www.latex-project.org/lppl.txt}
+% \end{center}
+%
+% \noindent
+% and version~1.3c or later is part of all distributions of
+% \LaTeX\ version 2006/05/20 or later.
+% }
+%
+% \section{Implementation}
+%
+% This section presents the complete source code for the
+% \pkgname{spverbatim} package. Unless you're interested in seeing
+% precisely how \pkgname{spverbatim} works, there's no need to read
+% any further.
+%
+% \begin{macro}{\spverb}
+% \begin{macro}{\spverb@ve}
+% \begin{macro}{\@xobeysp}
+% To avoid rewriting |\verb| and all of its helper macros we begin a group;
+% locally redefine the nonbreaking space macro, |\@xobeysp|, to produce a
+% breaking space; and locally redefine the end-of-|\verb| macro, |\verb@egroup|,
+% to end the extra group we began.
+% \begin{macrocode}
+\gdef\spverb{%
+ \bgroup
+ \let\spverb@ve=\verb@egroup
+ \def\verb@egroup{\spverb@ve\egroup}%
+ \def\@xobeysp{\mbox{}\space}%
+ \verb
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\spv@xverbatim}
+% |verbatim| is no ordinary \LaTeX\ environment. Because ``|\|'',
+% ``|{|'', and ``|}|'' are treated as literals within a |verbatim|
+% environment, |\end{verbatim}| can't automatically end the environment.
+% Rather, |\begin{verbatim}| invokes the |\@xverbatim| macro, which
+% pattern-matches against the literal text ``|\end{verbatim}|'',
+% typesets everything it finds up to that text, and finally invokes the
+% real ``|\end{verbatim}|'' sequence. Here, we define an
+% |\spv@xverbatim| macro that's just like |\@xverbatim| except that it
+% pattern-matches against the literal text ``|\end{spverbatim}|'' and
+% ends with a call to the real ``|\end{spverbatim}|'' sequence.
+% \begin{macrocode}
+\begingroup
+ \catcode`|=0
+ \catcode`[=1
+ \catcode`]=2
+ \catcode`\{=12
+ \catcode`\}=12
+ \catcode`\\=12
+ |gdef|spv@xverbatim#1\end{spverbatim}[#1|end[spverbatim]]
+|endgroup
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{environment}{spverbatim}
+% Because the |verbatim| environment already begins a new group, all we
+% have to do to get it to preserve spaces is locally redefine the
+% nonbreaking space macro, |\@xobeysp|, to produce a breaking space;
+% and locally redefine |\@xverbatim| as |\spv@xverbatim| (see above) so
+% that a |\begin{spverbatim}| is matched by an |\end{spverbatim}|, not
+% an |\end{verbatim}|.
+% \begin{macrocode}
+\newenvironment{spverbatim}{%
+ \def\@xobeysp{\mbox{}\space}%
+ \let\@xverbatim=\spv@xverbatim
+ \verbatim
+}{%
+}
+% \end{macrocode}
+% \end{environment}
+%
+% \Finale
+\endinput
diff --git a/macros/latex/contrib/spverbatim/spverbatim.ins b/macros/latex/contrib/spverbatim/spverbatim.ins
new file mode 100644
index 0000000000..0ff7cd7940
--- /dev/null
+++ b/macros/latex/contrib/spverbatim/spverbatim.ins
@@ -0,0 +1,55 @@
+%%
+%% Copyright (C) 2009 by Scott Pakin <scott+spverb@pakin.org>
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.3c of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3c or later is part of all distributions of LaTeX version
+%% 2008/05/04 or later.
+%%
+
+\input docstrip.tex
+\keepsilent
+
+\usedir{tex/latex/spverbatim}
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2009 by Scott Pakin <scott+spverb@pakin.org>
+
+This file may be distributed and/or modified under the conditions of
+the LaTeX Project Public License, either version 1.3c of this license
+or (at your option) any later version. The latest version of this
+license is in:
+
+ http://www.latex-project.org/lppl.txt
+
+and version 1.3c or later is part of all distributions of LaTeX version
+2008/05/04 or later.
+
+\endpreamble
+
+\generate{\file{spverbatim.sty}{\from{spverbatim.dtx}{package}}}
+
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* spverbatim.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file spverbatim.dtx *}
+\Msg{* through LaTeX. *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{*************************************************************}
+
+\endbatchfile
diff --git a/macros/latex/contrib/spverbatim/spverbatim.pdf b/macros/latex/contrib/spverbatim/spverbatim.pdf
new file mode 100644
index 0000000000..23ba173d50
--- /dev/null
+++ b/macros/latex/contrib/spverbatim/spverbatim.pdf
Binary files differ