/
showProg.sty
219 lines (216 loc) · 7.83 KB
/
showProg.sty
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
% showProg.sty by tDB (CQB00260@nifty.ne.jp)
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{showProg}[2002/11/09 v0.00$B&A(B TeX $BBPLu(B ]
\RequirePackage{ifthen}%
\RequirePackage{verbatim}%
\RequirePackage{ascmac}%
\RequirePackage{program}%
%
\@ifundefined{showex@out}{\newwrite\showex@out}{}%
\def\program#1#2{%
% \setcounter{prglineno}{0}%
\@program{#1}{#2}\frenchspacing\@vobeyspaces%
\verbh@@k\@programdefs\@xprogram%
}%
\def\showProgbox{shadebox}
\def\showProg{\@ifnextchar[{\showProg@}{\showProg@[1]}}
\def\showProg@[#1]{\bgroup
\setcounter{prglineno}{#1}%
\addtocounter{prglineno}{-1}%
\showProg@@}%
\def\showProg@@{\@ifnextchar({\@showProg}{\@showProg(.45,.45)}}%
\def\@showProg(#1,#2)#3#4{\xdef\@lsz{#1}\xdef\@rsz{#2}\def\showProgTTL{#3}%
\bgroup\immediate\openout\showex@out=showex.tmp%
\immediate\write\showex@out{\string\begin{program}\string\showProgTTL{#4}}%
\@bsphack\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\showex@out{\the\verbatim@line}}%
\verbatim@start}%
\def\endshowProg{\@esphack
\immediate\write\showex@out{\string\end{program}}%
\immediate\closeout\showex@out\egroup
\par\noindent
\begin{minipage}{\@lsz\linewidth}
\input{showex.tmp}
\end{minipage}%
\@tempdima=\@lsz pt\advance\@tempdima\@rsz pt\relax%
\ifdim\@tempdima>.95pt\relax\vspace{2pt}\par\noindent\fi%
\@tempdima\@rsz pt\relax\ifdim\@tempdima>.95pt\relax%
\hspace*{2zw}$B"-(B\par\noindent\else\hfill $B"*(B \hfill\fi%
\begin{minipage}{\@rsz\linewidth}%
\begin{\showProgbox}%
\def\program##1##2{\relax}%
\def\endprogram{\relax}%
\input{showex.tmp}%
\end{\showProgbox}%
\end{minipage}%
\egroup
\par\noindent}%
%
\def\showcProg{\@ifnextchar({\@showcProg}{\@showcProg(.45,.45)}}%
\def\@showcProg(#1,#2)#3#4{\bgroup
\xdef\@lsz{#1}\xdef\@rsz{#2}\def\showProgTTL{#3}%
\bgroup\immediate\openout\showex@out=showex.tmp%
\immediate\write\showex@out{\string\begin{cprogram}\string\showProgTTL{#4}}%
\@bsphack\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\showex@out{\the\verbatim@line}}%
\verbatim@start}%
\def\endshowcProg{\@esphack
\immediate\write\showex@out{\string\end{cprogram}}%
\immediate\closeout\showex@out\egroup
\par\noindent
\begin{minipage}{\@lsz\linewidth}
\input{showex.tmp}
\end{minipage}%
\@tempdima=\@lsz pt\advance\@tempdima\@rsz pt\relax%
\ifdim\@tempdima>.95pt\relax\vspace{2pt}\par\noindent\fi%
\@tempdima\@rsz pt\relax\ifdim\@tempdima>.95pt\relax%
\hspace*{2zw}$B"-(B\par\noindent\else\hfill $B"*(B \hfill\fi%
\begin{minipage}{\@rsz\linewidth}%
\begin{\showProgbox}%
\def\cprogram##1##2{\relax}%
\def\endcprogram{\relax}%
\input{showex.tmp}%
\end{\showProgbox}%
\end{minipage}%
\egroup
\par\noindent}%
%
\def\shownhProg{\@ifnextchar[{\shownhProg@}{\shownhProg@[1]}}
\def\shownhProg@[#1]{\bgroup
\setcounter{prglineno}{#1}%
\addtocounter{prglineno}{-1}%
\shownhProg@@}%
\def\shownhProg@@{\@ifnextchar({\@shownhProg}{\@shownhProg(.45,.45)}}%
\def\@shownhProg(#1,#2){\xdef\@lsz{#1}\xdef\@rsz{#2}%
\bgroup\immediate\openout\showex@out=showex.tmp%
\immediate\write\showex@out{\string\begin{nhprogram}}%
\@bsphack\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\showex@out{\the\verbatim@line}}%
\verbatim@start}%
\def\endshownhProg{\@esphack
\immediate\write\showex@out{\string\end{nhprogram}}%
\immediate\closeout\showex@out\egroup
\par\noindent
\begin{minipage}{\@lsz\linewidth}
\input{showex.tmp}
\end{minipage}%
\@tempdima=\@lsz pt\advance\@tempdima\@rsz pt\relax%
\ifdim\@tempdima>.95pt\relax\vspace{2pt}\par\noindent\fi%
\@tempdima\@rsz pt\relax\ifdim\@tempdima>.95pt\relax%
\hspace*{2zw}$B"-(B\par\noindent\else\hfill $B"*(B \hfill\fi%
\begin{minipage}{\@rsz\linewidth}%
\begin{\showProgbox}%
\def\nhprogram{\relax}%
\def\endnhprogram{\relax}%
\input{showex.tmp}%
\end{\showProgbox}%
\end{minipage}%
\egroup
\par\noindent}%
%
\def\shownhcProg{\@ifnextchar({\@shownhcProg}{\@shownhcProg(.45,.45)}}%
\def\@shownhcProg(#1,#2){\bgroup
\xdef\@lsz{#1}\xdef\@rsz{#2}%
\bgroup\immediate\openout\showex@out=showex.tmp%
\immediate\write\showex@out{\string\begin{nhcprogram}}%
\@bsphack\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\showex@out{\the\verbatim@line}}%
\verbatim@start}%
\def\endshownhcProg{\@esphack
\immediate\write\showex@out{\string\end{nhcprogram}}%
\immediate\closeout\showex@out\egroup
\par\noindent
\begin{minipage}{\@lsz\linewidth}
\input{showex.tmp}
\end{minipage}%
\@tempdima=\@lsz pt\advance\@tempdima\@rsz pt\relax%
\ifdim\@tempdima>.95pt\relax\vspace{2pt}\par\noindent\fi%
\@tempdima\@rsz pt\relax\ifdim\@tempdima>.95pt\relax%
\hspace*{2zw}$B"-(B\par\noindent\else\hfill $B"*(B \hfill\fi%
\begin{minipage}{\@rsz\linewidth}%
\begin{\showProgbox}%
\def\nhcprogram{\relax}%
\def\endnhcprogram{\relax}%
\input{showex.tmp}%
\end{\showProgbox}%
\end{minipage}%
\egroup
\par\noindent}%
%
\def\shownfProg{\@ifnextchar[{\shownfProg@}{\shownfProg@[1]}}
\def\shownfProg@[#1]{\bgroup
\setcounter{prglineno}{#1}%
\addtocounter{prglineno}{-1}%
\shownfProg@@}%
\def\shownfProg@@{\@ifnextchar({\@shownfProg}{\@shownfProg(.45,.45)}}%
\def\@shownfProg(#1,#2)#3#4{\xdef\@lsz{#1}\xdef\@rsz{#2}\def\showProgTTL{#3}%
\bgroup\immediate\openout\showex@out=showex.tmp%
\immediate\write\showex@out{\string\begin{nfprogram}\string\showProgTTL{#4}}%
\@bsphack\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\showex@out{\the\verbatim@line}}%
\verbatim@start}%
\def\endshownfProg{\@esphack
\immediate\write\showex@out{\string\end{nfprogram}}%
\immediate\closeout\showex@out\egroup
\par\noindent
\begin{minipage}{\@lsz\linewidth}
\input{showex.tmp}
\end{minipage}%
\@tempdima=\@lsz pt\advance\@tempdima\@rsz pt\relax%
\ifdim\@tempdima>.95pt\relax\vspace{2pt}\par\noindent\fi%
\@tempdima\@rsz pt\relax\ifdim\@tempdima>.95pt\relax%
\hspace*{2zw}$B"-(B\par\noindent\else\hfill $B"*(B \hfill\fi%
\begin{minipage}{\@rsz\linewidth}%
\begin{\showProgbox}%
\def\nfprogram##1##2{\relax}%
\def\endnfprogram{\relax}%
\input{showex.tmp}%
\end{\showProgbox}%
\end{minipage}%
\egroup
\par\noindent}%
%
\def\shownfcProg{\@ifnextchar[{\shownfcProg@}{\shownfcProg@[1]}}
\def\shownfcProg@[#1]{\bgroup\shownfcProg@@}%
\def\shownfcProg@@{\@ifnextchar({\@shownfcProg}{\@shownfcProg(.45,.45)}}%
\def\@shownfcProg(#1,#2)#3#4{\xdef\@lsz{#1}\xdef\@rsz{#2}\def\showProgTTL{#3}%
\bgroup\immediate\openout\showex@out=showex.tmp%
\immediate\write\showex@out{\string\begin{nfcprogram}\string\showProgTTL{#4}}%
\@bsphack\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\showex@out{\the\verbatim@line}}%
\verbatim@start}%
\def\endshownfcProg{\@esphack
\immediate\write\showex@out{\string\end{nfcprogram}}%
\immediate\closeout\showex@out\egroup
\par\noindent
\begin{minipage}{\@lsz\linewidth}
\input{showex.tmp}
\end{minipage}%
\@tempdima=\@lsz pt\advance\@tempdima\@rsz pt\relax%
\ifdim\@tempdima>.95pt\relax\vspace{2pt}\par\noindent\fi%
\@tempdima\@rsz pt\relax\ifdim\@tempdima>.95pt\relax%
\hspace*{2zw}$B"-(B\par\noindent\else\hfill $B"*(B \hfill\fi%
\begin{minipage}{\@rsz\linewidth}%
\begin{\showProgbox}%
\def\nfcprogram##1##2{\relax}%
\def\endnfcprogram{\relax}%
\input{showex.tmp}%
\end{\showProgbox}%
\end{minipage}%
\egroup
\par\noindent}%
\endinput
ver 0.00$B&A(B 2002/11/09