Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!linac!att!ucbvax!TRIUMFRG.BITNET!ASND From: ASND@TRIUMFRG.BITNET (Donald Arseneau) Newsgroups: comp.text.tex Subject: new \verb to use in parameters to other commands Message-ID: <212B46572000B713@Post-Office.UH.EDU> Date: 6 Apr 91 03:43:00 GMT Sender: daemon@ucbvax.BERKELEY.EDU Lines: 51 David Gilbert was looking for a modified verbatim mode in LaTeX. I hesitated to publicly show such a beast beacuse I am not convinced that a macro which works *sometimes* (as another macro's parameter) is really better than one that works *never*. But after modifying what I had so I could send it to David, I thought What the hell, someone else might want it. So... % here is what I use in my draftcite.sty to write the citation key % instead of its normal label. It works for all the special characters % that can be used in such a key but not as a universal verbatim mode. % \def\citeverb#1{% \expandafter \expandafter \expandafter \@gobble % do \csname, \string, ... \expandafter \string\csname#1\endcsname} % \@gobble, in that order. % % Here is one that does more; I combined it with LaTeX's method of % catcoding special characters as "other" so it will work as documented % by the LaTeX manual, with the added feature of working in the argument % to another command as long as there are no %'s in the verbatim text and % any braces are balanced (like {this}). If there are \'s in the verbatim % text, there might be some extra space inserted (\that) -> (\that ). % it goes to some pain to fix doubled # signs. % \def\verb{\begingroup \tt \let\do\@makeother \dospecials % from LaTeX \catcode`\#=6\relax % so \meaning always generates ## for # \obeyspaces\frenchspacing % perhaps some other settings \verb@A} % \def\@meaningless#1:->{\@undoublehash}% % {\catcode`\&=6 \@makeother # % use & for macro parameters while # is "other" % \gdef\verb@A&1{\def\verb@B&1&&1&1{% \toks@={&&1}\edef\n@@t{\the\toks@}% prevents error message with # \expandafter\@meaningless\meaning\n@@t#\@gobblethree#\endgroup}% \verb@B&1} \gdef\@undoublehash &1#&2#{&1% % if ## emit #\@undoublehash % if #\@gobble# emit nothing % if #other# emit #other#\@undoublehash (can't happen(?)) \ifx&2\@gobblethree\@gobblethree #\expandafter\@undoublehash \else #&2#\expandafter\@undoublehash\fi} } \def\@gobblethree#1#2#3{} Donald Arseneau asnd@reg.triumf.ca