summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/beamer/beamerbaseverbatim.sty
blob: 1c3d5dd4345e90fc5e5b8d89186ff02e91cb5c91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
\ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbaseverbatim.sty,v 1.6 2005/04/12 14:29:35 tantau Exp $

% Copyright 2003 by Till Tantau <tantau@users.sourceforge.net>.
%
% This program can be redistributed and/or modified under the terms
% of the GNU Public License, version 2.

\mode<presentation>


\newwrite\beamer@verbatimfileout

\def\beamer@verbatimreadframe{%
  \begingroup%
  \let\do\beamer@makeinnocent\dospecials%
  \count@=127%
  \@whilenum\count@<255 \do{%
    \advance\count@ by 1%
    \catcode\count@=11%
  }%
  \beamer@makeinnocent\^^L% and whatever other special cases
  \endlinechar`\^^M \catcode`\^^M=12 \beamer@processframefirstline}

{\catcode`\^^M=12\endlinechar=-1%
  \long\gdef\beamer@processframefirstline#1^^M{%
    \def\beamer@test{#1}%
    \ifx\beamer@test\beamer@stopframefirst%
      \let\next=\beamer@framewritten%
    \else
      \@temptokena={#1}%
      \immediate\write\beamer@verbatimfileout{\the\@temptokena}%
      \let\next=\beamer@processframeline%
    \fi%
    \next%
  }
  \long\gdef\beamer@processframeline#1^^M{%
    \def\beamer@test{#1}%
    \ifx\beamer@test\beamer@stopframe%
      \let\next=\beamer@framewritten%
    \else
      \immediate\write\beamer@verbatimfileout{#1}%
      \let\next=\beamer@processframeline%
    \fi%
    \next%
  }
}

\def\beamer@setupstoppers#1{%
  {
    \escapechar=-1\relax%
    \xdef\beamer@stopframe{\string\\end\string\{#1\string\}}
    \xdef\beamer@stopframefirst{\noexpand\end\string\{#1\string\}}
}
}


\def\beamer@framewritten{\endgroup%
  \beamer@afterexternalframe%
}




% The following code is partly adapted from code from the alltt package.

\mode
<all>
{
\begingroup
\lccode`\~=`\'
\lowercase{\endgroup
\newenvironment{semiverbatim}{%
  \trivlist
  \item\relax
    \if@minipage
    \else
      \vskip\parskip
    \fi
    \leftskip\@totalleftmargin
    \rightskip\z@skip
    \parindent\z@
    \parfillskip\@flushglue
    \parskip\z@skip
    \@@par
    \@tempswafalse
    \def\par{%
      \if@tempswa
        \leavevmode\null\@@par\penalty\interlinepenalty
    \else
      \@tempswatrue
      \ifhmode\@@par\penalty\interlinepenalty\fi
    \fi}
    \obeylines
    \def\verbatim@nolig@list{\do\`\do\,\do\'\do\-}
    \verbatim@font
    \let\org@prime~%
    \everymath\expandafter{\the\everymath
      \catcode`\'=12 \let~\org@prime}
    \everydisplay\expandafter{\the\everydisplay
      \catcode`\'=12 \let~\org@prime}
    \def\dospecials{\do\ \do\$\do\&%
     \do\#\do\^\do\_\do\%\do\~\do\`\do\,\do\'\do\-}
    \let\do\@makeother
    \dospecials
    \def\\{\char`\\}
    \def\{{\char`\{}
    \def\}{\char`\}}
    \frenchspacing\@vobeyspaces
    \everypar \expandafter{\the\everypar \unpenalty}}
{\endtrivlist}}
}

\mode
<all>
% End in common mode


%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "~/texmf/tex/latex/beamer/examples/beamerexample1.tex"
%%% End: