r3tex

custom LuaTeX format
git clone git://git.rr3.xyz/r3tex
Log | Files | Refs | README | LICENSE

verbatim.tex (1137B)


      1 % Usage:
      2 %   \Vbeg[local init]<<an arbitrary delimiter
      3 %   {this} %is
      4 %		$all$ ~verbatim--
      5 %   an arbitrary delimiter
      6 %   Back to non-verbatim.
      7 \newtoks\Vbol \Vbol={}
      8 \newtoks\Vibl \Vibl={\leavevmode\endgraf}
      9 \newtoks\Vend \Vend={}
     10 \def\@Vterm{\errmessage{Vbeg delimiter should be on new line}}
     11 \def\@Vproc{%
     12 	\ifx\@Vnext\@Vterm% End of verbatim?
     13 		\let\@Vterm=\relax% Silence error message.
     14 		\the\Vend
     15 	\else
     16 		\@Vibl\def\@Vibl{\the\Vibl}\the\Vbol
     17 	\fi
     18 }
     19 \beggroup
     20 	\obeylines% Lines must end with %
     21 	\gdef\Vbeg#1<<{%
     22 		\beggroup%
     23 		\def\@Verb##1^^M{% Scan delimiter like Unix here doc.
     24 			\def\@@Verb####1##1{%
     25 				\futurelet\@Vnext\@Vproc####1\@Vterm%
     26 				\endgroup%
     27 			}%
     28 			\@@Verb%
     29 		}%
     30 		\let\@Vibl=\relax%
     31 		\def\do##1{\catcode`##1=12 }\dospecials% Init specials
     32 		\def\par{\futurelet\@Vnext\@Vproc}%
     33 		\obeylines% Init lines
     34 		\@Vobeyspaces% Init spaces
     35 		#1% User post-init
     36 		\@Verb%
     37 	}%
     38 \endgroup
     39 
     40 \def\dospecials{%
     41 	\do\ \do\\\do\{\do\}\do\$\do\&%
     42 	\do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~%
     43 }
     44 
     45 % Like Plain TeX \obeyspaces, but use control spaces, not \space.
     46 {\obeyspaces\gdef\@Vobeyspaces{\let =\ \obeyspaces}}
     47 
     48 
     49 \endinput