diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/verb-tex.mkii')
-rw-r--r-- | Master/texmf-dist/tex/context/base/verb-tex.mkii | 294 |
1 files changed, 294 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/base/verb-tex.mkii b/Master/texmf-dist/tex/context/base/verb-tex.mkii new file mode 100644 index 00000000000..75e99fcefde --- /dev/null +++ b/Master/texmf-dist/tex/context/base/verb-tex.mkii @@ -0,0 +1,294 @@ +%D \module +%D [ file=verb-tex, +%D version=1997.12.22, +%D title=\CONTEXT\ Verbatim Macros, +%D subtitle=Pretty \TEX\ verbatim, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA / Hans Hagen \& Ton Otten}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +\writestatus{loading}{ConTeXt Verbatim Macros / Pretty TEX Verbatim} + +%D The original module \type{supp-ver} had the \TEX\ +%D interpreter built in. The current implementation is more +%D natural and less complicated. + +%D \startTEX +%D \definetyping[niceTEX][option=TEX,paletpalet=graypretty] +%D +%D \startniceTEX +%D \message{A vivid look at TeX} +%D \stopniceTEX +%D \stopTEX + +\unprotect + +%D \macros +%D {ifsplitTEXparameters} +%D +%D The mechanism described here, is meant to be used with +%D color. It is nevertheless possible to use different fonts +%D instead of distinctive colors. When using color, it's better +%D to end parameter mode after the \type{#}. When on the +%D other hand we use a slanted typeface for the hashmark, then +%D a slanted number looks better. + +\doglobal\newif\ifsplitTEXparameters \global\splitTEXparameterstrue + +%D \macros +%D {ifsplitTEXcontrols} +%D +%D With \type{\splittexcontrols} we can influence the way +%D control characters are processed in macro names. By default, +%D the \type{^^} part is uncolored. When this boolean is set to +%D false, they get the same color as the other characters. + +\doglobal\newif\ifsplitTEXcontrols \global\splitTEXcontrolstrue + +%D The next boolean is used for internal purposes only and +%D keeps track of the length of the name. Because two||character +%D sequences starting with a backslash are always seen as a +%D command. + +\doglobal\newif\iffirstinTEXcommand + +%D We use a maximum of four colors because more colors will +%D distract too much. In the following table we show the +%D logical names of the colors, their color and \cap{RGB} values. +%D +%D \placetable{geen} +%D \starttable[|l|l|c|c|c|c|] +%D \HL +%D \FC\bf identifier \MC\bf color \MC\bf r \MC\bf g \MC\bf b \MC\bf bw \LC\SR +%D \HL +%D \FC prettyone \MC red \MC 0.9 \MC 0.0 \MC 0.0 \MC 0.30 \LC\FR +%D \FC prettytwo \MC green \MC 0.0 \MC 0.8 \MC 0.0 \MC 0.45 \LC\MR +%D \FC prettythree \MC yellow \MC 0.0 \MC 0.0 \MC 0.9 \MC 0.60 \LC\MR +%D \FC prettyfour \MC blue \MC 0.8 \MC 0.8 \MC 0.6 \MC 0.75 \LC\LR +%D \HL +%D \stoptable +%D +%D Outside \CONTEXT\ these colors are defined in +%D \type{verb-ini}, in \CONTEXT\ their definitions can be found +%D in \type{core-ver}, where in fact we use the color palet +%D mechanism. That way we can use different schemes i a quite +%D natural way. + +\gdef\setupprettyTEXtype + {\def\prettyidentifier{TEX}% + \global\inTEXcommandfalse + \global\firstinTEXcommandfalse + \global\inTEXparameterfalse + \TEXsetcontrols + \TEXsethandlers + \TEXsetspecials} + +\gdef\TEXsetcontrols + {\saveprettycontrols + \everyprettyend + {\TEXendofcommand + \TEXendofparameter}% + \def\obeyedspace + {\TEXendofcommand + \TEXendofparameter + \oldobeyedspace}% + \def\flushrestofverbatimline + {\TEXendofcommand + \TEXendofparameter}% + \let\obeytabs=\ignoretabs} + +\gdef\TEXsetspecials + {\setpretty`\$=1 \setpretty`\{=1 \setpretty`\}=1 + \setpretty`\[=2 \setpretty`\]=2 \setpretty`\(=2 \setpretty`\)=2 + \setpretty`\==2 \setpretty`\<=2 \setpretty`\>=2 \setpretty`\"=2 + \setpretty`\-=3 \setpretty`\+=3 \setpretty`\/=3 + \setpretty`\|=3 \setpretty`\%=3 \setpretty`\'=3 \setpretty`\`=3 + \setpretty`\_=3 \setpretty`\&=3 \setpretty`\~=3 + \setpretty`\.=4 \setpretty`\,=4 \setpretty`\:=4 \setpretty`\;=4 \setpretty`\*=4 + \setpretty`\#=5 + \setpretty`\1=6 \setpretty`\2=6 \setpretty`\3=6 \setpretty`\4=6 \setpretty`\5=6 + \setpretty`\6=6 \setpretty`\7=6 \setpretty`\8=6 \setpretty`\9=6 \setpretty`\0=6 + \setpretty`\\=7 + \setpretty`\^=8 + \setpretty`\A=9 \setpretty`\B=9 \setpretty`\C=9 \setpretty`\D=9 \setpretty`\E=9 + \setpretty`\F=9 \setpretty`\G=9 \setpretty`\H=9 \setpretty`\I=9 \setpretty`\J=9 + \setpretty`\K=9 \setpretty`\L=9 \setpretty`\M=9 \setpretty`\N=9 \setpretty`\O=9 + \setpretty`\P=9 \setpretty`\Q=9 \setpretty`\R=9 \setpretty`\S=9 \setpretty`\T=9 + \setpretty`\U=9 \setpretty`\V=9 \setpretty`\W=9 \setpretty`\X=9 \setpretty`\Y=9 + \setpretty`\Z=9 + \setpretty`\a=9 \setpretty`\b=9 \setpretty`\c=9 \setpretty`\d=9 \setpretty`\e=9 + \setpretty`\f=9 \setpretty`\g=9 \setpretty`\h=9 \setpretty`\i=9 \setpretty`\j=9 + \setpretty`\k=9 \setpretty`\l=9 \setpretty`\m=9 \setpretty`\n=9 \setpretty`\o=9 + \setpretty`\p=9 \setpretty`\q=9 \setpretty`\r=9 \setpretty`\s=9 \setpretty`\t=9 + \setpretty`\u=9 \setpretty`\v=9 \setpretty`\w=9 \setpretty`\x=9 \setpretty`\y=9 + \setpretty`\z=9 + \setpretty`\?=9 \setpretty`\!=9 \setpretty`\@=9 + \setpretty`\%=0 } + +\gdef\TEXsethandlers + {\installprettyhandler 1 \TEXtypeone + \installprettyhandler 2 \TEXtypetwo + \installprettyhandler 3 \TEXtypethree + \installprettyhandler 4 \TEXtypefour + \installprettyhandler 5 \TEXtypefive + \installprettyhandler 6 \TEXtypesix + \installprettyhandler 7 \TEXtypeseven + \installprettyhandler 8 \TEXtypeeight + \installprettyhandler 9 \TEXtypenine + \installprettyhandler 0 \TEXtypezero} + +\doglobal\newif\ifinTEXcommand +\doglobal\newif\ifinTEXparameter + +\gdef\TEXbeginofcommand + {\TEXendofparameter + \ifinTEXcommand + \else + \global\inTEXcommandtrue + \global\firstinTEXcommandtrue + \beginofpretty[\!!prettytwo]% + \fi} + +\gdef\TEXendofcommand + {\ifinTEXcommand + \endofpretty + \global\inTEXcommandfalse + \global\firstinTEXcommandfalse + \fi} + +\gdef\TEXbeginofparameter + {\TEXendofcommand + \ifinTEXparameter + \else + \global\inTEXparametertrue + \beginofpretty[\!!prettythree]% + \fi} + +\gdef\TEXendofparameter + {\ifinTEXparameter + \endofpretty + \global\inTEXparameterfalse + \fi} + +\gdef\ifnotfirstinTEXcommand#1 + {\iffirstinTEXcommand + \getpretty{#1}% + \TEXendofcommand + \else} + +\gdef\TEXtypeone#1% + {\ifnotfirstinTEXcommand#1 + \TEXendofcommand + \TEXendofparameter + \beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty + \fi} + +\gdef\TEXtypetwo#1% + {\ifnotfirstinTEXcommand#1 + \TEXendofcommand + \TEXendofparameter + \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty + \fi} + +\gdef\TEXtypethree#1% + {\ifnotfirstinTEXcommand#1 + \TEXendofcommand + \TEXendofparameter + \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty + \fi} + +\gdef\TEXtypefour#1% + {\ifnotfirstinTEXcommand#1 + \TEXendofcommand + \TEXendofparameter + \getpretty{#1}% + \fi} + +\gdef\TEXtypefive#1% + {\ifnotfirstinTEXcommand#1 + \TEXbeginofparameter + \getpretty{#1}% + \fi} + +\gdef\TEXtypesix#1% + {\ifnotfirstinTEXcommand#1 + \ifinTEXparameter + \ifsplitTEXparameters + \TEXendofparameter + \getpretty{#1}% + \else + \getpretty{#1}% + \TEXendofparameter + \fi + \else + \TEXendofcommand + \getpretty{#1}% + \fi + \fi} + +\gdef\TEXtypeseven#1% + {\ifnotfirstinTEXcommand#1 + \TEXbeginofcommand + \getpretty{#1}% + \fi} + +\gdef\TEXtypeeightA#1#2% + {\getprettydata{#2}% + \ifnum\prettytype=80 + \TEXendofparameter + \ifsplitTEXcontrols + \ifinTEXcommand + \def\next{\TEXendofcommand\getpretty{#1}\getpretty{#1}\TEXbeginofcommand}% + \else + \def\next{\getpretty{#1}\getpretty{#1}}% + \fi + \else + \def\next{\getpretty{#1}\getpretty{#1}}% + \fi + \else + \def\next{\TEXtypeeightB{#1}#2}% + \fi + \next} + +\gdef\TEXtypeeightB + {\TEXendofparameter + \ifinTEXcommand + \firstinTEXcommandfalse + \expandafter\getpretty + \else + \expandafter\TEXtypethree + \fi} + +\gdef\TEXtypeeight + {\handlenextnextpretty\TEXtypeeightA\TEXtypeeightB} + +\gdef\TEXtypenine + {\TEXendofparameter + \global\firstinTEXcommandfalse + \getpretty} + +%\gdef\TEXtypezero +% {\disableprettyafterwards % only when enabled of course +% \ifnewpretty\expandafter\handlenewpretty\fi\TEXtypethree} + +\long\gdef\naturalTEXtext#1#2\relax% local alternative for \naturaltextext + {\convertargument#2\to\ascii + \doifinstringelse{\letterpercent}{\ascii} + {\long\def\next{\TEXtypethree{#1}#2\relax}} + %{\long\def\next{\bgroup\prettynaturalfont\restorecatcodes\scantokens{\ignorespaces#2}\egroup}}% + {\long\def\next{\bgroup\prettynaturalfont{\restorecatcodes\scantokens{\ignorespaces#2}}\egroup}}% + \next} + +\gdef\TEXtypezero + {\ifnaturaltextext + \expandafter\naturalTEXtext + \else + \disableprettyafterwards % only when enabled of course + \expandafter\handlenewpretty\expandafter\TEXtypethree + \fi} + +\protect \endinput |