• No results found

Index of /CTAN/macros/latex/contrib/gmverb

N/A
N/A
Protected

Academic year: 2022

Share "Index of /CTAN/macros/latex/contrib/gmverb"

Copied!
22
0
0

Full text

(1)

Grzegorz Murzynowski

The gmverb Package

*

Copyright © 2005, 2006, 2007, 2008, 2009, 2010, 2011 by Grzegorz ‘Natror’ Murzynowski

natror (at) gmail (dot) com

This program is subject to the LATEX Project Public License.

See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.htmlfor the details of that license.

LPPLstatus: ”author-maintained”.

For documentation please refer to the file(s) gmverb.{sty,pdf}.

49\NeedsTeXFormat{LaTeX2e}

50\ProvidesPackage{gmverb}

51 [2011/10/14 v0.98 After shortvrb (FM) but my way (GM)]

54⟨∗master

(A handful of meta-settings skipped)

83/master

Contents

Intro, usage . . . . 1 The package options . . . . 4 Installation . . . . 4 Contents of thegmverb.ziparchive . 4 Compiling of the documentation . . . 4 The code. . . . 5 Preliminaries . . . . 5 The breakables . . . . 5

Almost-Knuthian\ttverbatim. . . . 6 The core: fromshortvrb. . . . 7 doc- andshortvrb-compatibility . . . 14 Grey visible spaces . . . . 14 Verbatim specials—CSes in verbatims 15 Partial\verbin arguments . . . . 17 Change History . . . . 18 Index . . . . 20

Intro, usage

This package redefines the \verb command and the verbatim environment so that the verbatim text can break into lines, with % (or another character chosen to be the com- ment char) as a ‘hyphen’. Moreover, it allows the user to define their own verbatim-like environments provided their contents would be not horribly long (as long as a macro’s argument may be at most).

This package also allows the user to declare a chosen char(s) as a ‘short verb’ e.g., to write|\a\verbatim\example| instead of \verb|\a\verbatim\example|.

* This file has version number dated .

(2)

