~ubuntu-branches/ubuntu/maverick/texlive-extra/maverick

« back to all changes in this revision

Viewing changes to texmf-dist/tex/latex/progkeys/programs.sty

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2009-05-05 09:18:38 UTC
  • mfrom: (1.1.8 upstream) (3.1.12 squeeze)
  • Revision ID: james.westby@ubuntu.com-20090505091838-n4cyrz5wncwsu0ml
Tags: 2007.dfsg.17-2ubuntu1
* Merge with Debian unstable; remaining Ubuntu changes:
  - Drop texpower Recommends to Suggests. It is in universe, and drags in
    context and xpdf.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
%% 
2
 
%% This is file `programs.sty',
3
 
%% generated with the docstrip utility.
4
 
%% 
5
 
%% The original source files were:
6
 
%% 
7
 
%% programs.dtx  (with options: `style')
8
 
%% 
9
 
%% Copyright: Miguel Alabau, 1995    Miguel.Alabau@labri.u-bordeaux.fr 
10
 
%% 
11
 
\NeedsTeXFormat{LaTeX2e}
12
 
\ProvidesPackage{programs}
13
 
 
14
 
%% \CharacterTable
15
 
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
16
 
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
17
 
%%   Digits        \0\1\2\3\4\5\6\7\8\9
18
 
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
19
 
%%   Dollar        \$     Percent       \%     Ampersand     \&
20
 
%%   Acute accent  \'     Left paren    \(     Right paren   \)
21
 
%%   Asterisk      \*     Plus          \+     Comma         \,
22
 
%%   Minus         \-     Point         \.     Solidus       \/
23
 
%%   Colon         \:     Semicolon     \;     Less than     \<
24
 
%%   Equals        \=     Greater than  \>     Question mark \?
25
 
%%   Commercial at \@     Left bracket  \[     Backslash     \\
26
 
%%   Right bracket \]     Circumflex    \^     Underscore    \_
27
 
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
28
 
%%   Right brace   \}     Tilde         \~}
29
 
%%
30
 
 
31
 
 
32
 
