summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/newverbs
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-04-05 23:23:06 +0000
committerKarl Berry <karl@freefriends.org>2010-04-05 23:23:06 +0000
commit753a6b250327f75c0f4c6f5a77902be78a2d404f (patch)
treea242bdb2118b2385de39b0f40145f031dda1607c /Master/texmf-dist/source/latex/newverbs
parent9b5e953d3b9474631ef0f47d624224e3840f14d8 (diff)
new latex package newverbs (5apr10)
git-svn-id: svn://tug.org/texlive/trunk@17721 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/newverbs')
-rw-r--r--Master/texmf-dist/source/latex/newverbs/newverbs.dtx255
-rw-r--r--Master/texmf-dist/source/latex/newverbs/newverbs.ins35
2 files changed, 290 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/newverbs/newverbs.dtx b/Master/texmf-dist/source/latex/newverbs/newverbs.dtx
new file mode 100644
index 00000000000..e1d8ef78ff9
--- /dev/null
+++ b/Master/texmf-dist/source/latex/newverbs/newverbs.dtx
@@ -0,0 +1,255 @@
+% \iffalse
+%<*copyright>
+%% Copyright (c) 2010 by Martin Scharrer <martin@scharrer-online.de>
+%% WWW: http://latex.scharrer-online.de/
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% 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.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Martin Scharrer.
+%%
+%% This work consists of the files newverbs.dtx and newverbs.ins
+%% and the derived file newverbs.sty.
+%</copyright>
+%<*!copyright>
+%
+%% $Id: newverbs.dtx 1816 2010-04-05 18:03:28Z martin $
+%
+%<*driver>
+\ProvidesFile{newverbs.dtx}
+%</driver>
+%<package>\ProvidesPackage{newverbs}
+%<*package|driver>
+ [2010/04/05 v1.0 Define new 'verb' commands and short verb. characters]
+%</package|driver>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{hyperref}
+\usepackage{xcolor}
+
+\GetFileInfo{newverbs.dtx}
+\usepackage{newverbs}[\filedate]
+\usepackage{shortvrb}
+
+\MakeSpecialShortVerb{\qverb}{\"}
+
+%\EnableCrossrefs
+%\CodelineIndex
+%\RecordChanges
+\providecommand*{\pkg}{\texttt}
+\providecommand*{\optstar}{\textcolor{gray}{\texttt{*}}}
+\begin{document}
+ \DocInput{newverbs.dtx}
+ %\PrintChanges
+ %\PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{58}\relax
+%
+% \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}{2010/04/05}{Initial version}
+%
+% \DoNotIndex{\newcommand,\newenvironment,\providecommand}
+%
+% \GetFileInfo{newverbs.dtx}
+% \title{The \textsf{newverbs} package}
+% \author{Martin Scharrer \\ \texttt{martin@scharrer-online.de}}
+% \date{\fileversion\ from \filedate}
+%
+% \maketitle
+% \begin{abstract}
+% This package allows the definition of \cs{verb} variants which add \TeX\ code before and after the verbatim text.
+% When used together with the \pkg{shortvrb} package it allows the definition of short verbatim characters which use this variants
+% instead of the normal \cs{verb}.
+% \end{abstract}
+%
+% \section{Usage}
+%
+% \subsection{Defining new variants of \texorpdfstring{\cs{verb}}{'verb'}}
+%
+% \DescribeMacro\newverbcommand
+% \DescribeMacro\renewverbcommand
+% \DescribeMacro\provideverbcommand
+% This macros allow the definition of \cs{verb} variants. The verbatim content is processed using \cs{verb}, but the
+% variants can add \TeX\ code before and after it.
+% The syntax is \cs{\ldots verbcommand}\marg{macro}\marg{code before}\marg{code after}.
+% The three definition macros use |\newcommand*|, |\renewcommand*| and |\providecommand*| internal to define \meta{macro}, respectively.
+% Afterwards \meta{macro} can be used like \cs{verb}. The star version of \meta{macro} will use \cs{verb}|*|.
+%
+% See the implementation of \cs{qverb} in section~\ref{sec:impl} for an example.
+%
+%
+% \subsection{Provided \texorpdfstring{\cs{verb}}{'verb'} variants}
+%
+% Two \cs{verb} variants are provided (i.e. with \cs{provideverbcommand}) by default.
+%
+% \DescribeMacro\qverb
+% This macro adds quote characters around the verbatim material.
+% Two macros are used to insert the quotes: \cs{qverbbeginquote} (`) and \cs{qverbendquote} (').
+% They can be redefined by the user if required.
+%
+% Using \cs{qverb}\meta{char}\meta{verbatim material}\meta{char} is equal to \\
+% \cs{qverbbeginquote}\cs{verb}\meta{char}\meta{verbatim material}\meta{char}\cs{qverbbeginquote}, or\\
+% |`|\cs{verb}\meta{char}\meta{verbatim material}\meta{char}|'|\\
+% when the default definition of the quote macros is used.
+%
+% \DescribeMacro\fverb
+% This macro adds a frame (|\fbox{}|) around the verbatim text (|\fverb+$&^_%$+| $\to$ \fverb+$&^_$+).
+% A \TeX\ box is used to store the content first, then the box is framed.
+% The user can define similar command using the following code:\\
+% {\ttfamily
+% \hspace*{2.5em}|\newverbcommand{\myverb}{\begin{lrbox}{\verbbox}}|\\
+% \hspace*{10em}|{\end{lrbox}\mycommand{\usebox{\verbbox}}}|}\\
+% The temporary box \cs{verbbox} is only provided inside a |\...verbcommand|.
+%
+% \subsection{Using \texorpdfstring{\cs{verb}}{'verb'} variants with short verbatim character}
+%
+% \DescribeMacro\MakeSpecialShortVerb
+% This package also defines a special version of the \cs{MakeShortVerb} macro from the \pkg{shortvrb} package.
+% The orignal command \cs{MakeShortVerb}\optstar|{\|\meta{char}|}| changes the meaning of \meta{char} so that
+% \meta{char}\meta{verbatim material}\meta{char} is a shorter alternative to
+% \cs{verb}\optstar\meta{char}\meta{verbatim material}\meta{char}.
+%
+% The new macro \cs{MakeSpecialShortVerb}\optstar\marg{\cs{verb} variant}|{\|\meta{char}|}| does the same, but
+% instead of \cs{verb}\optstar\ it uses a \meta{\cs{verb} variant} which needs to be defined using \cs{newverbcommand}.
+% The package \pkg{shortvrb} must be loaded by the user in order to make this macro work. It is not loaded automatically by \pkg{newverbs}.
+%
+% The special meaning of \meta{char} can be removed using \pkg{shortvrb}'s \cs{DeleteShortVerb}, i.e.\ the same way as for
+% characters defined with the normal \cs{MakeShortVerb}.
+% If a character was already made a short verbatim character it must be ``deleted'' before it can be redefined by \cs{MakeShortVerb} or
+% \cs{MakeSpecialShortVerb}.
+%
+% \bigskip\noindent\textbf{Examples:}\\
+% |\MakeSpecialShortVerb{\qverb}{\"}| will make `|"|' a short, quoting verbatim character: |"$^&$"| $\to$ "$^&$".\\
+% |\DeleteShortVerb{\"}\MakeSpecialShortVerb{\fverb}{\"}| will change it definition to use \cs{fverb}: \fverb+$^&$+.
+%
+%
+% \section{Compatibility with other verbatim packages}
+% The compatibility with other verbatim packages is not tested yet. This package relies on the normal internal definition of \cs{verb}
+% and \cs{MakeShortVerb}. Any package which changes these might break this package.
+% Users which encounter incapabilities should not hesitate to contact the package author (with details!).
+%
+% \StopEventually{}
+% \section{Implementation}
+% \iffalse
+%<*package>
+% \fi
+%
+% \subsection{Verb Definition Commands}
+%
+% \begin{macro}{\newverbcommand}
+% \begin{macro}{\renewverbcommand}
+% \begin{macro}{\provideverbcommand}
+% This macro calls the real macro with the to be used definition macro.
+% \begin{macrocode}
+\newcommand*\newverbcommand{\new@verbcommand\newcommand}
+\newcommand*\renewverbcommand{\new@verbcommand\renewcommand}
+\newcommand*\provideverbcommand{\new@verbcommand\providecommand}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\new@verbcommand}
+% Depending on |#1| a macro given by |#2| is (re-)defined/provided.
+% The code given by |#3| and |#4| is placed before and after the verb command.
+% The trailing code is inserted by patching \cs{verb@egroup} which is called by \cs{verb}
+% after the verbatim content.
+% \begin{macrocode}
+\def\new@verbcommand#1#2#3#4{%
+ #1*#2{%
+ \begingroup
+ \newverbcommand@settings
+ \def\verb@egroup{\verb@orig@egroup#4\endgroup}%
+ #3\verb
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\newverbcommand@settings}
+% Some settings required for all new \cs{verb}-like commands.
+% The original end group macro from \cs{verb} is saved away.
+% Also the temp box a is provided with a user friendly name.
+% \begin{macrocode}
+\def\newverbcommand@settings{%
+ \let\verb@orig@egroup\verb@egroup
+ \let\verbbox\@tempboxa
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Provided New Verb Commands}\label{sec:impl}
+%
+% \begin{macro}{\qverb}
+% Quoting version of \cs{verb}. Places a quote character before and after the verbatim content: "verb".
+% \begin{macrocode}
+\provideverbcommand{\qverb}{\qverbbeginquote}{\qverbendquote}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\qverbbeginquote}
+% \begin{macro}{\qverbendquote}
+% This macros insert the actual quotes. They can be redefined by the user to contain the required quotes.
+% \begin{macrocode}
+\def\qverbbeginquote{`}
+\def\qverbendquote{'}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\fverb}
+% A framed version of \cs{verb}. Stores the verbatim content first into a box. Then the box content is framed.
+% \begin{macrocode}
+\newverbcommand{\fverb}
+ {\setbox\verbbox\hbox\bgroup\color@setgroup}
+ {\color@endgroup\egroup\fbox{\box\verbbox}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Make Special Short Verbatim Characters}
+%
+% \begin{macro}{\MakeSpecialShortVerb}
+% Uses the definition of \cs{MakeShortVerb} from \pkg{shortvrb} except with \cs{verb} replaced with the first argument.
+% The second argument is then read by \cs{@MakeShortVerb}.
+% \begin{macrocode}
+\newcommand*\MakeSpecialShortVerb[1]{%
+ \@ifstar
+ {\def\@shortvrbdef{#1*}\@MakeShortVerb}%
+ {\def\@shortvrbdef{#1}\@MakeShortVerb}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \iffalse
+%</package>
+% \fi
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/newverbs/newverbs.ins b/Master/texmf-dist/source/latex/newverbs/newverbs.ins
new file mode 100644
index 00000000000..a0abf99b144
--- /dev/null
+++ b/Master/texmf-dist/source/latex/newverbs/newverbs.ins
@@ -0,0 +1,35 @@
+% $Id: newverbs.ins 1816 2010-04-05 18:03:28Z martin $
+%
+% Copyright (c) 2010 by Martin Scharrer <martin@scharrer-online.de>
+% WWW: http://latex.scharrer-online.de/
+
+% See file 'newverbs.dtx' for copyright and licence information.
+
+\let\originput\input
+\input docstrip
+
+\declarepreamble\dtxpreamble
+\endpreamble
+
+\def\prewrapper{\string\declarepreamble\string\dtxpreamble^^J}
+\def\postwrapper{^^J\string\endpreamble}
+
+\askforoverwritefalse
+
+\def\gobble#1{}
+
+% Extract copyright message from DTX file and use it as preamble for all (real) source files
+\generate{%
+ \let\MetaPrefix\empty
+ \file{newverbs.tmp}{\usepreamble\prewrapper\usepostamble\postwrapper\from{newverbs.dtx}{copyright}}%
+}
+\originput newverbs.tmp
+
+\usepreamble\dtxpreamble
+
+\generate{%
+ \file{newverbs.sty}{\from{newverbs.dtx}{package}}%
+}
+
+\endbatchfile
+% vim: ft=tex