Lines Matching refs:FV

54 \def\FV@Error#1#2{%
58 \def\FV@eha{Your command was ignored. Type <return> to continue.}
97 \def\FV@None{none}
98 \def\FV@Auto{auto}
99 \def\fvset#1{\setkeys{FV}{#1}}
100 \def\FV@Command#1#2{%
102 {\def\FV@KeyValues{#1,showspaces}\FV@@Command{#2}}%
103 {\def\FV@KeyValues{#1}\FV@@Command{#2}}}
104 \def\FV@@Command#1{%
106 {\FV@GetKeyValues{\@nameuse{FVC@#1}}}%
108 \def\FV@GetKeyValues#1[#2]{%
109 \expandafter\def\expandafter\FV@KeyValues\expandafter{\FV@KeyValues,#2}#1}
118 {\FV@Error{Command `\string#3' is not a FancyVerb command.}\@eha}%
119 {#1{#2}{\FV@Command{#4}{#3}}}}
122 \def\FV@Environment#1#2{%
123 \def\FV@KeyValues{#1}%
126 {\catcode`\^^M=5 \FV@GetKeyValues{\@nameuse{FVB@#2}}}%
133 {\FV@Error{`#3' is not a FancyVerb environment.}\@eha}%
134 {#1{#2}{\FV@Environment{#4}{#3}}{\@nameuse{FVE@#3}}%
135 #1{#2*}{\FV@Environment{#4,showspaces}{#3}}{\@nameuse{FVE@#3}}}}
137 \@namedef{#1}{\FV@Environment{#3}{#2}}%
139 \@namedef{#1*}{\FV@Environment{#3,showspaces}{#2}}%
141 \def\FV@UseKeyValues{%
142 \ifx\FV@KeyValues\@empty\else
143 \def\KV@prefix{KV@FV@}%
144 \expandafter\KV@do\FV@KeyValues,\relax,%
145 \def\FV@KeyValues{}%
147 \def\FV@CatCodes{%
149 \FV@ActiveWhiteSpace % See below.
150 \FV@FontScanPrep % See below.
151 \FV@CatCodesHook % A style hook.
153 \def\FV@ActiveWhiteSpace{%
157 \def\FV@CatCodesHook{}
158 \def\FV@AddToHook#1#2{%
160 \define@key{FV}{codes}[]{\def\FancyVerbCodes{#1\relax}}
161 \define@key{FV}{codes*}{%
165 \define@key{FV}{commandchars}[\\\{\}]%
167 \ifx\@tempa\FV@None
168 \let\FV@CommandChars\relax
170 \FV@DefineCommandChars#1\relax\relax\relax
172 \def\FV@DefineCommandChars#1#2#3{%
173 \def\FV@CommandChars{%
175 \FV@AddToHook\FV@CatCodesHook\FV@CommandChars
176 \define@key{FV}{commentchar}[\%]{%
178 \ifx\@tempa\FV@None
179 \let\FV@CommentChar\relax
181 \def\FV@CommentChar{\catcode`#1=14}%
183 \FV@AddToHook\FV@CatCodesHook\FV@CommentChar
185 \define@key{FV}{firstline}{%
186 \afterassignment\FV@ParseStart\@tempcnta=0#1\relax\@nil{#1}}
187 \def\FV@ParseStart#1\relax\@nil#2{%
194 \def\KV@FV@firstline@default{%
197 \define@key{FV}{lastline}{%
198 \afterassignment\FV@ParseStop\@tempcnta=0#1\relax\@nil{#1}}
199 \def\FV@ParseStop#1\relax\@nil#2{%
206 \def\KV@FV@lastline@default{%
210 \newcount\FV@CodeLineNo
211 \def\FV@PreProcessLine{%
212 \global\advance\FV@CodeLineNo\@ne
213 \FV@FindStartStop}
214 \def\FV@@PreProcessLine{%
215 \FV@StepLineNo
216 \FV@Gobble
217 \expandafter\FV@ProcessLine\expandafter{\FV@Line}}
218 \def\FV@FindStartStop{\FV@DefineFindStart\FV@FindStartStop}
219 %% \def\FV@DefinePreProcessLine{%
221 %% \FV@DefineFindStart}
222 \def\FV@DefineFindStart{%
225 \FV@DefineFindStop
227 \let\FV@FindStartStop\FV@FindStartNum
230 \let\FV@FindStartStop\FV@FindStartString
232 \def\FV@FindStartNum{%
233 \ifnum\FancyVerbStartNum>\FV@CodeLineNo\else
234 \FV@DefineFindStop
235 \expandafter\FV@@PreProcessLine
238 \def\FV@FindStartString{%
239 \expandafter\FV@@FindStartString
240 {\meaning\FV@Line}%
243 \def\FV@@FindStartString#1#2{%
246 \FV@DefineFindStop
250 \def\FV@DefineFindStop{%
253 \let\FV@FindStartStop\FV@@PreProcessLine
255 \let\FV@FindStartStop\FV@FindStopNum
258 \let\FV@FindStartStop\FV@FindStopString
260 \def\FV@FindStopNum{%
261 \ifnum\FancyVerbStopNum=\FV@CodeLineNo
262 \let\FV@FindStartStop\relax
263 \ifeof\FV@InFile\else
264 \immediate\closein\FV@InFile
267 \FV@@PreProcessLine}
269 \def\FV@FindStopString{%
270 \expandafter\FV@@FindStopString
271 {\meaning\FV@Line}%
274 \def\FV@@FindStopString#1#2{%
277 \let\FV@FindStartStop\relax
278 \ifeof\FV@InFile\else
279 \immediate\closein\FV@InFile
282 \expandafter\FV@@PreProcessLine
285 \def\FV@@Gobble{%
286 \expandafter\expandafter\expandafter\FV@@@Gobble
287 \expandafter\FV@@@@Gobble\FV@Line
289 \def\FV@@@Gobble#1\@nil#2\@@nil{\def\FV@Line{#1}}
290 \define@key{FV}{gobble}{%
293 \let\FV@Gobble\relax
296 \FV@Error{gobble parameter must be less than 10}\FV@eha
298 \renewcommand{\FV@@@@Gobble}[\@tempcnta]{}%
299 \let\FV@Gobble\FV@@Gobble
302 \def\FV@@@@Gobble{}
303 \def\KV@FV@gobble@default{\let\FV@Gobble\relax}
305 \def\FV@Scan{%
306 \FV@CatCodes
308 \FV@DefineCheckEnd
309 \FV@BeginScanning}
311 \ifx\FV@EnvironName\relax\xdef\FV@EnvironName{\@currenvir}\fi}
312 \let\FV@EnvironName\relax
317 !gdef!FV@CheckEnd@i#1[!FV@@CheckEnd#1\end{}!@nil]
318 !gdef!FV@@CheckEnd@i#1\end#2#3!@nil[!def!@tempa[#2]!def!@tempb[#3]]
319 !gdef!FV@@@CheckEnd@i[\end{}]
322 !gdef!FV@CheckEnd@ii#1[!FV@@CheckEnd#1\end{}!@nil]
323 !gdef!FV@@CheckEnd@ii#1\end#2#3!@nil[!def!@tempa[#2]!def!@tempb[#3]]
324 !gdef!FV@@@CheckEnd@ii[\end{}]
328 !gdef!FV@CheckEnd@iii#1[!FV@@CheckEnd#1\end{}!@nil]
329 !gdef!FV@@CheckEnd@iii#1\end{#2}#3!@nil[!def!@tempa[#2]!def!@tempb[#3]]
330 !gdef!FV@@@CheckEnd@iii[\end{}]
333 !gdef!FV@CheckEnd@iv#1[!FV@@CheckEnd#1\end{}!@nil]
334 !gdef!FV@@CheckEnd@iv#1\end{#2}#3!@nil[!def!@tempa[#2]!def!@tempb[#3]]
335 !gdef!FV@@@CheckEnd@iv[\end{}]
337 \def\FV@BadCodes#1{%
338 \FV@Error
345 \def\FV@CheckEnd##1{\iftrue}}
346 \def\FV@DefineCheckEnd{%
349 \let\FV@CheckEnd\FV@CheckEnd@i
350 \let\FV@@CheckEnd\FV@@CheckEnd@i
351 \let\FV@@@CheckEnd\FV@@@CheckEnd@i
354 \let\FV@CheckEnd\FV@CheckEnd@iv
355 \let\FV@@CheckEnd\FV@@CheckEnd@iv
356 \let\FV@@@CheckEnd\FV@@@CheckEnd@iv
358 \FV@BadCodes\{%
364 \let\FV@CheckEnd\FV@CheckEnd@ii
365 \let\FV@@CheckEnd\FV@@CheckEnd@ii
366 \let\FV@@@CheckEnd\FV@@@CheckEnd@ii
369 \let\FV@CheckEnd\FV@CheckEnd@iii
370 \let\FV@@CheckEnd\FV@@CheckEnd@iii
371 \let\FV@@@CheckEnd\FV@@@CheckEnd@iii
373 \FV@BadCodes\{%
377 \FV@BadCodes\\%
382 \gdef\FV@BeginScanning#1^^M{%
383 \def\@tempa{#1}\ifx\@tempa\@empty\else\FV@BadBeginError\fi%
384 \FV@GetLine}%
386 \def\FV@BadBeginError#1{%
388 \FV@Error
390 \string\begin{\FV@EnvironName}[<key=value>] and line end}%
393 %% \def\FV@GetLine{\expandafter\FV@CheckScan\FancyVerbGetLine}
394 \def\FV@GetLine{\@noligs\expandafter\FV@CheckScan\FancyVerbGetLine}
400 \FV@CheckEnd{#1}%
401 \ifx\@tempa\FV@EnvironName% % True if end is found
402 \ifx\@tempb\FV@@@CheckEnd\else\FV@BadEndError\fi%
403 \let\next\FV@EndScanning%
405 \def\FV@Line{#1}%
406 \def\next{\FV@PreProcessLine\FV@GetLine}%
410 \def\FV@BadEndError{%
412 \FV@Error
414 \string\end{\FV@EnvironName} and line end}%
416 \def\FV@EndScanning{%
417 \edef\next{\noexpand\end{\FV@EnvironName}}%
418 \global\let\FV@EnvironName\relax
421 \def\FV@CheckScan#1{\@ifnextchar\@nil{\@gobble}{\FV@EOF}}
422 \def\FV@CheckScan#1{\ifx\@nil#1\@empty\else\expandafter\FV@EOF\fi}
423 \def\FV@EOF{%
424 \FV@Error{Couldn't find `\string\end{\FV@EnvironName}' to end
429 \FV@EndScanning
432 \newread\FV@InFile
433 \def\FV@Input#1{%
434 \immediate\openin\FV@InFile #1\relax
435 \ifeof\FV@InFile
436 \FV@Error{No verbatim file #1}\FV@eha
437 \immediate\closein\FV@InFile
439 \FV@CatCodes
440 \expandafter\FV@@Input
442 \def\FV@@Input{%
443 \def\FV@Line{}%
444 \FV@ReadLine
445 \ifeof\FV@InFile
446 \ifx\FV@Line\@empty\else
447 \FV@PreProcessLine
449 \immediate\closein\FV@InFile
451 \FV@PreProcessLine
452 \expandafter\FV@@Input
456 \gdef\FV@ReadLine{%
457 \ifeof\FV@InFile\else
458 \immediate\read\FV@InFile to\@tempa%
459 \expandafter\FV@@ReadLine\@tempa^^M\relax^^M\@nil%
461 \gdef\FV@@ReadLine#1^^M#2^^M#3\@nil{%
462 \expandafter\def\expandafter\FV@Line\expandafter{%
463 \FV@Line#1}%
464 \ifx\relax#2\@empty\expandafter\FV@ReadLine\fi}%
466 \def\FV@FormattingPrep{%
467 \global\FV@CodeLineNo\z@
469 \FV@SetupFont % See below.
470 \FV@DefineWhiteSpace % See below.
474 \def\FV@SetupFont{%
475 \FV@BaseLineStretch
477 \FV@FontSize
478 \FV@FontFamily}
482 \def\FV@SetupFont{%
483 \FV@BaseLineStretch
484 \FV@FontSize
485 \FV@FontFamily
486 \FV@FontSeries
487 \FV@FontShape
493 \define@key{FV}{fontsize}{%
495 \ifx\@tempa\FV@Auto
496 \let\FV@FontSize\relax
498 \def\FV@FontSize{#1}%
500 \def\KV@FV@fontsize@default{\let\FV@FontSize\relax}
501 \define@key{FV}{baselinestretch}[auto]{%
503 \ifx\@tempa\FV@Auto
504 \let\FV@BaseLineStretch\relax
506 \def\FV@BaseLineStretch{\def\baselinestretch{#1}}%
508 \def\KV@FV@baselinestretch@default{\let\FV@BaseLineStretch\relax}
509 \define@key{FV}{fontfamily}{%
510 \@ifundefined{FV@fontfamily@#1}%
511 {\def\FV@FontScanPrep{}\def\FV@FontFamily{\fontfamily{#1}}}
512 {\csname FV@fontfamily@#1\endcsname}}
513 \define@key{FV}{fontseries}{%
515 \ifx\@tempa\FV@Auto
516 \let\FV@FontSeries\relax
518 \def\FV@FontSeries{\fontseries{#1}}%
520 \define@key{FV}{fontshape}{%
522 \ifx\@tempa\FV@Auto
523 \let\FV@FontShape\relax
525 \def\FV@FontShape{\fontshape{#1}}%
527 \def\FV@MakeActive#1{%
529 \def\next##1{\expandafter\def\expandafter\FV@MakeUnActive\expandafter{%
530 \FV@MakeUnActive\def##1{\string##1}}}%
532 \def\FV@MakeUnActive{}
535 \gdef\FV@fontfamily@tt{%
536 \def\FV@FontScanPrep{\FV@MakeActive\`}%
538 %% \def\FV@FontFamily{\tt`{{\string`}}}}
539 \def\FV@FontFamily{\ttfamily\edef`{{\string`}}}}
541 \gdef\FV@fontfamily@cmtt{%
542 \def\FV@FontScanPrep{\FV@MakeActive\`}%
543 \def\FV@FontFamily{\edef`{{\string`}}\fontfamily{cmtt}}}
545 \@namedef{FV@fontfamily@cmtt-spanish}{%
546 \def\FV@FontScanPrep{}%
547 \def\FV@FontFamily{\fontfamily{cmtt}}}
548 \@namedef{FV@fontfamily@courier}{%
549 \def\FV@FontScanPrep{}%
551 %% \def\FV@FontFamily{\fontfamily{rpcr}}}
552 \def\FV@FontFamily{\fontfamily{pcr}}}
554 \@namedef{FV@fontfamily@helvetica}{%
555 \def\FV@FontScanPrep{}%
557 %% \def\FV@FontFamily{\fontfamily{rphv}}}
558 \def\FV@FontFamily{\fontfamily{phv}}}
565 \gdef\FV@DefineWhiteSpace{\def {\FV@Space}\def^^I{\FV@Tab}}%
567 \define@key{FV}{defineactive}[]{\def\FancyVerbDefineActive{#1\relax}}
568 \define@key{FV}{defineactive*}{%
572 \define@booleankey{FV}{showspaces}%
573 {\def\FV@Space{{\FancyVerbSpace}}}%
574 {\def\FV@Space{\ }}
577 \def\FV@Tab{\hbox to\FancyVerbTabSize\fontdimen2\font{\hss\FV@TabChar}}
578 \define@key{FV}{tabsize}{%
581 \FV@Error{Tab size too large: `\the\@tempcnta'. (Max size = 100)}\FV@eha
585 \define@booleankey{FV}{showtabs}%
586 {\def\FV@TabChar{\FancyVerbTab}}%
587 {\let\FV@TabChar\relax}
595 \newbox\FV@TabBox
596 \def\FV@@ObeyTabsInit{%
598 \edef\FV@ObeyTabSize{\number\@tempdimb}%
601 \edef\FV@@ObeyTabSize{\number\@tempdimb}%
602 \let\FV@ObeyTabs\FV@@ObeyTabs
603 \let\FV@Tab\FV@TrueTab}
604 \def\FV@@ObeyTabs#1{\setbox\FV@TabBox=\hbox{#1}\box\FV@TabBox}
605 \let\FV@ObeyTabs\relax
606 \def\FV@TrueTab{%
608 \@tempdima=\FV@ObeyTabSize sp\relax
609 \@tempcnta=\wd\FV@TabBox
610 \advance\@tempcnta\FV@@ObeyTabSize\relax
613 \advance\@tempdima-\wd\FV@TabBox
614 \setbox\FV@TabBox=\hbox\bgroup
615 \unhbox\FV@TabBox\kern\@tempdima\hbox to\z@{\hss\FV@TabChar}}
616 \define@booleankey{FV}{obeytabs}%
617 {\let\FV@ObeyTabsInit\FV@@ObeyTabsInit}%
618 {\let\FV@ObeyTabsInit\relax}
620 \define@key{FV}{formatcom}[]{\def\FancyVerbFormatCom{#1\relax}}
621 \define@key{FV}{formatcom*}{%
625 \def\FancyVerbFormatLine#1{\FV@ObeyTabs{#1}}
626 \define@key{FV}{xleftmargin}{\def\FV@XLeftMargin{#1}}
627 \let\FV@XLeftMargin\z@
628 \define@key{FV}{xrightmargin}{\def\FV@XRightMargin{#1}}
629 \let\FV@XRightMargin\z@
630 \define@booleankey{FV}{resetmargins}%
631 {\let\if@FV@ResetMargins\iftrue}
632 {\let\if@FV@ResetMargins\iffalse}
634 \define@key{FV}{listparameters}{\def\FV@ListParameterHook{#1}}
635 \def\FV@ListParameterHook{}
636 \define@key{FV}{hfuzz}{%
640 \define@booleankey{FV}{samepage}%
641 {\def\FV@InterLinePenalty{\interlinepenalty\@M}}%
642 {\let\FV@InterLinePenalty\relax}
644 \def\FV@List#1{%
646 \FV@UseKeyValues
647 \FV@LeaveVMode
649 \FV@ListNesting{#1}%
650 \FV@ListParameterHook
651 \FV@ListVSpace
652 \FV@SetLineWidth
653 \FV@InterLinePenalty
654 \let\FV@ProcessLine\FV@ListProcessLine@i
655 \FV@CatCodes
656 \FV@FormattingPrep
657 \FV@ObeyTabsInit
658 \FV@BeginListFrame}
659 \def\FV@LeaveVMode{%
663 \if@FV@ResetMargins\if@inlabel\leavevmode\fi\fi
666 \def\FV@ListNesting#1{%
667 \if@FV@ResetMargins
682 \def\FV@ListVSpace{%
702 \def\FV@SetLineWidth{%
703 \if@FV@ResetMargins\else
706 \advance\leftmargin\FV@XLeftMargin\relax
707 \advance\rightmargin\FV@XRightMargin\relax
712 \def\FV@ListProcessLine#1{%
716 \FV@LeftListNumber
717 \FV@LeftListFrame
720 %% \FV@RightListFrame}%
721 \FV@RightListFrame
722 \FV@RightListNumber}%
725 \def\FV@ListProcessLine@i#1{%
730 \FV@ListProcessLine{#1}}%
731 \let\FV@ProcessLine\FV@ListProcessLine@ii}
732 \def\FV@ListProcessLine@ii#1{%
733 \setbox\@tempboxa=\FV@ListProcessLine{#1}%
734 \let\FV@ProcessLine\FV@ListProcessLine@iii}
735 \def\FV@ListProcessLine@iii#1{%
738 \setbox\@tempboxa=\FV@ListProcessLine{#1}%
739 \let\FV@ProcessLine\FV@ListProcessLine@iv}
740 \def\FV@ListProcessLine@iv#1{%
743 \setbox\@tempboxa=\FV@ListProcessLine{#1}}%
744 \def\FV@EndList{%
745 \FV@ListProcessLastLine
746 \FV@EndListFrame
750 \def\FV@ListProcessLastLine{%
751 \ifx\FV@ProcessLine\FV@ListProcessLine@iv
755 \ifx\FV@ProcessLine\FV@ListProcessLine@iii
761 \ifx\FV@ProcessLine\FV@ListProcessLine@i
762 \FV@Error{Empty verbatim environment}{}%
763 \FV@ProcessLine{}%
767 \def\FV@VerbatimBegin{\FV@List\z@}
768 \def\FV@VerbatimEnd{\FV@EndList}
769 \def\FVB@Verbatim{\FV@VerbatimBegin\FV@Scan}
770 \def\FVE@Verbatim{\FV@VerbatimEnd}
772 \def\FV@UseVerbatim#1{%
773 \FV@VerbatimBegin#1\FV@VerbatimEnd
775 \def\VerbatimInput{\FV@Command{}{VerbatimInput}}
776 \def\FVC@VerbatimInput#1{\FV@UseVerbatim{\FV@Input{#1}}}
777 \def\FV@LVerbatimBegin{\FV@List\@ne}
778 \def\FV@LVerbatimEnd{\FV@EndList}
779 \def\FVB@LVerbatim{\FV@LVerbatimBegin\FV@Scan}
780 \def\FVE@LVerbatim{\FV@LVerbatimEnd}
782 \def\FV@LUseVerbatim#1{%
783 \FV@LVerbatimBegin#1\FV@LVerbatimEnd
785 \def\LVerbatimInput{\FV@Command{}{LVerbatimInput}}
786 \def\FVC@LVerbatimInput#1{\FV@LUseVerbatim{\FV@Input{#1}}}
787 \def\FV@Frame@none{%
788 \let\FV@BeginListFrame\relax
789 \let\FV@LeftListFrame\relax
790 \let\FV@RightListFrame\relax
791 \let\FV@EndListFrame\relax}
792 \def\FV@Frame@single{%
793 \let\FV@BeginListFrame\FV@BeginListFrame@Single
794 \let\FV@LeftListFrame\FV@LeftListFrame@Single
795 \let\FV@RightListFrame\FV@RightListFrame@Single
796 \let\FV@EndListFrame\FV@EndListFrame@Single}
797 \def\FV@Frame@lines{%
798 \let\FV@BeginListFrame\FV@BeginListFrame@Lines
799 \let\FV@LeftListFrame\relax
800 \let\FV@RightListFrame\relax
801 \let\FV@EndListFrame\FV@EndListFrame@Lines}
802 \def\FV@Frame@topline{%
803 \let\FV@BeginListFrame\FV@BeginListFrame@Lines
804 \let\FV@LeftListFrame\relax
805 \let\FV@RightListFrame\relax
806 \let\FV@EndListFrame\relax}
807 \def\FV@Frame@bottomline{%
808 \let\FV@BeginListFrame\relax
809 \let\FV@LeftListFrame\relax
810 \let\FV@RightListFrame\relax
811 \let\FV@EndListFrame\FV@EndListFrame@Lines}
813 \def\FV@Frame@leftline{%
814 % To define the \FV@FrameFillLine macro (from \FV@BeginListFrame)
816 \let\FV@FrameFillLine\relax
818 \@tempdima\FV@FrameRule\relax
820 \edef\FV@FrameFillLine{%
824 \let\FV@BeginListFrame\relax
825 \let\FV@LeftListFrame\FV@LeftListFrame@Single
826 \let\FV@RightListFrame\relax
827 \let\FV@EndListFrame\relax}
828 \def\FV@BeginListFrame@Single{%
832 \let\FV@FrameFillLine\relax
834 \@tempdima\FV@FrameRule\relax
836 \edef\FV@FrameFillLine{%
841 %% \FV@SingleFrameLine
842 \FV@SingleFrameLine{\z@}%
845 \FV@SingleFrameSep
848 \define@key{FV}{label}{%
850 \ifx\@tempa\FV@None
851 \let\FV@LabelBegin\relax
852 \let\FV@LabelEnd\relax
854 \FV@Label@i#1\@nil%
856 \def\FV@Label@i{\@ifnextchar[{\FV@Label@ii}{\FV@Label@ii[]}}
857 \def\FV@Label@ii[#1]#2\@nil{%
860 \def\FV@LabelBegin{#2}%
862 \def\FV@LabelBegin{#1}%
863 \def\FV@LabelPositionBottomLine{\@ne}%
865 \def\FV@LabelEnd{#2}}
867 \define@key{FV}{labelposition}[none]{%
868 \@ifundefined{FV@LabelPosition@#1}%
869 {\FV@Error{Label position `#1' not defined.}\FV@eha}%
870 {\@nameuse{FV@LabelPosition@#1}}}
871 \def\FV@LabelPosition@none{%
872 \let\FV@LabelPositionTopLine\relax%
873 \let\FV@LabelPositionBottomLine\relax}
874 \def\FV@LabelPosition@topline{%
875 \def\FV@LabelPositionTopLine{\@ne}%
876 \let\FV@LabelPositionBottomLine\relax}
877 \def\FV@LabelPosition@bottomline{%
878 \let\FV@LabelPositionTopLine\relax%
879 \def\FV@LabelPositionBottomLine{\@ne}}
880 \def\FV@LabelPosition@all{%
881 \def\FV@LabelPositionTopLine{\@ne}%
882 \def\FV@LabelPositionBottomLine{\@ne}}
886 %% \def\FV@SingleFrameLine{%
887 \def\FV@SingleFrameLine#1{%
893 \let\FV@Label\FV@LabelBegin
895 \let\FV@Label\FV@LabelEnd
897 \ifx\FV@Label\relax
899 \FancyVerbRuleColor{\vrule \@width\linewidth \@height\FV@FrameRule}%
903 \setbox\z@\hbox{\strut\enspace\FV@LabelBegin\enspace\strut}%
905 \setbox\z@\hbox{\strut\enspace\FV@LabelEnd\enspace\strut}%
913 \ifx\FV@LabelPositionTopLine\relax
914 \FancyVerbRuleColor{\vrule \@width\linewidth \@height\FV@FrameRule}%
916 \FV@FrameLineWithLabel
919 \ifx\FV@LabelPositionBottomLine\relax
920 \FancyVerbRuleColor{\vrule \@width\linewidth \@height\FV@FrameRule}%
922 \FV@FrameLineWithLabel
929 \def\FV@FrameLineWithLabel{%
932 \vrule \@width\@tempdimc \@height\FV@FrameRule
934 \vrule \@width\@tempdimc \@height\FV@FrameRule}}
936 \def\FV@BeginListFrame@Lines{%
941 %% \FV@SingleFrameLine
943 %% \FV@SingleFrameLine
944 \FV@SingleFrameLine{\z@}%
949 \kern\FV@FrameSep\relax
951 \def\FV@EndListFrame@Lines{%
954 \kern\FV@FrameSep\relax
956 %% \FV@SingleFrameLine
957 \FV@SingleFrameLine{\@ne}%
960 \def\FV@SingleFrameSep{%
965 %% DG modification begin - June 18, 1997 (\FV@FrameSep missing)
967 \vrule\@width 0pt\@height\FV@FrameSep\relax
970 \vrule\@width\FV@FrameRule\relax
974 {\FancyVerbFillColor\leaders\hrule\@height\FV@FrameSep\hfil}%
976 %% DG modification begin - June 18, 1997 (\FV@FrameSep missing)
978 \vrule\@width 0pt\@height\FV@FrameSep\relax
981 \vrule\@width\FV@FrameRule\relax}}%
983 \def\FV@LeftListFrame@Single{%
985 {\FancyVerbRuleColor{\vrule \@width\FV@FrameRule}}%
986 \FV@FrameFillLine
988 %% \kern\FV@FrameSep}
990 \kern\FV@FrameSep
992 {\noexpand\leavevmode\FancyVerbFillColor{\vrule\@width\FV@FrameSep}}%
995 \def\FV@RightListFrame@Single{%
997 %% \kern\FV@FrameSep
999 \kern\FV@FrameSep
1001 {\noexpand\leavevmode\FancyVerbFillColor{\vrule\@width\FV@FrameSep}}%
1003 {\noexpand\leavevmode\FancyVerbRuleColor{\vrule\@width\FV@FrameRule}}}
1005 \def\FV@EndListFrame@Single{%
1007 \FV@SingleFrameSep
1010 %% \FV@SingleFrameLine}
1011 \FV@SingleFrameLine{\@ne}}
1013 \define@key{FV}{framerule}{%
1015 \edef\FV@FrameRule{\number\@tempdima sp\relax}}
1016 \def\KV@FV@framerule@default{\let\FV@FrameRule\fboxrule}
1017 \define@key{FV}{framesep}{%
1019 \edef\FV@FrameSep{\number\@tempdima sp\relax}}
1020 \def\KV@FV@framesep@default{\let\FV@FrameSep\fboxsep}
1022 \define@key{FV}{rulecolor}{%
1024 \ifx\@tempa\FV@None
1029 \define@key{FV}{fillcolor}{%
1031 \ifx\@tempa\FV@None
1037 \def\FV@Frame@double{%
1038 \let\FV@FrameBegin\FV@FrameBegin@double
1039 \let\FV@FrameLine\FV@FrameLine@double
1040 \let\FV@FrameEnd\FV@FrameEnd@double}
1041 \define@key{FV}{frame}[none]{%
1042 \@ifundefined{FV@Frame@#1}%
1043 {\FV@Error{Frame style `#1' not defined.}\FV@eha}%
1044 {\@nameuse{FV@Frame@#1}}}
1047 \define@key{FV}{firstnumber}[auto]{%
1050 \def\FV@SetLineNo{%
1051 \c@FancyVerbLine\FV@CodeLineNo
1056 \let\FV@SetLineNo\relax
1059 %% \def\FV@SetLineNo{\c@FancyVerbLine#1}%
1060 \def\FV@SetLineNo{%
1066 \define@booleankey{FV}{numberblanklines}%
1067 {\let\if@FV@NumberBlankLines\iftrue}
1068 {\let\if@FV@NumberBlankLines\iffalse}
1072 \def\FV@refstepcounter#1{%
1077 \def\FV@StepLineNo{%
1078 \FV@SetLineNo
1080 %% \def\FV@StepLineNo{\refstepcounter{FancyVerbLine}}%
1081 \def\FV@StepLineNo{%
1082 \if@FV@NumberBlankLines
1083 \FV@refstepcounter{FancyVerbLine}
1085 \ifx\FV@Line\empty
1087 \FV@refstepcounter{FancyVerbLine}
1091 \FV@StepLineNo}
1096 \define@key{FV}{numbers}[none]{%
1097 \@ifundefined{FV@Numbers@#1}%
1098 {\FV@Error{Numbers style `#1' not defined.}\FV@eha}%
1099 {\@nameuse{FV@Numbers@#1}}}
1101 %%\def\FV@Numbers@none{\let\FV@LeftListNumber\relax}
1102 \def\FV@Numbers@none{%
1103 \let\FV@LeftListNumber\relax
1104 \let\FV@RightListNumber\relax}
1105 \newcount\FV@StepNumber
1106 \define@key{FV}{stepnumber}{\FV@StepNumber#1}
1107 \def\KV@FV@stepnumber@default{\FV@StepNumber\@ne}
1110 %%\def\FV@Numbers@left{%
1111 %% \def\FV@LeftListNumber{\hbox to\z@{%
1112 %% \hss\theFancyVerbLine\kern\FV@NumberSep}}}
1113 \def\FV@Numbers@left{%
1115 \let\FV@RightListNumber\relax
1117 \def\FV@LeftListNumber{%
1118 \@tempcnta=\FV@CodeLineNo
1119 \@tempcntb=\FV@CodeLineNo
1120 \divide\@tempcntb\FV@StepNumber
1121 \multiply\@tempcntb\FV@StepNumber
1124 %% \hbox to\z@{\hss\theFancyVerbLine\kern\FV@NumberSep}%
1125 \if@FV@NumberBlankLines
1126 \hbox to\z@{\hss\theFancyVerbLine\kern\FV@NumberSep}%
1128 \ifx\FV@Line\empty
1130 \hbox to\z@{\hss\theFancyVerbLine\kern\FV@NumberSep}%
1135 \def\FV@Numbers@right{%
1137 \let\FV@LeftListNumber\relax
1139 \def\FV@RightListNumber{%
1140 \@tempcnta=\FV@CodeLineNo
1141 \@tempcntb=\FV@CodeLineNo
1142 \divide\@tempcntb\FV@StepNumber
1143 \multiply\@tempcntb\FV@StepNumber
1146 %% \hbox to \z@{\kern\FV@NumberSep\theFancyVerbLine\hss}%
1147 \if@FV@NumberBlankLines
1148 \hbox to\z@{\kern\FV@NumberSep\theFancyVerbLine\hss}%
1150 \ifx\FV@Line\empty
1152 \hbox to\z@{\kern\FV@NumberSep\theFancyVerbLine\hss}%
1158 \define@key{FV}{numbersep}{%
1160 \edef\FV@NumberSep{\number\@tempdima sp\relax}}
1162 \def\FV@BVerbatimBegin{%
1164 \FV@UseKeyValues
1165 \FV@BeginVBox
1166 \let\FV@ProcessLine\FV@BProcessLine
1167 \FV@FormattingPrep
1168 \FV@ObeyTabsInit}%
1169 \def\FV@BVerbatimEnd{\FV@EndVBox\endgroup}
1170 \def\FV@BeginVBox{%
1172 \hbox\ifx\FV@boxwidth\relax\else to\FV@boxwidth\fi\bgroup
1173 \ifcase\FV@baseline\vbox\or\vtop\or$\vcenter\fi\bgroup}
1174 \def\FV@EndVBox{\egroup\ifmmode$\fi\hfil\egroup}
1175 \define@key{FV}{boxwidth}{%
1178 \let\FV@boxwidth\relax
1181 \edef\FV@boxwidth{\number\@tempdima sp}%
1183 \def\KV@FV@boxwidth@default{\let\FV@boxwidth\relax}
1184 \define@key{FV}{baseline}{%
1185 \if t#1\@empty\let\FV@baseline\@ne\else
1186 \if c#1\@empty\let\FV@baseline\tw@\else\let\FV@baseline\z@\fi
1189 \def\FV@BProcessLine#1{\hbox{\FancyVerbFormatLine{#1}}}
1190 \def\FVB@BVerbatim{\FV@BVerbatimBegin\FV@Scan}
1191 \def\FVE@BVerbatim{\FV@BVerbatimEnd}
1193 \def\FV@BUseVerbatim#1{\FV@BVerbatimBegin#1\FV@BVerbatimEnd}
1194 \def\BVerbatimInput{\FV@Command{}{BVerbatimInput}}
1195 \def\FVC@BVerbatimInput#1{\FV@BUseVerbatim{\FV@Input{#1}}}
1196 \def\SaveVerbatim{\FV@Environment{}{SaveVerbatim}}
1200 \FV@UseKeyValues
1201 %% \FV@BeginVBox
1202 %% \let\FV@ProcessLine\FV@BProcessLine
1203 %% \FV@FormattingPrep
1204 %% \FV@ObeyTabsInit%
1207 \gdef\FV@TheVerbatim{}%
1208 \def\FV@ProcessLine##1{%
1209 \expandafter\gdef\expandafter\FV@TheVerbatim\expandafter{%
1210 \FV@TheVerbatim\FV@ProcessLine{##1}}}%
1211 \gdef\FV@TheVerbatim{}%
1212 \FV@Scan}
1215 \csname FV@SV@\SaveVerbatim@Name\endcsname\FV@TheVerbatim
1217 %% \csname FV@SV@\SaveVerbatim@Name\endcsname{\FV@TheVerbatim}
1218 %% \FV@EndVBox
1222 \def\FV@CheckIfSaved#1#2{%
1223 \@ifundefined{FV@SV@#1}%
1224 {\FV@Error{No verbatim text has been saved under name `#1'}\FV@eha}%
1225 {#2{\csname FV@SV@#1\endcsname}}}
1226 \def\UseVerbatim{\FV@Command{}{UseVerbatim}}
1227 \def\FVC@UseVerbatim#1{\FV@CheckIfSaved{#1}{\FV@UseVerbatim}}
1228 \def\LUseVerbatim{\FV@Command{}{LUseVerbatim}}
1229 \def\FVC@LUseVerbatim#1{\FV@CheckIfSaved{#1}{\FV@LUseVerbatim}}
1230 \def\BUseVerbatim{\FV@Command{}{BUseVerbatim}}
1231 \def\FVC@BUseVerbatim#1{\FV@CheckIfSaved{#1}{\FV@BUseVerbatim}}
1232 \newwrite\FV@OutFile
1233 \def\VerbatimOut{\FV@Environment{}{VerbatimOut}}
1237 \FV@UseKeyValues
1238 \FV@DefineWhiteSpace
1239 \def\FV@Space{\space}%
1240 \FV@DefineTabOut
1241 \def\FV@ProcessLine{\immediate\write\FV@OutFile}%
1242 \immediate\openout\FV@OutFile #1\relax
1243 \let\FV@FontScanPrep\relax
1247 \FV@Scan}
1248 \def\FVE@VerbatimOut{\immediate\closeout\FV@OutFile\endgroup\@esphack}
1250 \def\FV@DefineTabOut{%
1251 \def\FV@Tab{}%
1254 \edef\FV@Tab{\FV@Tab\space}%
1257 \def\SaveVerb{\FV@Command{}{SaveVerb}}
1261 \@namedef{FV@SV@#1}{}%
1263 \FV@UseKeyValues%
1264 \FV@CatCodes%
1265 \outer\def^^M{\FV@EOL}%
1269 \expandafter\@tempa\string#2{\endgroup\@namedef{FV@SV@#1}{##2}\@tempg}%
1270 \FancyVerbGetVerb\FV@EOL}%
1272 \def\FV@EOL{%
1274 \FV@Error%
1280 \define@key{FV}{aftersave}{\def\FancyVerbAfterSave{#1}}
1282 \def\FV@UseVerb#1{\mbox{\FV@UseKeyValues\FV@FormattingPrep#1}}
1283 \def\UseVerb{\FV@Command{}{UseVerb}}
1285 \@ifundefined{FV@SV@#1}%
1286 {\FV@Error{Short verbatim text never saved to name `#1'}\FV@eha}%
1287 {\FV@UseVerb{\@nameuse{FV@SV@#1}}}}
1288 \def\Verb{\FV@Command{}{Verb}}
1293 \FV@UseKeyValues%
1294 \FV@FormattingPrep%
1295 \FV@CatCodes%
1300 \FancyVerbGetVerb\FV@EOL}%
1302 \def\DefineShortVerb{\FV@Command{}{DefineShortVerb}}
1304 \@ifundefined{FV@CC@\string#1}%
1306 {\FV@Error{`\expandafter\@gobble\string#1' is already a short
1307 verb character.}\FV@eha}}
1313 \expandafter\let\csname FV@AC@\string#1\endcsname\@temph
1314 \expandafter\edef\csname FV@CC@\string#1\endcsname{\the\catcode`#1}%
1315 \expandafter\let\csname FV@KV@\string#1\endcsname\FV@KeyValues
1317 \let\noexpand\FV@KeyValues\expandafter\noexpand
1318 \csname FV@KV@\string#1\endcsname
1324 \@ifundefined{FV@CC@\string#1}%
1325 {\FV@Error{`\expandafter\@gobble\string#1' is not a short
1326 verb character}\FV@eha}%
1327 {\FV@UndefineShortVerb#1}}
1328 \def\FV@UndefineShortVerb#1{%
1329 \catcode`#1=\csname FV@CC@\string#1\endcsname
1331 \expandafter\let\csname FV@CC@\string#1\endcsname\relax
1337 \expandafter\@tempg\csname FV@AC@\string#1\endcsname
1343 \def\SaveMVerb{\FV@Command{}{SaveMVerb}}
1347 \@ifundefined{FV@SVM@#1}{}%
1348 {\FV@Error{Moving verbatim name `#1' already used}%
1350 \global\@namedef{FV@SVM@#1}{}%
1352 \let\FV@SavedKeyValues\FV@KeyValues%
1353 \FV@UseKeyValues%
1354 \FV@CatCodes%
1361 \FV@DefineWhiteSpace%
1362 \let\FV@Space\space%
1363 \let\FV@Tab\space%
1364 \FV@MakeUnActive%
1367 \noexpand\SaveGVerb[\FV@SavedKeyValues]{#1}\string#2##2\string#2}%
1370 \@namedef{FV@SV@#1}{##2}%
1372 \FancyVerbGetVerb\FV@EOL}%
1374 \def\SaveGVerb{\FV@Command{}{SaveGVerb}}
1378 \global\@namedef{FV@SVG@#1}{}%
1380 \FV@UseKeyValues%
1381 \FV@CatCodes%
1385 \expandafter\@tempa\string#2{\endgroup\global\@namedef{FV@SVG@#1}{##2}}%
1386 \FancyVerbGetVerb\FV@EOL}%
1389 \def\pUseMVerb{\FV@Command{}{pUseMVerb}}
1391 \expandafter\ifx \csname FV@SVM@#1\endcsname\relax
1392 \expandafter\ifx \csname FV@SVG@#1\endcsname\relax
1393 \@warning{Moving verbatim text not defined for name `#1'}\FV@eha
1396 \FV@UseVerb{\@nameuse{FV@SVG@#1}}%
1399 \FV@UseVerb{\@nameuse{FV@SVM@#1}}%