\typeout{Document style `programs.sty' <1993,1994,1995>}
33
 
 
34
 
\expandafter\ifx\csname AlreadyDefined@@Programs\endcsname\relax%
35
 
\expandafter\def\csname AlreadyDefined@@Programs\endcsname{}%
36
 
\else\endinput\fi
37
 
 
38
 
%% CONTROLLING PROGRAM INDENTATION
39
 
\newdimen\@@programindent
40
 
\@@programindent=\z@
41
 
\def\ProgramIndent#1{\@@programindent=#1}
42
 
 
43
 
%% SURROUNDING PROGRAMS BY RULES
44
 
\newif\if@@surround\@@surroundfalse
45
 
\def\ProgramSurround{\@@surroundtrue}
46
 
\def\@@progline{\def\@@prgln{\rule{\linewidth}{0.1mm}}\@@prgln}
47
 
\def\@@noprogline{\rule{0pt}{0pt}}
48
 
 
49
 
%% LINE NUMBERING
50
 
\newlength{\@@defaultindent}
51
 
\settowidth{\@@defaultindent}{{\tt{}12345}}
52
 
\newif\if@@resetlineno \@@resetlinenotrue \newif\if@@unnumline
53
 
\@@unnumlinefalse
54
 
\newif\if@@CurrentProgIsUnnumbered \@@CurrentProgIsUnnumberedfalse
55
 
 
56
 
\def\NoResetProgramCounter{\@@resetlinenofalse}
57
 
 
58
 
\def\UnnumLine{\ \@@unnumlinetrue}
59
 
 
60
 
\newcounter{@@lineno}\setcounter{@@lineno}{1}
61
 
\def\SetProgramCounter#1{\setcounter{@@lineno}{#1}\@@resetlinenofalse}
62
 
 
63
 
\newcounter{@@dummylineno}\setcounter{@@dummylineno}{1}
64
 
 
65
 
\def\LeftMarginNumberLine{\let\@@PlaceOfNumbers\@@LeftMarginNumberLine}
66
 
\def\RightMarginNumberLine{\let\@@PlaceOfNumbers\@@RightMarginNumberLine}
67
 
\def\BothMarginsNumberLine{\let\@@PlaceOfNumbers\@@BothMarginsNumberLine}
68
 
\def\InBodyLeftNumberLine{\let\@@PlaceOfNumbers\@@InBodyLeftNumberLine}
69
 
\def\@@LeftMarginNumberLine{0} \def\@@RightMarginNumberLine{1}
70
 
\def\@@BothMarginsNumberLine{2}
71
 
\def\@@InBodyLeftNumberLine{3}
72
 
\LeftMarginNumberLine
73
 
 
74
 
%% PROGRAM DEFAULT FONTS
75
 
\def\@@DefaultProgramFont{0}
76
 
\def\ttProgram{\def\@@DefaultProgramFont{0}\def@@astyped\def@@program}
77
 
\def\rmProgram{\def\@@DefaultProgramFont{1}\def@@astyped\def@@program}
78
 
\def\emProgram{\def\@@DefaultProgramFont{2}\def@@astyped\def@@program}
79
 
\def\ProgramDefaultFont{\ttProgram}
80
 
 
81
 
%% THE REAL ENVIRONMENT
82
 
{\catcode`\ =\active\gdef\@@vobeyspaces{\catcode`\ \active\let \@@xobeysp}}
83
 
\def\@@xobeysp{\leavevmode\penalty10000\ }
84
 
\def\def@@astyped{%
85
 
    \def\@@astyped{%
86
 
        \partopsep\z@%
87
 
        \topsep\z@%
88
 
        \trivlist \item[]%
89
 
            \leftskip\@totalleftmargin%
90
 
            \rightskip\z@%
91
 
            \parindent\z@%
92
 
            \parfillskip\@flushglue%
93
 
            \parskip\z@%
94
 
            \@tempswafalse%
95
 
            \def\par{\if@tempswa\hbox{}\fi\@tempswatrue\@@par}%
96
 
            \obeylines%
97
 
            \ifcase\@@DefaultProgramFont \tt\or \rm\or \em\else \tt\fi
98
 
            \catcode``=13 \@noligs%
99
 
            \let\do\@makeother \do\ \do\^^K\do\^^A%
100
 
            \frenchspacing\@@vobeyspaces%
101
 
            \noindent\hspace{\parindent}%
102
 
            \if@@surround\@@progline\else\@@noprogline\fi%
103
 
            \nopagebreak%
104
 
            }
105
 
    \def\end@@astyped{%
106
 
            \nopagebreak%
107
 
            \noindent\hspace{\parindent}%
108
 
            \if@@surround\@@progline\else\@@noprogline\fi%
109
 
        \endtrivlist%
110
 
        }
111
 
}
112
 
 
113
 
%% META-COMMANDS FOR DEFINING NEW PROGRAM ENVIRONMENTS
114
 
\def\NewProgram#1#2{\@@newprog{#1}{#2}}
115
 
\def\RenewProgram#1#2{\@@newprog{#1}{#2}}
116
 
\def\@@newprog#1#2{%
117
 
    \@namedef{#1}{%
118
 
        \begingroup\def\@@tempa{\@nameuse{#2}}%
119
 
        \def\@@tempb{\baselinestretch}\def\baselinestretch{1}%
120
 
        \@ifundefined{@@tempa}{\normalsize}{\@@tempa}%
121
 
        \def@@astyped\@@astyped%
122
 
        \@ifnextchar[{\@@xnewprog}{\@@xnewprog[\@@programindent]}%
123
 
    }%
124
 
    \@namedef{end#1}{%
125
 
        \everypar{}%
126
 
        \if@@CurrentProgIsUnnumbered \relax%
127
 
        \else%
128
 
                \addtocounter{@@lineno}{1}%
129
 
        \fi%
130
 
        %
131
 
        \end@@astyped%
132
 
        \let\baselinestretch=\@@tempb\endgroup%
133
 
        \global\@@resetlinenotrue%
134
 
        \global\ProgramDefaultFont%
135
 
        \global\@@surroundfalse%
136
 
    }%
137
 
    \@namedef{f#1}##1{\@nameuse{#1}*\par\input##1\@nameuse{end#1}}%
138
 
    \@namedef{l#1}##1{\@nameuse{#1}\par\input##1\@nameuse{end#1}}%
139
 
}
140
 
 
141
 
\newlength{\@@numlinelength}
142
 
\def\@@xnewprog[#1]{%
143
 
        \@ifstar{%
144
 
          \@@CurrentProgIsUnnumberedtrue
145
 
            \setcounter{@@dummylineno}{0}%
146
 
            \leavevmode%
147
 
            \everypar{%
148
 
                \refstepcounter{@@dummylineno}%
149
 
                \@@unnumlinefalse%
150
 
                \noindent\hspace{#1}}%
151
 
        }%
152
 
        {%
153
 
          \@@CurrentProgIsUnnumberedfalse
154
 
          \if@@resetlineno%
155
 
                  \setcounter{@@lineno}{0}%
156
 
          \else%
157
 
                  \addtocounter{@@lineno}{-1}%
158
 
          \fi%
159
 
          \leavevmode%
160
 
          \everypar{%
161
 
              \if@@unnumline%
162
 
                  \ifx \@@PlaceOfNumbers\@@InBodyLeftNumberLine%
163
 
                      \hspace{\@@defaultindent}%
164
 
                      \rule{0pt}{0pt}%
165
 
                  \fi
166
 
              \else%
167
 
                  \refstepcounter{@@lineno}%
168
 
                  \ifx \@@PlaceOfNumbers\@@LeftMarginNumberLine%
169
 
                      \llap{{\rm\the@@lineno\ \ }}%
170
 
                  \else \ifx \@@PlaceOfNumbers\@@RightMarginNumberLine%
171
 
                      \noindent\hspace{\columnwidth}%
172
 
                      \rlap{{\rm\ \ \the@@lineno}}%
173
 
                      \noindent\hspace{-\columnwidth}%
174
 
                  \else \ifx \@@PlaceOfNumbers\@@BothMarginsNumberLine%
175
 
                      \noindent\hspace{\columnwidth}%
176
 
                      \rlap{{\rm\ \ \the@@lineno}}%
177
 
                      \noindent\hspace{-\columnwidth}%
178
 
                      \llap{{\rm\the@@lineno\ \ }}%
179
 
                  \else \ifx \@@PlaceOfNumbers\@@InBodyLeftNumberLine%
180
 
                      \hspace{\@@defaultindent}%
181
 
                      \rule{0pt}{0pt}%
182
 
                      \llap{{\rm\the@@lineno\ \ }}%
183
 
                  \else
184
 
                       \llap{{\rm\the@@lineno\ \ }}%
185
 
                  \fi\fi\fi\fi
186
 
              \fi\@@unnumlinefalse%
187
 
              \noindent\hspace{#1}%
188
 
        }%
189
 
    }%
190
 
}
191
 
 
192
 
%% PREDEFINED ENVIRONMENTS AND COMMANDS
193
 
\def\def@@program{%
194
 
  \NewProgram{program}{normalsize}
195
 
  \NewProgram{programl}{large}
196
 
  \NewProgram{programL}{Large}
197
 
  \NewProgram{programs}{small}
198
 
  \NewProgram{programf}{footnotesize}
199
 
  \NewProgram{programsc}{scriptsize}
200
 
  \NewProgram{programt}{tiny}
201
 
}
202
 
\ProgramDefaultFont
203
 
 
204
 
%% OLD MACRO NAMES PRESENT HERE FOR COMPATIBILITY REASONS
205
 
\let\newprogram=\NewProgram \let\renewprogram=\RenewProgram
206
 
\let\noresetprogramcounter=\NoResetProgramCounter
207
 
\let\programindent=\ProgramIndent
208
 
\let\programsurround=\ProgramSurround
209
 
\let\setprogramcounter=\SetProgramCounter \let\unnumline=\UnnumLine
210
 
\let\BothMarginNumberLine=\BothMarginsNumberLine
211
 
 
212
 
 
213
 
\endinput
214
 
%% 
215
 
%% End of file `programs.sty'.