1 |
dashley |
140 |
%$Header$ |
2 |
|
|
% |
3 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4 |
|
|
%% SEPARATORS |
5 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
6 |
|
|
%% |
7 |
|
|
%Digit separation distance for denoting thousands, etc. Choosing space rather than comma. |
8 |
|
|
\newcommand{\vworkthousandsdigsepinmathmode}{\;} |
9 |
|
|
%% |
10 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
11 |
|
|
%% CHAPTER QUOTES |
12 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
13 |
|
|
%% |
14 |
|
|
%Quote which begins each chapter. |
15 |
|
|
\newcommand{\beginchapterquote}[2]{\textbf{#1}\begin{flushright}\emph{---#2}\end{flushright}} |
16 |
|
|
|
17 |
|
|
%Source when included with quote which begins each chapter. |
18 |
|
|
\newcommand{\chapquoteshortsrc}[1]{\begin{flushright}\emph{---#1}\end{flushright}} |
19 |
|
|
%% |
20 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
21 |
|
|
%% EXAMPLES |
22 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
23 |
|
|
%% |
24 |
|
|
%General-purpose example start. Used to generate the beginning of the example |
25 |
|
|
%only, should enclose only an optional label. |
26 |
|
|
\newtheorem{vworkgenexample}{Example} |
27 |
|
|
|
28 |
|
|
%General-purpose example solution start. |
29 |
|
|
\newcommand{\vworkgenexamplesolutionhead}{\noindent\textbf{Solution: }} |
30 |
|
|
|
31 |
|
|
%General-purpose example solution body. This is the environment in which |
32 |
|
|
%the example's solution is stated. For the present time, there are no |
33 |
|
|
%changes to the text. |
34 |
|
|
\newenvironment{vworkgenexamplesolutionbody}{\noindent\textbf{Solution: }}{} |
35 |
|
|
|
36 |
|
|
%Define a new counter used to hold the example number within a chapter. |
37 |
|
|
%\newcounter{vworkexamplecounter}[chapter] |
38 |
|
|
|
39 |
|
|
%Alternate numbering for examples. |
40 |
|
|
%\renewcommand{\thevworkexamplecounter}{\thechapter.\arabic{vworkexamplecounter}} |
41 |
|
|
|
42 |
|
|
%Define the marking which delimits the start of an example. For now, this |
43 |
|
|
%is a little bit of space and a horizontal bar. |
44 |
|
|
\newcommand{\vworkexampleheader}{\par\nopagebreak\vspace{0.01in}% |
45 |
|
|
\noindent\rule{\textwidth}{1pt}% |
46 |
|
|
\par\nopagebreak} |
47 |
|
|
|
48 |
|
|
%Define the marking which delimits the end of an example. For now, this is |
49 |
|
|
%a horizontal line. An example must be "footed" manually because there are |
50 |
|
|
%so many variations on what can be in an example. |
51 |
|
|
\newcommand{\vworkexamplefooter}{\par\nopagebreak% |
52 |
|
|
\vspace{0.01in}\noindent\rule{\textwidth}{1pt}% |
53 |
|
|
\par\nopagebreak} |
54 |
|
|
|
55 |
|
|
%Define a new environment to hold the body of an example, and the numbering of an |
56 |
|
|
%example. |
57 |
|
|
\newenvironment{vworkexamplestatement}% |
58 |
|
|
{\vworkexampleheader\noindent% |
59 |
|
|
\setlength{\parindent}{0em}% |
60 |
|
|
\setlength{\parskip}{1ex}% |
61 |
|
|
\refstepcounter{vworktheoremcounter}% |
62 |
|
|
\textbf{Example \nopagebreak[2]\thevworktheoremcounter{}: }}{\par} |
63 |
|
|
|
64 |
|
|
%Define a new environment to hold a "solution" or "remarks" block within an example. |
65 |
|
|
%The presence or absence of a colon is something that may change, so better to code |
66 |
|
|
%that in here. |
67 |
|
|
\newenvironment{vworkexampleparsection}[1]{\par\noindent% |
68 |
|
|
\setlength{\parindent}{0em}% |
69 |
|
|
\setlength{\parskip}{1ex}% |
70 |
|
|
\textbf{#1:\nopagebreak[2] }}{\par} |
71 |
|
|
%% |
72 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
73 |
|
|
%% DEFINITIONS |
74 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
75 |
|
|
%% |
76 |
|
|
%Counter for "artifical" theorems. In this context, "artificial" means that the |
77 |
|
|
%built-in theorem environment is not used. |
78 |
|
|
%\newcounter{vworkdefinitioncounter}[chapter] |
79 |
|
|
|
80 |
|
|
%Alternate numbering for definitions. |
81 |
|
|
%\renewcommand{\thevworkdefinitioncounter}{\thechapter.\arabic{vworkdefinitioncounter}} |
82 |
|
|
|
83 |
|
|
%Define the markings which delimit the start and ends of a definition. For now, these |
84 |
|
|
%are NULL. Later, I may define something else--a little extra space or a line. |
85 |
|
|
\newcommand{\vworkdefinitionheader}{\par\nopagebreak% |
86 |
|
|
\vspace{0.01in}\noindent\rule{\textwidth}{1pt}% |
87 |
|
|
\par\nopagebreak} |
88 |
|
|
\newcommand{\vworkdefinitionfooter}{\par\nopagebreak% |
89 |
|
|
\vspace{0.01in}\noindent\rule{\textwidth}{1pt}% |
90 |
|
|
\par\nopagebreak} |
91 |
|
|
|
92 |
|
|
%Environment to hold definitions. This was defined (rather than using the built-in |
93 |
|
|
%environment) because I cannot stand having a number without a colon. |
94 |
|
|
\newenvironment{vworkdefinitionstatement}% |
95 |
|
|
{\vworkdefinitionheader\noindent% |
96 |
|
|
\setlength{\parindent}{0em}% |
97 |
|
|
\setlength{\parskip}{1ex}% |
98 |
|
|
\refstepcounter{vworktheoremcounter}% |
99 |
|
|
\textbf{Definition \nopagebreak[2]\thevworktheoremcounter{}: }}{\par} |
100 |
|
|
|
101 |
|
|
%Environment to begin a definition that also has descriptive text. |
102 |
|
|
\newenvironment{vworkdefinitionstatementpar}[1]% |
103 |
|
|
{\vworkdefinitionheader\noindent% |
104 |
|
|
\setlength{\parindent}{0em}% |
105 |
|
|
\setlength{\parskip}{1ex}% |
106 |
|
|
\refstepcounter{vworktheoremcounter}% |
107 |
|
|
\textbf{Definition \nopagebreak[2]\thevworktheoremcounter{} (#1): }}{\par} |
108 |
|
|
|
109 |
|
|
%Define a new environment to hold a "solution" or "remarks" block within a definition. |
110 |
|
|
%The presence or absence of a colon is something that may change, so better to code |
111 |
|
|
%that in here. |
112 |
|
|
\newenvironment{vworkdefinitionparsection}[1]{\par\noindent% |
113 |
|
|
\setlength{\parindent}{0em}% |
114 |
|
|
\setlength{\parskip}{1ex}% |
115 |
|
|
\textbf{#1:\nopagebreak[2] }}{\par} |
116 |
|
|
%% |
117 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
118 |
|
|
%% LEMMAS |
119 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
120 |
|
|
%% |
121 |
|
|
%% Because lemmas and theorems are so similar, decided that they should |
122 |
|
|
%% use the same counters. I think this makes it easier for readers, so they |
123 |
|
|
%% don't have to separate the two out when searching. |
124 |
|
|
%% |
125 |
|
|
%\newcounter{vworktheoremcounter}[chapter] |
126 |
|
|
|
127 |
|
|
%Alternate numbering for lemmas. |
128 |
|
|
%\renewcommand{\thevworktheoremcounter}{\thechapter.\arabic{vworktheoremcounter}} |
129 |
|
|
|
130 |
|
|
%Define the markings which delimit the start and ends of a lemma. For now, these |
131 |
|
|
%are NULL. Later, I may define something else--a little extra space or a line. |
132 |
|
|
\newcommand{\vworklemmaheader}{\par\nopagebreak% |
133 |
|
|
\vspace{0.01in}\noindent\rule{\textwidth}{1pt}% |
134 |
|
|
\par\nopagebreak} |
135 |
|
|
\newcommand{\vworklemmafooter}{\par\nopagebreak% |
136 |
|
|
\vspace{0.01in}\noindent\rule{\textwidth}{1pt}% |
137 |
|
|
\par\nopagebreak} |
138 |
|
|
|
139 |
|
|
%Environment to hold lemmas. This was defined (rather than using the built-in |
140 |
|
|
%environment) because I cannot stand having a number without a colon. |
141 |
|
|
\newenvironment{vworklemmastatement}% |
142 |
|
|
{\vworklemmaheader\noindent% |
143 |
|
|
\setlength{\parindent}{0em}% |
144 |
|
|
\setlength{\parskip}{1ex}% |
145 |
|
|
\refstepcounter{vworktheoremcounter}% |
146 |
|
|
\textbf{Lemma \nopagebreak[2]\thevworktheoremcounter{}: }}{\par} |
147 |
|
|
|
148 |
|
|
%Environment to begin a lemma that also has descriptive text. |
149 |
|
|
\newenvironment{vworklemmastatementpar}[1]% |
150 |
|
|
{\vworklemmaheader\noindent% |
151 |
|
|
\setlength{\parindent}{0em}% |
152 |
|
|
\setlength{\parskip}{1ex}% |
153 |
|
|
\refstepcounter{vworktheoremcounter}% |
154 |
|
|
\textbf{Lemma \nopagebreak[2]\thevworktheoremcounter{} (#1): }}{\par} |
155 |
|
|
|
156 |
|
|
%Define a new environment to hold the proof of a lemma. |
157 |
|
|
\newenvironment{vworklemmaproof}% |
158 |
|
|
{\par\noindent% |
159 |
|
|
\setlength{\parindent}{0em}% |
160 |
|
|
\setlength{\parskip}{1ex}% |
161 |
|
|
\textbf{Proof:\nopagebreak[2] }}{\hfill\rule{1.5ex}{1.5ex}\par} |
162 |
|
|
|
163 |
|
|
%Define a new environment to hold a "solution" or "remarks" block within a lemma. |
164 |
|
|
%The presence or absence of a colon is something that may change, so better to code |
165 |
|
|
%that in here. |
166 |
|
|
\newenvironment{vworklemmaparsection}[1]{\par\noindent% |
167 |
|
|
\setlength{\parindent}{0em}% |
168 |
|
|
\setlength{\parskip}{1ex}% |
169 |
|
|
\textbf{#1:\nopagebreak[2] }}{\par} |
170 |
|
|
%% |
171 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
172 |
|
|
%% THEOREMS |
173 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
174 |
|
|
%% |
175 |
|
|
%Counter for "artifical" theorems. In this context, "artificial" means that the |
176 |
|
|
%built-in theorem environment is not used. |
177 |
|
|
\newcounter{vworktheoremcounter}[chapter] |
178 |
|
|
|
179 |
|
|
%Alternate numbering for theorems. |
180 |
|
|
\renewcommand{\thevworktheoremcounter}{\thechapter.\arabic{vworktheoremcounter}} |
181 |
|
|
|
182 |
|
|
%Define the markings which delimit the start and ends of a theorem. For now, these |
183 |
|
|
%are NULL. Later, I may define something else--a little extra space or a line. |
184 |
|
|
\newcommand{\vworktheoremheader}{\par\nopagebreak% |
185 |
|
|
\vspace{0.01in}\noindent\rule{\textwidth}{1pt}% |
186 |
|
|
\par\nopagebreak} |
187 |
|
|
\newcommand{\vworktheoremfooter}{\par\nopagebreak% |
188 |
|
|
\vspace{0.01in}\noindent\rule{\textwidth}{1pt}% |
189 |
|
|
\par\nopagebreak} |
190 |
|
|
|
191 |
|
|
%Environment to hold theorems. This was defined (rather than using the built-in |
192 |
|
|
%environment) because I cannot stand having a number without a colon. |
193 |
|
|
\newenvironment{vworktheoremstatement}% |
194 |
|
|
{\vworktheoremheader\noindent% |
195 |
|
|
\setlength{\parindent}{0em}% |
196 |
|
|
\setlength{\parskip}{1ex}% |
197 |
|
|
\refstepcounter{vworktheoremcounter}% |
198 |
|
|
\textbf{Theorem \nopagebreak[2]\thevworktheoremcounter{}: }}{\par} |
199 |
|
|
|
200 |
|
|
%Environment to begin a theorem that also has descriptive text. |
201 |
|
|
\newenvironment{vworktheoremstatementpar}[1]% |
202 |
|
|
{\vworktheoremheader\noindent% |
203 |
|
|
\setlength{\parindent}{0em}% |
204 |
|
|
\setlength{\parskip}{1ex}% |
205 |
|
|
\refstepcounter{vworktheoremcounter}% |
206 |
|
|
\textbf{Theorem \nopagebreak[2]\thevworktheoremcounter{} (#1): }}{\par} |
207 |
|
|
|
208 |
|
|
%Define a new environment to hold the proof of a theorem. |
209 |
|
|
\newenvironment{vworktheoremproof}% |
210 |
|
|
{\par\noindent% |
211 |
|
|
\setlength{\parindent}{0em}% |
212 |
|
|
\setlength{\parskip}{1ex}% |
213 |
|
|
\textbf{Proof:\nopagebreak[2] }}{\hfill\rule{1.5ex}{1.5ex}\par} |
214 |
|
|
|
215 |
|
|
%Define a new environment to hold a "solution" or "remarks" block within a theorem. |
216 |
|
|
%The presence or absence of a colon is something that may change, so better to code |
217 |
|
|
%that in here. |
218 |
|
|
\newenvironment{vworktheoremparsection}[1]{\par\noindent% |
219 |
|
|
\setlength{\parindent}{0em}% |
220 |
|
|
\setlength{\parskip}{1ex}% |
221 |
|
|
\textbf{#1:\nopagebreak[2] }}{\par} |
222 |
|
|
%% |
223 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
224 |
|
|
%% ALGORITHMS |
225 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
226 |
|
|
%% |
227 |
|
|
%Counter for "artifical" theorems. In this context, "artificial" means that the |
228 |
|
|
%built-in theorem environment is not used. |
229 |
|
|
%\newcounter{vworktheoremcounter}[chapter] |
230 |
|
|
|
231 |
|
|
%Alternate numbering for theorems. |
232 |
|
|
%\renewcommand{\thevworktheoremcounter}{\thechapter.\arabic{vworktheoremcounter}} |
233 |
|
|
|
234 |
|
|
%Define the markings which delimit the start and ends of an algorithm. For now, these |
235 |
|
|
%are NULL. Later, I may define something else--a little extra space or a line. |
236 |
|
|
\newcommand{\vworkalgorithmheader}{\par\nopagebreak% |
237 |
|
|
\vspace{0.01in}\noindent\rule{\textwidth}{1pt}% |
238 |
|
|
\par\nopagebreak} |
239 |
|
|
\newcommand{\vworkalgorithmfooter}{\par\nopagebreak% |
240 |
|
|
\vspace{0.01in}\noindent\rule{\textwidth}{1pt}% |
241 |
|
|
\par\nopagebreak} |
242 |
|
|
|
243 |
|
|
%Environment to hold algorithms. This was defined (rather than using the built-in |
244 |
|
|
%environment) because I cannot stand having a number without a colon. |
245 |
|
|
\newenvironment{vworkalgorithmstatement}% |
246 |
|
|
{\vworkalgorithmheader\noindent% |
247 |
|
|
\setlength{\parindent}{0em}% |
248 |
|
|
\setlength{\parskip}{1ex}% |
249 |
|
|
\refstepcounter{vworktheoremcounter}% |
250 |
|
|
\textbf{Algorithm \nopagebreak[2]\thevworktheoremcounter{}: }}{\par} |
251 |
|
|
|
252 |
|
|
%Environment to begin an algorithm that also has descriptive text. |
253 |
|
|
\newenvironment{vworkalgorithmstatementpar}[1]% |
254 |
|
|
{\vworkalgorithmheader\noindent% |
255 |
|
|
\setlength{\parindent}{0em}% |
256 |
|
|
\setlength{\parskip}{1ex}% |
257 |
|
|
\refstepcounter{vworktheoremcounter}% |
258 |
|
|
\textbf{Algorithm \nopagebreak[2]\thevworktheoremcounter{} (#1): }}{\par} |
259 |
|
|
|
260 |
|
|
%Define a new environment to hold the proof of an algorithm. |
261 |
|
|
\newenvironment{vworkalgorithmproof}% |
262 |
|
|
{\par\noindent% |
263 |
|
|
\setlength{\parindent}{0em}% |
264 |
|
|
\setlength{\parskip}{1ex}% |
265 |
|
|
\textbf{Proof:\nopagebreak[2] }}{\hfill\rule{1.5ex}{1.5ex}\par} |
266 |
|
|
|
267 |
|
|
%Define a new environment to hold a "solution" or "remarks" block within an algorithm. |
268 |
|
|
%The presence or absence of a colon is something that may change, so better to code |
269 |
|
|
%that in here. |
270 |
|
|
\newenvironment{vworkalgorithmparsection}[1]{\par\noindent% |
271 |
|
|
\setlength{\parindent}{0em}% |
272 |
|
|
\setlength{\parskip}{1ex}% |
273 |
|
|
\textbf{#1:\nopagebreak[2] }}{\par} |
274 |
|
|
%The "itemize" environment defined by the book style files didn't seem to have |
275 |
|
|
%quite the right appearance for presenting our algorithms. For this reason, the |
276 |
|
|
%following environments were defined. Level 0 is flush left with bullets, Level 1 |
277 |
|
|
%is slightly more indented, etc. |
278 |
|
|
\newenvironment{alglvl0}{\begin{list} |
279 |
|
|
{$\bullet$}{\setlength{\labelwidth}{3mm}\setlength{\leftmargin}{6mm}}} |
280 |
|
|
{\end{list}} |
281 |
|
|
\newenvironment{alglvl1}{\begin{list} |
282 |
|
|
{$\bullet$}{\setlength{\labelwidth}{3mm}\setlength{\leftmargin}{6mm}}} |
283 |
|
|
{\end{list}} |
284 |
|
|
\newenvironment{alglvl2}{\begin{list} |
285 |
|
|
{$\bullet$}{\setlength{\labelwidth}{3mm}\setlength{\leftmargin}{6mm}}} |
286 |
|
|
{\end{list}} |
287 |
|
|
%The environments above have been obsoleted. |
288 |
|
|
\newcounter{alglvl0ctr} |
289 |
|
|
\newenvironment{algblvl0}{\begin{list} |
290 |
|
|
{\textbf{[\arabic{alglvl0ctr}]}}{\usecounter{alglvl0ctr}% |
291 |
|
|
\setlength{\labelwidth}{6mm}\setlength{\leftmargin}{9mm}}} |
292 |
|
|
{\end{list}} |
293 |
|
|
%% |
294 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
295 |
|
|
%% EXERCISES |
296 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
297 |
|
|
%% |
298 |
|
|
%Counter for exercises at the end of each chapter. |
299 |
|
|
\newcounter{vworkexercisecounter}[chapter] |
300 |
|
|
|
301 |
|
|
%We'd like to number an exercise slightly differently, using the chapter number |
302 |
|
|
%followed by "." followed by the equation number. |
303 |
|
|
\renewcommand{\thevworkexercisecounter}{\thechapter.\arabic{vworkexercisecounter}} |
304 |
|
|
|
305 |
|
|
%Define the markings which delimit the start and ends of an exercise. For now, these |
306 |
|
|
%are NULL. Later, I may define something else--a little extra space or a line. |
307 |
|
|
\newcommand{\vworkexerciseheader}{\par\vspace{0.01in}\par} |
308 |
|
|
\newcommand{\vworkexercisefooter}{\par\vspace{0.01in}\par} |
309 |
|
|
|
310 |
|
|
%Environment to hold exercises. |
311 |
|
|
\newenvironment{vworkexercisestatement}% |
312 |
|
|
{\vworkexerciseheader\noindent% |
313 |
|
|
\setlength{\parindent}{0em}% |
314 |
|
|
\setlength{\parskip}{1ex}% |
315 |
|
|
\refstepcounter{vworkexercisecounter}% |
316 |
|
|
\textbf{[\thevworkexercisecounter{}]}\nopagebreak[2] }{\par} |
317 |
|
|
|
318 |
|
|
%Define a new environment to hold a "remarks" block within an exercise. |
319 |
|
|
%The presence or absence of a colon is something that may change, so better to code |
320 |
|
|
%that in here. |
321 |
|
|
\newenvironment{vworkexerciseparsection}[1]{\par\noindent% |
322 |
|
|
\setlength{\parindent}{0em}% |
323 |
|
|
\setlength{\parskip}{1ex}% |
324 |
|
|
\textbf{#1: }}{\par} |
325 |
|
|
%% |
326 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
327 |
|
|
%% LESSONS LEARNED |
328 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
329 |
|
|
%% |
330 |
|
|
%Counter for lessons learned. |
331 |
|
|
\newcounter{vworklessonslearnedcounter}[chapter] |
332 |
|
|
|
333 |
|
|
%Alternate numbering for lessons learned. |
334 |
|
|
\renewcommand{\thevworklessonslearnedcounter}{\thechapter.\arabic{vworklessonslearnedcounter}} |
335 |
|
|
|
336 |
|
|
%Define the markings which delimit the start and ends of a lesson learned. |
337 |
|
|
\newcommand{\vworklessonslearnedheader}{\par\nopagebreak% |
338 |
|
|
\vspace{0.01in}\noindent\rule{\textwidth}{1pt}% |
339 |
|
|
\par\nopagebreak} |
340 |
|
|
\newcommand{\vworklessonslearnedfooter}{\par\nopagebreak% |
341 |
|
|
\vspace{0.01in}\noindent\rule{\textwidth}{1pt}% |
342 |
|
|
\par\nopagebreak} |
343 |
|
|
|
344 |
|
|
%Environment to hold lessons learned. |
345 |
|
|
\newenvironment{vworklessonslearnedstatement}% |
346 |
|
|
{\vworklessonslearnedheader\noindent% |
347 |
|
|
\setlength{\parindent}{0em}% |
348 |
|
|
\setlength{\parskip}{1ex}% |
349 |
|
|
\refstepcounter{vworklessonslearnedcounter}% |
350 |
|
|
\textbf{Lesson Learned \nopagebreak[2]\thevworklessonslearnedcounter{}: }}{\par} |
351 |
|
|
%% |
352 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
353 |
|
|
%% QUOTES |
354 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
355 |
|
|
%% |
356 |
|
|
%Environment to hold quotes. |
357 |
|
|
\newenvironment{indentedquote}{\begin{quote}}{\end{quote}} |
358 |
|
|
%% |
359 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
360 |
|
|
%% EXERCISE SOLUTIONS |
361 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
362 |
|
|
%% |
363 |
|
|
%Environment To Hold A Solution To An Exercise |
364 |
|
|
\newenvironment{vworkexercisesolution}[1]{\par\noindent% |
365 |
|
|
\setlength{\parindent}{0em}% |
366 |
|
|
\setlength{\parskip}{1ex}% |
367 |
|
|
\textbf{Solution To Exercise #1}\par}{\par} |
368 |
|
|
|
369 |
|
|
%Command which begins section of solutions for each chapter, command which |
370 |
|
|
%separates solutions, and command which ends solutions in each chapter. |
371 |
|
|
\newcommand{\vworkexercisechapterheader}{\par\nopagebreak\vspace{0.01in}% |
372 |
|
|
\noindent\rule{\textwidth}{1pt}% |
373 |
|
|
\par\nopagebreak} |
374 |
|
|
\newcommand{\vworkexerciseseparator}{\par\nopagebreak\vspace{0.01in}% |
375 |
|
|
\noindent\rule{\textwidth}{1pt}% |
376 |
|
|
\par\nopagebreak} |
377 |
|
|
\newcommand{\vworkexercisechapterfooter}{\par\nopagebreak% |
378 |
|
|
\vspace{0.01in}\noindent\rule{\textwidth}{1pt}% |
379 |
|
|
\par\nopagebreak} |
380 |
|
|
%% |
381 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
382 |
|
|
%% GLOSSARY OF TERMS |
383 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
384 |
|
|
%5 |
385 |
|
|
%The following environment is for the glossary of terms at the end. |
386 |
|
|
\newenvironment{vworktermglossaryenum}{\begin{list} |
387 |
|
|
{}{\setlength{\labelwidth}{0mm} |
388 |
|
|
\setlength{\leftmargin}{4mm} |
389 |
|
|
\setlength{\itemindent}{-4mm} |
390 |
|
|
\setlength{\parsep}{0.85mm}}} |
391 |
|
|
{\end{list}} |
392 |
|
|
%% |
393 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
394 |
|
|
%% GLOSSARY OF MATHEMATICAL TERMS |
395 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
396 |
|
|
%% |
397 |
|
|
%The following environment is for the glossary of mathematical terms at the end. |
398 |
|
|
\newenvironment{vworkmathtermglossaryenum}{\begin{list} |
399 |
|
|
{}{\setlength{\labelwidth}{0mm} |
400 |
|
|
\setlength{\leftmargin}{4mm} |
401 |
|
|
\setlength{\itemindent}{-4mm} |
402 |
|
|
\setlength{\parsep}{0.85mm}}} |
403 |
|
|
{\end{list}} |
404 |
|
|
|
405 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
406 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
407 |
|
|
% TCL COMMAND DOCUMENTATION |
408 |
|
|
% |
409 |
|
|
%Environment to hold the "NAME" portion of a Tcl command description. |
410 |
|
|
\newenvironment{tclcommandname}[1]{\noindent\textbf{NAME}\vspace{-1.0ex}\begin{list}% |
411 |
|
|
{}{\setlength{\leftmargin}{0.25in}}\item\textbf{#1}---}{\end{list}} |
412 |
|
|
|
413 |
|
|
%Command to display a synopsis line inside the synopsis environment. |
414 |
|
|
\newcommand{\tclcommandsynopsisline}[2]{\par\textbf{#1} \textit{#2}\par} |
415 |
|
|
|
416 |
|
|
%Environment to hold the "SYNOPSIS" portion of a Tcl command description. |
417 |
|
|
\newenvironment{tclcommandsynopsis}{\noindent\textbf{SYNOPSIS}\vspace{-1.0ex}\begin{list}% |
418 |
|
|
{}{\setlength{\leftmargin}{0.25in}}\item{}}{\end{list}} |
419 |
|
|
|
420 |
|
|
%Environment to hold the "DESCRIPTION" portion of a Tcl command description. |
421 |
|
|
\newenvironment{tclcommanddescription}{\noindent\textbf{DESCRIPTION}\vspace{-1.0ex}\begin{list}% |
422 |
|
|
{}{\setlength{\leftmargin}{0.25in}}\item{}}{\end{list}} |
423 |
|
|
|
424 |
|
|
%Environment to hold the "ACKNOWLEDGEMENTS" portion of a Tcl command description. |
425 |
|
|
\newenvironment{tclcommandacknowledgements}{\noindent\textbf{ACKNOWLEDGEMENTS}\vspace{-1.0ex}\begin{list}% |
426 |
|
|
{}{\setlength{\leftmargin}{0.25in}}\item{}}{\end{list}} |
427 |
|
|
|
428 |
|
|
%Environment to hold a specific subdescription within the DESCRIPTION--useful for enumerating |
429 |
|
|
%possible legal commands and command forms. |
430 |
|
|
\newenvironment{tclcommandinternaldescription}{\noindent{}\vspace{-5.0ex}\begin{list}% |
431 |
|
|
{}{\setlength{\leftmargin}{0.25in}}\item{}}{\end{list}} |
432 |
|
|
|
433 |
|
|
%Command to use to format a command prototype preceding the environment above (i.e. a synopsis). |
434 |
|
|
\newcommand{\tclcommanddescsynopsisline}[2]{\par\textbf{#1} \textit{#2}\par} |
435 |
|
|
|
436 |
|
|
%Environment to hold the "USAGE NOTES" portion of a Tcl command description. |
437 |
|
|
\newenvironment{tclcommandusagenotes}{\noindent\textbf{USAGE NOTES}\vspace{-1.0ex}\begin{list}% |
438 |
|
|
{}{\setlength{\leftmargin}{0.25in}}\item{}}{\end{list}} |
439 |
|
|
|
440 |
|
|
%Environment to hold the "SAMPLE INVOCATIONS" portion of a TCL command or extension description. |
441 |
|
|
\newenvironment{tclcommandsampleinvocations}{\noindent\textbf{SAMPLE INVOCATIONS}\vspace{-1.0ex}\begin{list}% |
442 |
|
|
{}{\setlength{\leftmargin}{0.25in}}\item{}}{\end{list}} |
443 |
|
|
|
444 |
|
|
%Environment to hold the "SEE ALSO" portion of a TCL command or extension utility description. |
445 |
|
|
\newenvironment{tclcommandseealso}{\noindent\textbf{SEE ALSO}\vspace{-1.0ex}\begin{list}% |
446 |
|
|
{}{\setlength{\leftmargin}{0.25in}}\item{}}{\end{list}} |
447 |
|
|
|
448 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
449 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
450 |
|
|
% DOS COMMAND-LINE UTILITY DOCUMENTATION |
451 |
|
|
% |
452 |
|
|
%Environment to hold the "NAME" portion of a DOS command-line utility. |
453 |
|
|
\newenvironment{dosutilcommandname}[1]{\noindent\textbf{NAME}\vspace{-1.0ex}\begin{list}% |
454 |
|
|
{}{\setlength{\leftmargin}{0.25in}}\item\textbf{#1}---}{\end{list}} |
455 |
|
|
|
456 |
|
|
%Command to display a synopsis line inside the synopsis environment. |
457 |
|
|
\newcommand{\dosutilcommandsynopsisline}[2]{\par\textbf{#1} \textit{#2}\par} |
458 |
|
|
|
459 |
|
|
%Environment to hold the "SYNOPSIS" portion of a DOS command-line utility description. |
460 |
|
|
\newenvironment{dosutilcommandsynopsis}{\noindent\textbf{SYNOPSIS}\vspace{-1.0ex}\begin{list}% |
461 |
|
|
{}{\setlength{\leftmargin}{0.25in}}\item{}}{\end{list}} |
462 |
|
|
|
463 |
|
|
%Environment to hold the "DESCRIPTION" portion of a DOS command-line utility description. |
464 |
|
|
\newenvironment{dosutilcommanddescription}{\noindent\textbf{DESCRIPTION}\vspace{-1.0ex}\begin{list}% |
465 |
|
|
{}{\setlength{\leftmargin}{0.25in}}\item{}}{\end{list}} |
466 |
|
|
|
467 |
|
|
%Environment to hold the "ACKNOWLEDGEMENTS" portion of a DOS command-line utility description. |
468 |
|
|
\newenvironment{dosutilcommandacknowledgements}{\noindent\textbf{ACKNOWLEDGEMENTS}\vspace{-1.0ex}\begin{list}% |
469 |
|
|
{}{\setlength{\leftmargin}{0.25in}}\item{}}{\end{list}} |
470 |
|
|
|
471 |
|
|
%Environment to hold a specific subdescription within the DESCRIPTION--useful for enumerating |
472 |
|
|
%possible legal commands and command forms. |
473 |
|
|
\newenvironment{dosutilcommandinternaldescription}{\noindent{}\vspace{-5.0ex}\begin{list}% |
474 |
|
|
{}{\setlength{\leftmargin}{0.25in}}\item{}}{\end{list}} |
475 |
|
|
|
476 |
|
|
%Command to use to format a command prototype preceding the environment above (i.e. a synopsis). |
477 |
|
|
\newcommand{\dosutilcommanddescsynopsisline}[2]{\par\textbf{#1} \textit{#2}\par} |
478 |
|
|
|
479 |
|
|
%Environment to hold the "USAGE NOTES" portion of a DOS command-line utility description. |
480 |
|
|
\newenvironment{dosutilcommandusagenotes}{\noindent\textbf{USAGE NOTES}\vspace{-1.0ex}\begin{list}% |
481 |
|
|
{}{\setlength{\leftmargin}{0.25in}}\item{}}{\end{list}} |
482 |
|
|
|
483 |
|
|
%Environment to hold the "REMARKS" portion of a DOS command-line utility description. |
484 |
|
|
\newenvironment{dosutilcommandremarks}{\noindent\textbf{REMARKS}\vspace{-1.0ex}\begin{list}% |
485 |
|
|
{}{\setlength{\leftmargin}{0.25in}}\item{}}{\end{list}} |
486 |
|
|
|
487 |
|
|
%Environment to hold the "SAMPLE INVOCATION" portion of a DOS command-line utility description. |
488 |
|
|
\newenvironment{dosutilcommandsampleinvocations}{\noindent\textbf{SAMPLE INVOCATIONS}\vspace{-1.0ex}\begin{list}% |
489 |
|
|
{}{\setlength{\leftmargin}{0.25in}}\item{}}{\end{list}} |
490 |
|
|
|
491 |
|
|
%Environment to hold the "SEE ALSO" portion of a DOS command-line utility description. |
492 |
|
|
\newenvironment{dosutilcommandseealso}{\noindent\textbf{SEE ALSO}\vspace{-1.0ex}\begin{list}% |
493 |
|
|
{}{\setlength{\leftmargin}{0.25in}}\item{}}{\end{list}} |
494 |
|
|
%% |
495 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
496 |
|
|
%% DESIRABLE PROPERTIES |
497 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
498 |
|
|
%Command to identify the prefix used for desirable properties. |
499 |
|
|
%"DP" seems as good as anything. |
500 |
|
|
\newcommand{\desirablepropertyprefix}{DP} |
501 |
|
|
% |
502 |
|
|
%% This counter is used only to number the desirable properties of |
503 |
|
|
%% embedded software used in the "Holy Grail" chapter. |
504 |
|
|
\newcounter{vworkdesirablepropertiescounter} |
505 |
|
|
|
506 |
|
|
%Command to increment the desirable properties counter, emit the tag, |
507 |
|
|
%and set the \ref value. |
508 |
|
|
\newcommand{\desirablepropertyemit}{\refstepcounter{vworkdesirablepropertiescounter}% |
509 |
|
|
[\desirablepropertyprefix-\thevworkdesirablepropertiescounter]} |
510 |
|
|
|
511 |
|
|
%Command to cite a desirable property. |
512 |
|
|
\newcommand{\desirablepropertycite}[1]{[\desirablepropertyprefix-\ref{#1}]} |
513 |
|
|
|
514 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
515 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
516 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
517 |
|
|
% |
518 |
|
|
%End of file WORKNENV.TEX |