Thegmverb package redefines the\verbcommand and theverbatimenvironment in such a way that , { and \ are breakable, the first with no ‘hyphen’ and the other two with the comment char as a hyphen. Ịẹ, {⟨subsequent text⟩}breaks into {%

⟨subsequent text⟩}and⟨text⟩\mymacrobreaks into⟨text⟩%

\mymacrọ

(If you don’t like line breaking at backslash, there’s the \nobreakbslash declaration

\nobreakbslash

(observing the common scoping rules, hence OCSR) and an analogous declaration for the left brace: \nobreaklbracẹ)

\nobreaklbrace

The default ‘hyphen’ is%since it’s the default comment char. If you wish another char to appear at the line break, use the \VerbHyphen declaration that takes \⟨char⟩ as the

\VerbHyphen

only argument. This declaration is always global.

Another difference is the \verbeolOK declaration (OCSR). Within its scope, \verb

\verbeolOK

allows an end of a line in its argument and typesets it just as a spacẹ

As in the standard version(s), the plain \verbtypesets the spaces blank and \verb⋆

makes them visiblẹ

Moreover,gmverb provides the \MakeShortVerbmacro that takes a one-char control

\MakeShortVerb

sequence as the only argument and turns the char used into a short verbatim delimiter, ẹg., after\MakeShortVerb⋆\|(as you guess, the declaration has its starred version, which is for visible spaces, and the non-starred for the spaces blank) you may type|\mymacro|to get\mymacroinstead of typing\verb+\mymacrợ Because the char used in this example is my favourite and used just this way by DEK in the The TEX book’s format, gmverb provides a macro\dekclubs as a shorthand for\MakeShortVerb(⋆)\|.

\dekclubs

Be careful because such active chars may interfere with other things, ẹg. | with the tikz packagẹ If this happens, you can declare \DeleteShortVerb\| and the previous

\DeleteShortVerb

meaning of the char used shall be restored.

One more difference between gmverb and shortvrb is that the chars\activeated by

\MakeShortVerb in the math mode behave as if they were ‘other’, so you may type ẹg.,

$2|0$to get 2|0and+ \activeated this way is in the math mode typeset properly etc.

However, if you don’t like such a conditional behaviour, you may specify some$$$$’s (any nonempty seQuence) mixed with star(s) if you wish as an optional argument to keep the short-verbatim char behave as short-verbatim also in math modẹ

For compatibility withgmdoc and for convenience there is a shorthand for that pro- vided, \OldMakeShortVerb.

\OldMakeShortVerb

There’s one more declaration provided by gmverb: \dekclubs, which is a short-

\dekclubs

hand for \MakeShortVerb\|, \dekclubs⋆ for \MakeShortVerb⋆\| and \olđekclubs

\dekclubs⋆

\olđekclubs for \OldMakeShortVerb\|.

There’s one more declaration, \edverbsthat makes \[ checks if the next token is an

\edverbs

active char and opens an \hboxif sọ That is done so that you can write (in \edverbs’

and\dekclubs’ scope)

\[|<verbatim stuff>|\]

instead of

\[\hbox{|<verbatim stuff>|}\]

to get a displayed shortverb.

Both versions of\dekclubs OCSR.

Theverbatimenvironment inserts\topsepbefore and after itself, just as in standard version (as if it was a list).

In August 2008 Will Robertson suggested grey visible spaces for gmdoc. I ađed a respective option togmdoc but I find them so nice that I want to make them available for all verbatim environments so I bring here the declaration\VisSpacesGreỵ It redefines

\VisSpacesGrey

only the visible spaces so affects \verb⋆ and verbatim⋆ and not the unstarred versions.

The colour of the visible spaces is named visspacesgreyand you can redefine it xcolor visspacesgrey

(3)

way.

We also provide the\verbatimspecialsdeclaration that takes six arguments:

\verbatimspecials

#1 m a char for verbatim escape char (for catcode 0), has to be unbraced1,

#2 m a char for group starter (for catcode 1), has to be unbraced,

#3 m a char for group ender (for catcode 2), has to be unbraced,

[#4] (optional) a char for verbatim math shift (for catcode 3); it has to be in square brackets if present. If absent, nothing is set for the verbatim math shift,

[#5] (optional) a char for the shorthand for \metachar; it has to be in square brackets if present. If provided, e.g., › as I suggest in \GMverbatimspecials, then it itself becomes an active char let-equal to \meta, and a CS made of it, \› in this example, becomes\string.

{#6} b optional in curly braces, additional stuff (commands) to be executed in a verbatim.

All the specials defined this way, except the meta char, if preceded with the escape char, will be typeset verbatim.

For example, after telling TEX

\verbatimspecials ⁄ « » [ ¿ ] [ › ] {\def\|{$\vert$}}

(the slash is Unicode Fractional Slash, spaces are ignored) you can write

|\macro⁄arg«arg. ¿n+1¿»\›[No›]Value›(T⁄|F›)|

to get

\macro{⟨arg. n+ 1}\[No]Value(T|F)

Note also that ⁄| is a control sequence so it doesn’t delimit the short verbatim |’s argument.

The\verbatimspecialsdeclaration OCSR. Subsequent uses of it override the previ- ous settings. If you specified the optionals at first and then specify\verbatimspecials without optionals, the previous optional settings are forgotten.

To turn the ‘verbatim specials’ off write\noverbatimspecials, whichOCSRtoo.

\noverbatimspecials

Note that although we don’t provide a ‘verbatim superscript’ nor ‘verbatim subscript’, you have the\sups and\subsCS’es defined bygmutils.

\sups

\subs The 4th argument for the math shift is optional because you can use LATEX’s\( and

\(\) \).

The\verbatimspecials declaration goes a step further than LATEX’salltt and Til alltt

Tantau’sbeamer’ssemiverbatim environments. To get their effect, declare semiverbatim

\verbatimspecials\{}

There is something for verbatims in arguments of commands: \scanverb[⋆]{⟨text⟩}.

\scanverb

However there are some limitations: if % is the comment char (which is usual situation), then you cannot use %in⟨text⟩, or rather, %will act as comment char anyway. Moreover, spaces are ignored. This last limitation may be worked around if you declare \verbatim¦

specials, say⁄(fraction slash) as the escape char. Then you can use⁄ to put a space which will be typeset blank in the unstarred version and visible with star.

Not so long ago I started to use the ‘broken bar’ (U+00A6,¦) character as a hyphen in hyperlinks, because it seems not to occur in hyperlinks at all unlike hyphen. I suggest the same char for verbatims, but if you don’t like it, there’s the\verbDiscretionaryHy¦

\verbDiscretionaryHyphen

phendeclaration that takes two arguments. Broken bar is declared as

\verbDiscretionaryHyphen{"A6}{¦}

1 To be precise, the arguments cannot be wrapped in curly braces because those are recatcoded to

‘other’. But if you make some other pair of chars category 1 and 2 that are not on the\dospecialslist, then you can wrap the arguments in those chars. But what for?

(4)

Since version 0.95 (August 2010) this package also provides the\VerbatimPitch dec- laration that modifies theverbatimenvironments and derivatives so that the environment contents (recatcoded, i.e. “sanitised”) are wrapped in the macro\VerbatimContentsand therefore available after environment’s end (after \endverbatim to be precise, so also in the end-def of a derivative verbatim).

This may be useful for TEXnical examples: you can rescan the contents of a verbatim with \scantokens and execute/typeset it. Such a thing is done in the gmdoc package, see the verbatim@penvironment.

The package options

As many good packages, this also does not support any options.

Installation

Unpack the\jobname-tds.ziparchive (this is an archive that conforms theTDSstandard, seeCTAN/tds/tds.pdf) in some texmf directory or just put the gmutils.stysomewhere in the texmf/\:tex/\:latexbranch. Creating a texmf/\:tex/\:latex/\:gmdirectory may be advisable if you consider using other packages written by me.

Then you should refresh your TEX distribution’s files’ database most probably.

Contents of the gmverb.zip archive

The distribution of the gmutils package consists of the following three files and a TDS- compliant archive.

gmverb.sty README gmverb.pdf gmverb.tds.zip

Compiling of the documentation

The last of the above files (the .pdf, i.e., this file) is a documentation compiled from the .sty file by running LATEX on the gmverb.styfile twice (xelatex gmverb.styin the directory you wish the documentation to be in, you don’t have copy the .\gmdExt file there, TEX will find it), then MakeIndex on the \jobname.idx file, and then LATEX on

\jobname.\gmdExtonce more.

MakeIndex shell commands:

makeindex -r gmverb

makeindex -r -s gmglo.ist -o gmverb.gls gmverb.glo

The -r switch is to forbid MakeIndex to make implicit ranges since the (code line) numbers will be hyperlinks.

Compiling the documentation requires the packages: gmdoc (gmdoc.sty and gm- docc.cls), gmverb.sty, the gmutils bundle, gmiflink.sty and also some standard pack- ages: hyperref.sty, color.sty,geometry.sty, multicol.sty, lmodern.sty,fontenc.stythat should be installed on your computer by default.

Moreover, you should put thegmglo.istfile, a MakeIndex style for the changes’ history, into sometexmf/makeindex(sub)directory.

Then you should refresh your TEX distribution’s files’ database most probably.

If you had not installed themwclsclasses (available onCTANand present in TEX Live e.g.), the result of your compilation might differ a bit from the .pdf provided in this .zip archive in formatting: If you had not installedmwcls, the standardarticle.clsclass would be used.

(5)

The code Preliminaries

466 \RequirePackage{gmcommand}[2011/10/12]

For \firstofone, \afterfi, \gmobeyspaces, \@ifnextcat, \foone and

\noexpand’s and \expandafter’s shorthands\@nx and\@xa resp. and

\DeclareCommand.

Someone may want to use another char for comment, but we assume here ‘orthodoxy’.

Other assumptions in gmdocare made. The ‘knowledge’ what char is the comment char is used to put proper ‘hyphen’ when averbatimline is broken.

480 \let\verbhyphen\xiipercent

\verbhyphen

Provide a declaration for easy changing it. Its argument should be of \⟨char⟩ form (a ⟨char⟩12 is also allowed).

486 \def\VerbHyphen#1{%

\VerbHyphen

487 {\escapechar\m@ne

488 \@xa\gdef\@xa\verbhyphen\@xa{\string#1}}}

As you see, it’s always global.

The breakables

Let’s define a\discretionary left brace such that if it breaks, it turns {% at the end of line. We’ll use it in almost Knuthian\ttverbatim—it’s part of this ‘almost’.

496 \def\breaklbrace{%

\breaklbrace

497 \discretionary{\type@lbrace\verbhyphen}{}{\type@lbrace}%

498 \yeshy}

500 \foone{\catcode`\[=1 \catcode`\{=\active \catcode`\]=2 }%

501 [%

502 \def\dobreaklbrace[\catcode`\{=\active

\dobreaklbrace

503 \def{%

504 [\breaklbrace\gm@lbracehook]]%

\breaklbrace

505 ]

Now we only initialise the hook. Real use of it will be made ingmdoc.

509 \relaxen\gm@lbracehook

The\bslashmacro defined below I use also in more ‘normal’ TEXing, e.g., to\typeout some\outer macro’s name.

514 \foone{\catcode`\!=0 \@makeother\\}%

515 {%

516 !def!bslash{\}%

\bslash

517 }% of\foone.

520 \def\breakbslash{%

\breakbslash

521 \discretionary{\verbhyphen}%

522 {\type@bslash}{\type@bslash}\yeshy% it seems that we allow hyphenation after backslash but hyphenation will be allowed iff \hyphenchar\font is nonnega- tive.

525 }% of\breakbslash.

Sometimes line breaking at a backslash may be unwelcome. The basic case, when the firstCS in a verbatim breaks at the line end leaving there %, is covered by line 1006. For the others let’s give the user a counter-crank:

(6)

531 \pdef\nobreakbslash{\def\breakbslash{\type@bslash\yeshy}}% to use due to

\nobreakbslash

\breakbslash the common scoping rules. But for the special case of a backslash opening a verbatim scope, we deal specially in the line 1006.

Analogously, let’s provide a possibility of ‘nobreaking’ the left brace:

538 \pdef\nobreaklbrace{\def\breaklbrace{\type@lbrace\yeshy}}

\nobreaklbrace

\breaklbrace

541 \foone{\catcode`\!=0 \catcode`\\=\active}%

542 {%

543 !def!dobreakbslash{!catcode`!\=!active !def\{!breakbslash}}%

\dobreakbslash

\breakbslash 544 }

The macros defined below, \visiblebreakspaces and \xiiclub we’ll use in the al- most Knuthian macro making verbatim. This ‘almost’ makes a difference.

551 \def\breakablevisspace{\discretionary{\visiblespace}{}{\visiblespace}}

\breakablevisspace

The\visiblespacemacro is\letingmutilsto\xiispaceor to\xxt@visiblespace of xltxtra if available.

555 \foone\obeyspaces% it’s just re\catcode’ing.

556 {%

557 \newcommand⋆\dobreakvisiblespace{\def {%

\dobreakvisiblespace

\breakablevisspace}\obeyspaces}% \defing it caused a stack overflow

\breakablevisspace

disaster with gmdoc.

559 \newcommand⋆\dobreakblankspace{\let =\space\obeyspaces}%

\dobreakblankspace

560 }

563 \foone{\@makeother\|}{%

564 \def\xiiclub{|}}

\xiiclub

Almost-Knuthian \ttverbatim

\ttverbatim comes fromThe TEX book too, but I add into it a LATEX macro changing the \catcodes and make spaces visible and breakable and left braces too.

573 \pdef\ttverbatim{%

\ttverbatim

574 \let\do=\do@noligs \verbatim@nolig@list

575 \let\do=\@makeother \dospecials

576 \dobreaklbrace\dobreakbslash

577 \dobreakspace

578 \makeatletter

582 \ifhmode

583 \setspaceskip

584 \fi

585 \verbatimfont

586 \xdef\gmv@storedhyphenchar{\the\hyphenchar\font}%

Assignment of the hyphenchar is always global so let the above edefinition be also such.

589 \hyphenchar\font=\gmv@hyphenchar

590 \ttverbatim@hook

591 }% of\ttverbatim

(2010/08/14, v0.993:) rigid \tt in \ttverbatim changed to redefinable \verbatim¦

font due to absurd problems with bad fontifying of gmdoc

597 \def\verbatimfont{\tt}

\verbatimfont

(7)

While typesetting stuff in the QXfontencoding I noticed there were no spaces in ver- batims. That was because the QXencoding doesn’t have any reasonable char at position 32. So we provide a hook in the very core of the verbatim making macros to set proper fontencoding for instance.

604 \@emptify\ttverbatim@hook

607 \def\VerbT1{\def\ttverbatim@hook{\fontencoding{T1}\selectfont}}

\VerbT1

\VerbT

\ttverbatim@hook We wish the visible spaces to be the default.

611 \let\dobreakspace=\dobreakvisiblespace

The core: from shortvrb

The below is copied verbatim ;-) fromdoc.pdfand then is added my slight changes.

620 \DeclareCommand \MakeShortVerb{

\MakeShortVerb

621 #1 Q {⋆$} %

622 #2 m % the char to be made shortverb. Has to be provided as \⟨char⟩ (back- slashed).

623 }{%

624 \gmu@ifstrany {⋆}{#1}

625 {\def\@shortvrbdef{\verb⋆}}%

\@shortvrbdef

626 {\def\@shortvrbdef{\verb}}

\@shortvrbdef

628 \gmu@ifstrany {$}{#1}%

Depending on whether$ was specified as optional argument to \MakeShortVerb, we define theCS \gmV@mm\⟨the char⟩ as either sth. special or sth. usual in the math mode:

635 {\gmV@MakeShortVerbAlsoInMath #2 }% extracted to a macro because we reassign it while typesetting LATEX 2ε Sources.

637 {\gmV@MakeShortVerbNotInMath #2}%

639 \@MakeShortVerb #2%

640 }% of\MakeShortVerb.

642 \pdef\gmV@MakeShortVerbAlsoInMath #1{% If some dollars were specified (paid ;-)

\gmV@MakeShortVerbAlsoInMath

) in#1, then we direct the shortverb char to behave in the math mode the same as in normal text.

646 \Name\glet {gmV@mm\string#1}\@firstofone

647 }%

649 \pdef\gmV@MakeShortVerbNotInMath #1{% If no dollar was paid ;-) in #1, we get

\gmV@MakeShortVerbNotInMath

vicious and define shortverb to act in math mode as normal (other) char.

652 \edef\gmV@tempA {\strip@bslash {#1}}%

654 \@XA {%

655 \Name\gdef {gmV@mm\string#1}}%

656 \@xa{\@xa % these two expandafters serve to get “other” version of (unbackslashed)

#1.

658 \ifmmode \gmV@tempA

Two subsequent expandafters become part of the definition and serve to gobble or execute the short-verbatim macro.

661 \@xa \@gobble

662 \else

663 \@xa \@firstofone

664 \fi

665 }%

(8)

666 }% of if to be normal in math mode

We store the original catcode of a shortverb char in aCS\gmV@cc\⟨the char⟩. Moreover, if the char is originally active (of catcode 13), then we create anotherCSto store its original meaning,\gmV@ac\⟨the char⟩.

674 \def\@MakeShortVerb#1{%

\@MakeShortVerb

675 \@xa\ifx\csname gmV@cc\string#1\endcsname\relax

676 \@shortvrbinfo{Made }{#1}\@shortvrbdef

677 \add@special{#1}%

678 \AddtoPrivateOthers#1% a macro to bereally defined ingmdoc.

680 \@xa

681 \xdef\csname gmV@cc\string#1\endcsname{\the\catcode`#1}%

682 \begingroup

683 \catcode`\~\active \lccode`\~=`#1%

684 \lowercase{%

685 \Name\glet {ac\string#1}~%

686 \@xa\gdef\@xa~\@xa{%

687 \csname \strip@bslash{\gmV@mm}\string#1\endcsname

688 {\@shortvrbdef~}%

689 }% of active #1 def

690 }% of lowercase

691 \endgroup

692 \global\catcode`#1\active

693 \else

694 \@shortvrbinfo\@empty{#1 already}{\@empty\verb(⋆)}%

695 \fi

696 }% of\@MakeShortVerb.

699 \def\DeleteShortVerb#1{%

\DeleteShortVerb

700 \@xa\ifx\csname gmV@cc\string#1\endcsname\relax

701 \@shortvrbinfo\@empty{#1 not}{\@empty\verb(⋆)}%

702 \else

703 \@shortvrbinfo{Deleted }{#1 as}{\@empty\verb(⋆)}%

704 \rem@special{#1}%

705 \global\catcode`#1\csname gmV@cc\string#1\endcsname

706 \global \@xa\let \csname gmV@cc\string#1\endcsname \relax

707 \ifnum\catcode`#1=\active

708 \begingroup

709 \catcode`\~\active \lccode`\~`#1%

710 \lowercase{%

711 \global\@xa\let\@xa~%

712 \csname gmV@ac\string#1\endcsname}%

713 \endgroup

714 \fi

715 \fi

716 }

My little addition

720 \@ifpackageloaded{gmdoc}{%

721 \def\gmv@packname{gmdoc}}{%

\gmv@packname

722 \def\gmv@packname{gmverb}}

\gmv@packname

725 \def\@shortvrbinfo#1#2#3{%

\@shortvrbinfo

726 \PackageInfo{\gmv@packname}{%

(9)

727 ^^J\@empty #1\@xa\@gobble\string#2 a short reference

728 for \@xa\string#3}}

731 \def\add@special#1{%

\add@special

732 \rem@special{#1}%

733 \@xa\gdef\@xa\dospecials\@xa

734 {\dospecials \do #1}%

735 \@xa\gdef\@xa\@sanitize\@xa

736 {\@sanitize \@makeother #1}}

For the commentary on the below macro see thedoc package’s documentation. Here let’s only say it’s just amazing: so tricky and wicked use of \do. The internal macro

\rem@special defines \do to expand to nothing if the \do’s argument is the one to be removed and to unexpandableCSes\doand⟨\do’s argument⟩otherwise. With\dodefined this way the entire list is just globally expanded itself. Analogous hack is done to the

\@sanitizelist.

747 \def\rem@special#1{%

\rem@special

748 \def\do##1{%

749 \ifnum`#1=`##1 \else \@nx\do\@nx##1\fi

750 }%

751 \xdef\dospecials{\dospecials}%

752 \begingroup

753 \def\@makeother##1{%

754 \ifnum`#1=`##1 \else \@nx\@makeother\@nx##1\fi}%

755 \xdef\@sanitize{\@sanitize}%

756 \endgroup}

And now the definition ofverbatimitself. As you’ll see (I hope), the internal macros of it look for the name of the current environment (i.e., \@currenvir’s meaning) to set their expectation of the environment’s \end properly. This is done to allow the user to define his/her own environments with \verbatim inside them. I.e., as with the verba- tim package, you may write \verbatim in the begin definition of your environment and then necessarily \endverbatim in its end definition. Of course (or maybe surprisingly), the commands written in the begin definition after \verbatim will also be executed at

\begin{⟨environment⟩}.

769 \def\verbatim{%

verbatim

\verbatim 770 \edef\gmv@hyphenpe{\the\hyphenpenalty}%

771 \edef\gmv@exhyphenpe{\the\exhyphenpenalty}%

772 \@beginparpenalty \predisplaypenalty \@verbatim

773 \frenchspacing \gmobeyspaces \@xverbatim

774 \hyphenpenalty=\gmv@hyphenpe\relax

775 \exhyphenpenalty=\gmv@exhyphenpe

776 \hyphenchar\font=\m@ne

The line below serves as the delimiter for\verbatim@PitchContents, to discard the stuff before it (see l. 850).

782 \@gobble\verbatim

783 }% in the LATEX version there’s\@vobeyspacesinstead of \gmobeyspaces.

788 \@namedef{verbatim⋆}{\@beginparpenalty \predisplaypenalty \@verbatim verbatim⋆

789 \@sxverbatim % it’s the same as \@xverbatim and defines the verbatim end (a macro delimited with \end{⟨curr.envir.⟩}).

791 }

793 \def\endverbatim{\@@par

\endverbatim

(10)

%% \hyphenchar\font=\gmv@storedhyphenchar % hyphenchar assignments are

%% % always global. And for an entire paragraph works the one last in it so we hide it.

797 \ifdim\lastskip >\z@

798 \@tempskipa\lastskip \vskip -\lastskip

799 \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip

800 \vskip\@tempskipa

801 \fi

802 \addvspace\@topsepadd

803 \@endparenv

804 }

*

807 \n@melet{endverbatim⋆}{endverbatim}

810 \begingroup \catcode `!=0 %

811 \catcode `[= 1 \catcode`]=2 %

812 \catcode`\{=\active

813 \@makeother\}%

814 \catcode`\\=\active%

815 !gdef!@xverbatim[%

\@xverbatim

816 [!endlinechar!m@ne !everyeof[!@nx]%

817 !edef!verbatim@currenvir[%

818 !@xa!scantokens!@xa[!@currenvir]%

819 ]% of \verbatim@currenvir. This macro is defined as the meaning of\@cur¦

renvir rescanned. It’s done specially for the active star in my verbatims.

% \@currenviris fully expanded but my active star is\protected.

823 !@xa]% and here a little trick with groups:

824 !@xa!def!@xa!verbatim@currenvir

825 !@xa[!verbatim@currenvir]%

826 !edef!verbatim@edef[%

827 !def!@nx!verbatim@end%

828 ####1!noexpand\end!@nx{%

829 !@xa!unexpanded!@xa[!verbatim@currenvir]%

830 }[%

831 !@nx!verbatim@PitchContents ####1%

832 !@nx!verbatim@PitchContents@Delim% added 2010/8/16

833 ####1!@nx!end[!@currenvir]]]%

834 !verbatim@edef

835 !verbatim@end]%

836 !endgroup

840 \let\@sxverbatim=\@xverbatim

\@sxverbatim

842 \def\verbatim@PitchContents@Left{%

\verbatim@PitchContents@Left

843 \long\def\verbatim@PitchContents

\verbatim@PitchContents

844 ##1\@gobble\verbatim ##2\verbatim@PitchContents@Delim

845 }

By default we make\verbatim@PitchContentsa gobbler.

848 \verbatim@PitchContents@Left {}

850 \pdef\VerbatimPitch{%

\VerbatimPitch

(11)

But in this declaration scope we make\@xverbatim pitch the contents of verbatims in a macro. We use that ingmdocnot to repeat examples’ code.

855 \verbatim@PitchContents@Left {%

856 \gdef\VerbatimContents{##2}%

857 }%

859 }% of\VerbatimThrow.

F. Mittelbach says the below is copied almost verbatim from LATEX source, modulo

\check@percent.

864 \def\@verbatim{%

\@verbatim

Originally here was just\trivlist \item[], but it worked badly in my document(s), so let’s take just highlights of if.

870 \parsep\parskip From\@trivlist:

872 \if@noskipsec \leavevmode \fi

873 \@topsepadd \topsep

874 \ifvmode

875 \advance\@topsepadd \partopsep

876 \else

877 \unskip \par

878 \fi

879 \@topsep \@topsepadd

880 \advance\@topsep \parskip

881 \@outerparskip \parskip

(End of\trivlistlistand \@trivlisthighlights.)

883 \@@par\addvspace\@topsep

884 \if@minipage\else\vskip\parskip\fi%

885 \advance\@totalleftmargin\verbatimleftskip

886 \parskip\verbatimparskip % added 2010/6/2

887 \raggedright

888 \leftskip\@totalleftmargin% so many assignments to preserve the list think- ing for possible future changes. However, we may be sure no internal list shall use \@totalleftmarginas far as no inner environments are possible in verbatim[⋆].

892 \@@par% most probably redundant.

893 \@tempswafalse

894 \def\par{% but I don’t want the terribly ugly empty lines when a blank line is met.

Let’s make them gmdoc-like i.e., let a vertical space be added as in between stanzas of poetry. Originally \if@tempswa\hbox{}\fi, in my version will be

899 \ifvmode\if@tempswa\addvspace\stanzaskip\@tempswafalse\fi\fi

900 \@@par

901 \penalty\interlinepenalty \check@percent}%

902 \everypar{%

\@tempswatrue\hangindent\verbatimhangindent\hangafter\@ne}% since several chars are breakable, there’s a possibility of breaking some lines. We wish them to be hanging indented.

905 \obeylines

906 \ttverbatim

907 \verbatim@specials

(12)

908 }

910 \@ifundefined{stanzaskip}{\newlength\stanzaskip}{}

\stanzaskip

911 \stanzaskip=\medskipamount

913 \newskip\verbatimleftskip

\verbatimleftskip

915 \verbatimleftskip\leftmargini

917 \newskip\verbatimhangindent

\verbatimhangindent

919 \verbatimhangindent=3em

921 \newskip\verbatimparskip

\verbatimparskip

922 \verbatimparskip\z@skip

924 \providecommand⋆\check@percent{}

\check@percent

In thegmdocpackage shall it be defined to check if the next line begins with a comment char.

Similarly, the next macro shall in gmdoc be defined to update a list useful to that package. For now let it just gobble its argument.

931 \providecommand⋆\AddtoPrivateOthers[1]{}

\AddtoPrivateOthers

Both of the above are\provided to allow the user to loadgmverbaftergmdoc(which would be redundant since gmdoc loads this package on its own, but anyway should be harmless).

Let’s define the ‘short’ verbatim command.

940 \def\verb{%

\verb⋆

\verb 941 \relax\ifmmode\hbox\else\leavevmode\null\fi

942 \bgroup

943 \ttverbatim

944 \verbatim@specials

945 \gm@verb@eol

946 \gmu@ifstar

947 {\verb@lasthook\@sverb@chbsl}%

948 {\gmobeyspaces\frenchspacing\verb@lasthook\@sverb@chbsl}}% in the LATEX version there’s\@vobeyspacesinstead of \gmobeyspaces.

952 \emptify\verb@lasthook

954 \def\@sverb@chbsl#1{\@sverb#1\check@bslash}

\@sverb@chbsl

957 \def\@def@breakbslash{\breakbslash}% because \ is \defined as \breakbslash

\@def@breakbslash

not \let.

For the special case of a backslash opening a (short) verbatim, in which it shouldn’t be breakable, we define the checking macro.

963 \DeclareCommand\DefineTypeChar{mmo}{%

\DefineTypeChar

% #1 m the char as a CS,

% #2 m short name of the char.

% [#3] o the cs of the char in ‘other’ catcode.

970 \@namedef{gmu@#2wd@name}{#2 wd of

971 \@xa\meaning\the\font\space at \detoken@xa\f@size pt}

973 \@namedef{gmu@measure#2}{%

974 \unless\ifcsname\csname gmu@#2wd@name\endcsname\endcsname

(13)

975 \gmu@measurewd{#1}% \edefs \gmu@tempaas the width of the char and\gmu@tempb as the width of the char among 20 copies of itself.

978 \@xa\gn@melet\csname gmu@#2wd@name\endcsname{gmu@tempb}% here we let the CS with the name contained in \gmu@⟨char-name⟩wd@name to the ex- panded value of width of the char measured among copies of it.

982 \fi

983 }% of\gmu@measure⟨char-name⟩.

985 \@nameedef{type@#2}{%

986 \@nx\leavevmode

987 \@xanxcs{gmu@measure#2}%

988 \hbox to \@nx\csname

989 \@xanxcs{gmu@#2wd@name}\@nx\endcsname

990 {\gmuIfValueTF{#3}{\@nx#3}{\@xanxcs{#2}}%

991 \@nx\hss}%

992 }% of\type@⟨char-name⟩,

993 }% of\DefineTypeChar.

995 \DefineTypeChar\\{bslash}% this defines\type@bslashand its aides\gmu@measurebslash and \gmu@bslashwd@name.

998 \DefineTypeChar\{{lbrace}[\xiilbrace]% this defines\type@lbraceand its aux- ilia analogous to the above.

1001\def\check@bslash{%

\check@bslash

1002 \@ifnextchar\@def@breakbslash

1003 {\type@bslash\yeshy\@gobble}% note we allow hyphenation but actually this will have effect if \hyphenchar\fontallows hyphenation (when it’s not>0).

1006 {}}

1010\let\verb@balance@group\@empty

1013\def\verb@egroup{\global\let\verb@balance@group\@empty

\verb@egroup

%% \hyphenchar\font=\gmv@storedhyphenchar % \hyphencharbehaves like\hy¦

phenpenalty etc.: the last one in a paragraph is in charge for entire.

1017 \egroup

1018}

1022\let\gm@verb@eol\verb@eol@error

\gm@verb@eol

The latter is a LATEX 2εkernel macro that \activeates line end and defines it to close the verb group and to issue an error message. We use a separateCS’cause we are not quite positive to the forbidden line ends idea. (Although the allowed line ends with a forgotten closing shortverb char caused funny disasters at my work a few times.) Another reason is thatgmdocwishes to redefine it for its own queer purpose.

However, let’s leave my former ‘permissive’ definition under the\verb@eol name.

1034\begingroup

1035\obeylines\obeyspaces%

1036\gdef\verb@eolOK{\obeylines%

1037\def^^M{ \check@percent}%

\check@percent

1038}%

1039\endgroup

The\check@percentmacro here is\provided to be\@emptybut ingmdocemployed shall it be.

Let us leave (give?) a user freedom of choice:

(14)

1044\def\verbeolOK{\let\gm@verb@eol\verb@eolOK}

\verbeolOK

And back to the main matter,

1047\def\@sverb#1{%

1048 \catcode`#1\active \lccode`\~=`#1%

1049 \gdef\verb@balance@group{\verb@egroup

1050 \@latex@error{Illegal use of \bslash verb command}\@ehc}%

1051 \aftergroup\verb@balance@group

1052 \lowercase{\let~\verb@egroup}% here we make the delimiter to be the macro closing the verbatim group.

1054}

1056\def\verbatim@nolig@list{\do\`\do\<\do\>\do\,\do\'\do\-}

\verbatim@nolig@list

1058\def\do@noligs#1{%

\do@noligs

1059 \catcode`#1\active

1060 \begingroup

1061 \lccode`\~=`#1\relax

1062 \lowercase{\endgroup\def~{\leavevmode\kern\z@\char`#1}}}

And finally, what I thought to be so smart and clever, now is just one of many possible uses of a general almost Rainer Schöpf’s macro:

1067\def\dekclubs{\gmu@ifstar{\MakeShortVerb⋆\|}{\MakeShortVerb\|}}

\dekclubs

1068\def\olddekclubs{\OldMakeShortVerb\|}

\olddekclubs

But even if a shortverb is unconditional, the spaces in the math mode are not printed.

So,

1076\newcommand⋆\edverbs{%

\edverbs

1077 \let\gmv@dismath\[%

1078 \let\gmv@edismath\]%

1079 \def\[{%

1080 \@ifnextac\gmv@disverb\gmv@dismath}%

1081 \relaxen\edverbs}%

1083\def\gmv@disverb{%

\gmv@disverb

1084 \gmv@dismath%

1085 \hbox\bgroup\def\]{\egroup\gmv@edismath}%

1086}

doc- and shortvrb-compatibility

One of minor errors while TEXingdoc.dtxwas caused by my understanding of a ‘shortverb’

char: at my settings, in the math mode an active ‘shortverb’ char expands to itself’s ‘other’

version thanks to \string. doc/shortvrb’s concept is different, there a ‘shortverb’ char should work as usual in the math mode. So let it may be as they wish:

1099\pdef\OldMakeShortVerb{\MakeShortVerb $$}%

\OldMakeShortVerb

Grey visible spaces

In August 2008 Will Robertson suggested grey spaces for gmdoc. I added a respective option to that package but I like the grey spaces so much that I want provide them for any verbatim environments, so I bring the definition here. The declaration, if put in the preamble, postpones redefinition of \visiblespace till \begin{document} to recognise possible redefinition of it whenxltxtra is loaded.

(15)

1111\let\gmd@preambleABD\AtBeginDocument

1112\AtBeginDocument{\let\gmd@preambleABD\firstofone}

1114\RequirePackage{xcolor}% for\providecolor

1116\def\VisSpacesGrey{%

\VisSpacesGrey

1118 \providecolor{visspacesgrey}{gray}{0.5}%

1119 \gmd@preambleABD{%

1120 \edef\visiblespace{%

1121 \hbox{\@nx\textcolor{visspacesgrey}%

1122 {\@xa\unexpanded\@xa{\visiblespace}}}}%

1123 }}

Verbatim specials—CSes in verbatims

1127\pdef\verbatimspecials{% This declaration only defines a bearer of the ‘verbatim

\verbatimspecials

specials’.

% #1 m char for verbatim escape char (for catcode 0), has to be unbraced,

% #2 m char for verbatim group begin (for catcode 1), has to be unbraced,

% #3 m char for verbatim group end (for catcode 2), has to be unbraced,

% [#4] o char for verbatim math shift (for catcode 3),

% [#5] o char for a shorthand for\metachar.

% {#6} b (optional braced) additional stuff (commands) to be executed at the beginning of the verbatims.

1138 \@bsphack

1139 \begingroup

1140 \let\do\@makeother

1141 \dospecials

1142 \catcode`\ =10

1143 \verbatim@specials@iii}

1145\pdef\verbatim@specials@iii#1#2#3{% as you see, we take only first three argu-

\verbatim@specials@iii

ments in a despecialized group. It’s to avoid \futurelet of the optionals’

parser to touch (and thus spoil) subsequent token. Yes, we could handle the case of a space or single line end but handling the case of a backslash would be somewhat difficult.

1151 \endgroup

1152 \def\verbatim@specials@list{#1#2#3}%

\verbatim@specials@list

1153 \@ifnextchar[%

1154 {\begingroup\let\do\@makeother\dospecials

1155 \catcode`\ =9

1156 \verbatim@specials@iv}%

1157 {\addtomacro\verbatim@specials@list{\NoValue\NoValue}%

1158 \verbatim@specials@vi}%

1159}% of\verbatim@specials@iii.

1161\pdef\verbatim@specials@iv[#1]{%

\verbatim@specials@iv

1162 \endgroup

1163 \addtomacro\verbatim@specials@list{#1}%

1164 \@ifnextchar[%

1165 {\begingroup\let\do\@makeother\dospecials

1166 \catcode`\ =9

1167 \verbatim@specials@v}%

1168 {\addtomacro\verbatim@specials@list{\NoValue}%

1169 \verbatim@specials@vi}%

(16)

1170}% of\verbatim@specials@iv.

1172\pdef\verbatim@specials@v[#1]{%

\verbatim@specials@v

1173 \endgroup

1174 \addtomacro\verbatim@specials@list{#1}%

1175 \verbatim@specials@vi

1176}% of\verbatim@specials@v.

1178\DeclareCommand\verbatim@specials@vi\long{b}

\verbatim@specials@vi

1179{\addtomacro\verbatim@specials@list{{#1}}%

1180\@esphack}

1182\def\verbatim@specials{% this is the macro that actually sets the chars given in

\verbatim@specials

% \verbatim@specials@list as the escape char, group begin and group end.

1185 \ifdefined\verbatim@specials@list

1186 \@xa\verbatim@specials@\verbatim@specials@list

1187 \fi

1188}% of\verbatim@specials.

1190\long\def\verbatim@specials@#1#2#3#4#5#6{%

\verbatim@specials@

1191 \catcode`#1=0

1192 \protected\@namedef{#1}{#1}%

1193 \catcode`#2=1

1194 \protected\@namedef{#2}{#2}%

1195 \catcode`#3=2

1196 \protected\@namedef{#3}{#3}%

1197 \edef\gmu@tempa{\the\endlinechar}%

1198 \endlinechar\m@ne % we have to suppress adding of a line end by\scantokens since it would turn into an active char^^M and raise an error (which actually did happen).

1201 \scantokens{%

1202 #1let#1bgroup=#2%

1203 #1let#1egroup=#3%

1204 #1catcode#1backquote#1h=6#1relax%

1205 #1pdef#1<h1>#2#1meta#2h1#3#3%

1206 #1catcode#1backquote#1h=11#1relax%

1207 }%

1208 \endlinechar\gmu@tempa\relax

1209 \gmuIfValueT{#4}{%

1210 \catcode`#4=3

1211 \protected\@namedef{#4}{#4}}%

1212 \gmuIfValueT{#5}{%

1213 \begingroup

1214 \lccode`\~=`#5\lowercase{\endgroup\let~\metachar}%

1215 \protected\@namedef{#5}{#5}%

1216 \catcode`#5=\active

1217 }% of if value #5.

1218 \gmuPutIfValue{#6}%

1219}

1221\pdef\noverbatimspecials{\let\verbatim@specials@list\@undefined}

\noverbatimspecials

1223\def\GMverbatimspecials{%

\GMverbatimspecials

1224 \gmu@ifCSdefined {\XeTeXversion}%

1226 {\verbatimspecials

1227 ⁄% escape

(17)

1228 «»% \bgroupand \egroup

1229 [¿]% math shift

1230 [›]% meta-char

1231 {\def\|{\metachar{$\vert$}}%

1233 \makestarlow

1234 \relaxen\‘% to provide aCSseparator (space is not 10 in verbatims).

1236 \let\›\string

1237 }% of #6.

1238 }%

1239 {}%

1240}% of\GMverbatimspecials.

Partial\verbin arguments

Now command for partial verbatims in arguments of commands:

1245\let\gmu@tempa\all@stars

1246\@xa\addtomacro\@xa\gmu@tempa\@xa{\all@unders}

1248\foone{\catcode`#=\active}

1249{\def\gmv@hashhalfing{%

\gmv@hashhalfing

1251 \def#{\xiihash\@ifnextchar#\gobble{}}%

\xiihash

1252 \catcode`#\active}%

1253}

1255\foone{\@makeother\^^R}{%

1256 \@xa\DeclareCommand\@xa\scanverb\@xa{%

1258 \@xa Q\@xa{\gmu@tempa}>Pm}{%

% #1 Q{⋆_}

% #2 m the stuff to be rescanned and typeset verbatim. Note that%will be executed during first scan so at best will disappear.

Spaces are ignored (because of detokenizers that add a space after a CS) but if you declare some\verbatimspecials, then you can use⁄ where ⁄ denotes the escape char in verbatim.

1267 \begingroup

1268 \gmu@septify

1269 \endlinechar=\m@ne

1270 \@xa\IfIntersect\@xa{\all@stars}{#1}%

1271 {\def\ {\breakablevisspace}}%

1272 {\let\ =\space}%

1273 \@xa\IfIntersect\@xa{\all@unders}{#1}%

1274 {}{% We make spaces ignored only if there was no underscore in #1 and if#2 doesn’t contain\ .

1276 \gmu@ifxany\ {#2}%

1277 {}{\addtomacro\verb@lasthook{\catcode`\ =9 }}}%

1278 \addtomacro\verb@lasthook{\gmv@hashhalfing }%

1279 \@makeother\^^R%

1280 \edef\gmu@tempa{%

1281 \@nx\scantokens{%

1282 \bslash verb%

1283 ^^R\detokenize{#2}^^R% we delimit the\verb’s argument with ‘other’ ^^R assuming this char to be used very seldom if at all.

1286 }% of \scantokens,

1287 }\gmu@tempa

1288 \endgroup

(18)

1289 }% of\scanverb,

1290}% of\foone.

1292\def\verbDiscretionaryHyphen#1#2{%

\verbDiscretionaryHyphen

1295 \def\gmv@hyphenchar{\numexpr#1\relax}%

\gmv@hyphenchar

1296 \def\gmv@hyphen{#2}%

\gmv@hyphen

1297}

1299\verbDiscretionaryHyphen{"A6}{¦}

1301\ifgmuXeTeX

(2010/06/28, v0.94:) due to Will Robertson’s remark that recatcoding long (no-ASCII) dashes works only under XƎTEX and LuaTEX, I embrace them in a XƎTEX conditional

1306\def\gmu@tempa{%

\gmu@tempa

1307 \DeclareCommand\verbLongDashes{

\verbLongDashes

1308 >iT{–}% to memorise which dash we set

1309 B{1.41} % expansion of en-dash

1310 >iT{—} % as above

1311 B{2} % expansion of em-dash

1312 }%

1313}

1315\def\gmu@tempb{\catcode`–\active \catcode`—\active}

\gmu@tempb

1317\foone{\catcode`–\active\catcode`—\active}

1318{%

1319 \edef\gmu@tempa{\@xau\gmu@tempa

1320 {%

1321 \@nx\addtomacro\@nx\ttverbatim@hook{%

1322 \@xau\gmu@tempb

1323 \def\@nx–{\@nx\scalebox{##1}[1]{\string–}}%

1324 \def\@nx—{\@nx\scalebox{##2}[1]{\string—}}%

1325 }%

1326 }%

1327 }%

1328}%

1329\gmu@tempa

1331\fi % of if XƎTEX.

Note that we have two “hyphens”: one for places where a line may be broken with a comment char and another, provided as\hyphenchar, for discretionary hyphens at points where correct TEX code cannot be broken, such asCS names.

1369\endinput

End of file ‘gmverb.sty’.

Change History

gmverb General:

CheckSum 1040 , 83

CheckSum 997 , 83 gmverbv0.79

\edverbs:

(19)

added, 1068 gmverbv0.80

\edverbs:

debugged, i.e. \hboxadded back and redefinition of\[, 1068

\xiiclub:

\ttverbatim@hookadded, 564 gmverbv0.81

General:

\afterfi made two-argument (first undelimited, the stuff to be put after

\fi, and the other, delimited with

\fi, to be discarded, 1331 gmverbv0.82

General:

CheckSum 663 , 83 gmverbv0.83

General:

added a hook in the active left brace definition intended forgmdoc automatic detection of definitions (in line 504), 1331

CheckSum 666 , 83 gmverbv0.84

General:

CheckSum 658 , 83 gmverbv0.85

General:

added restoring of \hyphenpenalty and\exhyphenpenaltyand setting

\hyphenchar=-1, 1331 CheckSum 673 , 83 gmverbv0.87

General:

CheckSum 661 , 83

visible space tidied and taken from xltxtraif available. gmutilsrequired.

The\xii…CSes moved togmutils.

The documentation driver moved into the.styfile, 1331

gmverbv0.88 General:

CheckSum 682 , 83

\VisSpacesGrey:

added, or rather moved here from gmdoc, 1116

gmverbv0.89 General:

\dekclubs,\dekclubs⋆and

\olddekclubsmade more consistent, shorthands for\MakeShortVerb\|,

\MakeShortVerb⋆\|and

\OldMakeShortVerb\|respectively., 1331 CheckSum 686 , 83

gmverbv0.90 General:

CheckSum 684 , 83

some \(b|e)groupchanged to

gmverbv0.91 General:

CheckSum 686 , 83

put toCTANon 2008/11/21, 83

\verbatimleftskip:

added, 913 gmverbv0.92

General:

CheckSum 979 because of

\verbatimspecials, hyphenation in verbatims, low star in verbatims, kerning of backslash in shrunk fonts, 83

\breakbslash:

renamed from\fixbslash, 531

\breaklbrace:

renamed from\fixlbrace, 538

\ttverbatim:

added\makeatletter to sound with the ‘verbatim specials’, namely to allow control sequences containing@, 578 gmverbv0.93

General:

CheckSum 1035 because of a bug fix in

\scanverb(halfing the hashes), 83 put toCTANon 2010/03/04, 83

\gmv@hashhalfing:

cut out as separate macro, 1249

\verbDiscretionaryHyphen:

added to synchronise hyphen chars in gmdoc’s documentation, 1292

\xiihash:

mandatory argument made long (a bug fix), 1256

gmverbv0.94 General:

CheckSum 979 because of wrapping theUTF-8 dashes’ setting in a XƎTEX’s conditional, 83 put toCTANon 2010/07/07, 83

\gmv@hyphen:

due to Will Robertson’s remark that recatcoding long (no-ASCII) dashes works only under XƎTEX and

LuaTEX, I embrace them in a XƎTEX conditional, 1301

gmverbv0.95 General:

put toCTANon 2011/02/02, 83 gmverbv0.98

General:

put toCTANon 2011/10/14, 83 gmverbv0.993

\ttverbatim:

rigid\tt in\ttverbatimchanged to redefinable\verbatimfont due to absurd problems with bad fontifying of gmdoc, 591

(20)

Index

Numbers written in italic refer to the code lines where the corresponding entry is described;

numbers underlined refer to the code line of the definition; numbers in roman refer to the code lines where the entry is used. The numbers preceded with ‘p.’ are page numbers. All the numbers are hyperlinks.

\!, 514, 541

\', 1056

\,, 1056

\-, 1056

\<, 1056

\>, 1056

\@@par, 793, 883, 892, 900

\@MakeShortVerb, 639, 674

\@XA, 654

\@beginparpenalty, 772, 788

\@bsphack, 1138

\@currenvir, 818, 833

\@def@breakbslash, 957, 1002

\@ehc, 1050

\@emptify, 604

\@empty, 694, 701, 703, 727, 1010, 1013

\@endparenv, 803

\@esphack, 1180

\@firstofone, 646, 663

\@gobble, 661, 727, 782, 844, 1003

\@ifnextac, 1080

\@ifnextchar, 1002, 1153, 1164, 1251

\@ifpackageloaded, 720

\@ifundefined, 910

\@latex@error, 1050

\@makeother, 514, 563, 575, 736, 753, 754, 813, 1140, 1154, 1165, 1255, 1279

\@namedef, 788, 970, 973, 1192, 1194, 1196, 1211, 1215

\@nameedef, 985

\@ne, 902

\@nx, 749, 754, 816, 827, 828, 831, 832, 833, 986, 988, 989, 990, 991, 1121, 1281, 1321, 1323, 1324

\@outerparskip, 799, 881

\@sanitize, 735, 736, 755

\@shortvrbdef, 625, 626, 676, 688

\@shortvrbinfo, 676, 694, 701, 703, 725

\@sverb, 954, 1047

\@sverb@chbsl, 947, 948, 954

\@sxverbatim, 789, 840

\@tempskipa, 798, 799, 800

\@tempswafalse, 893, 899

\@tempswatrue, 902

\@topsep, 879, 880, 883

\@topsepadd, 802, 873, 875, 879

\@totalleftmargin, 885, 888

\@undefined, 1221

\@verbatim, 772, 788, 864

\@xa, 488, 656, 661, 663, 675, 680, 686, 700, 706, 711, 727, 728, 733, 735, 818, 823, 824, 825, 829, 971, 978, 1122, 1186, 1246, 1256, 1258, 1270, 1273

\@xanxcs, 987, 989, 990

\@xau, 1319, 1322

\@xverbatim, 773, 815, 840

\[, 500, 1077, 1079

\\, 514, 541, 543, 814, 995

\], 500, 1078, 1085

\^, 1255, 1279

\`, 1056

\|, 563, 1067, 1068, 1231

\~, 683, 709, 1048, 1061, 1214

\ , 1142, 1155, 1166, 1271, 1272, 1276, 1277

\active, 500, 502, 541, 543, 683, 692, 707, 709, 812, 814, 1048, 1059, 1216, 1248, 1252, 1315, 1317

\add@special, 677, 731

\addtomacro, 1157, 1163, 1168, 1174, 1179, 1246, 1277, 1278, 1321

\AddtoPrivateOthers, 678, 931

\addvspace, 802, 883, 899

\advance, 799, 875, 880, 885

\aftergroup, 1051

\all@stars, 1245, 1270

\all@unders, 1246, 1273 alltt, p. 3

\AtBeginDocument, 1111, 1112

\begingroup, 682, 708, 752, 810, 1034, 1060, 1139, 1154, 1165, 1213, 1267

\bgroup, 942, 1085

\breakablevisspace, 551, 557, 1271

\breakbslash, 520, 531, 543, 957

\breaklbrace, 496, 504, 538

\bslash, 516, 1050, 1282

\catcode, 500, 502, 514, 541, 543, 681, 683, 692, 705, 707, 709, 810, 811, 812, 814, 1048, 1059, 1142, 1155, 1166, 1191, 1193, 1195, 1210, 1216, 1248, 1252, 1277, 1315, 1317

\char, 1062

\check@bslash, 954, 1001

\check@percent, 901, 924, 1037

\csname, 675, 681, 687, 700, 705, 706, 712, 974, 978, 988

\DeclareCommand, 620, 963, 1178, 1256, 1307

\def, 486, 496, 502, 503, 516, 520, 531, 538, 543, 551, 557, 564, 597, 607, 625, 626, 674, 699, 721, 722, 725, 731, 747, 748, 753, 769, 793, 824, 827, 842, 843, 864, 894, 940, 954, 957, 1001, 1013, 1037, 1044, 1047, 1056, 1058, 1062, 1067, 1068, 1079, 1083, 1085, 1116, 1152, 1182, 1190, 1223, 1231, 1249, 1251, 1271, 1292, 1295, 1296, 1306, 1315, 1323, 1324

(21)

\DefineTypeChar, 963, 995, 998

\dekclubs, p. 2, 1067

\dekclubs*, p. 2

\DeleteShortVerb, p. 2, 699

\detoken@xa, 971

\detokenize, 1283

\discretionary, 497, 521, 551

\do, 574, 575, 734, 748, 749, 1056, 1140, 1154, 1165

\do@noligs, 574, 1058

\dobreakblankspace, 559

\dobreakbslash, 543, 576

\dobreaklbrace, 502, 576

\dobreakspace, 577, 611

\dobreakvisiblespace, 557, 611

\dospecials, 575, 733, 734, 751, 1141, 1154, 1165

\edef, 652, 770, 771, 817, 826, 1120, 1197, 1280, 1319

\edverbs, p. 2, 1076, 1081

\egroup, 1017, 1085

\else, 662, 693, 702, 749, 754, 876, 884, 941

\emptify, 952

\end, 833

\endcsname, 675, 681, 687, 700, 705, 706, 712, 974, 978, 989

\endgroup, 691, 713, 756, 836, 1039, 1062, 1151, 1162, 1173, 1214, 1288

\endinput, 1369

\endlinechar, 816, 1197, 1198, 1208, 1269

\endverbatim, 793

\escapechar, 487

\everyeof, 816

\everypar, 902

\exhyphenpenalty, 771, 775

\f@size, 971

\fi, 584, 664, 695, 714, 715, 749, 754, 801, 872, 878, 884, 899, 941, 982, 1187, 1331

\firstofone, 1112

\font, 586, 589, 776, 971

\fontencoding, 607

\foone, 500, 514, 541, 555, 563, 1248, 1255, 1317

\frenchspacing, 773, 948

\gdef, 488, 655, 686, 733, 735, 815, 856, 1036, 1049

\glet, 646, 685

\global, 692, 705, 706, 711, 1013

\gm@lbracehook, 504, 509

\gm@verb@eol, 945, 1022, 1044

\gmd@preambleABD, 1111, 1112, 1119

\gmobeyspaces, 773, 948

\gmu@ifCSdefined, 1224

\gmu@ifstar, 946, 1067

\gmu@ifstrany, 624, 628

\gmu@ifxany, 1276

\gmu@measurewd, 975

\gmu@septify, 1268

\gmu@tempa, 1197, 1208, 1245, 1246, 1258, 1280, 1287, 1306, 1319, 1329

\gmu@tempb, 1315, 1322

\gmuIfValueT, 1209, 1212

\gmuIfValueTF, 990

\gmuPutIfValue, 1218

\gmv@dismath, 1077, 1080, 1084

\gmv@disverb, 1080, 1083

\gmv@edismath, 1078, 1085

\gmv@exhyphenpe, 771, 775

\gmv@hashhalfing, 1249, 1278

\gmv@hyphen, 1296

\gmv@hyphenchar, 589, 1295

\gmv@hyphenpe, 770, 774

\gmV@MakeShortVerbAlsoInMath, 635, 642

\gmV@MakeShortVerbNotInMath, 637, 649

\gmV@mm, 687

\gmv@packname, 721, 722, 726

\gmv@storedhyphenchar, 586

\gmV@tempA, 652, 658

\GMverbatimspecials, 1223

\gn@melet, 978

\gobble, 1251

\hangafter, 902

\hangindent, 902

\hbox, 941, 988, 1085, 1121

\hss, 991

\hyphenchar, 586, 589, 776

\hyphenpenalty, 770, 774

\if@minipage, 884

\if@noskipsec, 872

\if@tempswa, 899

\ifcsname, 974

\ifdefined, 1185

\ifdim, 797

\ifgmuXeTeX, 1301

\ifhmode, 582

\IfIntersect, 1270, 1273

\ifmmode, 658, 941

\ifnum, 707, 749, 754

\ifvmode, 874, 899

\ifx, 675, 700

\interlinepenalty, 901

\kern, 1062

\lastskip, 797, 798

\lccode, 683, 709, 1048, 1061, 1214

\leavevmode, 872, 941, 986, 1062

\leftmargini, 915

\leftskip, 888

\let, 480, 559, 574, 575, 611, 706, 711, 840, 1010, 1013, 1022, 1044, 1052, 1077, 1078, 1111, 1112, 1140, 1154, 1165, 1214, 1221, 1236, 1245, 1272

\long, 843, 1178, 1190

\lowercase, 684, 710, 1052, 1062, 1214

\m@ne, 487, 776, 816, 1198, 1269

\makeatletter, 578

\MakeShortVerb, p. 2, 620, 1067, 1099

\makestarlow, 1233

\meaning, 971

\medskipamount, 911

\metachar, 1214, 1231

\n@melet, 807

\Name, 646, 655, 685

\NeedsTeXFormat, 49

\newcommand, 557, 559, 1076

\newlength, 910

\newskip, 913, 917, 921

\nobreakbslash, p. 2, 531

\nobreaklbrace, p. 2, 538

\noexpand, 828

\NoValue, 1157, 1168

\noverbatimspecials, p. 3, 1221

\null, 941

\numexpr, 1295

\obeylines, 905, 1035, 1036

References

Related documents

Wellington, 1985.. , Development from Below, Anthropologists and Development Situations, Mouton, 1976. Report of the Steering Group of Permanent Heads from the Task

7am.com does offer a direct and free service to consumers, but this form of news feed is limited, and grossly inferior to content that can be freely gained by inspecting a major

disadvantage have special resonance for the Australian Aboriginal community, where the construct, the best interests of the child, has been applied and has resulted in an

The Swedish school authorities have drawn attention to this work and designated the school ‘the best school in Sweden working for equal value 2008’. Student empowerment, child’s

In stark contrast to most tra- ditional cultures, as for instance the island cultures of the South Pacific, modern Western culture has become increasingly individ- ualistic to

(Note that it’s important to have two different commands — we used to have just one, but then whichever file was loaded first turned on the appendix mode half-way through, and

For each delimiter, a pointer is defined using the extensible characters family and slot as name and value equal to family and position of the smallest version.. So first expand away

We define only a single option that can be used only as a package option, not as an argument to \bytefieldsetup: compat1 instructs bytefield to enter version 1 compatibility mode—at

(Not all codebox es include procedure names; for example, see the pseudocode on page 343 of CLRS 3/e.) After the line containing the procedure name come one or more lines of

Sessional Com m ittee on the Environm ent 79.. A strong research and development effort, particularly into the integration of control methods, is essential to the

More generally, let us assume that you want to use verbatim text in the argument of some macro \cs {harg1 i}, and that this macro is normally allergic to verbatim.. It probably has

Similar macros are redefined for vectors; \vector redefines the original macro but with the vector slope limitations removed and the vector di- rection may be given in polar

The redefinitions and the new definitions for vectors are a little more complicated than with segments, because each vector is drawn as a filled contour; the original pict2e 2004

The starred version uses the figure* environment instead which will insert the figure over both columns in twocolumn mode.. Usually this macro is used

The un-starred version expands to hmalei or hfemalei depending on the current gender of hperson i or the main gender in the absence of the optional argument. Similarly, the

Note that this environment uses the verbatim package to process the input lines and can therefore not be used as an argument to another macros.. To work around this problem, you

As you can see by these examples, you can also re-define the eachword variables in your file for individual examples by using the \let command within the \begin{exe} environment,

Finally, the \printindex command is used in your L A TEX document to indicate where the file foo.idx should be inserted, i.e., where the index should appear in your document.. The

The command \kve@setdefaults will set all the keys in the given family hfami and prefix hprefi with their default values. e., those with a default in the set {true | false}) will

• Additional High Conservation Value Vegetation (AHCVV) means areas of vegetation which were found during ground-truthing which would otherwise meet the definition of Existing

3.31 Scarlet Alliance also expressed concern that the requirement to obtain a suitability certificate would not be limited to sex work businesses but would also require

5.15 At the time of Mr C’s requests for access to the NDIS, the NDIA did not have any policy or guideline dealing specifically with incarcerated individuals and access to the NDIS.

existence. In making such an estimate, the Government Printer was requested to take as understood that each author body would have its report printed by the