├── don-hires.pdf ├── signature.png ├── Makefile.example ├── .gitignore ├── NEWS ├── uw-wkrpt.ins ├── ChangeLog ├── Makefile ├── uw-wkrpt-bib.bib ├── README.md ├── LICENSE ├── uw-wkrpt.cls ├── uw-wkrpt-cecs.tex ├── uw-wkrpt-math.tex ├── uw-wkrpt-ece.tex └── uw-wkrpt-se.tex /don-hires.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhyee/uw-wkrpt/HEAD/don-hires.pdf -------------------------------------------------------------------------------- /signature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhyee/uw-wkrpt/HEAD/signature.png -------------------------------------------------------------------------------- /Makefile.example: -------------------------------------------------------------------------------- 1 | # An example Makefile, demonstrating Latexmk 2 | # 3 | # Assumptions: 4 | # - The .tex file is report.tex 5 | # - It specifies report.bib as the bibliography 6 | # - Perl is installed 7 | # - latexmk.pl and uw-wkrpt.cls are in the working directory, instead of 8 | # being installed to the system 9 | 10 | .PHONY: all clean clean-all 11 | 12 | all: report.tex report.bib latexmk.pl uw-wkrpt.cls 13 | perl latexmk.pl -bibtex -pdf $< 14 | 15 | clean: 16 | perl latexmk.pl -c 17 | rm -f report.bcf 18 | rm -f report.run.xml 19 | 20 | clean-all: clean 21 | rm -f report.pdf 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | *.DS_Store 3 | 4 | # Ignore generated files 5 | # Intentionally allow *.cls file for convenience 6 | uw-ece-workreport.cls 7 | #uw-wkrpt.cls 8 | uw-wkrpt.drv 9 | uw-wkrpt*.pdf 10 | 11 | # Ignore biber files 12 | *.bcf 13 | *.run.xml 14 | 15 | # Taken from https://github.com/github/gitignore/blob/master/LaTeX.gitignore 16 | *.acn 17 | *.acr 18 | *.alg 19 | *.aux 20 | *.bbl 21 | *.blg 22 | *.dvi 23 | *.fdb_latexmk 24 | *.glg 25 | *.glo 26 | *.gls 27 | *.idx 28 | *.ilg 29 | *.ind 30 | *.ist 31 | *.lof 32 | *.log 33 | *.lot 34 | *.maf 35 | *.mtc 36 | *.mtc0 37 | *.nav 38 | *.nlo 39 | *.out 40 | *.pdfsync 41 | *.ps 42 | *.snm 43 | *.synctex.gz 44 | *.toc 45 | *.vrb 46 | *.xdy 47 | -------------------------------------------------------------------------------- /NEWS: -------------------------------------------------------------------------------- 1 | 2003-05-20 Simon Law 2 | 3 | Version 2.6 released. 4 | 5 | E&CE reports apparently have to have appendices at the end too. 6 | Plus, they need Appendices labelled as "Appendix A" and not just "A". 7 | 8 | 2003-05-09 Simon Law 9 | 10 | Version 2.5 released. 11 | 12 | Software Engineering reports are fixed (again) to have appendices 13 | at the end. 14 | 15 | 2003-05-09 Simon Law 16 | 17 | Version 2.4 released. 18 | 19 | Software Engineering reports are fixed. As well, page numbering 20 | for appendices is fixed. 21 | 22 | 2003-05-09 Simon Law 23 | 24 | Version 2.3 released. 25 | 26 | Section numbering is fixed for mathematics students. 27 | 28 | 2003-05-08 Simon Law 29 | 30 | Version 2.2 released. 31 | 32 | We corrected some margin sizes. 33 | 34 | 2003-04-30 Simon Law 35 | 36 | Version 2.1 released. 37 | 38 | We fixed some small spelling mistakes. 39 | 40 | 2003-04-27 Simon Law 41 | 42 | Version 2.0 released. This is the first version that is actually 43 | documented properly, It can even be installed into a TDS compliant 44 | TeX system. 45 | 46 | We now support CECS work reports, along with Math, and Soft Eng. 47 | Of course, E&CE reports are still supported. There are sample documents 48 | for each type of work report, that you can use as a template. 49 | 50 | 51 | 2003-01-11 Simon Law 52 | 53 | Version 1.1 released. 54 | 55 | We now generate correct "Table of Contents" pages. As well, the 56 | included sample document demonstrates more LaTeX features: such as tables, 57 | figures, and pictures. 58 | 59 | I thank Dave Meyers and Andrew Stannard for their constructive 60 | comments and sample patches. 61 | 62 | 63 | 2002-08-02 Simon Law 64 | 65 | Initial release. 66 | -------------------------------------------------------------------------------- /uw-wkrpt.ins: -------------------------------------------------------------------------------- 1 | %% uw-wkrpt.ins - LaTeX Installation file for the uw-wkrpt package. 2 | %% Copyright (C) 2002, 2003 Simon Law 3 | %% 4 | %% This program is free software; you can redistribute it and/or modify 5 | %% it under the terms of the GNU General Public License as published by 6 | %% the Free Software Foundation; either version 2 of the License, or 7 | %% (at your option) any later version. 8 | %% 9 | %% This program is distributed in the hope that it will be useful, 10 | %% but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | %% GNU General Public License for more details. 13 | %% 14 | %% You should have received a copy of the GNU General Public License 15 | %% along with this program; if not, write to the Free Software 16 | %% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | %% 18 | \input docstrip 19 | \askforoverwritefalse 20 | \keepsilent 21 | \preamble 22 | 23 | Copyright (C) 2002, 2003 Simon Law 24 | 25 | This program is free software; you can redistribute it and/or modify 26 | it under the terms of the GNU General Public License as published by 27 | the Free Software Foundation; either version 2 of the License, or 28 | (at your option) any later version. 29 | 30 | This program is distributed in the hope that it will be useful, 31 | but WITHOUT ANY WARRANTY; without even the implied warranty of 32 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 33 | GNU General Public License for more details. 34 | 35 | You should have received a copy of the GNU General Public License 36 | along with this program; if not, write to the Free Software 37 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307 USA 38 | 39 | \endpreamble 40 | \generate{% 41 | \file{uw-wkrpt.cls} {\from{uw-wkrpt.dtx}{class}} 42 | \file{uw-ece-workreport.cls}{\from{uw-wkrpt.dtx}{legacy-ece}} 43 | \file{uw-wkrpt.drv} {\from{uw-wkrpt.dtx}{driver}} 44 | } 45 | \endbatchfile 46 | % vim:et:sw=2 ft=tex 47 | -------------------------------------------------------------------------------- /ChangeLog: -------------------------------------------------------------------------------- 1 | 2003-05-20 Simon Law 2 | 3 | * uw-wkrpt.dtx (\mainmatter, \appendix): For E&CE, "Appendix" 4 | should prefix all appendix letters. 5 | 6 | * uw-wkrpt-ece.tex: Appendices are at the end now. Fixed 7 | Dr. Vannelli's name. 8 | 9 | 2003-05-10 Simon Law 10 | 11 | * uw-wkrpt.dtx (setspace): Use one-and-half-spacing for people 12 | who require it. 13 | 14 | * uw-wkrpt.dtx (\appendix): Calling \mainmatter is a bad idea. 15 | Also, call \@mainsect so we have section numbers. 16 | 17 | * uw-wkrpt-se.tex: Appendices are at the end now. 18 | 19 | 2003-05-08 Simon Law 20 | 21 | * uw-wkrpt.dtx (\mainmatter, \backmatter, \appendix): Math work 22 | reports don't require page breaks for numbered sections. As 23 | well, they need Section '1.0', not Section '1'. 24 | 25 | * uw-wkrpt.dtx: Fix some silly error messages. Use a nicer date. 26 | 27 | * uw-wkrpt.cecs.tex: \usepackage{graphicx} instead. 28 | * uw-wkrpt-ece.tex: Ibid. 29 | * uw-wkrpt-math.tex: Ibid. 30 | * uw-wkrpt-se.tex: Ibid. 31 | 32 | * uw-wkrpt.dtx (\fileversion, \filedate): Hack around broken 33 | \GetFileInfo{}. 34 | 35 | * Makefile (%.dvi): Use don-hires.eps. 36 | 37 | 2003-05-07 Simon Law 38 | 39 | * uw-wkrpt-cecs.tex: Fixed header comment. Use \centering instead 40 | of \centerline in floats. 41 | * uw-wkrpt-ece.tex: Ibid. 42 | * uw-wkrpt-math.tex: Ibid. 43 | * uw-wkrpt-se.tex: Ibid. 44 | 45 | 2003-05-06 Simon Law 46 | 47 | * uw-wkrpt.dtx: Don't define the top and bottom margins. 48 | 49 | 2003-05-02 Simon Law 50 | 51 | * uw-wkrpt.dtx (letter): Keep the signature block together. 52 | 53 | 2003-04-30 Simon Law 54 | Version 2.1 released. 55 | 56 | * uw-wkrpt.dtx: Fixed spelling mistake in the letter environment. 57 | * uw-ukrpt-se.tex: \faculty{Software Engineering} 58 | * README: Added information about other packages. 59 | 60 | 2003-04-27 Simon Law 61 | Version 2.0 released. 62 | 63 | * uw-ece-workreport.cls: Deprecated. 64 | * uw-wkrpt.dtx: Replaces uw-ece-workreport.cls. For detailed 65 | changes, please see the "Change Log" section in the manual. 66 | * uw-wkrpt.ins: Installs uw-wkrpt.dtx 67 | * Makefile: Builds the system 68 | 69 | 2003-01-12 Simon Law 70 | 71 | * uw-ece-workreport.cls: Updated the year of copyright. 72 | * workreport-sample.tex: Same as above. 73 | * workreport-sample.bib: Same as above. 74 | 75 | 2003-01-11 Simon Law 76 | Version 1.1 released. 77 | 78 | * workreport-sample.tex: Add two examples of how to use floating 79 | tables. Demonstrated the use of the \includegraphics command. Also 80 | demonstrated the picture environment. 81 | * workreport-sample.bib: Include references for Knuth's photograph, 82 | and TAOCP. 83 | * don-hires.pdf: New file, generated from don-hires.jpg from Knuth's 84 | website. 85 | 86 | 2003-01-08 Simon Law 87 | 88 | * uw-ece-workreport.cls: Added the author's name to the submission 89 | letterhead. 90 | 91 | * workreport-sample.tex: Add an example of how to use floating 92 | tables. Demonstrated the use of the tabular environment. 93 | 94 | 2002-10-04 Simon Law 95 | 96 | * uw-ece-workreport.cls: Removed the "Table of Contents" entry from 97 | the table of contents. Likewise, we add the "List of Tables" and 98 | "List of Figures" entries. 99 | 100 | 2002-08-02 Simon Law 101 | 102 | * uw-ece-workreport.cls: New file. 103 | 104 | * workreport-sample.tex: New file. 105 | * workreport-sample.bib: New file. 106 | * workreport-sample.pdf: New file. 107 | 108 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | ## Makefile - Makefile for the uw-wkrpt package. 2 | ## Copyright (C) 2003 Simon Law 3 | ## 4 | ## This program is free software; you can redistribute it and/or modify 5 | ## it under the terms of the GNU General Public License as published by 6 | ## the Free Software Foundation; either version 2 of the License, or 7 | ## (at your option) any later version. 8 | ## 9 | ## This program is distributed in the hope that it will be useful, 10 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | ## GNU General Public License for more details. 13 | ## 14 | ## You should have received a copy of the GNU General Public License 15 | ## along with this program; if not, write to the Free Software 16 | ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | ## 18 | 19 | # Set the package name 20 | PACKAGE = uw-wkrpt 21 | 22 | # Use pdfLaTeX for best results 23 | LATEX = pdflatex 24 | LATEX2PDF = $(LATEX) --output-format=pdf 25 | 26 | # MakeIndex parameters 27 | MAKEINDEX = makeindex 28 | GIND = gind.ist 29 | GGLO = gglo.ist 30 | 31 | # Bibliography 32 | BIBTEX = bibtex 33 | BIBER = biber 34 | 35 | # Texi2DVI knows most about compilation 36 | TEXI2PDF = PDFLATEX="$(LATEX2PDF)" texi2dvi -l latex -p 37 | 38 | # Installation 39 | INSTALL = /usr/bin/install -c 40 | INSTALL_DATA = $(INSTALL) -m 644 41 | DESTDIR = . 42 | TDSFORMAT = latex/ 43 | 44 | # Shell 45 | RM = rm -f 46 | 47 | TEXFILES=\ 48 | $(PACKAGE)*.aux\ 49 | $(PACKAGE)*.bbl\ 50 | $(PACKAGE)*.blg\ 51 | $(PACKAGE)*.cls\ 52 | $(PACKAGE)*.drv\ 53 | $(PACKAGE)*.dvi\ 54 | $(PACKAGE)*.glo\ 55 | $(PACKAGE)*.gls\ 56 | $(PACKAGE)*.idx\ 57 | $(PACKAGE)*.ilg\ 58 | $(PACKAGE)*.ind\ 59 | $(PACKAGE)*.lof\ 60 | $(PACKAGE)*.lot\ 61 | $(PACKAGE)*.log\ 62 | $(PACKAGE)*.pdf\ 63 | $(PACKAGE)*.sty\ 64 | $(PACKAGE)*.toc\ 65 | $(PACKAGE)*.bcf\ 66 | $(PACKAGE)*.out\ 67 | $(PACKAGE)*.run.xml 68 | 69 | .PHONY : all examples install uninstall pdf examples-pdf clean 70 | 71 | all : $(PACKAGE).cls $(PACKAGE).pdf ; 72 | 73 | examples : examples-pdf ; 74 | 75 | install : all examples 76 | $(INSTALL) -d $(DESTDIR)/texmf/tex/$(TDSFORMAT)/$(PACKAGE) 77 | $(INSTALL) -d $(DESTDIR)/texmf/doc/$(TDSFORMAT)/$(PACKAGE) 78 | $(INSTALL) -d $(DESTDIR)/texmf/doc/$(TDSFORMAT)/$(PACKAGE)/examples 79 | $(INSTALL_DATA) $(PACKAGE).cls $(DESTDIR)/texmf/tex/$(TDSFORMAT)/$(PACKAGE)/ 80 | $(INSTALL_DATA) $(PACKAGE).pdf $(DESTDIR)/texmf/doc/$(TDSFORMAT)/$(PACKAGE)/ 81 | $(INSTALL_DATA) $(PACKAGE)-*.tex $(DESTDIR)/texmf/doc/$(TDSFORMAT)/$(PACKAGE)/examples 82 | $(INSTALL_DATA) $(PACKAGE)-*.pdf $(DESTDIR)/texmf/doc/$(TDSFORMAT)/$(PACKAGE)/examples 83 | 84 | uninstall : 85 | $(RM) $(DESTDIR)/texmf/tex/$(TDSFORMAT)/$(PACKAGE)/$(PACKAGE).cls 86 | $(RM) $(DESTDIR)/texmf/doc/$(TDSFORMAT)/$(PACKAGE)/$(PACKAGE).pdf 87 | $(RM) -r $(DESTDIR)/texmf/doc/$(TDSFORMAT)/$(PACKAGE)/examples 88 | -rmdir -p $(DESTDIR)/texmf/doc/$(TDSFORMAT)/$(PACKAGE) 89 | -rmdir -p $(DESTDIR)/texmf/tex/$(TDSFORMAT)/$(PACKAGE) 90 | 91 | pdf : $(PACKAGE).pdf ; 92 | 93 | examples-pdf : $(PACKAGE).cls \ 94 | $(PACKAGE)-cecs.pdf \ 95 | $(PACKAGE)-ece.pdf \ 96 | $(PACKAGE)-math.pdf \ 97 | $(PACKAGE)-se.pdf ; 98 | 99 | %.cls : %.ins %.dtx 100 | $(LATEX) $< 101 | 102 | # This is redundant, but the SE example needs biblatex to run 103 | $(PACKAGE)-se.pdf : $(PACKAGE)-se.tex $(PACKAGE).cls 104 | $(TEXI2PDF) $< 105 | $(BIBER) $(PACKAGE)-se 106 | $(TEXI2PDF) $< 107 | 108 | %.pdf : %.tex $(PACKAGE).cls 109 | $(TEXI2PDF) $< 110 | 111 | $(PACKAGE).pdf : $(PACKAGE).dtx $(PACKAGE).cls 112 | $(TEXI2PDF) $< 113 | $(MAKEINDEX) -s $(GIND) $(PACKAGE).idx 114 | $(MAKEINDEX) -s $(GGLO) -o $(PACKAGE).gls $(PACKAGE).glo 115 | $(LATEX2PDF) $< 116 | $(LATEX2PDF) $< 117 | 118 | don-hires.eps : don-hires.pdf 119 | pdf2ps $< $@ 120 | 121 | don-hires.pdf : ; 122 | 123 | clean : 124 | $(RM) $(TEXFILES) uw-ece-workreport.cls uw-ece-workreport.log don-hires.eps 125 | -------------------------------------------------------------------------------- /uw-wkrpt-bib.bib: -------------------------------------------------------------------------------- 1 | % A bibliography used by the example work report, using uw-ece-workreport.cls 2 | % Copyright (C) 2002,2003 Simon Law 3 | % 4 | % This program is free software; you can redistribute it and/or modify 5 | % it under the terms of the GNU General Public License as published by 6 | % the Free Software Foundation; either version 2 of the License, or 7 | % (at your option) any later version. 8 | % 9 | % This program is distributed in the hope that it will be useful, 10 | % but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | % GNU General Public License for more details. 13 | % 14 | % You should have received a copy of the GNU General Public License 15 | % along with this program; if not, write to the Free Software 16 | % Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | 18 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 19 | % This is an example bibliography, made using BiBTeX. 20 | % 21 | % You can place entries in any order, and BiBTeX will order them 22 | % correctly, saving you time and trouble. All you have to do is make 23 | % sure your references here match up with the references in your main 24 | % document. 25 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 26 | 27 | % Here is a reference to a book. 28 | @book{ref:latex2e, 29 | author = "Leslie Lamport and Duane {Bibby (Illustrator)}", 30 | title = "\LaTeX: a document preparation system", 31 | edition = "second", 32 | publisher = "Addison-Wesley", 33 | address = "Reading, MA", 34 | year = "1994", 35 | } 36 | 37 | % Now, we have a book; but it is only self-published online. 38 | @book{ref:short, 39 | author = "Tobias Oetiker and Hubert Partl and Irene Hyna and 40 | Elisabeth Schlegl", 41 | title = "The not so short introduction to \LaTeXe: or \LaTeXe{} 42 | in 95 minutes", 43 | publisher = "", 44 | year = "2001", 45 | note = "\url{http://people.ee.ethz.ch/~oetiker/lshort/} 46 | (current Aug.\ 2002)", 47 | } 48 | 49 | % This is a good example for how to cite a website. Notice how line 50 | % breaks are just treated as a space. 51 | @misc{ref:vim, 52 | title = "welcome : vim online", 53 | note = "\url{http://vim.sourceforge.net} 54 | (current Aug.\ 2002)", 55 | } 56 | 57 | % Here is an example of how to deal with titles, such as Jr. and PEng. 58 | @misc{ref:eceguidelines, 59 | author = "W. M. {Loucks PEng} and G. H. Freeman and J. A. {Barby PEng}", 60 | title = "{E\&CE} Work Term Report Guidelines", 61 | note = "\url{http://www.ece.uwaterloo.ca/~wtrc/WrkTrmRpt.html} 62 | (current Aug.\ 2002)", 63 | } 64 | 65 | % Look at how I preserve capitalisation in the work GNU. 66 | @misc{ref:emacs, 67 | title = "{GNU} {E}macs --- 68 | {GNU} Project --- 69 | {F}ree {S}oftware {F}oundation ({FSF})", 70 | note = "\url{http://www.gnu.org/software/emacs/emacs.html} 71 | (current Aug.\ 2002)", 72 | } 73 | 74 | @misc{ref:coopman, 75 | author = "{University of Waterloo, 76 | Co-operative Education \& Career Services}", 77 | title = "Co-operative Education \& Career Services Student 78 | Reference Manual", 79 | note = "\url{http://www.cecs.uwaterloo.ca/manual/} 80 | (current Aug.\ 2002)", 81 | } 82 | 83 | @misc{ref:vi, 84 | title = "{VI} LOVERS HOME PAGE", 85 | note = "\url{http://www.thomer.com/vi/vi.html} 86 | (current Aug.\ 2002)", 87 | } 88 | 89 | @misc{ref:tetex, 90 | title = "The {teTeX} homepage", 91 | note = "\url{http://www.tug.org/teTeX/} 92 | (current Aug.\ 2002)", 93 | } 94 | 95 | @misc{ref:miktex, 96 | title = "{MikTeX} Project Page", 97 | note = "\url{http://www.miktex.org} 98 | (current Aug.\ 2002)", 99 | } 100 | 101 | @misc{ref:gs, 102 | title = "ghostscript.com", 103 | note = "\url{http://www.ghostscript.com} 104 | (current Aug.\ 2002)", 105 | } 106 | 107 | @book{ref:simplified, 108 | author = "Harvey J. Greenberg", 109 | title = "A simplified introduction to \LaTeX", 110 | publisher = "", 111 | year = "2001", 112 | note = "\url{http://carbon.cuderwer.edu/~hgreenbe/aboutme/simplified-intro.html} 113 | (current Aug.\ 2002)", 114 | } 115 | 116 | @book{ref:companion, 117 | author = "Michel Goosens and Frank Mittelback and Alexander Samarin", 118 | title = "The \LaTeX companion", 119 | publisher = "Addison-Wesley", 120 | address = "Reading, MA", 121 | year = "1994", 122 | } 123 | 124 | @book{ref:taocp, 125 | author = "Donald E. Knuth", 126 | title = "The art of computer programming", 127 | publisher = "Addison-Wesley", 128 | address = "Reading, MA", 129 | year = "1997", 130 | } 131 | 132 | @misc{ref:donpicture, 133 | title = "Knuth: Graphics", 134 | note = "\url{http://www-cs-faculty.stanford.edu/~knuth/graphics.html} 135 | (current Jan.\ 2003)", 136 | } 137 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # uw-wkrpt 2 | 3 | This is a LaTeX document class to make you life easier when writing work term 4 | reports for the University of Waterloo. 5 | 6 | This class was originally written by Simon Law, and is available 7 | at his [website][1]. 8 | 9 | I have made some improvements and updates to bring this class more in line with 10 | the current work report guidelines. If you notice any issues or inconsistencies 11 | with the guidelines, please let me know, or send a pull request! 12 | 13 | [1]: http://sfllaw.ca/programs/uw-wkrpt/ 14 | 15 | ## LaTeX Info 16 | 17 | If you do not know LaTeX, please learn! It is not too difficult to use, and is 18 | really quite helpful. You can read any of the example work reports, as well as: 19 | [A not so short introduction to LaTeX2e: or LaTeX2e in 113 minutes][2]. 20 | 21 | You can also find more information on-line. There is an [FAQ][3] and a 22 | [page listing documentation for beginners][4]. 23 | 24 | [2]: http://tobi.oetiker.ch/lshort/ 25 | [3]: http://faq.tug.org 26 | [4]: http://www.tug.org/begin.html 27 | 28 | ## Installation 29 | 30 | To generate the class files, simply run: 31 | 32 | # make 33 | 34 | This will generate `uw-wkrpt.cls`, which you can use to write your work report. 35 | 36 | On a Windows system, to generate the cls file: 37 | 38 | > latex uw-wkrpt.ins 39 | 40 | Note that if you change any of the *.dtx files, the cls will need to be 41 | regenerated. 42 | 43 | 44 | To use the class, simply set the document class of a .tex file to `uw-wkrpt`, and 45 | ensure that there's a copy of the class file in the same directory. 46 | 47 | 48 | Alternatively, you may use uw-wkrpt's installation system. If you are on a 49 | Unix-like system, and have a complete TeX system, find where your texmf root is. 50 | This should typically be `/usr/share/texmf` which implies that installing 51 | is as easy as running: 52 | 53 | # make DESTDIR=/usr/share install 54 | 55 | On some systems, PDFTeX is set to output to A4 paper, even 56 | though we have set the default to letterpaper. This is sad, and can be 57 | worked around. If you are running Debian GNU/Linux, you should run 58 | `texconfig` and change the PAPER option in the XDVI, DVIPS, DVIPDFM, and 59 | PDFTEX settings. Otherwise, find the "pdftex.cfg" file which usually 60 | lives in `/etc/texmf/pdftex/pdftex.cfg`. Make sure it has these two 61 | lines: 62 | 63 | page_width 8.5 true in 64 | page_height 11 true in 65 | 66 | You will want to comment out any other instances of `page_width` and 67 | `page_height` by using the `%` character. 68 | 69 | ### Dockerfile 70 | 71 | If you use Docker, lucaswoj has provided a [Dockerfile][5] to automate the LaTeX 72 | setup. 73 | 74 | Note that this method is not officially supported or endorsed. It is mentioned 75 | only in the hope that some users find it useful. 76 | 77 | [5]: https://gist.github.com/lucaswoj/176af70493aa4a37cbf8 78 | 79 | ## Examples 80 | 81 | There are several examples included: 82 | 83 | * uw-wkrpt-cecs.tex 84 | * uw-wkrpt-ece.tex 85 | * uw-wkrpt-math.tex 86 | * uw-wkrpt-se.tex 87 | 88 | ## Creating a PDF from a .tex file 89 | 90 | If you have a report.tex file, and would like to generate a PDF from it, simply 91 | run `pdflatex`. Note that you may need to run `pdflatex` several times, to 92 | ensure all the auxilliary files (eg table of contents) are created. You will 93 | also have to run `bibtex` to generate the bibliography, and then run `pdflatex` 94 | again, afterwards. 95 | 96 | To simply this process, you may find [Latexmk][6] to be useful. 97 | 98 | [6]: http://www.phys.psu.edu/~collins/software/latexmk-jcc/ 99 | 100 | Latexmk will run `pdflatex` and `bibtex` as many times as is necessary for you, 101 | so you only need to call it once. See Makefile.example. 102 | 103 | ## Files 104 | 105 | * The README.md file is the one you are reading now. 106 | * The NEWS file is a list of interesting things that have changed since the last 107 | release (before this class was under version control). 108 | * The ChangeLog file is a record of the changes made to the software (before 109 | this class was under version control). 110 | * LICENSE contains a copy of the GNU General Public License. 111 | * Makefile is the makefile for generating the uw-wkrpt class and documentation. 112 | * uw-wkrpt.ins is the docstrip installer. 113 | * uw-wkrpt.dtx is the docstrip document that contains the entire uw-wkrpt 114 | package. 115 | * uw-wkrpt-*.tex are example documents written using uw-wkrpt.cls. 116 | It illustrates the way to write a document, and tries to adhere as 117 | closely to the guidelines as possible. 118 | * uw-wkrpt.bib is the bibliography or references list that is imported 119 | by the example reports. 120 | * Makefile.example is an example makefile that demonstrates the use of Latexmk. 121 | * don-hires.pdf is a picture of Donald E. Knuth, acquired from his 122 | website and used in workreport-sample.tex. 123 | 124 | # Other Useful Packages 125 | 126 | You may wish to load some other useful packages to make your life 127 | simpler, and your work report nicer. After the `\documentclass{uw-wkrpt}` 128 | line, just add `\usepackage{foo}`, where `foo` is the package name. 129 | 130 | * acronym: for spelling out acronyms in full, the first time only. 131 | * algpseudocode: for including pseudocode. 132 | * framed: for adding frames (borders) around certain elements. 133 | * listings: for including source code listings. 134 | * longtable: for tabular environments that break pages. 135 | * tabularx: for tabular environments that know how wide they are. 136 | * ltxtable: for a merge of longtable and tabularx, which may not work. 137 | * times, mathptm: for using the Times font in your text and math. 138 | 139 | # Status of this project 140 | 141 | **I am looking for a new maintainer for this project. In the meantime, I am more 142 | than happy to review and accept PRs.** 143 | 144 | --- 145 | 146 | This LaTeX class was originally created by Simon Law in 2002. In 2011, Casey 147 | Banner created a GitHub repo for this class and made some updates. All other 148 | uw-wkrpt repos on GitHub are forks of Casey's repo. 149 | 150 | In 2012, I significantly updated the class to match the latest requirements for 151 | the software engineering program. I am reasonably confident that the class 152 | conforms to the SE work report guidelines of Fall 2012. 153 | 154 | However, there is still much work to be done. The SE guidelines are at best two 155 | years outdated, and the other guidelines are eleven years outdated. A lot of 156 | LaTeX conventions and best practices have changed over the last decade. The 157 | class is in need of a major update (or even rewrite). 158 | 159 | I no longer have the interest to do this, and am now looking for a new 160 | maintainer for this project. If you are interested, please let me know. 161 | 162 | This class has helped many students with the formatting of their work reports, 163 | and I hope it will continue to do so. 164 | 165 | -- Ming-Ho Yee, 2014-05-25 166 | 167 | # Contributors 168 | 169 | -- Simon Law Wed, 30 Apr 2003 19:34:41 -0400 170 | 171 | -- Casey Banner Sat, 16 Apr 2011 14:28:31 -0400 172 | 173 | -- Cory Snider Fri, 16 Sep 2011 01:13:02 -0400 174 | 175 | -- Ming-Ho Yee Tue, 24 Apr 2012 20:38:12 -0400 176 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 2, June 1991 3 | 4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc. 5 | 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | Preamble 10 | 11 | The licenses for most software are designed to take away your 12 | freedom to share and change it. By contrast, the GNU General Public 13 | License is intended to guarantee your freedom to share and change free 14 | software--to make sure the software is free for all its users. This 15 | General Public License applies to most of the Free Software 16 | Foundation's software and to any other program whose authors commit to 17 | using it. (Some other Free Software Foundation software is covered by 18 | the GNU Library General Public License instead.) You can apply it to 19 | your programs, too. 20 | 21 | When we speak of free software, we are referring to freedom, not 22 | price. Our General Public Licenses are designed to make sure that you 23 | have the freedom to distribute copies of free software (and charge for 24 | this service if you wish), that you receive source code or can get it 25 | if you want it, that you can change the software or use pieces of it 26 | in new free programs; and that you know you can do these things. 27 | 28 | To protect your rights, we need to make restrictions that forbid 29 | anyone to deny you these rights or to ask you to surrender the rights. 30 | These restrictions translate to certain responsibilities for you if you 31 | distribute copies of the software, or if you modify it. 32 | 33 | For example, if you distribute copies of such a program, whether 34 | gratis or for a fee, you must give the recipients all the rights that 35 | you have. You must make sure that they, too, receive or can get the 36 | source code. And you must show them these terms so they know their 37 | rights. 38 | 39 | We protect your rights with two steps: (1) copyright the software, and 40 | (2) offer you this license which gives you legal permission to copy, 41 | distribute and/or modify the software. 42 | 43 | Also, for each author's protection and ours, we want to make certain 44 | that everyone understands that there is no warranty for this free 45 | software. If the software is modified by someone else and passed on, we 46 | want its recipients to know that what they have is not the original, so 47 | that any problems introduced by others will not reflect on the original 48 | authors' reputations. 49 | 50 | Finally, any free program is threatened constantly by software 51 | patents. We wish to avoid the danger that redistributors of a free 52 | program will individually obtain patent licenses, in effect making the 53 | program proprietary. To prevent this, we have made it clear that any 54 | patent must be licensed for everyone's free use or not licensed at all. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | GNU GENERAL PUBLIC LICENSE 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains 63 | a notice placed by the copyright holder saying it may be distributed 64 | under the terms of this General Public License. The "Program", below, 65 | refers to any such program or work, and a "work based on the Program" 66 | means either the Program or any derivative work under copyright law: 67 | that is to say, a work containing the Program or a portion of it, 68 | either verbatim or with modifications and/or translated into another 69 | language. (Hereinafter, translation is included without limitation in 70 | the term "modification".) Each licensee is addressed as "you". 71 | 72 | Activities other than copying, distribution and modification are not 73 | covered by this License; they are outside its scope. The act of 74 | running the Program is not restricted, and the output from the Program 75 | is covered only if its contents constitute a work based on the 76 | Program (independent of having been made by running the Program). 77 | Whether that is true depends on what the Program does. 78 | 79 | 1. You may copy and distribute verbatim copies of the Program's 80 | source code as you receive it, in any medium, provided that you 81 | conspicuously and appropriately publish on each copy an appropriate 82 | copyright notice and disclaimer of warranty; keep intact all the 83 | notices that refer to this License and to the absence of any warranty; 84 | and give any other recipients of the Program a copy of this License 85 | along with the Program. 86 | 87 | You may charge a fee for the physical act of transferring a copy, and 88 | you may at your option offer warranty protection in exchange for a fee. 89 | 90 | 2. You may modify your copy or copies of the Program or any portion 91 | of it, thus forming a work based on the Program, and copy and 92 | distribute such modifications or work under the terms of Section 1 93 | above, provided that you also meet all of these conditions: 94 | 95 | a) You must cause the modified files to carry prominent notices 96 | stating that you changed the files and the date of any change. 97 | 98 | b) You must cause any work that you distribute or publish, that in 99 | whole or in part contains or is derived from the Program or any 100 | part thereof, to be licensed as a whole at no charge to all third 101 | parties under the terms of this License. 102 | 103 | c) If the modified program normally reads commands interactively 104 | when run, you must cause it, when started running for such 105 | interactive use in the most ordinary way, to print or display an 106 | announcement including an appropriate copyright notice and a 107 | notice that there is no warranty (or else, saying that you provide 108 | a warranty) and that users may redistribute the program under 109 | these conditions, and telling the user how to view a copy of this 110 | License. (Exception: if the Program itself is interactive but 111 | does not normally print such an announcement, your work based on 112 | the Program is not required to print an announcement.) 113 | 114 | These requirements apply to the modified work as a whole. If 115 | identifiable sections of that work are not derived from the Program, 116 | and can be reasonably considered independent and separate works in 117 | themselves, then this License, and its terms, do not apply to those 118 | sections when you distribute them as separate works. But when you 119 | distribute the same sections as part of a whole which is a work based 120 | on the Program, the distribution of the whole must be on the terms of 121 | this License, whose permissions for other licensees extend to the 122 | entire whole, and thus to each and every part regardless of who wrote it. 123 | 124 | Thus, it is not the intent of this section to claim rights or contest 125 | your rights to work written entirely by you; rather, the intent is to 126 | exercise the right to control the distribution of derivative or 127 | collective works based on the Program. 128 | 129 | In addition, mere aggregation of another work not based on the Program 130 | with the Program (or with a work based on the Program) on a volume of 131 | a storage or distribution medium does not bring the other work under 132 | the scope of this License. 133 | 134 | 3. You may copy and distribute the Program (or a work based on it, 135 | under Section 2) in object code or executable form under the terms of 136 | Sections 1 and 2 above provided that you also do one of the following: 137 | 138 | a) Accompany it with the complete corresponding machine-readable 139 | source code, which must be distributed under the terms of Sections 140 | 1 and 2 above on a medium customarily used for software interchange; or, 141 | 142 | b) Accompany it with a written offer, valid for at least three 143 | years, to give any third party, for a charge no more than your 144 | cost of physically performing source distribution, a complete 145 | machine-readable copy of the corresponding source code, to be 146 | distributed under the terms of Sections 1 and 2 above on a medium 147 | customarily used for software interchange; or, 148 | 149 | c) Accompany it with the information you received as to the offer 150 | to distribute corresponding source code. (This alternative is 151 | allowed only for noncommercial distribution and only if you 152 | received the program in object code or executable form with such 153 | an offer, in accord with Subsection b above.) 154 | 155 | The source code for a work means the preferred form of the work for 156 | making modifications to it. For an executable work, complete source 157 | code means all the source code for all modules it contains, plus any 158 | associated interface definition files, plus the scripts used to 159 | control compilation and installation of the executable. However, as a 160 | special exception, the source code distributed need not include 161 | anything that is normally distributed (in either source or binary 162 | form) with the major components (compiler, kernel, and so on) of the 163 | operating system on which the executable runs, unless that component 164 | itself accompanies the executable. 165 | 166 | If distribution of executable or object code is made by offering 167 | access to copy from a designated place, then offering equivalent 168 | access to copy the source code from the same place counts as 169 | distribution of the source code, even though third parties are not 170 | compelled to copy the source along with the object code. 171 | 172 | 4. You may not copy, modify, sublicense, or distribute the Program 173 | except as expressly provided under this License. Any attempt 174 | otherwise to copy, modify, sublicense or distribute the Program is 175 | void, and will automatically terminate your rights under this License. 176 | However, parties who have received copies, or rights, from you under 177 | this License will not have their licenses terminated so long as such 178 | parties remain in full compliance. 179 | 180 | 5. You are not required to accept this License, since you have not 181 | signed it. However, nothing else grants you permission to modify or 182 | distribute the Program or its derivative works. These actions are 183 | prohibited by law if you do not accept this License. Therefore, by 184 | modifying or distributing the Program (or any work based on the 185 | Program), you indicate your acceptance of this License to do so, and 186 | all its terms and conditions for copying, distributing or modifying 187 | the Program or works based on it. 188 | 189 | 6. Each time you redistribute the Program (or any work based on the 190 | Program), the recipient automatically receives a license from the 191 | original licensor to copy, distribute or modify the Program subject to 192 | these terms and conditions. You may not impose any further 193 | restrictions on the recipients' exercise of the rights granted herein. 194 | You are not responsible for enforcing compliance by third parties to 195 | this License. 196 | 197 | 7. If, as a consequence of a court judgment or allegation of patent 198 | infringement or for any other reason (not limited to patent issues), 199 | conditions are imposed on you (whether by court order, agreement or 200 | otherwise) that contradict the conditions of this License, they do not 201 | excuse you from the conditions of this License. If you cannot 202 | distribute so as to satisfy simultaneously your obligations under this 203 | License and any other pertinent obligations, then as a consequence you 204 | may not distribute the Program at all. For example, if a patent 205 | license would not permit royalty-free redistribution of the Program by 206 | all those who receive copies directly or indirectly through you, then 207 | the only way you could satisfy both it and this License would be to 208 | refrain entirely from distribution of the Program. 209 | 210 | If any portion of this section is held invalid or unenforceable under 211 | any particular circumstance, the balance of the section is intended to 212 | apply and the section as a whole is intended to apply in other 213 | circumstances. 214 | 215 | It is not the purpose of this section to induce you to infringe any 216 | patents or other property right claims or to contest validity of any 217 | such claims; this section has the sole purpose of protecting the 218 | integrity of the free software distribution system, which is 219 | implemented by public license practices. Many people have made 220 | generous contributions to the wide range of software distributed 221 | through that system in reliance on consistent application of that 222 | system; it is up to the author/donor to decide if he or she is willing 223 | to distribute software through any other system and a licensee cannot 224 | impose that choice. 225 | 226 | This section is intended to make thoroughly clear what is believed to 227 | be a consequence of the rest of this License. 228 | 229 | 8. If the distribution and/or use of the Program is restricted in 230 | certain countries either by patents or by copyrighted interfaces, the 231 | original copyright holder who places the Program under this License 232 | may add an explicit geographical distribution limitation excluding 233 | those countries, so that distribution is permitted only in or among 234 | countries not thus excluded. In such case, this License incorporates 235 | the limitation as if written in the body of this License. 236 | 237 | 9. The Free Software Foundation may publish revised and/or new versions 238 | of the General Public License from time to time. Such new versions will 239 | be similar in spirit to the present version, but may differ in detail to 240 | address new problems or concerns. 241 | 242 | Each version is given a distinguishing version number. If the Program 243 | specifies a version number of this License which applies to it and "any 244 | later version", you have the option of following the terms and conditions 245 | either of that version or of any later version published by the Free 246 | Software Foundation. If the Program does not specify a version number of 247 | this License, you may choose any version ever published by the Free Software 248 | Foundation. 249 | 250 | 10. If you wish to incorporate parts of the Program into other free 251 | programs whose distribution conditions are different, write to the author 252 | to ask for permission. For software which is copyrighted by the Free 253 | Software Foundation, write to the Free Software Foundation; we sometimes 254 | make exceptions for this. Our decision will be guided by the two goals 255 | of preserving the free status of all derivatives of our free software and 256 | of promoting the sharing and reuse of software generally. 257 | 258 | NO WARRANTY 259 | 260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 268 | REPAIR OR CORRECTION. 269 | 270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 278 | POSSIBILITY OF SUCH DAMAGES. 279 | 280 | END OF TERMS AND CONDITIONS 281 | 282 | How to Apply These Terms to Your New Programs 283 | 284 | If you develop a new program, and you want it to be of the greatest 285 | possible use to the public, the best way to achieve this is to make it 286 | free software which everyone can redistribute and change under these terms. 287 | 288 | To do so, attach the following notices to the program. It is safest 289 | to attach them to the start of each source file to most effectively 290 | convey the exclusion of warranty; and each file should have at least 291 | the "copyright" line and a pointer to where the full notice is found. 292 | 293 | 294 | Copyright (C) 295 | 296 | This program is free software; you can redistribute it and/or modify 297 | it under the terms of the GNU General Public License as published by 298 | the Free Software Foundation; either version 2 of the License, or 299 | (at your option) any later version. 300 | 301 | This program is distributed in the hope that it will be useful, 302 | but WITHOUT ANY WARRANTY; without even the implied warranty of 303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 304 | GNU General Public License for more details. 305 | 306 | You should have received a copy of the GNU General Public License 307 | along with this program; if not, write to the Free Software 308 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 309 | 310 | 311 | Also add information on how to contact you by electronic and paper mail. 312 | 313 | If the program is interactive, make it output a short notice like this 314 | when it starts in an interactive mode: 315 | 316 | Gnomovision version 69, Copyright (C) year name of author 317 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 318 | This is free software, and you are welcome to redistribute it 319 | under certain conditions; type `show c' for details. 320 | 321 | The hypothetical commands `show w' and `show c' should show the appropriate 322 | parts of the General Public License. Of course, the commands you use may 323 | be called something other than `show w' and `show c'; they could even be 324 | mouse-clicks or menu items--whatever suits your program. 325 | 326 | You should also get your employer (if you work as a programmer) or your 327 | school, if any, to sign a "copyright disclaimer" for the program, if 328 | necessary. Here is a sample; alter the names: 329 | 330 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 331 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 332 | 333 | , 1 April 1989 334 | Ty Coon, President of Vice 335 | 336 | This General Public License does not permit incorporating your program into 337 | proprietary programs. If your program is a subroutine library, you may 338 | consider it more useful to permit linking proprietary applications with the 339 | library. If this is what you want to do, use the GNU Library General 340 | Public License instead of this License. 341 | -------------------------------------------------------------------------------- /uw-wkrpt.cls: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `uw-wkrpt.cls', 3 | %% generated with the docstrip utility. 4 | %% 5 | %% The original source files were: 6 | %% 7 | %% uw-wkrpt.dtx (with options: `class') 8 | %% 9 | %% Copyright (C) 2002, 2003 Simon Law 10 | %% 11 | %% This program is free software; you can redistribute it and/or modify 12 | %% it under the terms of the GNU General Public License as published by 13 | %% the Free Software Foundation; either version 2 of the License, or 14 | %% (at your option) any later version. 15 | %% 16 | %% This program is distributed in the hope that it will be useful, 17 | %% but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | %% GNU General Public License for more details. 20 | %% 21 | %% You should have received a copy of the GNU General Public License 22 | %% along with this program; if not, write to the Free Software 23 | %% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307 USA 24 | %% 25 | \NeedsTeXFormat{LaTeX2e} 26 | \ProvidesPackage{uw-wkrpt}[2012/09/09 v2.8.2 UWaterloo work reports] 27 | \RequirePackage{ifthen} 28 | \newif\ifuwwkrpt@math \uwwkrpt@mathfalse 29 | \DeclareOption{math}{% 30 | \uwwkrpt@mathtrue 31 | \write10{([math] Mathematics report)}} 32 | \newif\ifuwwkrpt@ece \uwwkrpt@ecefalse 33 | \DeclareOption{ece}{% 34 | \uwwkrpt@ecetrue 35 | \write10{([ece] Electrical and Computer Engineering report)}} 36 | \newif\ifuwwkrpt@se \uwwkrpt@sefalse 37 | \DeclareOption{se}{% 38 | \uwwkrpt@setrue 39 | \write10{([se] Software Engineering report)}} 40 | \ifthenelse{\boolean{uwwkrpt@ece}}{% 41 | \def\uwwkrpt@textsize{11pt}}{% 42 | \def\uwwkrpt@textsize{12pt}} 43 | 44 | \DeclareOption{10pt}{\ClassWarning{uw-wkrpt}{% 45 | You requested a 10pt font but reports must be \uwwkrpt@textsize}} 46 | 47 | \ifthenelse{\boolean{uwwkrpt@ece}}{% 48 | \DeclareOption{12pt}{\ClassWarning{uw-wkrpt}{% 49 | You requested a 12pt font but reports must be \uwwkrpt@textsize}}}{% 50 | \DeclareOption{11pt}{\ClassWarning{uw-wkrpt}{% 51 | You requested a 11pt font but reports must be \uwwkrpt@textsize}}} 52 | \DeclareOption*{\PassOptionsToClass {\CurrentOption}{article}} 53 | \ProcessOptions 54 | \LoadClass[titlepage,\uwwkrpt@textsize]{article} 55 | \newlength{\marginl} 56 | \newlength{\marginr} 57 | \newlength{\margintb} 58 | 59 | \setlength{\marginl}{1.5in} 60 | \setlength{\marginr}{1.5in} 61 | \setlength{\margintb}{1in} 62 | 63 | \ifthenelse{\boolean{uwwkrpt@ece} \or \boolean{uwwkrpt@se}} 64 | {\setlength{\marginr}{1in}}{} 65 | 66 | \ifthenelse{\boolean{uwwkrpt@se}} 67 | {\setlength{\marginl}{1in}}{} 68 | 69 | \RequirePackage[top=\margintb, bottom=\margintb, left=\marginl, right=\marginr]{geometry} 70 | \RequirePackage{setspace} 71 | \newcommand{\uwwkrpt@spacing}{\doublespacing} 72 | \ifthenelse{\boolean{uwwkrpt@se} \or \boolean{uwwkrpt@ece}} 73 | {\renewcommand{\uwwkrpt@spacing}{\onehalfspacing}}{} 74 | \newlength{\uwwkrpt@parskip} 75 | \ifthenelse{\boolean{uwwkrpt@se}} 76 | {\setlength{\uwwkrpt@parskip}{1em}} 77 | {\setlength{\uwwkrpt@parskip}{1ex}} 78 | \setlength{\parskip}{\uwwkrpt@parskip} 79 | \ifthenelse{\boolean{uwwkrpt@se}}{\setlength{\parindent}{0.4in}}{} 80 | \RequirePackage{url} 81 | \urlstyle{sf} 82 | \renewcommand{\title}[1]{% 83 | \renewcommand{\@title}{#1}% 84 | \renewcommand{\@@title}{#1}} 85 | \newcommand{\@@title}{\ClassError{uw-wkrpt}% 86 | {No \noexpand\title given}{}} 87 | \renewcommand{\author}[1]{% 88 | \renewcommand{\@author}{#1}% 89 | \renewcommand{\@@author}{#1}} 90 | \newcommand{\@@author}{\ClassError{uw-wkrpt}% 91 | {No \noexpand\author given}{}} 92 | \renewcommand{\date}[1]{% 93 | \renewcommand{\@date}{#1}% 94 | \renewcommand{\@@date}{#1}} 95 | \newcommand{\@@date}{\today} 96 | \newcommand{\uwid}[1]{\renewcommand{\@uwid}{#1}} 97 | \newcommand{\@uwid}{\ClassError{uw-wkrpt}% 98 | {No \noexpand\uwid given}{}} 99 | \newcommand{\signature}[1]{\renewcommand{\@signature}{#1}} 100 | \newcommand{\@signature}{\ClassError{uw-wkrpt}% 101 | {No \noexpand\signature given}{}} 102 | \newcommand{\address}[1]{\renewcommand{\@address}{#1}} 103 | \newcommand{\@address}{\ClassError{uw-wkrpt}% 104 | {No \noexpand\address given}{}} 105 | \newcommand{\employer}[1]{\renewcommand{\@employer}{#1}} 106 | \newcommand{\@employer}{\ClassError{uw-wkrpt}% 107 | {No \noexpand\employer given}{}} 108 | \newcommand{\employeraddress}[1]{\renewcommand{\@employeraddress}{#1}} 109 | \newcommand{\@employeraddress}{\ClassError{uw-wkrpt}% 110 | {No \noexpand\employeraddress given}{}} 111 | \newcommand{\school}[1]{\renewcommand{\@school}{#1}} 112 | \newcommand{\@school}{\ClassError{uw-wkrpt}% 113 | {No \noexpand\school given}{}} 114 | \newcommand{\faculty}[1]{\renewcommand{\@faculty}{#1}} 115 | \newcommand{\@faculty}{\ClassError{uw-wkrpt}% 116 | {No \noexpand\faculty given}{}} 117 | \newcommand{\userid}[1]{\renewcommand{\@userid}{#1}} 118 | \newcommand{\@userid}{\ClassError{uw-wkrpt}% 119 | {No \noexpand\userid given}{}} 120 | \newcommand{\email}[1]{\renewcommand{\@email}{#1}} 121 | \newcommand{\@email}{\ClassError{uw-wkrpt}% 122 | {No \noexpand\email given}{}} 123 | \newcommand{\term}[1]{\renewcommand{\@term}{\textsc{\lowercase{#1}}}} 124 | \newcommand{\@term}{\ClassError{uw-wkrpt}% 125 | {No \noexpand\term given}{}} 126 | \newcommand{\program}[1]{\renewcommand{\@program}{#1}} 127 | \newcommand{\@program}{\ClassError{uw-wkrpt}% 128 | {No \noexpand\program given}{}} 129 | \newcommand{\chair}[1]{\renewcommand{\@chair}{#1}} 130 | \newcommand{\@chair}{\ClassError{uw-wkrpt}% 131 | {No \noexpand\chair given}{}} 132 | \newcommand{\chairaddress}[1]{\renewcommand{\@chairaddress}{#1}} 133 | \newcommand{\@chairaddress}{\ClassError{uw-wkrpt}% 134 | {No \noexpand\chairaddress given}{}} 135 | \newcommand{\confidential}[1]{\renewcommand{\@confidential}{#1}} 136 | \newcommand{\@confidential}{} 137 | \newcommand{\thetitle}{\@@title} 138 | \newcommand{\theauthor}{\@@author} 139 | \newcommand{\theuwid}{\@uwid} 140 | \newcommand{\thesignature}{\@signature} 141 | \newcommand{\theaddress}{\@address} 142 | \newcommand{\theemployer}{\@employer} 143 | \newcommand{\theemployeraddress}{\@employeraddress} 144 | \newcommand{\theschool}{\@school} 145 | \newcommand{\thefaculty}{\@faculty} 146 | \newcommand{\theuserid}{\@userid} 147 | \newcommand{\theemail}{\@email} 148 | \newcommand{\theterm}{\@term} 149 | \newcommand{\theprogram}{\@program} 150 | \newcommand{\thechair}{\@chair} 151 | \newcommand{\thechairaddress}{\@chairaddress} 152 | \newcommand{\thedate}{\@@date} 153 | \newcommand{\theconfidential}{\@confidential} 154 | \RequirePackage{textcase} 155 | \renewcommand{\maketitle}{% 156 | \begin{titlepage} 157 | \begin{singlespacing} 158 | \let\footnotesize\small 159 | \let\footnoterule\relax 160 | \let \footnote \thanks 161 | \begin{center} 162 | {\large \MakeTextUppercase{\@school} \par \@faculty}% 163 | \end{center} 164 | \null\vfill% 165 | \begin{center}% 166 | \ifthenelse{\boolean{uwwkrpt@se}} 167 | {\LARGE \@title \par}{\huge \MakeTextUppercase{\@title} \par}% 168 | \end{center}\par 169 | \null\vfill% 170 | \begin{center}% 171 | {\large \@employer\\ \@employeraddress\par \textit{\@confidential}}% 172 | \end{center}\par 173 | \null\vfill% 174 | \begin{center}{% 175 | \ifthenelse{\boolean{uwwkrpt@se}}{\normalsize}{\large} 176 | \ifthenelse{\boolean{uwwkrpt@se}}{\textbf{Prepared by}\\}{Prepared by\\} 177 | \begin{tabular}[t]{c}% 178 | \@author\\ 179 | \ifthenelse{\boolean{uwwkrpt@se}} 180 | {Student ID: \@uwid\\ User ID: \@userid\\}{ID \#\@uwid\\ \@email\\} 181 | \@term{} \@program 182 | \end{tabular}\par}% 183 | {\ifthenelse{\not \boolean{uwwkrpt@se}}{\large}{} \@date \par}% 184 | \end{center} 185 | \@thanks 186 | \end{singlespacing} 187 | \end{titlepage}% 188 | \setcounter{footnote}{0}% 189 | \global\let\thanks\@gobble 190 | \global\let\maketitle\relax 191 | \global\let\@thanks\@empty 192 | \global\let\@author\@empty 193 | \global\let\@date\@empty 194 | \global\let\@title\@empty 195 | \global\let\title\relax 196 | \global\let\author\relax 197 | \global\let\date\relax 198 | \global\let\and\relax 199 | } 200 | \newenvironment{letter}{% 201 | \everyvbox={\thispagestyle{empty}}% 202 | \@setletterpagenum% 203 | \ifthenelse{\boolean{uwwkrpt@math}} 204 | {\raggedright}{} 205 | \setlength{\parindent}{0pt} 206 | \setlength{\parskip}{\uwwkrpt@parskip} 207 | \singlespacing% 208 | \noindent\@@author\\\@address\par\noindent% 209 | \@@date \par\noindent% 210 | \ifthenelse{\boolean{uwwkrpt@se}} 211 | {\@chair, Director\\*\@chairaddress\par\noindent}% 212 | {\@chair, Chair\\*\@chairaddress\par\noindent}% 213 | Dear \@chair:% 214 | \ifthenelse{\boolean{uwwkrpt@se}} 215 | {\par} 216 | {\begin{center}\textbf{Re: Submission of my work term report.}\end{center}}} 217 | {\par I hereby confirm that I have received no help, other 218 | than what is mentioned above, in writing this report. 219 | \ifthenelse{\boolean{uwwkrpt@ece} 220 | \or \boolean{uwwkrpt@math} 221 | \or \boolean{uwwkrpt@se}} 222 | {I also confirm that this report has not been previously submitted 223 | for academic credit at this or any other academic institution.} 224 | {This report was written entirely by me and has not received 225 | any previous academic credit at this or any other institution.} 226 | \ifthenelse{\boolean{uwwkrpt@math}}{% 227 | \par The Faculty of Mathematics requests that you evaluate this report 228 | for command of topic and technical content/analysis. Following your 229 | assessment, the report, together with your evaluation, will be submitted 230 | to the Math Undergrad Office for evaluation on campus by qualified 231 | work report markers. The combined marks will determine whether the 232 | report will receive credit and whether it will be considered for an 233 | award. 234 | \par I would like to thank you for your assistance in preparing this 235 | document.}{}% 236 | \par\noindent 237 | \begin{minipage}{\textwidth} 238 | \ifthenelse{\boolean{uwwkrpt@se}}{\setlength{\parindent}{3in}}{} 239 | \setlength{\parskip}{\uwwkrpt@parskip} 240 | \vspace*{\uwwkrpt@parskip} 241 | \ifthenelse{\boolean{uwwkrpt@se}}{ 242 | Sincerely, 243 | \vspace*{0.75em}\\ 244 | \indent \includegraphics{\@signature}\\ 245 | \indent \@@author\\ 246 | \indent Student ID: \@uwid}% 247 | {Yours sincerely,\\*% 248 | \rule{0in}{0.3in}\\*{\hrule \@width 3in}% 249 | \noindent\@@author, \@uwid 250 | \par\noindent 251 | Encl.}% 252 | \end{minipage} 253 | \@setpostletterpagenum\uwwkrpt@spacing% 254 | \ifthenelse{\not \boolean{uwwkrpt@se}}{\newpage}{}% 255 | \global\let\@@author\@empty 256 | \global\let\@@title\@empty 257 | \global\let\@@date\@empty 258 | \global\let\uwid\relax 259 | \global\let\@uwid\@empty 260 | \global\let\@signature\relax 261 | \global\let\signature\relax 262 | \global\let\userid\relax 263 | \global\let\@userid\@empty 264 | \global\let\email\relax 265 | \global\let\@email\@empty 266 | \global\let\employer\relax 267 | \global\let\@employer\@empty 268 | \global\let\employeraddress\relax 269 | \global\let\@employeraddress\@empty 270 | \global\let\address\relax 271 | \global\let\@address\@empty 272 | \global\let\chair\relax 273 | \global\let\@chair\@empty 274 | \global\let\chairaddress\relax 275 | \global\let\@chairaddress\@empty 276 | \global\let\school\relax 277 | \global\let\@school\@empty 278 | \global\let\faculty\relax 279 | \global\let\@faculty\@empty 280 | \global\let\term\relax 281 | \global\let\@term\@empty 282 | \global\let\program\relax 283 | \global\let\@program\@empty 284 | \global\let\confidential\relax 285 | \global\let\@confidential\@empty 286 | } 287 | \newcommand{\frontmatter}{% 288 | \clearpage 289 | \@notmainsect% 290 | \pagenumbering{roman}% 291 | \ifthenelse{\boolean{uwwkrpt@ece}}{% 292 | \singlespacing}{\uwwkrpt@spacing}% 293 | } 294 | \newcommand{\mainmatter}{% 295 | \clearpage 296 | \uwwkrpt@spacing 297 | \@mainsect% 298 | \pagenumbering{arabic}% 299 | \ifthenelse{\boolean{uwwkrpt@math}}% 300 | {\let\section\section@rig} 301 | \global\def\dotzero{} 302 | \global\def\@secdotzerostart##1{} 303 | \global\def\@secdotzeroend##1{} 304 | \ifthenelse{\boolean{uwwkrpt@math}}{% 305 | \renewcommand{\@secdotzerostart}[1]{% 306 | \let\quad@rig\quad 307 | \ifthenelse{\equal{##1}{section}}{% 308 | \renewcommand{\quad}{.0\quad@rig}% 309 | \renewcommand{\dotzero}{.0}}{\renewcommand{\dotzero}{}} 310 | } 311 | \renewcommand{\@secdotzeroend}[1] 312 | {\ifthenelse{\equal{##1}{section}}{\let\quad\quad@rig}} 313 | }{}% 314 | \global\def\@appendixtitle{} 315 | } 316 | \let\appendix@rig\appendix 317 | \renewcommand{\appendix}{% 318 | \@mainsect% 319 | \ifthenelse{\boolean{uwwkrpt@math}}{% 320 | \renewcommand{\@secdotzerostart}[1]{\renewcommand{\dotzero}{}} 321 | \renewcommand{\@secdotzeroend}[1]{} 322 | }{}% 323 | \ifthenelse{\boolean{uwwkrpt@ece}} 324 | {\renewcommand{\@appendixtitle}{Appendix }}{} 325 | \appendix@rig% 326 | } 327 | \newcommand{\backmatter}{% 328 | \clearpage 329 | \@notmainsect% 330 | \ifthenelse{\boolean{uwwkrpt@math}}% 331 | {\renewcommand{\section}{\clearpage\section@rig}}{}% 332 | \ifthenelse{\boolean{uwwkrpt@ece}}% 333 | {\singlespacing}% 334 | } 335 | \newenvironment{summary} 336 | {\@notmainsect} 337 | {\@mainsect} 338 | \newcommand{\@notmainsect}{% 339 | \def\@sect##1##2##3##4##5##6[##7]##8{% 340 | \@tempskipa ##5\relax 341 | \ifdim \@tempskipa>\z@ 342 | \begingroup 343 | ##6{% 344 | \@hangfrom{\hskip ##3}% 345 | \interlinepenalty \@M ##8\@@par}% 346 | \endgroup 347 | \csname ##1mark\endcsname{##7}% 348 | \addcontentsline{toc}{##1}{##7}% 349 | \else 350 | \def\@svsechd{% 351 | ##6{\hskip ##3\relax 352 | \@svsec ##8}% 353 | \csname ##1mark\endcsname{##7}% 354 | \addcontentsline{toc}{##1}{##7}}% 355 | \fi 356 | \@xsect{##5}}% 357 | } 358 | 359 | \newcommand{\@mainsect}{% 360 | \def\@sect##1##2##3##4##5##6[##7]##8{% 361 | \ifnum ##2>\c@secnumdepth 362 | \let\@svsec\@empty 363 | \else 364 | \refstepcounter{##1}% 365 | \@secdotzerostart{##1} 366 | \protected@edef\@svsec{\@appendixtitle\@seccntformat{##1}\relax}% 367 | \@secdotzeroend{##1} 368 | \fi 369 | \@tempskipa ##5\relax 370 | \ifdim \@tempskipa>\z@ 371 | \begingroup 372 | ##6{% 373 | \@hangfrom{\hskip ##3\relax\@svsec}% 374 | \interlinepenalty \@M ##8\@@par}% 375 | \endgroup 376 | \csname ##1mark\endcsname{##7}% 377 | \addcontentsline{toc}{##1}{% 378 | \ifnum ##2>\c@secnumdepth \else 379 | \protect\numberline{\@appendixtitle\csname the##1\endcsname\dotzero} 380 | \protect\phantom{\@appendixtitle}% 381 | \fi 382 | ##7}% 383 | \else 384 | \def\@svsechd{% 385 | ##6{\hskip ##3\relax 386 | \@svsec ##8}% 387 | \csname ##1mark\endcsname{##7}% 388 | \addcontentsline{toc}{##1}{% 389 | \ifnum ##2>\c@secnumdepth \else 390 | \protect\numberline{\@appendixtitle\csname the##1\endcsname\dotzero} 391 | \protect\phantom{\@appendixtitle}% 392 | \fi 393 | ##7}}% 394 | \fi 395 | \@xsect{##5}}% 396 | } 397 | \let\section@rig\section 398 | \ifthenelse{\not \boolean{uwwkrpt@ece}}{ 399 | \renewcommand{\section}{\clearpage\section@rig}}{} 400 | \newcommand{\@setletterpagenum}{} 401 | \newcommand{\@setpostletterpagenum}{\setcounter{page}{0}} 402 | \ifthenelse{\boolean{uwwkrpt@math}}{% 403 | \renewcommand{\@setletterpagenum}{\setcounter{page}{1}} 404 | \renewcommand{\@setpostletterpagenum}{} 405 | }{} 406 | \ifthenelse{\boolean{uwwkrpt@ece} \or \boolean{uwwkrpt@se}}{% 407 | \renewcommand{\@setletterpagenum}{\setcounter{page}{2}} 408 | \renewcommand{\@setpostletterpagenum}{} 409 | }{} 410 | \renewcommand{\contentsname}{Table of Contents} 411 | \newcommand{\toc@intoc}{\relax} 412 | \ifthenelse{\boolean{uwwkrpt@se}}{% 413 | \renewcommand{\toc@intoc}{% 414 | \addcontentsline{toc}{section}{Table of Contents}}}{} 415 | \let\tableofcontents@rig\tableofcontents 416 | \renewcommand{\tableofcontents}{% 417 | \clearpage 418 | \begin{singlespacing} 419 | \setlength{\parskip}{0pt} 420 | \tableofcontents@rig \toc@intoc \par 421 | \end{singlespacing} 422 | } 423 | \renewcommand*\l@section[2]{% 424 | \ifnum \c@tocdepth >\m@ne 425 | \addpenalty{-\@highpenalty}% 426 | \vskip 1.0em \@plus\p@ 427 | \setlength\@tempdima{1.5em}% 428 | \begingroup 429 | \parindent \z@ \rightskip \@pnumwidth 430 | \parfillskip -\@pnumwidth 431 | \leavevmode \bfseries 432 | \advance\leftskip\@tempdima 433 | \hskip -\leftskip 434 | #1\nobreak\ 435 | \leaders\hbox{$\m@th 436 | \mkern \@dotsep mu\hbox{.}\mkern \@dotsep 437 | mu$}\hfil\nobreak\hb@xt@\@pnumwidth{\hss #2}\par 438 | \penalty\@highpenalty 439 | \endgroup 440 | \fi% 441 | } 442 | \newcommand{\listoffigures@intoc}{\relax} 443 | \newcommand{\listoftables@intoc}{\relax} 444 | \ifthenelse{\boolean{uwwkrpt@ece} \or \boolean{uwwkrpt@se}}{% 445 | \renewcommand{\listoffigures@intoc}{% 446 | \addcontentsline{toc}{section}{List of Figures}} 447 | \renewcommand{\listoftables@intoc}{% 448 | \addcontentsline{toc}{section}{List of Tables}} 449 | }{} 450 | \ifthenelse{\boolean{uwwkrpt@se}}{% 451 | \RequirePackage[titles]{tocloft} 452 | \renewcommand{\cftsecleader}{\cftdotfill{\cftsubsecdotsep}} 453 | \setlength{\cftfigindent}{0pt} 454 | \newlength{\myfiglen} 455 | \renewcommand{\cftfigpresnum}{\figurename\enspace} 456 | \renewcommand{\cftfigaftersnum}{:} 457 | \settowidth{\myfiglen}{\cftfigpresnum\cftfigaftersnum} 458 | \addtolength{\cftfignumwidth}{\myfiglen} 459 | }{} 460 | \let\listoffigures@rig\listoffigures 461 | \renewcommand{\listoffigures}{% 462 | \clearpage 463 | \begin{singlespacing} 464 | \listoffigures@rig \listoffigures@intoc% 465 | \end{singlespacing} 466 | } 467 | \ifthenelse{\boolean{uwwkrpt@se}}{% 468 | \setlength{\cfttabindent}{0pt} 469 | \newlength{\mytablen} 470 | \renewcommand{\cfttabpresnum}{\tablename\enspace} 471 | \renewcommand{\cfttabaftersnum}{:} 472 | \settowidth{\mytablen}{\cfttabpresnum\cfttabaftersnum} 473 | \addtolength{\cfttabnumwidth}{\mytablen} 474 | }{} 475 | \let\listoftables@rig\listoftables 476 | \renewcommand{\listoftables}{% 477 | \clearpage 478 | \begin{singlespacing} 479 | \listoftables@rig \listoftables@intoc% 480 | \end{singlespacing} 481 | } 482 | \let\table@rig\table 483 | \let\endtable@rig\endtable 484 | \let\figure@rig\figure 485 | \let\endfigure@rig\endfigure 486 | \renewenvironment{figure}[1][p]{\begin{figure@rig}[#1]}{\end{figure@rig}} 487 | \renewenvironment{table}[1][p]{\begin{table@rig}[#1]}{\end{table@rig}} 488 | \ifthenelse{\boolean{uwwkrpt@ece} 489 | \or \boolean{uwwkrpt@math} 490 | \or \boolean{uwwkrpt@se}}{% 491 | \renewenvironment{figure}[1][htbp]{\begin{figure@rig}[#1]}{\end{figure@rig}} 492 | \renewenvironment{table}[1][htbp]{\begin{table@rig}[#1]}{\end{table@rig}} 493 | }{} 494 | \ifthenelse{\boolean{uwwkrpt@se}}{% 495 | \RequirePackage{caption} 496 | \captionsetup{ 497 | font=small, 498 | labelfont=bf, 499 | figurewithin=section, 500 | tablewithin=section 501 | } 502 | \renewcommand\thefigure{\thesection-\arabic{figure}} 503 | \renewcommand\thetable{\thesection-\arabic{table}} 504 | }{} 505 | \ifthenelse{\not \boolean{uwwkrpt@se}}{\bibliographystyle{ieeetr}}{} 506 | \let\bib@rig\bibliography 507 | \renewcommand{\bibliography}[1]{% 508 | \clearpage 509 | \begin{singlespacing} 510 | \bibliography@intoc \bib@rig{#1}\par 511 | \end{singlespacing} 512 | } 513 | \newcommand{\refn@me}{References} 514 | \newcommand{\bibliography@intoc}{% 515 | \renewcommand{\refname}{% 516 | \addtocounter{section}{1}% 517 | \arabic{section}\hspace{2.5ex}\refn@me% 518 | \addcontentsline{toc}{section}{% 519 | \numberline{\arabic{section}}{\refn@me}}}% 520 | } 521 | \ifthenelse{\boolean{uwwkrpt@ece} 522 | \or \boolean{uwwkrpt@math} 523 | \or \boolean{uwwkrpt@se}}{% 524 | \renewcommand{\bibliography@intoc}{% 525 | \addcontentsline{toc}{section}{\refn@me}}% 526 | }{} 527 | \endinput 528 | %% 529 | %% End of file `uw-wkrpt.cls'. 530 | -------------------------------------------------------------------------------- /uw-wkrpt-cecs.tex: -------------------------------------------------------------------------------- 1 | % uw-wkrpt-cecs.tex - An example work report that uses uw-wkrpt.cls 2 | % Copyright (C) 2002,2003 Simon Law 3 | % 4 | % This program is free software; you can redistribute it and/or modify 5 | % it under the terms of the GNU General Public License as published by 6 | % the Free Software Foundation; either version 2 of the License, or 7 | % (at your option) any later version. 8 | % 9 | % This program is distributed in the hope that it will be useful, 10 | % but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | % GNU General Public License for more details. 13 | % 14 | % You should have received a copy of the GNU General Public License 15 | % along with this program; if not, write to the Free Software 16 | % Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | % 18 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 19 | % 20 | % We begin by calling the workreport class which includes all the 21 | % definitions for the macros we will use. 22 | \documentclass[]{uw-wkrpt} 23 | 24 | % We will use some packages to add functionality 25 | \usepackage{graphicx} % Include graphic importing 26 | 27 | % Now we will begin writing the document. 28 | \begin{document} 29 | 30 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 31 | %% IMPORTANT INFORMATION 32 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 33 | 34 | %% First we, should create a title page. This is done below: 35 | % Fill in the title of your report. 36 | \title{A \LaTeX{} document class for work reports} 37 | 38 | % Fill in your name. 39 | \author{J. Random Hacker} 40 | 41 | % Fill in your student ID number. 42 | \uwid{01234567} 43 | 44 | % Fill in your home address. 45 | \address{123 University Ave. W.,\\* 46 | Waterloo, ON\ \ N2L 3G1} 47 | 48 | % Fill in your employer's name. 49 | \employer{Acme Incorporated} 50 | 51 | % Fill in your employer's city and province. 52 | \employeraddress{Burbank, CA} 53 | 54 | % Fill in your school's name. 55 | \school{University of Waterloo} 56 | 57 | % Fill in your faculty name. 58 | \faculty{Faculty of Engineering} 59 | 60 | % Fill in your e-mail address. 61 | \email{jrhacker@engmail} 62 | 63 | % Fill in your term. 64 | \term{1A} 65 | 66 | % Fill in your program. 67 | \program{Chemical Engineering} 68 | 69 | % Fill in the department chair's name. 70 | \chair{Mr. B. Lumsden} 71 | 72 | % Fill in the department chair's mailing address. 73 | \chairaddress{Co-operative Education \& Career Services,\\* 74 | University of Waterloo,\\* 75 | Waterloo, ON\ \ N2L 3G1} 76 | 77 | % If you are writing a "Confidential 1" report, uncomment the next line. 78 | %\confidential{Confidential-1} 79 | 80 | % If you want to specify the date, fill it in here. If you comment out 81 | % this line, today's date will be substituted. 82 | \date{April 26, 2003} 83 | 84 | % Now, we ask LaTeX to generate the title. 85 | \maketitle 86 | 87 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 88 | %% FRONT MATTER 89 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 90 | %% \frontmatter will make the \section commands ignore their numbering, 91 | %% it will also use roman page numbers. 92 | \frontmatter 93 | 94 | % After this, we must create a letter of submission. 95 | \begin{letter} 96 | I have just completed my first work term, following my \theterm{} term. 97 | Please find enclosed my first work term report entitled: 98 | ``\thetitle'' for the Software Widgets group at \theemployer. 99 | My departmental manager was Rube Goldberg 100 | and our group was primarily involved with writing and testing 101 | of labour-saving software. 102 | 103 | This report focuses on using the unofficial work report 104 | documentation class, \texttt{uw-wkrpt.cls}, and provides a 105 | sample document on which to base your own work report. It is written for 106 | fellow classmates who have some working knowledge of \LaTeX{} and \TeX{}. 107 | 108 | I have had no direct assistance from anyone. I do wish to thank Leslie 109 | Lamport and Donald E. Knuth for inventing such marvellous typesetting 110 | tools. 111 | 112 | % Note that I do not need to type out the boilerplate confirmation, 113 | % nor do I need to write a signature block. This is generated for me. 114 | % We are now finished with the letter. 115 | \end{letter} 116 | 117 | 118 | % Next, we need to make a Table of Contents, List of Figures and 119 | % List of Tables. You will most likely need to run LaTeX twice to 120 | % get these correct. The first pass for LaTeX to figure out the 121 | % labels, and the second pass to put in the right references. 122 | \tableofcontents 123 | \listoffigures 124 | \listoftables 125 | 126 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 127 | %% REPORT BODY 128 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 129 | %% \main will make the \section commands numbered again, 130 | %% it will also use arabic page numbers. 131 | \mainmatter 132 | 133 | % In this report, we need to encapsulate our ``Summary'', ``Abstract'', 134 | % or ``Executive Summary'' in a summary environment. This will 135 | % suppress section numbering. 136 | \begin{summary} 137 | \section{Summary} 138 | This document describes the use of the \texttt{uw-wkrpt.cls} 139 | document class in creating work reports. Written in the 140 | \LaTeX{} macro language, this document class is designed to typeset 141 | documents that conform to the University of Waterloo co-op student 142 | manual~\cite{ref:coopman} requirements. The class has been generalised 143 | from the earlier \texttt{uw-ece-workreport} document class so that it 144 | may be used by students of any faculty. This particular report 145 | serves as an example for the University of Waterloo, Electrical and 146 | Computer Engineering work report guidelines~\cite{ref:eceguidelines}. 147 | Other example reports for other faculties are included with this package. 148 | 149 | I also argue the advantages of using this document class over other 150 | more traditional ways of generating a report. I hope to convince the 151 | reader that using this technology is superior to writing the document 152 | in a WYSIWYG word processor. 153 | \end{summary} 154 | 155 | \section{Introduction}\label{sec:intro} 156 | This pretend report, written by an imaginary student, 157 | exists because I got sick of writing a report, 158 | and having to check my document over and over again for simple 159 | formatting errors. Now, I thought that a work report is useful 160 | due to its content; not because my Table of Contents did not have dot 161 | leading for page numbers. So, I turned to \LaTeX{} as my saviour. 162 | 163 | I, Simon Law, implemented my first work report in \LaTeX{} in early 164 | December 2001. Unfortunately, I was feeling my way around and didn't 165 | implement my scheme very well. After learning how to create a 166 | document class, I have created this document class, which I now offer 167 | to you. 168 | 169 | If you find a problem with this document class, or have suggestions to 170 | offer; please drop me a note. As well, patches and fixes are always 171 | welcome. You can find information on how to contact me in Appendix 172 | \ref{app:colophon}. 173 | 174 | \section{Advantages} 175 | Using this class has a number of great advantages: 176 | 177 | \begin{itemize} 178 | \item You no longer have to worry about missing information. If you fill 179 | in all the information at the top of this document, your title page 180 | and all the important fields in your Letter of Submittal will be 181 | properly filled. 182 | 183 | \item Your references will be all correct. Your Table of Contents, 184 | List of Figure and List of Tables will be automatically generated. 185 | Citations and references will be done properly, and your bibliography 186 | will be automatically formatted in IEEE style. 187 | 188 | \item You can cross-reference other sections trivially, 189 | (\emph{e.g.} One can find the introduction at \S\ref{sec:intro}, 190 | p.\pageref{sec:intro}). 191 | 192 | \item You no longer have to worry if your document looks good. You can 193 | ask the computer to worry about formatting and styles, without having to 194 | mess around with differing fonts (roman, \textsf{sans-serif}, 195 | \texttt{fixed}) or with differing styles (normal, \textbf{bold}, 196 | \textit{italics}, \underline{underlined}, \textsl{slanted}, 197 | \textsc{small-caps}). You can concentrate on what you write, and are 198 | assured that your text will look great. 199 | 200 | \item Since the computer formats things for you, you can re-arrange 201 | sections trivially. Or you can define new styles to make global changes 202 | across the entire document. 203 | 204 | \item Math output is by far superior in \LaTeX. You can write things 205 | like $\sum_{i=1}^{\infty} \frac{1}{x}$ or: 206 | \[\int_{0}^{\infty} \delta(x)\,dx = u(x) + C\] 207 | \end{itemize} 208 | 209 | \section{What are \TeX{} and \LaTeX{}?} 210 | % 211 | \TeX{} was designed and implemented by Donald E. Knuth, the famous author 212 | of \textit{The art of computer programming}~\cite{ref:taocp}. Knuth, 213 | shown in Figure \ref{fig:knuth}, decided to create a typesetting language 214 | that would handle mathematical output beautifully. This was motivated 215 | by the fact that publishers would mangle the formul\ae of his 216 | \textit{magnum opus}. Now, \TeX{} is used by the mathematical, 217 | academic, and documentation communities to typeset beautiful 218 | documents. The \TeX{} language is designed to provide precise control 219 | for text layout. 220 | 221 | % Here is a figure. You MUST cite the figure in the text before it appears. 222 | % 223 | % I include an external picture here. This picture is called don-hires.pdf. 224 | % Notice how I do not specify the extension of the file. pdfLaTeX knows 225 | % about PDFs only, so get your pictures into that format. 226 | \begin{figure} 227 | \centering 228 | \includegraphics[height=3.0in]{don-hires} 229 | \caption[Donald E. Knuth, the creator of \TeX{}.] 230 | {Donald E. Knuth, the creator of \TeX{}.~\cite{ref:donpicture}} 231 | \label{fig:knuth} 232 | \end{figure} 233 | 234 | \LaTeX{} was designed and implemented by Leslie Lamport while he worked 235 | at Digital Equipment Corp. \LaTeX{} was his attempt to create a 236 | documentation system that was easier to use than \TeX{}. In fact, 237 | \LaTeX{} is frequently called a ``document processor'' as opposed to a 238 | ``word processor,'' because it abstracts away the hard details of 239 | formatting and typesetting, allowing the author to use a semantic 240 | language to describe the output. 241 | 242 | 243 | \section{Learning \LaTeX} 244 | \newcommand{\us}{\hspace{-0.1ex}} 245 | \newcommand{\teTeX}{\mbox{t\us e\us\us\TeX}} 246 | \newcommand{\MiKTeX}{\mbox{M\us i\us K\us\us\TeX}} 247 | % 248 | Unfortunately, using \LaTeX{} is not quite as intuitive as using a 249 | word processor. However, if you invest the time in learning it, the 250 | payoffs can be great. Unlike a word processor, \LaTeX{} is written 251 | like a markup language, which means you use macros\footnote{The 252 | SGML/HTML/XML world calls these tags.} to tell \TeX{} how to typeset 253 | your document. This means that you can edit your documents in any 254 | old text editor, be it as crude as Microsoft Notepad, or something 255 | more heavy-duty like vi\footnote{Try Vim~\cite{ref:vim} which is 256 | Vi Improved.}~\cite{ref:vi} or Emacs~\cite{ref:emacs}. 257 | 258 | There are some good on-line books if you wish to learn \LaTeX{} without 259 | having to shell out any hard earned money\footnote{You are earning money 260 | during this work term, right?}. The standard reference is \textit{A 261 | not so short introduction to \LaTeXe{}}~\cite{ref:short}. As well, 262 | \textit{A simplified introduction to \LaTeX}~\cite{ref:simplified} is 263 | also an excellent reference. 264 | 265 | The fundamental resource for learning \LaTeX{} has to be \textit{\LaTeX: 266 | a document preparation system}~\cite{ref:latex2e} which is written by 267 | Leslie Lamport, the creator of \LaTeX. Also of note is \textit{The 268 | \LaTeX{} companion} which is the next step up, if you want to become a 269 | power user. 270 | 271 | How does one get a copy of \LaTeX? On Unix systems, the 272 | \teTeX~\cite{ref:tetex} distribution is popular. For Windows users, 273 | \MiKTeX~\cite{ref:miktex} is the distribution of choice. Follow each 274 | packages installation instructions for best results\footnote{On a Debian 275 | GNU/Linux system, invoke \texttt{aptitude~install~tetex-bin~tetex-extra}}. 276 | 277 | You will probably want a PostScript interpreter to create PDFs or to 278 | send PostScript output files to the printer. You can use Adobe Distiller, 279 | which you can purchase from Adobe Systems Inc.; or you could download 280 | a copy of Ghostscript\footnote{Again, on Debian GNU/Linux, run 281 | \texttt{aptitude~install~gs}}~\cite{ref:gs}. 282 | 283 | \subsection{How \LaTeX{} works} 284 | 285 | You create text files that include \LaTeX{} commands to generate the 286 | final document. You can consider it similar to writing source code 287 | that is compiled to generate the typeset output. 288 | 289 | Figure \ref{fig:flow} shows the control flow that a typical document 290 | follows in order to generate PDF output. 291 | 292 | \providecommand{\BibTeX}{\textsc{Bib}\us\TeX} 293 | % Here is a another figure. You MUST cite the figure in the text before 294 | % it appears. 295 | % 296 | % I draw a picture here using the picture environment. 297 | \begin{figure} 298 | \centering 299 | \begin{picture}(300,170) 300 | % Draw the text boxes 301 | \put( 50, 150){\makebox(0,0){\fbox{\texttt{document.tex}}}} 302 | \put(250, 150){\makebox(0,0){\fbox{\texttt{document.bib}}}} 303 | \put( 50, 100){\makebox(0,0)[l]{\fbox{\texttt{document.pdf}}}} 304 | \put(180, 100){\makebox(0,0){\fbox{\texttt{document.aux}}}} 305 | \put(250, 50){\makebox(0,0){\fbox{\texttt{document.bbl}}}} 306 | \put(150, 0){\makebox(0,0){\fbox{\texttt{document.pdf}}}} 307 | % Draw the connecting lines 308 | \put( 75, 143){\vector( 0,-1){ 35}} % .tex -> .pdf 309 | \put( 75, 125){\line ( 1, 0){105}} % .tex -> .aux 310 | \put(180, 125){\vector( 0,-1){ 18}} % .tex -> .aux 311 | \put(205, 93){\line ( 0,-1){ 18}} % .aux -- .bbl 312 | \put(205, 75){\line ( 1, 0){ 45}} % .aux -- .bbl 313 | \put(250, 143){\vector( 0,-1){ 86}} % .bib -> .bbl 314 | \put( 25, 143){\line ( 0,-1){118}} % .tex -- .pdf 315 | \put(155, 93){\line ( 0,-1){ 68}} % .aux -- .pdf 316 | \put(250, 43){\line ( 0,-1){ 18}} % .bbl -- .pdf 317 | \put( 25, 25){\line ( 1, 0){225}} % ------------ 318 | \put(150, 25){\vector( 0,-1){ 18}} % .* -> .pdf 319 | % Draw the text 320 | \put( 78, 138){\makebox(0,0)[tl]{\textsc{pdf}\LaTeX{}}} 321 | \put(247, 60){\makebox(0,0)[br]{\BibTeX{}}} 322 | \put(153, 10){\makebox(0,0)[bl]{\textsc{pdf}\LaTeX{}}} 323 | \end{picture} 324 | \caption{Control flow of a \LaTeX{} compilation.} 325 | \label{fig:flow} 326 | \end{figure} 327 | 328 | Since \LaTeX{} is a programming languages, it does have some special 329 | characters. Specifically, the reserved characters are: 330 | \verb'#', 331 | \verb'$', 332 | \verb'%', 333 | \verb'&', 334 | \verb'_', 335 | \verb'{', 336 | \verb'}', 337 | \verb'~', 338 | \verb'^', 339 | \verb'\'. 340 | See Table \ref{tbl:chars} to see them in print. 341 | 342 | % Here is a table. You MUST cite the table in the text before it appears 343 | % in the document. 344 | \begin{table} 345 | \caption{Typesetting special characters.} 346 | \label{tbl:chars} 347 | \centering 348 | \begin{tabular}{|r|l|} 349 | \hline 350 | \multicolumn{1}{|c|}{\textbf{Name}} & 351 | \multicolumn{1}{|c|}{\textbf{Symbol}} \\ 352 | \hline\hline 353 | octothorpe & \# \\ 354 | dollar sign & \$ \\ 355 | percent sign & \% \\ 356 | ampersand & \& \\ 357 | underscore & \_ \\ 358 | left brace & \{ \\ 359 | right brace & \} \\ 360 | tilde & \textasciitilde \\ 361 | circumflex & \textasciicircum \\ 362 | backslash & \textbackslash \\ 363 | \hline 364 | inverted exclaimation & < \\ 365 | inverted question & > \\ 366 | less than & \textless \\ 367 | greater than & \textgreater \\ 368 | \hline 369 | \end{tabular} 370 | \end{table} 371 | 372 | \section{Source} 373 | 374 | This document, and the documents it uses are available under the 375 | GNU General Public License (GPL), reproduced in Appendix \ref{app:gnugpl}. 376 | Note that you do not need to accept the GNU GPL to use this document, or 377 | to use the document class. I highly recommend that you read the GPL so 378 | you understand your rights and privledges. 379 | 380 | You can find the most recent version of these documents on my website 381 | in a tarball at: \url{http://www.eng.uwaterloo.ca/~sfllaw/programs/uw-wkrpt/}. 382 | Download the latest version, unpack it, and read the enclosed \texttt{README} 383 | text file. 384 | 385 | \section{To do} 386 | There are still some things I want to do, to improve this example 387 | document: 388 | 389 | \begin{enumerate} 390 | \item Demonstrate the use of Gloss\TeX{} to create glossaries. 391 | \item Demonstrate the creation of an index. 392 | \item Look into \texttt{ieeetran.bst}. 393 | \item Fix all the bugs listed in Appendix \ref{app:bugs}. 394 | \end{enumerate} 395 | 396 | Examples that illustrate this usage are most definitely welcome. Please 397 | provide a patch against this document. 398 | 399 | \section{Conclusions} 400 | Using this document class will allow you to reap the advantages of 401 | \LaTeX{}, \TeX{} and many years of labour donated by people much 402 | smarter than you or I. It is obvious that we should use their work 403 | to make ours that much better. For even the great Sir Issac Newton 404 | could only achieve what he did because he ``stood on the shoulders 405 | of giants.'' 406 | 407 | \section{Recommendations} 408 | Learn \LaTeX{} and then use this document class to prepare your 409 | work reports. You will get nice, beautiful documents without a lot 410 | of fuss. 411 | 412 | % Here, we insert a References section, which will be formatted properly. 413 | % The list of works you have referenced should be in FILENAME.bib, 414 | % which will be workreport-sample.bib, if you use the command below. 415 | % 416 | % Note, you will need to process the document in a certain order. First, 417 | % run LaTeX. The % first pass will allow LaTeX to build a list of 418 | % references, it may % emit warning messages such as: 419 | % LaTeX Warning: Reference `app:gnugpl' on page 4 undefined on input line 277. 420 | % LaTeX Warning: There were undefined references. 421 | % This is normal. Now you run BiBTeX in order to generate the proper 422 | % layout for the references. After this, you run LaTeX once more. 423 | \bibliography{uw-wkrpt-bib} 424 | 425 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 426 | %% APPENDICES 427 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 428 | %% \appendix will reset \section numbers and turn them into letters. 429 | %% 430 | %% Don't forget to refer to all your appendices in the main report. 431 | \appendix 432 | 433 | \section{Bugs}\label{app:bugs} 434 | Currently, there are some known problems with this document class. 435 | \begin{itemize} 436 | \item It is not officially supported or acknowledged by the 437 | E\&CE department. 438 | \item Not all users have converted to using a typesetting language, and 439 | insist on using word processors. 440 | \item It does not bring world peace. 441 | \end{itemize} 442 | 443 | Fixes for these bugs are most certainly welcome. Please provide a patch 444 | against the document class document. 445 | 446 | \section{Colophon}\label{app:colophon} 447 | This sample document was written by Simon Law, a third-year Computer 448 | Engineering student at the University of Waterloo, in Waterloo, ON, CA. 449 | When he is not programming, he can be found reading or sleeping; 450 | both of which are his favourite activities.\footnote{OK, so I don't 451 | have a life yet. I'm working on it.} 452 | 453 | The best way to contact him is by e-mail, at \url{sfllaw@uwaterloo.ca}. 454 | 455 | This document was implemented using the \texttt{ece} variant of the 456 | \texttt{uw-wkrpt} document class. The document class, and the 457 | surrounding documentation is implemented using the \LaTeXe{} macro 458 | package which is built on the \TeX{} typesetting system. The documents 459 | were generated by the web2c implementation of \TeX, found in the 460 | \teTeX{} distribution. The typeface used is Computer Modern. 461 | 462 | The entire system was written in the Vim text editor. The operating 463 | system used was Debian GNU/Linux which ran on an IBM ThinkPad A20m. This 464 | stalwart companion allowed him to work on this report periodically, even 465 | during his ``off'' time up at the cottage. 466 | 467 | 468 | \section{GNU General Public License}\label{app:gnugpl} 469 | \renewcommand{\labelenumii}{\theenumii)} 470 | \begin{singlespacing} 471 | \centerline{Version 2, June 1991} 472 | 473 | \begin{quote} 474 | Copyright \copyright{} 1989, 1991 Free Software Foundation, Inc.\newline 475 | \null\hspace{0.5in}59 Temple Place, Suite 330, Boston, 476 | MA\ \ 02111-1307\ \ USA\\ 477 | Everyone is permitted to copy and distribute verbatim copies 478 | of this license document, but changing it is not allowed. 479 | \end{quote} 480 | 481 | \subsection*{\centerline{Preamble}} 482 | 483 | The licenses for most software are designed to take away your 484 | freedom to share and change it. By contrast, the GNU General Public 485 | License is intended to guarantee your freedom to share and change free 486 | software--to make sure the software is free for all its users. This 487 | General Public License applies to most of the Free Software 488 | Foundation's software and to any other program whose authors commit to 489 | using it. (Some other Free Software Foundation software is covered by 490 | the GNU Library General Public License instead.) You can apply it to 491 | your programs, too. 492 | 493 | When we speak of free software, we are referring to freedom, not 494 | price. Our General Public Licenses are designed to make sure that you 495 | have the freedom to distribute copies of free software (and charge for 496 | this service if you wish), that you receive source code or can get it 497 | if you want it, that you can change the software or use pieces of it 498 | in new free programs; and that you know you can do these things. 499 | 500 | To protect your rights, we need to make restrictions that forbid 501 | anyone to deny you these rights or to ask you to surrender the rights. 502 | These restrictions translate to certain responsibilities for you if you 503 | distribute copies of the software, or if you modify it. 504 | 505 | For example, if you distribute copies of such a program, whether 506 | gratis or for a fee, you must give the recipients all the rights that 507 | you have. You must make sure that they, too, receive or can get the 508 | source code. And you must show them these terms so they know their 509 | rights. 510 | 511 | We protect your rights with two steps: (1) copyright the software, and 512 | (2) offer you this license which gives you legal permission to copy, 513 | distribute and/or modify the software. 514 | 515 | Also, for each author's protection and ours, we want to make certain 516 | that everyone understands that there is no warranty for this free 517 | software. If the software is modified by someone else and passed on, we 518 | want its recipients to know that what they have is not the original, so 519 | that any problems introduced by others will not reflect on the original 520 | authors' reputations. 521 | 522 | Finally, any free program is threatened constantly by software 523 | patents. We wish to avoid the danger that redistributors of a free 524 | program will individually obtain patent licenses, in effect making the 525 | program proprietary. To prevent this, we have made it clear that any 526 | patent must be licensed for everyone's free use or not licensed at all. 527 | 528 | The precise terms and conditions for copying, distribution and 529 | modification follow. 530 | 531 | \subsection*{\centerline{TERMS AND CONDITIONS FOR COPYING,}\\ 532 | \centerline{DISTRIBUTION AND MODIFICATION}} 533 | 534 | \begin{enumerate} 535 | \setcounter{enumi}{-1} 536 | 537 | \item This License applies to any program or other work which contains 538 | a notice placed by the copyright holder saying it may be distributed 539 | under the terms of this General Public License. The ``Program'', below, 540 | refers to any such program or work, and a ``work based on the Program'' 541 | means either the Program or any derivative work under copyright law: 542 | that is to say, a work containing the Program or a portion of it, 543 | either verbatim or with modifications and/or translated into another 544 | language. (Hereinafter, translation is included without limitation in 545 | the term ``modification''.) Each licensee is addressed as ``you''. 546 | 547 | Activities other than copying, distribution and modification are not 548 | covered by this License; they are outside its scope. The act of 549 | running the Program is not restricted, and the output from the Program 550 | is covered only if its contents constitute a work based on the 551 | Program (independent of having been made by running the Program). 552 | Whether that is true depends on what the Program does. 553 | 554 | \item You may copy and distribute verbatim copies of the Program's 555 | source code as you receive it, in any medium, provided that you 556 | conspicuously and appropriately publish on each copy an appropriate 557 | copyright notice and disclaimer of warranty; keep intact all the 558 | notices that refer to this License and to the absence of any warranty; 559 | and give any other recipients of the Program a copy of this License 560 | along with the Program. 561 | 562 | You may charge a fee for the physical act of transferring a copy, and 563 | you may at your option offer warranty protection in exchange for a fee. 564 | 565 | \item You may modify your copy or copies of the Program or any portion 566 | of it, thus forming a work based on the Program, and copy and 567 | distribute such modifications or work under the terms of Section 1 568 | above, provided that you also meet all of these conditions: 569 | 570 | \begin{enumerate} 571 | \item You must cause the modified files to carry prominent notices 572 | stating that you changed the files and the date of any change. 573 | 574 | \item You must cause any work that you distribute or publish, that in 575 | whole or in part contains or is derived from the Program or any 576 | part thereof, to be licensed as a whole at no charge to all third 577 | parties under the terms of this License. 578 | 579 | \item If the modified program normally reads commands interactively 580 | when run, you must cause it, when started running for such 581 | interactive use in the most ordinary way, to print or display an 582 | announcement including an appropriate copyright notice and a 583 | notice that there is no warranty (or else, saying that you provide 584 | a warranty) and that users may redistribute the program under 585 | these conditions, and telling the user how to view a copy of this 586 | License. (Exception: if the Program itself is interactive but 587 | does not normally print such an announcement, your work based on 588 | the Program is not required to print an announcement.) 589 | \end{enumerate} 590 | 591 | These requirements apply to the modified work as a whole. If 592 | identifiable sections of that work are not derived from the Program, 593 | and can be reasonably considered independent and separate works in 594 | themselves, then this License, and its terms, do not apply to those 595 | sections when you distribute them as separate works. But when you 596 | distribute the same sections as part of a whole which is a work based 597 | on the Program, the distribution of the whole must be on the terms of 598 | this License, whose permissions for other licensees extend to the 599 | entire whole, and thus to each and every part regardless of who wrote it. 600 | 601 | Thus, it is not the intent of this section to claim rights or contest 602 | your rights to work written entirely by you; rather, the intent is to 603 | exercise the right to control the distribution of derivative or 604 | collective works based on the Program. 605 | 606 | In addition, mere aggregation of another work not based on the Program 607 | with the Program (or with a work based on the Program) on a volume of 608 | a storage or distribution medium does not bring the other work under 609 | the scope of this License. 610 | 611 | \item You may copy and distribute the Program (or a work based on it, 612 | under Section 2) in object code or executable form under the terms of 613 | Sections 1 and 2 above provided that you also do one of the following: 614 | 615 | \begin{enumerate} 616 | \item Accompany it with the complete corresponding machine-readable 617 | source code, which must be distributed under the terms of Sections 618 | 1 and 2 above on a medium customarily used for software interchange; or, 619 | 620 | \item Accompany it with a written offer, valid for at least three 621 | years, to give any third party, for a charge no more than your 622 | cost of physically performing source distribution, a complete 623 | machine-readable copy of the corresponding source code, to be 624 | distributed under the terms of Sections 1 and 2 above on a medium 625 | customarily used for software interchange; or, 626 | 627 | \item Accompany it with the information you received as to the offer 628 | to distribute corresponding source code. (This alternative is 629 | allowed only for noncommercial distribution and only if you 630 | received the program in object code or executable form with such 631 | an offer, in accord with Subsection b above.) 632 | \end{enumerate} 633 | 634 | The source code for a work means the preferred form of the work for 635 | making modifications to it. For an executable work, complete source 636 | code means all the source code for all modules it contains, plus any 637 | associated interface definition files, plus the scripts used to 638 | control compilation and installation of the executable. However, as a 639 | special exception, the source code distributed need not include 640 | anything that is normally distributed (in either source or binary 641 | form) with the major components (compiler, kernel, and so on) of the 642 | operating system on which the executable runs, unless that component 643 | itself accompanies the executable. 644 | 645 | If distribution of executable or object code is made by offering 646 | access to copy from a designated place, then offering equivalent 647 | access to copy the source code from the same place counts as 648 | distribution of the source code, even though third parties are not 649 | compelled to copy the source along with the object code. 650 | 651 | \item You may not copy, modify, sublicense, or distribute the Program 652 | except as expressly provided under this License. Any attempt 653 | otherwise to copy, modify, sublicense or distribute the Program is 654 | void, and will automatically terminate your rights under this License. 655 | However, parties who have received copies, or rights, from you under 656 | this License will not have their licenses terminated so long as such 657 | parties remain in full compliance. 658 | 659 | \item You are not required to accept this License, since you have not 660 | signed it. However, nothing else grants you permission to modify or 661 | distribute the Program or its derivative works. These actions are 662 | prohibited by law if you do not accept this License. Therefore, by 663 | modifying or distributing the Program (or any work based on the 664 | Program), you indicate your acceptance of this License to do so, and 665 | all its terms and conditions for copying, distributing or modifying 666 | the Program or works based on it. 667 | 668 | \item Each time you redistribute the Program (or any work based on the 669 | Program), the recipient automatically receives a license from the 670 | original licensor to copy, distribute or modify the Program subject to 671 | these terms and conditions. You may not impose any further 672 | restrictions on the recipients' exercise of the rights granted herein. 673 | You are not responsible for enforcing compliance by third parties to 674 | this License. 675 | 676 | \item If, as a consequence of a court judgment or allegation of patent 677 | infringement or for any other reason (not limited to patent issues), 678 | conditions are imposed on you (whether by court order, agreement or 679 | otherwise) that contradict the conditions of this License, they do not 680 | excuse you from the conditions of this License. If you cannot 681 | distribute so as to satisfy simultaneously your obligations under this 682 | License and any other pertinent obligations, then as a consequence you 683 | may not distribute the Program at all. For example, if a patent 684 | license would not permit royalty-free redistribution of the Program by 685 | all those who receive copies directly or indirectly through you, then 686 | the only way you could satisfy both it and this License would be to 687 | refrain entirely from distribution of the Program. 688 | 689 | If any portion of this section is held invalid or unenforceable under 690 | any particular circumstance, the balance of the section is intended to 691 | apply and the section as a whole is intended to apply in other 692 | circumstances. 693 | 694 | It is not the purpose of this section to induce you to infringe any 695 | patents or other property right claims or to contest validity of any 696 | such claims; this section has the sole purpose of protecting the 697 | integrity of the free software distribution system, which is 698 | implemented by public license practices. Many people have made 699 | generous contributions to the wide range of software distributed 700 | through that system in reliance on consistent application of that 701 | system; it is up to the author/donor to decide if he or she is willing 702 | to distribute software through any other system and a licensee cannot 703 | impose that choice. 704 | 705 | This section is intended to make thoroughly clear what is believed to 706 | be a consequence of the rest of this License. 707 | 708 | \item If the distribution and/or use of the Program is restricted in 709 | certain countries either by patents or by copyrighted interfaces, the 710 | original copyright holder who places the Program under this License 711 | may add an explicit geographical distribution limitation excluding 712 | those countries, so that distribution is permitted only in or among 713 | countries not thus excluded. In such case, this License incorporates 714 | the limitation as if written in the body of this License. 715 | 716 | \item The Free Software Foundation may publish revised and/or new versions 717 | of the General Public License from time to time. Such new versions will 718 | be similar in spirit to the present version, but may differ in detail to 719 | address new problems or concerns. 720 | 721 | Each version is given a distinguishing version number. If the Program 722 | specifies a version number of this License which applies to it and ``any 723 | later version'', you have the option of following the terms and conditions 724 | either of that version or of any later version published by the Free 725 | Software Foundation. If the Program does not specify a version number of 726 | this License, you may choose any version ever published by the Free Software 727 | Foundation. 728 | 729 | \item If you wish to incorporate parts of the Program into other free 730 | programs whose distribution conditions are different, write to the author 731 | to ask for permission. For software which is copyrighted by the Free 732 | Software Foundation, write to the Free Software Foundation; we sometimes 733 | make exceptions for this. Our decision will be guided by the two goals 734 | of preserving the free status of all derivatives of our free software and 735 | of promoting the sharing and reuse of software generally. 736 | \newcounter{Enumi} 737 | \setcounter{Enumi}{\value{enumi}} 738 | \end{enumerate} 739 | 740 | \subsubsection*{\centerline{NO WARRANTY}} 741 | 742 | \begin{enumerate} 743 | \setcounter{enumi}{\value{Enumi}} 744 | \item BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 745 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 746 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 747 | PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 748 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 749 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 750 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 751 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 752 | REPAIR OR CORRECTION. 753 | 754 | \item IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 755 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 756 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 757 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 758 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 759 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 760 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 761 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 762 | POSSIBILITY OF SUCH DAMAGES. 763 | \end{enumerate} 764 | 765 | \subsection*{\centerline{END OF TERMS AND CONDITIONS}} 766 | 767 | \subsection*{\centerline{How to Apply These Terms to Your New Programs}} 768 | 769 | If you develop a new program, and you want it to be of the greatest 770 | possible use to the public, the best way to achieve this is to make it 771 | free software which everyone can redistribute and change under these terms. 772 | 773 | To do so, attach the following notices to the program. It is safest 774 | to attach them to the start of each source file to most effectively 775 | convey the exclusion of warranty; and each file should have at least 776 | the ``copyright'' line and a pointer to where the full notice is found. 777 | % This is a hack to make the quote environment behave nicely. 778 | \renewenvironment{quote}{\list{}{}\item\relax}{\endlist} 779 | \begin{quote}\ttfamily\footnotesize 780 | \emph{one line to give the program's name and a brief 781 | idea of what it\nolinebreak[4] does.}\\ 782 | Copyright (C) \emph{year}\ \ \emph{name of author}\\ 783 | \mbox{}\\ 784 | This program is free software; you can redistribute it and/or modify\\ 785 | it under the terms of the GNU General Public License as published by\\ 786 | the Free Software Foundation; either version 2 of the License, or\\ 787 | (at your option) any later version.\\ 788 | \mbox{}\\ 789 | This program is distributed in the hope that it will be useful,\\ 790 | but WITHOUT ANY WARRANTY; without even the implied warranty of\\ 791 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\ 792 | GNU General Public License for more details.\\ 793 | \mbox{}\\ 794 | You should have received a copy of the GNU General Public License\\ 795 | along with this program; if not, write to the Free Software\\ 796 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, \\ 797 | MA\ \ 02111-1307\ \ USA 798 | \end{quote} 799 | 800 | 801 | Also add information on how to contact you by electronic and paper mail. 802 | 803 | If the program is interactive, make it output a short notice like this 804 | when it starts in an interactive mode: 805 | \begin{quote}\ttfamily\footnotesize 806 | Gnomovision version 69, Copyright (C) \emph{year}\ \ 807 | \emph{name of author}\\ 808 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\\ 809 | This is free software, and you are welcome to redistribute it\\ 810 | under certain conditions; type `show c' for details. 811 | \end{quote} 812 | 813 | The hypothetical commands `show w' and `show c' should show the appropriate 814 | parts of the General Public License. Of course, the commands you use may 815 | be called something other than `show w' and `show c'; they could even be 816 | mouse-clicks or menu items--whatever suits your program. 817 | 818 | You should also get your employer (if you work as a programmer) or your 819 | school, if any, to sign a ``copyright disclaimer'' for the program, if 820 | necessary. Here is a sample; alter the names: 821 | \begin{quote}\ttfamily\footnotesize 822 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program\\ 823 | `Gnomovision' (which makes passes at compilers) written by James Hacker.\\ 824 | \mbox{}\\ 825 | \emph{signature of Ty Coon}, 1 April 1989\\ 826 | Ty Coon, President of Vice 827 | \end{quote} 828 | 829 | This General Public License does not permit incorporating your program into 830 | proprietary programs. If your program is a subroutine library, you may 831 | consider it more useful to permit linking proprietary applications with the 832 | library. If this is what you want to do, use the GNU Library General 833 | Public License instead of this License. 834 | 835 | \end{singlespacing} 836 | 837 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 838 | %% BACK MATTER 839 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 840 | %% \backmatter will make the \section commands ignore their numbering, 841 | \backmatter 842 | 843 | \end{document} 844 | -------------------------------------------------------------------------------- /uw-wkrpt-math.tex: -------------------------------------------------------------------------------- 1 | % uw-wkrpt-math.tex - An example work report that uses uw-wkrpt.cls 2 | % Copyright (C) 2002,2003 Simon Law 3 | % 4 | % This program is free software; you can redistribute it and/or modify 5 | % it under the terms of the GNU General Public License as published by 6 | % the Free Software Foundation; either version 2 of the License, or 7 | % (at your option) any later version. 8 | % 9 | % This program is distributed in the hope that it will be useful, 10 | % but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | % GNU General Public License for more details. 13 | % 14 | % You should have received a copy of the GNU General Public License 15 | % along with this program; if not, write to the Free Software 16 | % Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | % 18 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 19 | % 20 | % We begin by calling the workreport class which includes all the 21 | % definitions for the macros we will use. 22 | \documentclass[math]{uw-wkrpt} 23 | 24 | % We will use some packages to add functionality 25 | \usepackage{graphicx} % Include graphic importing 26 | 27 | % Now we will begin writing the document. 28 | \begin{document} 29 | 30 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 31 | %% IMPORTANT INFORMATION 32 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 33 | 34 | %% First we, should create a title page. This is done below: 35 | % Fill in the title of your report. 36 | \title{A \LaTeX{} document class for work reports} 37 | 38 | % Fill in your name. 39 | \author{J. Random Hacker} 40 | 41 | % Fill in your student ID number. 42 | \uwid{01234567} 43 | 44 | % Fill in your home address. 45 | \address{123 University Ave. W.,\\* 46 | Waterloo, ON\ \ N2L 3G1} 47 | 48 | % Fill in your employer's name. 49 | \employer{Acme Incorporated} 50 | 51 | % Fill in your employer's city and province. 52 | \employeraddress{Burbank, CA} 53 | 54 | % Fill in your school's name. 55 | \school{University of Waterloo} 56 | 57 | % Fill in your faculty name. 58 | \faculty{Faculty of Mathematics} 59 | 60 | % Fill in your e-mail address. 61 | \email{jrhacker@engmail} 62 | 63 | % Fill in your term. 64 | \term{1A} 65 | 66 | % Fill in your program. 67 | \program{Computer Science} 68 | 69 | % Fill in your supervisor's name 70 | \chair{Mr. W. E. Coyote} 71 | 72 | % Fill in your supervisor's mailing address. 73 | \chairaddress{4000 Warner Blvd.,\\* 74 | Building 178\\* 75 | Burbank, CA\ \ 91522} 76 | 77 | % If you are writing a "Confidential 1" report, uncomment the next line. 78 | %\confidential{Confidential-1} 79 | 80 | % If you want to specify the date, fill it in here. If you comment out 81 | % this line, today's date will be substituted. 82 | \date{April 26, 2003} 83 | 84 | % Now, we ask LaTeX to generate the title. 85 | \maketitle 86 | 87 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 88 | %% FRONT MATTER 89 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 90 | %% \frontmatter will make the \section commands ignore their numbering, 91 | %% it will also use roman page numbers. 92 | \frontmatter 93 | 94 | % After this, we must create a letter of submission. 95 | \begin{letter} 96 | I have just completed my first work term, following my \theterm{} term. 97 | Please find enclosed my first work term report entitled: 98 | ``\thetitle'' for the Software Widgets group at \theemployer. 99 | My departmental manager was Rube Goldberg 100 | and our group was primarily involved with writing and testing 101 | of labour-saving software. 102 | 103 | The Software Widgets group designed labour-saving computerised devices, 104 | for internal consumption. Being self-sufficient, we were involved in 105 | the research, design, implementation and testing for all our software 106 | widgets. I was responsible for writing software. I looked at the design 107 | specifications, and wrote test-suites and software to meet them. 108 | The testers would add to my rudimentary test suites, and report 109 | errors to me whenever a test failed. 110 | 111 | This report focuses on using the unofficial work report 112 | documentation class, \texttt{uw-wkrpt.cls}, and provides a 113 | sample document on which to base your own Math report. It is written for 114 | fellow classmates who have some working knowledge of \LaTeX{} and \TeX{}. 115 | 116 | I have had no direct assistance from anyone. I do wish to thank Leslie 117 | Lamport and Donald E. Knuth for inventing such marvellous typesetting 118 | tools. 119 | 120 | % Note that I do not need to type out the boilerplate confirmation, 121 | % nor do I need to write a signature block. This is generated for me. 122 | % We are now finished with the letter. 123 | \end{letter} 124 | 125 | % The Executive Summary is required. 126 | \section{Executive Summary} 127 | This document describes the use of the \texttt{uw-wkrpt.cls} 128 | document class in creating work reports. Written in the 129 | \LaTeX{} macro language, this document class is designed to typeset 130 | documents that conform to the University of Waterloo co-op student 131 | manual~\cite{ref:coopman} requirements. The class has been generalised 132 | from the earlier \texttt{uw-ece-workreport} document class so that it 133 | may be used by students of any faculty. This particular report 134 | serves as an example for the University of Waterloo, Electrical and 135 | Computer Engineering work report guidelines~\cite{ref:eceguidelines}. 136 | Other example reports for other faculties are included with this package. 137 | 138 | I also argue the advantages of using this document class over other 139 | more traditional ways of generating a report. I hope to convince the 140 | reader that using this technology is superior to writing the document 141 | in a WYSIWYG word processor. 142 | 143 | % Next, we need to make a Table of Contents, List of Figures and 144 | % List of Tables. You will most likely need to run LaTeX twice to 145 | % get these correct. The first pass for LaTeX to figure out the 146 | % labels, and the second pass to put in the right references. 147 | \tableofcontents 148 | \listoffigures 149 | \listoftables 150 | 151 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 152 | %% REPORT BODY 153 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 154 | %% \main will make the \section commands numbered again, 155 | %% it will also use arabic page numbers. 156 | \mainmatter 157 | 158 | \section{Introduction}\label{sec:intro} 159 | This pretend report, written by an imaginary student, 160 | exists because I got sick of writing a report, 161 | and having to check my document over and over again for simple 162 | formatting errors. Now, I thought that a work report is useful 163 | due to its content; not because my Table of Contents did not have dot 164 | leading for page numbers. So, I turned to \LaTeX{} as my saviour. 165 | 166 | I, Simon Law, implemented my first work report in \LaTeX{} in early 167 | December 2001. Unfortunately, I was feeling my way around and didn't 168 | implement my scheme very well. After learning how to create a 169 | document class, I have created this document class, which I now offer 170 | to you. 171 | 172 | If you find a problem with this document class, or have suggestions to 173 | offer; please drop me a note. As well, patches and fixes are always 174 | welcome. You can find information on how to contact me in Appendix 175 | \ref{app:colophon}. 176 | 177 | % The body is must be an Analysis section 178 | \section{Analysis} 179 | 180 | \subsection{Advantages} 181 | Using this class has a number of great advantages: 182 | 183 | \begin{itemize} 184 | \item You no longer have to worry about missing information. If you fill 185 | in all the information at the top of this document, your title page 186 | and all the important fields in your Letter of Submittal will be 187 | properly filled. 188 | 189 | \item Your references will be all correct. Your Table of Contents, 190 | List of Figure and List of Tables will be automatically generated. 191 | Citations and references will be done properly, and your bibliography 192 | will be automatically formatted in IEEE style. 193 | 194 | \item You can cross-reference other sections trivially, 195 | (\emph{e.g.} One can find the introduction at \S\ref{sec:intro}, 196 | p.\pageref{sec:intro}). 197 | 198 | \item You no longer have to worry if your document looks good. You can 199 | ask the computer to worry about formatting and styles, without having to 200 | mess around with differing fonts (roman, \textsf{sans-serif}, 201 | \texttt{fixed}) or with differing styles (normal, \textbf{bold}, 202 | \textit{italics}, \underline{underlined}, \textsl{slanted}, 203 | \textsc{small-caps}). You can concentrate on what you write, and are 204 | assured that your text will look great. 205 | 206 | \item Since the computer formats things for you, you can re-arrange 207 | sections trivially. Or you can define new styles to make global changes 208 | across the entire document. 209 | 210 | \item Math output is by far superior in \LaTeX. You can write things 211 | like $\sum_{i=1}^{\infty} \frac{1}{x}$ or: 212 | \[\int_{0}^{\infty} \delta(x)\,dx = u(x) + C\] 213 | \end{itemize} 214 | 215 | \subsection{What are \TeX{} and \LaTeX{}?} 216 | % 217 | \TeX{} was designed and implemented by Donald E. Knuth, the famous author 218 | of \textit{The art of computer programming}~\cite{ref:taocp}. Knuth, 219 | shown in Figure \ref{fig:knuth}, decided to create a typesetting language 220 | that would handle mathematical output beautifully. This was motivated 221 | by the fact that publishers would mangle the formul\ae of his 222 | \textit{magnum opus}. Now, \TeX{} is used by the mathematical, 223 | academic, and documentation communities to typeset beautiful 224 | documents. The \TeX{} language is designed to provide precise control 225 | for text layout. 226 | 227 | % Here is a figure. You MUST cite the figure in the text before it appears. 228 | % 229 | % I include an external picture here. This picture is called don-hires.pdf. 230 | % Notice how I do not specify the extension of the file. pdfLaTeX knows 231 | % about PDFs only, so get your pictures into that format. 232 | \begin{figure} 233 | \centering 234 | \includegraphics[height=3.0in]{don-hires} 235 | \caption[Donald E. Knuth, the creator of \TeX{}.] 236 | {Donald E. Knuth, the creator of \TeX{}.~\cite{ref:donpicture}} 237 | \label{fig:knuth} 238 | \end{figure} 239 | 240 | \LaTeX{} was designed and implemented by Leslie Lamport while he worked 241 | at Digital Equipment Corp. \LaTeX{} was his attempt to create a 242 | documentation system that was easier to use than \TeX{}. In fact, 243 | \LaTeX{} is frequently called a ``document processor'' as opposed to a 244 | ``word processor,'' because it abstracts away the hard details of 245 | formatting and typesetting, allowing the author to use a semantic 246 | language to describe the output. 247 | 248 | 249 | \subsection{Learning \LaTeX} 250 | \newcommand{\us}{\hspace{-0.1ex}} 251 | \newcommand{\teTeX}{\mbox{t\us e\us\us\TeX}} 252 | \newcommand{\MiKTeX}{\mbox{M\us i\us K\us\us\TeX}} 253 | % 254 | Unfortunately, using \LaTeX{} is not quite as intuitive as using a 255 | word processor. However, if you invest the time in learning it, the 256 | payoffs can be great. Unlike a word processor, \LaTeX{} is written 257 | like a markup language, which means you use macros\footnote{The 258 | SGML/HTML/XML world calls these tags.} to tell \TeX{} how to typeset 259 | your document. This means that you can edit your documents in any 260 | old text editor, be it as crude as Microsoft Notepad, or something 261 | more heavy-duty like vi\footnote{Try Vim~\cite{ref:vim} which is 262 | Vi Improved.}~\cite{ref:vi} or Emacs~\cite{ref:emacs}. 263 | 264 | There are some good on-line books if you wish to learn \LaTeX{} without 265 | having to shell out any hard earned money\footnote{You are earning money 266 | during this work term, right?}. The standard reference is \textit{A 267 | not so short introduction to \LaTeXe{}}~\cite{ref:short}. As well, 268 | \textit{A simplified introduction to \LaTeX}~\cite{ref:simplified} is 269 | also an excellent reference. 270 | 271 | The fundamental resource for learning \LaTeX{} has to be \textit{\LaTeX: 272 | a document preparation system}~\cite{ref:latex2e} which is written by 273 | Leslie Lamport, the creator of \LaTeX. Also of note is \textit{The 274 | \LaTeX{} companion} which is the next step up, if you want to become a 275 | power user. 276 | 277 | How does one get a copy of \LaTeX? On Unix systems, the 278 | \teTeX~\cite{ref:tetex} distribution is popular. For Windows users, 279 | \MiKTeX~\cite{ref:miktex} is the distribution of choice. Follow each 280 | packages installation instructions for best results\footnote{On a Debian 281 | GNU/Linux system, invoke \texttt{aptitude~install~tetex-bin~tetex-extra}}. 282 | 283 | You will probably want a PostScript interpreter to create PDFs or to 284 | send PostScript output files to the printer. You can use Adobe Distiller, 285 | which you can purchase from Adobe Systems Inc.; or you could download 286 | a copy of Ghostscript\footnote{Again, on Debian GNU/Linux, run 287 | \texttt{aptitude~install~gs}}~\cite{ref:gs}. 288 | 289 | \subsubsection{How \LaTeX{} works} 290 | 291 | You create text files that include \LaTeX{} commands to generate the 292 | final document. You can consider it similar to writing source code 293 | that is compiled to generate the typeset output. 294 | 295 | Figure \ref{fig:flow} shows the control flow that a typical document 296 | follows in order to generate PDF output. 297 | 298 | \providecommand{\BibTeX}{\textsc{Bib}\us\TeX} 299 | % Here is a another figure. You MUST cite the figure in the text before 300 | % it appears. 301 | % 302 | % I draw a picture here using the picture environment. 303 | \begin{figure} 304 | \centering 305 | \begin{picture}(300,170) 306 | % Draw the text boxes 307 | \put( 50, 150){\makebox(0,0){\fbox{\texttt{document.tex}}}} 308 | \put(250, 150){\makebox(0,0){\fbox{\texttt{document.bib}}}} 309 | \put( 50, 100){\makebox(0,0)[l]{\fbox{\texttt{document.pdf}}}} 310 | \put(180, 100){\makebox(0,0){\fbox{\texttt{document.aux}}}} 311 | \put(250, 50){\makebox(0,0){\fbox{\texttt{document.bbl}}}} 312 | \put(150, 0){\makebox(0,0){\fbox{\texttt{document.pdf}}}} 313 | % Draw the connecting lines 314 | \put( 75, 143){\vector( 0,-1){ 35}} % .tex -> .pdf 315 | \put( 75, 125){\line ( 1, 0){105}} % .tex -> .aux 316 | \put(180, 125){\vector( 0,-1){ 18}} % .tex -> .aux 317 | \put(205, 93){\line ( 0,-1){ 18}} % .aux -- .bbl 318 | \put(205, 75){\line ( 1, 0){ 45}} % .aux -- .bbl 319 | \put(250, 143){\vector( 0,-1){ 86}} % .bib -> .bbl 320 | \put( 25, 143){\line ( 0,-1){118}} % .tex -- .pdf 321 | \put(155, 93){\line ( 0,-1){ 68}} % .aux -- .pdf 322 | \put(250, 43){\line ( 0,-1){ 18}} % .bbl -- .pdf 323 | \put( 25, 25){\line ( 1, 0){225}} % ------------ 324 | \put(150, 25){\vector( 0,-1){ 18}} % .* -> .pdf 325 | % Draw the text 326 | \put( 78, 138){\makebox(0,0)[tl]{\textsc{pdf}\LaTeX{}}} 327 | \put(247, 60){\makebox(0,0)[br]{\BibTeX{}}} 328 | \put(153, 10){\makebox(0,0)[bl]{\textsc{pdf}\LaTeX{}}} 329 | \end{picture} 330 | \caption{Control flow of a \LaTeX{} compilation.} 331 | \label{fig:flow} 332 | \end{figure} 333 | 334 | Since \LaTeX{} is a programming languages, it does have some special 335 | characters. Specifically, the reserved characters are: 336 | \verb'#', 337 | \verb'$', 338 | \verb'%', 339 | \verb'&', 340 | \verb'_', 341 | \verb'{', 342 | \verb'}', 343 | \verb'~', 344 | \verb'^', 345 | \verb'\'. 346 | See Table \ref{tbl:chars} to see them in print. 347 | 348 | % Here is a table. You MUST cite the table in the text before it appears 349 | % in the document. 350 | \begin{table} 351 | \caption{Typesetting special characters.} 352 | \label{tbl:chars} 353 | \centering 354 | \begin{tabular}{|r|l|} 355 | \hline 356 | \multicolumn{1}{|c|}{\textbf{Name}} & 357 | \multicolumn{1}{|c|}{\textbf{Symbol}} \\ 358 | \hline\hline 359 | octothorpe & \# \\ 360 | dollar sign & \$ \\ 361 | percent sign & \% \\ 362 | ampersand & \& \\ 363 | underscore & \_ \\ 364 | left brace & \{ \\ 365 | right brace & \} \\ 366 | tilde & \textasciitilde \\ 367 | circumflex & \textasciicircum \\ 368 | backslash & \textbackslash \\ 369 | \hline 370 | inverted exclaimation & < \\ 371 | inverted question & > \\ 372 | less than & \textless \\ 373 | greater than & \textgreater \\ 374 | \hline 375 | \end{tabular} 376 | \end{table} 377 | 378 | \subsection{Source} 379 | 380 | This document, and the documents it uses are available under the 381 | GNU General Public License (GPL), reproduced in Appendix \ref{app:gnugpl}. 382 | Note that you do not need to accept the GNU GPL to use this document, or 383 | to use the document class. I highly recommend that you read the GPL so 384 | you understand your rights and privledges. 385 | 386 | You can find the most recent version of these documents on my website 387 | in a tarball at: \url{http://www.eng.uwaterloo.ca/~sfllaw/programs/uw-wkrpt/}. 388 | Download the latest version, unpack it, and read the enclosed \texttt{README} 389 | text file. 390 | 391 | \subsection{To do} 392 | There are still some things I want to do, to improve this example 393 | document: 394 | 395 | \begin{enumerate} 396 | \item Demonstrate the use of Gloss\TeX{} to create glossaries. 397 | \item Demonstrate the creation of an index. 398 | \item Look into \texttt{ieeetran.bst}. 399 | \item Fix all the bugs listed in Appendix \ref{app:bugs}. 400 | \end{enumerate} 401 | 402 | Examples that illustrate this usage are most definitely welcome. Please 403 | provide a patch against this document. 404 | 405 | % The Conclusions section is required. 406 | \section{Conclusions} 407 | Using this document class will allow you to reap the advantages of 408 | \LaTeX{}, \TeX{} and many years of labour donated by people much 409 | smarter than you or I. It is obvious that we should use their work 410 | to make ours that much better. For even the great Sir Issac Newton 411 | could only achieve what he did because he ``stood on the shoulders 412 | of giants.'' 413 | 414 | % The Recommendations section is required. 415 | \section{Recommendations} 416 | Learn \LaTeX{} and then use this document class to prepare your 417 | work reports. You will get nice, beautiful documents without a lot 418 | of fuss. 419 | 420 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 421 | %% APPENDICES 422 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 423 | %% \appendix will reset \section numbers and turn them into letters. 424 | %% 425 | %% Don't forget to refer to all your appendices in the main report. 426 | \appendix 427 | 428 | \section{Bugs}\label{app:bugs} 429 | Currently, there are some known problems with this document class. 430 | \begin{itemize} 431 | \item It is not officially supported or acknowledged by the 432 | E\&CE department. 433 | \item Not all users have converted to using a typesetting language, and 434 | insist on using word processors. 435 | \item It does not bring world peace. 436 | \end{itemize} 437 | 438 | Fixes for these bugs are most certainly welcome. Please provide a patch 439 | against the document class document. 440 | 441 | \section{Colophon}\label{app:colophon} 442 | This sample document was written by Simon Law, a third-year Computer 443 | Engineering student at the University of Waterloo, in Waterloo, ON, CA. 444 | When he is not programming, he can be found reading or sleeping; 445 | both of which are his favourite activities.\footnote{OK, so I don't 446 | have a life yet. I'm working on it.} 447 | 448 | The best way to contact him is by e-mail, at \url{sfllaw@uwaterloo.ca}. 449 | 450 | This document was implemented using the \texttt{ece} variant of the 451 | \texttt{uw-wkrpt} document class. The document class, and the 452 | surrounding documentation is implemented using the \LaTeXe{} macro 453 | package which is built on the \TeX{} typesetting system. The documents 454 | were generated by the web2c implementation of \TeX, found in the 455 | \teTeX{} distribution. The typeface used is Computer Modern. 456 | 457 | The entire system was written in the Vim text editor. The operating 458 | system used was Debian GNU/Linux which ran on an IBM ThinkPad A20m. This 459 | stalwart companion allowed him to work on this report periodically, even 460 | during his ``off'' time up at the cottage. 461 | 462 | 463 | \section{GNU General Public License}\label{app:gnugpl} 464 | \renewcommand{\labelenumii}{\theenumii)} 465 | \begin{singlespacing} 466 | \centerline{Version 2, June 1991} 467 | 468 | \begin{quote} 469 | Copyright \copyright{} 1989, 1991 Free Software Foundation, Inc.\newline 470 | \null\hspace{0.5in}59 Temple Place, Suite 330, Boston, 471 | MA\ \ 02111-1307\ \ USA\\ 472 | Everyone is permitted to copy and distribute verbatim copies 473 | of this license document, but changing it is not allowed. 474 | \end{quote} 475 | 476 | \subsection*{\centerline{Preamble}} 477 | 478 | The licenses for most software are designed to take away your 479 | freedom to share and change it. By contrast, the GNU General Public 480 | License is intended to guarantee your freedom to share and change free 481 | software--to make sure the software is free for all its users. This 482 | General Public License applies to most of the Free Software 483 | Foundation's software and to any other program whose authors commit to 484 | using it. (Some other Free Software Foundation software is covered by 485 | the GNU Library General Public License instead.) You can apply it to 486 | your programs, too. 487 | 488 | When we speak of free software, we are referring to freedom, not 489 | price. Our General Public Licenses are designed to make sure that you 490 | have the freedom to distribute copies of free software (and charge for 491 | this service if you wish), that you receive source code or can get it 492 | if you want it, that you can change the software or use pieces of it 493 | in new free programs; and that you know you can do these things. 494 | 495 | To protect your rights, we need to make restrictions that forbid 496 | anyone to deny you these rights or to ask you to surrender the rights. 497 | These restrictions translate to certain responsibilities for you if you 498 | distribute copies of the software, or if you modify it. 499 | 500 | For example, if you distribute copies of such a program, whether 501 | gratis or for a fee, you must give the recipients all the rights that 502 | you have. You must make sure that they, too, receive or can get the 503 | source code. And you must show them these terms so they know their 504 | rights. 505 | 506 | We protect your rights with two steps: (1) copyright the software, and 507 | (2) offer you this license which gives you legal permission to copy, 508 | distribute and/or modify the software. 509 | 510 | Also, for each author's protection and ours, we want to make certain 511 | that everyone understands that there is no warranty for this free 512 | software. If the software is modified by someone else and passed on, we 513 | want its recipients to know that what they have is not the original, so 514 | that any problems introduced by others will not reflect on the original 515 | authors' reputations. 516 | 517 | Finally, any free program is threatened constantly by software 518 | patents. We wish to avoid the danger that redistributors of a free 519 | program will individually obtain patent licenses, in effect making the 520 | program proprietary. To prevent this, we have made it clear that any 521 | patent must be licensed for everyone's free use or not licensed at all. 522 | 523 | The precise terms and conditions for copying, distribution and 524 | modification follow. 525 | 526 | \subsection*{\centerline{TERMS AND CONDITIONS FOR COPYING,}\\ 527 | \centerline{DISTRIBUTION AND MODIFICATION}} 528 | 529 | \begin{enumerate} 530 | \setcounter{enumi}{-1} 531 | 532 | \item This License applies to any program or other work which contains 533 | a notice placed by the copyright holder saying it may be distributed 534 | under the terms of this General Public License. The ``Program'', below, 535 | refers to any such program or work, and a ``work based on the Program'' 536 | means either the Program or any derivative work under copyright law: 537 | that is to say, a work containing the Program or a portion of it, 538 | either verbatim or with modifications and/or translated into another 539 | language. (Hereinafter, translation is included without limitation in 540 | the term ``modification''.) Each licensee is addressed as ``you''. 541 | 542 | Activities other than copying, distribution and modification are not 543 | covered by this License; they are outside its scope. The act of 544 | running the Program is not restricted, and the output from the Program 545 | is covered only if its contents constitute a work based on the 546 | Program (independent of having been made by running the Program). 547 | Whether that is true depends on what the Program does. 548 | 549 | \item You may copy and distribute verbatim copies of the Program's 550 | source code as you receive it, in any medium, provided that you 551 | conspicuously and appropriately publish on each copy an appropriate 552 | copyright notice and disclaimer of warranty; keep intact all the 553 | notices that refer to this License and to the absence of any warranty; 554 | and give any other recipients of the Program a copy of this License 555 | along with the Program. 556 | 557 | You may charge a fee for the physical act of transferring a copy, and 558 | you may at your option offer warranty protection in exchange for a fee. 559 | 560 | \item You may modify your copy or copies of the Program or any portion 561 | of it, thus forming a work based on the Program, and copy and 562 | distribute such modifications or work under the terms of Section 1 563 | above, provided that you also meet all of these conditions: 564 | 565 | \begin{enumerate} 566 | \item You must cause the modified files to carry prominent notices 567 | stating that you changed the files and the date of any change. 568 | 569 | \item You must cause any work that you distribute or publish, that in 570 | whole or in part contains or is derived from the Program or any 571 | part thereof, to be licensed as a whole at no charge to all third 572 | parties under the terms of this License. 573 | 574 | \item If the modified program normally reads commands interactively 575 | when run, you must cause it, when started running for such 576 | interactive use in the most ordinary way, to print or display an 577 | announcement including an appropriate copyright notice and a 578 | notice that there is no warranty (or else, saying that you provide 579 | a warranty) and that users may redistribute the program under 580 | these conditions, and telling the user how to view a copy of this 581 | License. (Exception: if the Program itself is interactive but 582 | does not normally print such an announcement, your work based on 583 | the Program is not required to print an announcement.) 584 | \end{enumerate} 585 | 586 | These requirements apply to the modified work as a whole. If 587 | identifiable sections of that work are not derived from the Program, 588 | and can be reasonably considered independent and separate works in 589 | themselves, then this License, and its terms, do not apply to those 590 | sections when you distribute them as separate works. But when you 591 | distribute the same sections as part of a whole which is a work based 592 | on the Program, the distribution of the whole must be on the terms of 593 | this License, whose permissions for other licensees extend to the 594 | entire whole, and thus to each and every part regardless of who wrote it. 595 | 596 | Thus, it is not the intent of this section to claim rights or contest 597 | your rights to work written entirely by you; rather, the intent is to 598 | exercise the right to control the distribution of derivative or 599 | collective works based on the Program. 600 | 601 | In addition, mere aggregation of another work not based on the Program 602 | with the Program (or with a work based on the Program) on a volume of 603 | a storage or distribution medium does not bring the other work under 604 | the scope of this License. 605 | 606 | \item You may copy and distribute the Program (or a work based on it, 607 | under Section 2) in object code or executable form under the terms of 608 | Sections 1 and 2 above provided that you also do one of the following: 609 | 610 | \begin{enumerate} 611 | \item Accompany it with the complete corresponding machine-readable 612 | source code, which must be distributed under the terms of Sections 613 | 1 and 2 above on a medium customarily used for software interchange; or, 614 | 615 | \item Accompany it with a written offer, valid for at least three 616 | years, to give any third party, for a charge no more than your 617 | cost of physically performing source distribution, a complete 618 | machine-readable copy of the corresponding source code, to be 619 | distributed under the terms of Sections 1 and 2 above on a medium 620 | customarily used for software interchange; or, 621 | 622 | \item Accompany it with the information you received as to the offer 623 | to distribute corresponding source code. (This alternative is 624 | allowed only for noncommercial distribution and only if you 625 | received the program in object code or executable form with such 626 | an offer, in accord with Subsection b above.) 627 | \end{enumerate} 628 | 629 | The source code for a work means the preferred form of the work for 630 | making modifications to it. For an executable work, complete source 631 | code means all the source code for all modules it contains, plus any 632 | associated interface definition files, plus the scripts used to 633 | control compilation and installation of the executable. However, as a 634 | special exception, the source code distributed need not include 635 | anything that is normally distributed (in either source or binary 636 | form) with the major components (compiler, kernel, and so on) of the 637 | operating system on which the executable runs, unless that component 638 | itself accompanies the executable. 639 | 640 | If distribution of executable or object code is made by offering 641 | access to copy from a designated place, then offering equivalent 642 | access to copy the source code from the same place counts as 643 | distribution of the source code, even though third parties are not 644 | compelled to copy the source along with the object code. 645 | 646 | \item You may not copy, modify, sublicense, or distribute the Program 647 | except as expressly provided under this License. Any attempt 648 | otherwise to copy, modify, sublicense or distribute the Program is 649 | void, and will automatically terminate your rights under this License. 650 | However, parties who have received copies, or rights, from you under 651 | this License will not have their licenses terminated so long as such 652 | parties remain in full compliance. 653 | 654 | \item You are not required to accept this License, since you have not 655 | signed it. However, nothing else grants you permission to modify or 656 | distribute the Program or its derivative works. These actions are 657 | prohibited by law if you do not accept this License. Therefore, by 658 | modifying or distributing the Program (or any work based on the 659 | Program), you indicate your acceptance of this License to do so, and 660 | all its terms and conditions for copying, distributing or modifying 661 | the Program or works based on it. 662 | 663 | \item Each time you redistribute the Program (or any work based on the 664 | Program), the recipient automatically receives a license from the 665 | original licensor to copy, distribute or modify the Program subject to 666 | these terms and conditions. You may not impose any further 667 | restrictions on the recipients' exercise of the rights granted herein. 668 | You are not responsible for enforcing compliance by third parties to 669 | this License. 670 | 671 | \item If, as a consequence of a court judgment or allegation of patent 672 | infringement or for any other reason (not limited to patent issues), 673 | conditions are imposed on you (whether by court order, agreement or 674 | otherwise) that contradict the conditions of this License, they do not 675 | excuse you from the conditions of this License. If you cannot 676 | distribute so as to satisfy simultaneously your obligations under this 677 | License and any other pertinent obligations, then as a consequence you 678 | may not distribute the Program at all. For example, if a patent 679 | license would not permit royalty-free redistribution of the Program by 680 | all those who receive copies directly or indirectly through you, then 681 | the only way you could satisfy both it and this License would be to 682 | refrain entirely from distribution of the Program. 683 | 684 | If any portion of this section is held invalid or unenforceable under 685 | any particular circumstance, the balance of the section is intended to 686 | apply and the section as a whole is intended to apply in other 687 | circumstances. 688 | 689 | It is not the purpose of this section to induce you to infringe any 690 | patents or other property right claims or to contest validity of any 691 | such claims; this section has the sole purpose of protecting the 692 | integrity of the free software distribution system, which is 693 | implemented by public license practices. Many people have made 694 | generous contributions to the wide range of software distributed 695 | through that system in reliance on consistent application of that 696 | system; it is up to the author/donor to decide if he or she is willing 697 | to distribute software through any other system and a licensee cannot 698 | impose that choice. 699 | 700 | This section is intended to make thoroughly clear what is believed to 701 | be a consequence of the rest of this License. 702 | 703 | \item If the distribution and/or use of the Program is restricted in 704 | certain countries either by patents or by copyrighted interfaces, the 705 | original copyright holder who places the Program under this License 706 | may add an explicit geographical distribution limitation excluding 707 | those countries, so that distribution is permitted only in or among 708 | countries not thus excluded. In such case, this License incorporates 709 | the limitation as if written in the body of this License. 710 | 711 | \item The Free Software Foundation may publish revised and/or new versions 712 | of the General Public License from time to time. Such new versions will 713 | be similar in spirit to the present version, but may differ in detail to 714 | address new problems or concerns. 715 | 716 | Each version is given a distinguishing version number. If the Program 717 | specifies a version number of this License which applies to it and ``any 718 | later version'', you have the option of following the terms and conditions 719 | either of that version or of any later version published by the Free 720 | Software Foundation. If the Program does not specify a version number of 721 | this License, you may choose any version ever published by the Free Software 722 | Foundation. 723 | 724 | \item If you wish to incorporate parts of the Program into other free 725 | programs whose distribution conditions are different, write to the author 726 | to ask for permission. For software which is copyrighted by the Free 727 | Software Foundation, write to the Free Software Foundation; we sometimes 728 | make exceptions for this. Our decision will be guided by the two goals 729 | of preserving the free status of all derivatives of our free software and 730 | of promoting the sharing and reuse of software generally. 731 | \newcounter{Enumi} 732 | \setcounter{Enumi}{\value{enumi}} 733 | \end{enumerate} 734 | 735 | \subsubsection*{\centerline{NO WARRANTY}} 736 | 737 | \begin{enumerate} 738 | \setcounter{enumi}{\value{Enumi}} 739 | \item BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 740 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 741 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 742 | PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 743 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 744 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 745 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 746 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 747 | REPAIR OR CORRECTION. 748 | 749 | \item IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 750 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 751 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 752 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 753 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 754 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 755 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 756 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 757 | POSSIBILITY OF SUCH DAMAGES. 758 | \end{enumerate} 759 | 760 | \subsection*{\centerline{END OF TERMS AND CONDITIONS}} 761 | 762 | \subsection*{\centerline{How to Apply These Terms to Your New Programs}} 763 | 764 | If you develop a new program, and you want it to be of the greatest 765 | possible use to the public, the best way to achieve this is to make it 766 | free software which everyone can redistribute and change under these terms. 767 | 768 | To do so, attach the following notices to the program. It is safest 769 | to attach them to the start of each source file to most effectively 770 | convey the exclusion of warranty; and each file should have at least 771 | the ``copyright'' line and a pointer to where the full notice is found. 772 | % This is a hack to make the quote environment behave nicely. 773 | \renewenvironment{quote}{\list{}{}\item\relax}{\endlist} 774 | \begin{quote}\ttfamily\footnotesize 775 | \emph{one line to give the program's name and a brief 776 | idea of what it\nolinebreak[4] does.}\\ 777 | Copyright (C) \emph{year}\ \ \emph{name of author}\\ 778 | \mbox{}\\ 779 | This program is free software; you can redistribute it and/or modify\\ 780 | it under the terms of the GNU General Public License as published by\\ 781 | the Free Software Foundation; either version 2 of the License, or\\ 782 | (at your option) any later version.\\ 783 | \mbox{}\\ 784 | This program is distributed in the hope that it will be useful,\\ 785 | but WITHOUT ANY WARRANTY; without even the implied warranty of\\ 786 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\ 787 | GNU General Public License for more details.\\ 788 | \mbox{}\\ 789 | You should have received a copy of the GNU General Public License\\ 790 | along with this program; if not, write to the Free Software\\ 791 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, \\ 792 | MA\ \ 02111-1307\ \ USA 793 | \end{quote} 794 | 795 | 796 | Also add information on how to contact you by electronic and paper mail. 797 | 798 | If the program is interactive, make it output a short notice like this 799 | when it starts in an interactive mode: 800 | \begin{quote}\ttfamily\footnotesize 801 | Gnomovision version 69, Copyright (C) \emph{year}\ \ 802 | \emph{name of author}\\ 803 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\\ 804 | This is free software, and you are welcome to redistribute it\\ 805 | under certain conditions; type `show c' for details. 806 | \end{quote} 807 | 808 | The hypothetical commands `show w' and `show c' should show the appropriate 809 | parts of the General Public License. Of course, the commands you use may 810 | be called something other than `show w' and `show c'; they could even be 811 | mouse-clicks or menu items--whatever suits your program. 812 | 813 | You should also get your employer (if you work as a programmer) or your 814 | school, if any, to sign a ``copyright disclaimer'' for the program, if 815 | necessary. Here is a sample; alter the names: 816 | \begin{quote}\ttfamily\footnotesize 817 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program\\ 818 | `Gnomovision' (which makes passes at compilers) written by James Hacker.\\ 819 | \mbox{}\\ 820 | \emph{signature of Ty Coon}, 1 April 1989\\ 821 | Ty Coon, President of Vice 822 | \end{quote} 823 | 824 | This General Public License does not permit incorporating your program into 825 | proprietary programs. If your program is a subroutine library, you may 826 | consider it more useful to permit linking proprietary applications with the 827 | library. If this is what you want to do, use the GNU Library General 828 | Public License instead of this License. 829 | 830 | \end{singlespacing} 831 | 832 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 833 | %% BACK MATTER 834 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 835 | %% \backmatter will make the \section commands ignore their numbering, 836 | \backmatter 837 | 838 | % Here, we insert a References section, which will be formatted properly. 839 | % The list of works you have referenced should be in FILENAME.bib, 840 | % which will be workreport-sample.bib, if you use the command below. 841 | % 842 | % Note, you will need to process the document in a certain order. First, 843 | % run LaTeX. The % first pass will allow LaTeX to build a list of 844 | % references, it may % emit warning messages such as: 845 | % LaTeX Warning: Reference `app:gnugpl' on page 4 undefined on input line 277. 846 | % LaTeX Warning: There were undefined references. 847 | % This is normal. Now you run BiBTeX in order to generate the proper 848 | % layout for the references. After this, you run LaTeX once more. 849 | \bibliography{uw-wkrpt-bib} 850 | 851 | \end{document} 852 | -------------------------------------------------------------------------------- /uw-wkrpt-ece.tex: -------------------------------------------------------------------------------- 1 | % uw-wkrpt-ece.tex - An example work report that uses uw-wkrpt.cls 2 | % Copyright (C) 2002,2003 Simon Law 3 | % 4 | % This program is free software; you can redistribute it and/or modify 5 | % it under the terms of the GNU General Public License as published by 6 | % the Free Software Foundation; either version 2 of the License, or 7 | % (at your option) any later version. 8 | % 9 | % This program is distributed in the hope that it will be useful, 10 | % but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | % GNU General Public License for more details. 13 | % 14 | % You should have received a copy of the GNU General Public License 15 | % along with this program; if not, write to the Free Software 16 | % Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | % 18 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 19 | % 20 | % We begin by calling the workreport class which includes all the 21 | % definitions for the macros we will use. 22 | \documentclass[ece]{uw-wkrpt} 23 | 24 | % We will use some packages to add functionality 25 | \usepackage{graphicx} % Include graphic importing 26 | 27 | % Now we will begin writing the document. 28 | \begin{document} 29 | 30 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 31 | %% IMPORTANT INFORMATION 32 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 33 | 34 | %% First we, should create a title page. This is done below: 35 | % Fill in the title of your report. 36 | \title{A \LaTeX{} document class for work reports} 37 | 38 | % Fill in your name. 39 | \author{J. Random Hacker} 40 | 41 | % Fill in your student ID number. 42 | \uwid{01234567} 43 | 44 | % Fill in your home address. 45 | \address{123 University Ave. W.,\\* 46 | Waterloo, ON\ \ N2L 3G1} 47 | 48 | % Fill in your employer's name. 49 | \employer{Acme Incorporated} 50 | 51 | % Fill in your employer's city and province. 52 | \employeraddress{Burbank, CA} 53 | 54 | % Fill in your school's name. 55 | \school{University of Waterloo} 56 | 57 | % Fill in your faculty name. 58 | \faculty{Faculty of Engineering} 59 | 60 | % Fill in your e-mail address. 61 | \email{jrhacker@engmail} 62 | 63 | % Fill in your term. 64 | \term{1B} 65 | 66 | % Fill in your program. 67 | \program{Computer Engineering} 68 | 69 | % Fill in the department chair's name. 70 | \chair{Dr.\ A.\ Vannelli} 71 | 72 | % Fill in the department chair's mailing address. 73 | \chairaddress{E\&CE Department,\\* 74 | University of Waterloo,\\* 75 | Waterloo, ON\ \ N2L 3G1} 76 | 77 | % If you are writing a "Confidential 1" report, uncomment the next line. 78 | %\confidential{Confidential-1} 79 | 80 | % If you want to specify the date, fill it in here. If you comment out 81 | % this line, today's date will be substituted. 82 | \date{April 26, 2003} 83 | 84 | % Now, we ask LaTeX to generate the title. 85 | \maketitle 86 | 87 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 88 | %% FRONT MATTER 89 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 90 | %% \frontmatter will make the \section commands ignore their numbering, 91 | %% it will also use roman page numbers. 92 | \frontmatter 93 | 94 | % After this, we must create a letter of submission. 95 | \begin{letter} 96 | I have just completed my first work term, following my \theterm{} term. 97 | Please find enclosed my first work term report entitled: 98 | ``\thetitle'' for the Software Widgets group at \theemployer. 99 | My departmental manager was Rube Goldberg 100 | and our group was primarily involved with writing and testing 101 | of labour-saving software. 102 | 103 | This report focuses on using the unofficial work report 104 | documentation class, \texttt{uw-wkrpt.cls}, and provides a 105 | sample document on which to base your own E\&CE report. It is written for 106 | fellow classmates who have some working knowledge of \LaTeX{} and \TeX{}. 107 | 108 | I have had no direct assistance from anyone. I do wish to thank Leslie 109 | Lamport and Donald E. Knuth for inventing such marvellous typesetting 110 | tools. 111 | 112 | % Note that I do not need to type out the boilerplate confirmation, 113 | % nor do I need to write a signature block. This is generated for me. 114 | % We are now finished with the letter. 115 | \end{letter} 116 | 117 | % We continue with required sections, such as the Contributions and Summary 118 | \begin{onehalfspacing} 119 | \section{Contributions} 120 | 121 | I worked in the Software Widgets group, which consisted of 2 animators, 122 | 6 cartoon characters, 3 software developers and 2 testers. We were to 123 | design labour-saving computerised devices, for internal consumption. 124 | Being self-sufficient, we were involved in the research, design, 125 | implementation and testing for all our software widgets. 126 | 127 | Over the course of four months, we created three of these widgets. 128 | I was responsible for writing software. I looked at the design 129 | specifications, and wrote test-suites and software to meet them. 130 | The testers would add to my rudimentary test suites, and report 131 | errors to me whenever a test failed. 132 | 133 | From the experiences in creating documentation for my programs, I 134 | acquired expertise in \LaTeX{}, which I found to be an excellent 135 | typesetting system. Armed with this knowledge, I was able to use this 136 | wonderful document class which eases the typesetting of work 137 | reports, and follows the E\&CE guidelines~\cite{ref:eceguidelines} and 138 | the Co-op student manual~\cite{ref:coopman}. 139 | 140 | From this sample work report, anyone can create a report that looks 141 | good, and is easy to read. Acme will benefit, because they now have a 142 | document class to provide to future co-op students, thereby reducing the 143 | time they spend on formatting reports. 144 | 145 | \section{Summary} 146 | This document describes the use of the \texttt{uw-wkrpt.cls} 147 | document class in creating work reports. Written in the 148 | \LaTeX{} macro language, this document class is designed to typeset 149 | documents that conform to the University of Waterloo co-op student 150 | manual~\cite{ref:coopman} requirements. The class has been generalised 151 | from the earlier \texttt{uw-ece-workreport} document class so that it 152 | may be used by students of any faculty. This particular report 153 | serves as an example for the University of Waterloo, Electrical and 154 | Computer Engineering work report guidelines~\cite{ref:eceguidelines}. 155 | Other example reports for other faculties are included with this package. 156 | 157 | I also argue the advantages of using this document class over other 158 | more traditional ways of generating a report. I hope to convince the 159 | reader that using this technology is superior to writing the document 160 | in a WYSIWYG word processor. 161 | \end{onehalfspacing} 162 | 163 | % Next, we need to make a Table of Contents, List of Figures and 164 | % List of Tables. You will most likely need to run LaTeX twice to 165 | % get these correct. The first pass for LaTeX to figure out the 166 | % labels, and the second pass to put in the right references. 167 | \tableofcontents 168 | \listoffigures 169 | \listoftables 170 | 171 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 172 | %% REPORT BODY 173 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 174 | %% \main will make the \section commands numbered again, 175 | %% it will also use arabic page numbers. 176 | \mainmatter 177 | 178 | \section{Introduction}\label{sec:intro} 179 | This pretend report, written by an imaginary student, 180 | exists because I got sick of writing a report, 181 | and having to check my document over and over again for simple 182 | formatting errors. Now, I thought that a work report is useful 183 | due to its content; not because my Table of Contents did not have dot 184 | leading for page numbers. So, I turned to \LaTeX{} as my saviour. 185 | 186 | I, Simon Law, implemented my first work report in \LaTeX{} in early 187 | December 2001. Unfortunately, I was feeling my way around and didn't 188 | implement my scheme very well. After learning how to create a 189 | document class, I have created this document class, which I now offer 190 | to you. 191 | 192 | If you find a problem with this document class, or have suggestions to 193 | offer; please drop me a note. As well, patches and fixes are always 194 | welcome. You can find information on how to contact me in Appendix 195 | \ref{app:colophon}. 196 | 197 | \section{Advantages} 198 | Using this class has a number of great advantages: 199 | 200 | \begin{itemize} 201 | \item You no longer have to worry about missing information. If you fill 202 | in all the information at the top of this document, your title page 203 | and all the important fields in your Letter of Submittal will be 204 | properly filled. 205 | 206 | \item Your references will be all correct. Your Table of Contents, 207 | List of Figure and List of Tables will be automatically generated. 208 | Citations and references will be done properly, and your bibliography 209 | will be automatically formatted in IEEE style. 210 | 211 | \item You can cross-reference other sections trivially, 212 | (\emph{e.g.} One can find the introduction at \S\ref{sec:intro}, 213 | p.\pageref{sec:intro}). 214 | 215 | \item You no longer have to worry if your document looks good. You can 216 | ask the computer to worry about formatting and styles, without having to 217 | mess around with differing fonts (roman, \textsf{sans-serif}, 218 | \texttt{fixed}) or with differing styles (normal, \textbf{bold}, 219 | \textit{italics}, \underline{underlined}, \textsl{slanted}, 220 | \textsc{small-caps}). You can concentrate on what you write, and are 221 | assured that your text will look great. 222 | 223 | \item Since the computer formats things for you, you can re-arrange 224 | sections trivially. Or you can define new styles to make global changes 225 | across the entire document. 226 | 227 | \item Math output is by far superior in \LaTeX. You can write things 228 | like $\sum_{i=1}^{\infty} \frac{1}{x}$ or: 229 | \[\int_{0}^{\infty} \delta(x)\,dx = u(x) + C\] 230 | \end{itemize} 231 | 232 | \section{What are \TeX{} and \LaTeX{}?} 233 | % 234 | \TeX{} was designed and implemented by Donald E. Knuth, the famous author 235 | of \textit{The art of computer programming}~\cite{ref:taocp}. Knuth, 236 | shown in Figure \ref{fig:knuth}, decided to create a typesetting language 237 | that would handle mathematical output beautifully. This was motivated 238 | by the fact that publishers would mangle the formul\ae of his 239 | \textit{magnum opus}. Now, \TeX{} is used by the mathematical, 240 | academic, and documentation communities to typeset beautiful 241 | documents. The \TeX{} language is designed to provide precise control 242 | for text layout. 243 | 244 | % Here is a figure. You MUST cite the figure in the text before it appears. 245 | % 246 | % I include an external picture here. This picture is called don-hires.pdf. 247 | % Notice how I do not specify the extension of the file. pdfLaTeX knows 248 | % about PDFs only, so get your pictures into that format. 249 | \begin{figure} 250 | \centering 251 | \includegraphics[height=3.0in]{don-hires} 252 | \caption[Donald E. Knuth, the creator of \TeX{}.] 253 | {Donald E. Knuth, the creator of \TeX{}.~\cite{ref:donpicture}} 254 | \label{fig:knuth} 255 | \end{figure} 256 | 257 | \LaTeX{} was designed and implemented by Leslie Lamport while he worked 258 | at Digital Equipment Corp. \LaTeX{} was his attempt to create a 259 | documentation system that was easier to use than \TeX{}. In fact, 260 | \LaTeX{} is frequently called a ``document processor'' as opposed to a 261 | ``word processor,'' because it abstracts away the hard details of 262 | formatting and typesetting, allowing the author to use a semantic 263 | language to describe the output. 264 | 265 | 266 | \section{Learning \LaTeX} 267 | \newcommand{\us}{\hspace{-0.1ex}} 268 | \newcommand{\teTeX}{\mbox{t\us e\us\us\TeX}} 269 | \newcommand{\MiKTeX}{\mbox{M\us i\us K\us\us\TeX}} 270 | % 271 | Unfortunately, using \LaTeX{} is not quite as intuitive as using a 272 | word processor. However, if you invest the time in learning it, the 273 | payoffs can be great. Unlike a word processor, \LaTeX{} is written 274 | like a markup language, which means you use macros\footnote{The 275 | SGML/HTML/XML world calls these tags.} to tell \TeX{} how to typeset 276 | your document. This means that you can edit your documents in any 277 | old text editor, be it as crude as Microsoft Notepad, or something 278 | more heavy-duty like vi\footnote{Try Vim~\cite{ref:vim} which is 279 | Vi Improved.}~\cite{ref:vi} or Emacs~\cite{ref:emacs}. 280 | 281 | There are some good on-line books if you wish to learn \LaTeX{} without 282 | having to shell out any hard earned money\footnote{You are earning money 283 | during this work term, right?}. The standard reference is \textit{A 284 | not so short introduction to \LaTeXe{}}~\cite{ref:short}. As well, 285 | \textit{A simplified introduction to \LaTeX}~\cite{ref:simplified} is 286 | also an excellent reference. 287 | 288 | The fundamental resource for learning \LaTeX{} has to be \textit{\LaTeX: 289 | a document preparation system}~\cite{ref:latex2e} which is written by 290 | Leslie Lamport, the creator of \LaTeX. Also of note is \textit{The 291 | \LaTeX{} companion} which is the next step up, if you want to become a 292 | power user. 293 | 294 | How does one get a copy of \LaTeX? On Unix systems, the 295 | \teTeX~\cite{ref:tetex} distribution is popular. For Windows users, 296 | \MiKTeX~\cite{ref:miktex} is the distribution of choice. Follow each 297 | packages installation instructions for best results\footnote{On a Debian 298 | GNU/Linux system, invoke \texttt{aptitude~install~tetex-bin~tetex-extra}}. 299 | 300 | You will probably want a PostScript interpreter to create PDFs or to 301 | send PostScript output files to the printer. You can use Adobe Distiller, 302 | which you can purchase from Adobe Systems Inc.; or you could download 303 | a copy of Ghostscript\footnote{Again, on Debian GNU/Linux, run 304 | \texttt{aptitude~install~gs}}~\cite{ref:gs}. 305 | 306 | \subsection{How \LaTeX{} works} 307 | 308 | You create text files that include \LaTeX{} commands to generate the 309 | final document. You can consider it similar to writing source code 310 | that is compiled to generate the typeset output. 311 | 312 | Figure \ref{fig:flow} shows the control flow that a typical document 313 | follows in order to generate PDF output. 314 | 315 | \providecommand{\BibTeX}{\textsc{Bib}\us\TeX} 316 | % Here is a another figure. You MUST cite the figure in the text before 317 | % it appears. 318 | % 319 | % I draw a picture here using the picture environment. 320 | \begin{figure} 321 | \centering 322 | \begin{picture}(300,170) 323 | % Draw the text boxes 324 | \put( 50, 150){\makebox(0,0){\fbox{\texttt{document.tex}}}} 325 | \put(250, 150){\makebox(0,0){\fbox{\texttt{document.bib}}}} 326 | \put( 50, 100){\makebox(0,0)[l]{\fbox{\texttt{document.pdf}}}} 327 | \put(180, 100){\makebox(0,0){\fbox{\texttt{document.aux}}}} 328 | \put(250, 50){\makebox(0,0){\fbox{\texttt{document.bbl}}}} 329 | \put(150, 0){\makebox(0,0){\fbox{\texttt{document.pdf}}}} 330 | % Draw the connecting lines 331 | \put( 75, 143){\vector( 0,-1){ 35}} % .tex -> .pdf 332 | \put( 75, 125){\line ( 1, 0){105}} % .tex -> .aux 333 | \put(180, 125){\vector( 0,-1){ 18}} % .tex -> .aux 334 | \put(205, 93){\line ( 0,-1){ 18}} % .aux -- .bbl 335 | \put(205, 75){\line ( 1, 0){ 45}} % .aux -- .bbl 336 | \put(250, 143){\vector( 0,-1){ 86}} % .bib -> .bbl 337 | \put( 25, 143){\line ( 0,-1){118}} % .tex -- .pdf 338 | \put(155, 93){\line ( 0,-1){ 68}} % .aux -- .pdf 339 | \put(250, 43){\line ( 0,-1){ 18}} % .bbl -- .pdf 340 | \put( 25, 25){\line ( 1, 0){225}} % ------------ 341 | \put(150, 25){\vector( 0,-1){ 18}} % .* -> .pdf 342 | % Draw the text 343 | \put( 78, 138){\makebox(0,0)[tl]{\textsc{pdf}\LaTeX{}}} 344 | \put(247, 60){\makebox(0,0)[br]{\BibTeX{}}} 345 | \put(153, 10){\makebox(0,0)[bl]{\textsc{pdf}\LaTeX{}}} 346 | \end{picture} 347 | \caption{Control flow of a \LaTeX{} compilation.} 348 | \label{fig:flow} 349 | \end{figure} 350 | 351 | Since \LaTeX{} is a programming languages, it does have some special 352 | characters. Specifically, the reserved characters are: 353 | \verb'#', 354 | \verb'$', 355 | \verb'%', 356 | \verb'&', 357 | \verb'_', 358 | \verb'{', 359 | \verb'}', 360 | \verb'~', 361 | \verb'^', 362 | \verb'\'. 363 | See Table \ref{tbl:chars} to see them in print. 364 | 365 | % Here is a table. You MUST cite the table in the text before it appears 366 | % in the document. 367 | \begin{table} 368 | \caption{Typesetting special characters.} 369 | \label{tbl:chars} 370 | \centering 371 | \begin{tabular}{|r|l|} 372 | \hline 373 | \multicolumn{1}{|c|}{\textbf{Name}} & 374 | \multicolumn{1}{|c|}{\textbf{Symbol}} \\ 375 | \hline\hline 376 | octothorpe & \# \\ 377 | dollar sign & \$ \\ 378 | percent sign & \% \\ 379 | ampersand & \& \\ 380 | underscore & \_ \\ 381 | left brace & \{ \\ 382 | right brace & \} \\ 383 | tilde & \textasciitilde \\ 384 | circumflex & \textasciicircum \\ 385 | backslash & \textbackslash \\ 386 | \hline 387 | inverted exclaimation & < \\ 388 | inverted question & > \\ 389 | less than & \textless \\ 390 | greater than & \textgreater \\ 391 | \hline 392 | \end{tabular} 393 | \end{table} 394 | 395 | \section{Source} 396 | 397 | This document, and the documents it uses are available under the 398 | GNU General Public License (GPL), reproduced in Appendix \ref{app:gnugpl}. 399 | Note that you do not need to accept the GNU GPL to use this document, or 400 | to use the document class. I highly recommend that you read the GPL so 401 | you understand your rights and privledges. 402 | 403 | You can find the most recent version of these documents on my website 404 | in a tarball at: \url{http://www.eng.uwaterloo.ca/~sfllaw/programs/uw-wkrpt/}. 405 | Download the latest version, unpack it, and read the enclosed \texttt{README} 406 | text file. 407 | 408 | \section{To do} 409 | There are still some things I want to do, to improve this example 410 | document: 411 | 412 | \begin{enumerate} 413 | \item Demonstrate the use of Gloss\TeX{} to create glossaries. 414 | \item Demonstrate the creation of an index. 415 | \item Look into \texttt{ieeetran.bst}. 416 | \item Fix all the bugs listed in Appendix \ref{app:bugs}. 417 | \end{enumerate} 418 | 419 | Examples that illustrate this usage are most definitely welcome. Please 420 | provide a patch against this document. 421 | 422 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 423 | %% BACK MATTER 424 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 425 | %% \backmatter will make the \section commands ignore their numbering, 426 | \backmatter 427 | 428 | % Here, we insert a References section, which will be formatted properly. 429 | % The list of works you have referenced should be in FILENAME.bib, 430 | % which will be workreport-sample.bib, if you use the command below. 431 | % 432 | % Note, you will need to process the document in a certain order. First, 433 | % run LaTeX. The % first pass will allow LaTeX to build a list of 434 | % references, it may % emit warning messages such as: 435 | % LaTeX Warning: Reference `app:gnugpl' on page 4 undefined on input line 277. 436 | % LaTeX Warning: There were undefined references. 437 | % This is normal. Now you run BiBTeX in order to generate the proper 438 | % layout for the references. After this, you run LaTeX once more. 439 | \bibliography{uw-wkrpt-bib} 440 | 441 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 442 | %% APPENDICES 443 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 444 | %% \appendix will reset \section numbers and turn them into letters. 445 | %% 446 | %% Don't forget to refer to all your appendices in the main report. 447 | \appendix 448 | 449 | \section{Bugs}\label{app:bugs} 450 | Currently, there are some known problems with this document class. 451 | \begin{itemize} 452 | \item It is not officially supported or acknowledged by the 453 | E\&CE department. 454 | \item Not all users have converted to using a typesetting language, and 455 | insist on using word processors. 456 | \item It does not bring world peace. 457 | \end{itemize} 458 | 459 | Fixes for these bugs are most certainly welcome. Please provide a patch 460 | against the document class document. 461 | 462 | \section{Colophon}\label{app:colophon} 463 | This sample document was written by Simon Law, a third-year Computer 464 | Engineering student at the University of Waterloo, in Waterloo, ON, CA. 465 | When he is not programming, he can be found reading or sleeping; 466 | both of which are his favourite activities.\footnote{OK, so I don't 467 | have a life yet. I'm working on it.} 468 | 469 | The best way to contact him is by e-mail, at \url{sfllaw@uwaterloo.ca}. 470 | 471 | This document was implemented using the \texttt{ece} variant of the 472 | \texttt{uw-wkrpt} document class. The document class, and the 473 | surrounding documentation is implemented using the \LaTeXe{} macro 474 | package which is built on the \TeX{} typesetting system. The documents 475 | were generated by the web2c implementation of \TeX, found in the 476 | \teTeX{} distribution. The typeface used is Computer Modern. 477 | 478 | The entire system was written in the Vim text editor. The operating 479 | system used was Debian GNU/Linux which ran on an IBM ThinkPad A20m. This 480 | stalwart companion allowed him to work on this report periodically, even 481 | during his ``off'' time up at the cottage. 482 | 483 | 484 | \section{GNU General Public License}\label{app:gnugpl} 485 | \renewcommand{\labelenumii}{\theenumii)} 486 | \begin{singlespacing} 487 | \centerline{Version 2, June 1991} 488 | 489 | \begin{quote} 490 | Copyright \copyright{} 1989, 1991 Free Software Foundation, Inc.\newline 491 | \null\hspace{0.5in}59 Temple Place, Suite 330, Boston, 492 | MA\ \ 02111-1307\ \ USA\\ 493 | Everyone is permitted to copy and distribute verbatim copies 494 | of this license document, but changing it is not allowed. 495 | \end{quote} 496 | 497 | \subsection*{\centerline{Preamble}} 498 | 499 | The licenses for most software are designed to take away your 500 | freedom to share and change it. By contrast, the GNU General Public 501 | License is intended to guarantee your freedom to share and change free 502 | software--to make sure the software is free for all its users. This 503 | General Public License applies to most of the Free Software 504 | Foundation's software and to any other program whose authors commit to 505 | using it. (Some other Free Software Foundation software is covered by 506 | the GNU Library General Public License instead.) You can apply it to 507 | your programs, too. 508 | 509 | When we speak of free software, we are referring to freedom, not 510 | price. Our General Public Licenses are designed to make sure that you 511 | have the freedom to distribute copies of free software (and charge for 512 | this service if you wish), that you receive source code or can get it 513 | if you want it, that you can change the software or use pieces of it 514 | in new free programs; and that you know you can do these things. 515 | 516 | To protect your rights, we need to make restrictions that forbid 517 | anyone to deny you these rights or to ask you to surrender the rights. 518 | These restrictions translate to certain responsibilities for you if you 519 | distribute copies of the software, or if you modify it. 520 | 521 | For example, if you distribute copies of such a program, whether 522 | gratis or for a fee, you must give the recipients all the rights that 523 | you have. You must make sure that they, too, receive or can get the 524 | source code. And you must show them these terms so they know their 525 | rights. 526 | 527 | We protect your rights with two steps: (1) copyright the software, and 528 | (2) offer you this license which gives you legal permission to copy, 529 | distribute and/or modify the software. 530 | 531 | Also, for each author's protection and ours, we want to make certain 532 | that everyone understands that there is no warranty for this free 533 | software. If the software is modified by someone else and passed on, we 534 | want its recipients to know that what they have is not the original, so 535 | that any problems introduced by others will not reflect on the original 536 | authors' reputations. 537 | 538 | Finally, any free program is threatened constantly by software 539 | patents. We wish to avoid the danger that redistributors of a free 540 | program will individually obtain patent licenses, in effect making the 541 | program proprietary. To prevent this, we have made it clear that any 542 | patent must be licensed for everyone's free use or not licensed at all. 543 | 544 | The precise terms and conditions for copying, distribution and 545 | modification follow. 546 | 547 | \subsection*{\centerline{TERMS AND CONDITIONS FOR COPYING,}\\ 548 | \centerline{DISTRIBUTION AND MODIFICATION}} 549 | 550 | \begin{enumerate} 551 | \setcounter{enumi}{-1} 552 | 553 | \item This License applies to any program or other work which contains 554 | a notice placed by the copyright holder saying it may be distributed 555 | under the terms of this General Public License. The ``Program'', below, 556 | refers to any such program or work, and a ``work based on the Program'' 557 | means either the Program or any derivative work under copyright law: 558 | that is to say, a work containing the Program or a portion of it, 559 | either verbatim or with modifications and/or translated into another 560 | language. (Hereinafter, translation is included without limitation in 561 | the term ``modification''.) Each licensee is addressed as ``you''. 562 | 563 | Activities other than copying, distribution and modification are not 564 | covered by this License; they are outside its scope. The act of 565 | running the Program is not restricted, and the output from the Program 566 | is covered only if its contents constitute a work based on the 567 | Program (independent of having been made by running the Program). 568 | Whether that is true depends on what the Program does. 569 | 570 | \item You may copy and distribute verbatim copies of the Program's 571 | source code as you receive it, in any medium, provided that you 572 | conspicuously and appropriately publish on each copy an appropriate 573 | copyright notice and disclaimer of warranty; keep intact all the 574 | notices that refer to this License and to the absence of any warranty; 575 | and give any other recipients of the Program a copy of this License 576 | along with the Program. 577 | 578 | You may charge a fee for the physical act of transferring a copy, and 579 | you may at your option offer warranty protection in exchange for a fee. 580 | 581 | \item You may modify your copy or copies of the Program or any portion 582 | of it, thus forming a work based on the Program, and copy and 583 | distribute such modifications or work under the terms of Section 1 584 | above, provided that you also meet all of these conditions: 585 | 586 | \begin{enumerate} 587 | \item You must cause the modified files to carry prominent notices 588 | stating that you changed the files and the date of any change. 589 | 590 | \item You must cause any work that you distribute or publish, that in 591 | whole or in part contains or is derived from the Program or any 592 | part thereof, to be licensed as a whole at no charge to all third 593 | parties under the terms of this License. 594 | 595 | \item If the modified program normally reads commands interactively 596 | when run, you must cause it, when started running for such 597 | interactive use in the most ordinary way, to print or display an 598 | announcement including an appropriate copyright notice and a 599 | notice that there is no warranty (or else, saying that you provide 600 | a warranty) and that users may redistribute the program under 601 | these conditions, and telling the user how to view a copy of this 602 | License. (Exception: if the Program itself is interactive but 603 | does not normally print such an announcement, your work based on 604 | the Program is not required to print an announcement.) 605 | \end{enumerate} 606 | 607 | These requirements apply to the modified work as a whole. If 608 | identifiable sections of that work are not derived from the Program, 609 | and can be reasonably considered independent and separate works in 610 | themselves, then this License, and its terms, do not apply to those 611 | sections when you distribute them as separate works. But when you 612 | distribute the same sections as part of a whole which is a work based 613 | on the Program, the distribution of the whole must be on the terms of 614 | this License, whose permissions for other licensees extend to the 615 | entire whole, and thus to each and every part regardless of who wrote it. 616 | 617 | Thus, it is not the intent of this section to claim rights or contest 618 | your rights to work written entirely by you; rather, the intent is to 619 | exercise the right to control the distribution of derivative or 620 | collective works based on the Program. 621 | 622 | In addition, mere aggregation of another work not based on the Program 623 | with the Program (or with a work based on the Program) on a volume of 624 | a storage or distribution medium does not bring the other work under 625 | the scope of this License. 626 | 627 | \item You may copy and distribute the Program (or a work based on it, 628 | under Section 2) in object code or executable form under the terms of 629 | Sections 1 and 2 above provided that you also do one of the following: 630 | 631 | \begin{enumerate} 632 | \item Accompany it with the complete corresponding machine-readable 633 | source code, which must be distributed under the terms of Sections 634 | 1 and 2 above on a medium customarily used for software interchange; or, 635 | 636 | \item Accompany it with a written offer, valid for at least three 637 | years, to give any third party, for a charge no more than your 638 | cost of physically performing source distribution, a complete 639 | machine-readable copy of the corresponding source code, to be 640 | distributed under the terms of Sections 1 and 2 above on a medium 641 | customarily used for software interchange; or, 642 | 643 | \item Accompany it with the information you received as to the offer 644 | to distribute corresponding source code. (This alternative is 645 | allowed only for noncommercial distribution and only if you 646 | received the program in object code or executable form with such 647 | an offer, in accord with Subsection b above.) 648 | \end{enumerate} 649 | 650 | The source code for a work means the preferred form of the work for 651 | making modifications to it. For an executable work, complete source 652 | code means all the source code for all modules it contains, plus any 653 | associated interface definition files, plus the scripts used to 654 | control compilation and installation of the executable. However, as a 655 | special exception, the source code distributed need not include 656 | anything that is normally distributed (in either source or binary 657 | form) with the major components (compiler, kernel, and so on) of the 658 | operating system on which the executable runs, unless that component 659 | itself accompanies the executable. 660 | 661 | If distribution of executable or object code is made by offering 662 | access to copy from a designated place, then offering equivalent 663 | access to copy the source code from the same place counts as 664 | distribution of the source code, even though third parties are not 665 | compelled to copy the source along with the object code. 666 | 667 | \item You may not copy, modify, sublicense, or distribute the Program 668 | except as expressly provided under this License. Any attempt 669 | otherwise to copy, modify, sublicense or distribute the Program is 670 | void, and will automatically terminate your rights under this License. 671 | However, parties who have received copies, or rights, from you under 672 | this License will not have their licenses terminated so long as such 673 | parties remain in full compliance. 674 | 675 | \item You are not required to accept this License, since you have not 676 | signed it. However, nothing else grants you permission to modify or 677 | distribute the Program or its derivative works. These actions are 678 | prohibited by law if you do not accept this License. Therefore, by 679 | modifying or distributing the Program (or any work based on the 680 | Program), you indicate your acceptance of this License to do so, and 681 | all its terms and conditions for copying, distributing or modifying 682 | the Program or works based on it. 683 | 684 | \item Each time you redistribute the Program (or any work based on the 685 | Program), the recipient automatically receives a license from the 686 | original licensor to copy, distribute or modify the Program subject to 687 | these terms and conditions. You may not impose any further 688 | restrictions on the recipients' exercise of the rights granted herein. 689 | You are not responsible for enforcing compliance by third parties to 690 | this License. 691 | 692 | \item If, as a consequence of a court judgment or allegation of patent 693 | infringement or for any other reason (not limited to patent issues), 694 | conditions are imposed on you (whether by court order, agreement or 695 | otherwise) that contradict the conditions of this License, they do not 696 | excuse you from the conditions of this License. If you cannot 697 | distribute so as to satisfy simultaneously your obligations under this 698 | License and any other pertinent obligations, then as a consequence you 699 | may not distribute the Program at all. For example, if a patent 700 | license would not permit royalty-free redistribution of the Program by 701 | all those who receive copies directly or indirectly through you, then 702 | the only way you could satisfy both it and this License would be to 703 | refrain entirely from distribution of the Program. 704 | 705 | If any portion of this section is held invalid or unenforceable under 706 | any particular circumstance, the balance of the section is intended to 707 | apply and the section as a whole is intended to apply in other 708 | circumstances. 709 | 710 | It is not the purpose of this section to induce you to infringe any 711 | patents or other property right claims or to contest validity of any 712 | such claims; this section has the sole purpose of protecting the 713 | integrity of the free software distribution system, which is 714 | implemented by public license practices. Many people have made 715 | generous contributions to the wide range of software distributed 716 | through that system in reliance on consistent application of that 717 | system; it is up to the author/donor to decide if he or she is willing 718 | to distribute software through any other system and a licensee cannot 719 | impose that choice. 720 | 721 | This section is intended to make thoroughly clear what is believed to 722 | be a consequence of the rest of this License. 723 | 724 | \item If the distribution and/or use of the Program is restricted in 725 | certain countries either by patents or by copyrighted interfaces, the 726 | original copyright holder who places the Program under this License 727 | may add an explicit geographical distribution limitation excluding 728 | those countries, so that distribution is permitted only in or among 729 | countries not thus excluded. In such case, this License incorporates 730 | the limitation as if written in the body of this License. 731 | 732 | \item The Free Software Foundation may publish revised and/or new versions 733 | of the General Public License from time to time. Such new versions will 734 | be similar in spirit to the present version, but may differ in detail to 735 | address new problems or concerns. 736 | 737 | Each version is given a distinguishing version number. If the Program 738 | specifies a version number of this License which applies to it and ``any 739 | later version'', you have the option of following the terms and conditions 740 | either of that version or of any later version published by the Free 741 | Software Foundation. If the Program does not specify a version number of 742 | this License, you may choose any version ever published by the Free Software 743 | Foundation. 744 | 745 | \item If you wish to incorporate parts of the Program into other free 746 | programs whose distribution conditions are different, write to the author 747 | to ask for permission. For software which is copyrighted by the Free 748 | Software Foundation, write to the Free Software Foundation; we sometimes 749 | make exceptions for this. Our decision will be guided by the two goals 750 | of preserving the free status of all derivatives of our free software and 751 | of promoting the sharing and reuse of software generally. 752 | \newcounter{Enumi} 753 | \setcounter{Enumi}{\value{enumi}} 754 | \end{enumerate} 755 | 756 | \subsubsection*{\centerline{NO WARRANTY}} 757 | 758 | \begin{enumerate} 759 | \setcounter{enumi}{\value{Enumi}} 760 | \item BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 761 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 762 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 763 | PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 764 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 765 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 766 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 767 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 768 | REPAIR OR CORRECTION. 769 | 770 | \item IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 771 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 772 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 773 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 774 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 775 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 776 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 777 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 778 | POSSIBILITY OF SUCH DAMAGES. 779 | \end{enumerate} 780 | 781 | \subsection*{\centerline{END OF TERMS AND CONDITIONS}} 782 | 783 | \subsection*{\centerline{How to Apply These Terms to Your New Programs}} 784 | 785 | If you develop a new program, and you want it to be of the greatest 786 | possible use to the public, the best way to achieve this is to make it 787 | free software which everyone can redistribute and change under these terms. 788 | 789 | To do so, attach the following notices to the program. It is safest 790 | to attach them to the start of each source file to most effectively 791 | convey the exclusion of warranty; and each file should have at least 792 | the ``copyright'' line and a pointer to where the full notice is found. 793 | % This is a hack to make the quote environment behave nicely. 794 | \renewenvironment{quote}{\list{}{}\item\relax}{\endlist} 795 | \begin{quote}\ttfamily\footnotesize 796 | \emph{one line to give the program's name and a brief 797 | idea of what it\nolinebreak[4] does.}\\ 798 | Copyright (C) \emph{year}\ \ \emph{name of author}\\ 799 | \mbox{}\\ 800 | This program is free software; you can redistribute it and/or modify\\ 801 | it under the terms of the GNU General Public License as published by\\ 802 | the Free Software Foundation; either version 2 of the License, or\\ 803 | (at your option) any later version.\\ 804 | \mbox{}\\ 805 | This program is distributed in the hope that it will be useful,\\ 806 | but WITHOUT ANY WARRANTY; without even the implied warranty of\\ 807 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\ 808 | GNU General Public License for more details.\\ 809 | \mbox{}\\ 810 | You should have received a copy of the GNU General Public License\\ 811 | along with this program; if not, write to the Free Software\\ 812 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, \\ 813 | MA\ \ 02111-1307\ \ USA 814 | \end{quote} 815 | 816 | 817 | Also add information on how to contact you by electronic and paper mail. 818 | 819 | If the program is interactive, make it output a short notice like this 820 | when it starts in an interactive mode: 821 | \begin{quote}\ttfamily\footnotesize 822 | Gnomovision version 69, Copyright (C) \emph{year}\ \ 823 | \emph{name of author}\\ 824 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\\ 825 | This is free software, and you are welcome to redistribute it\\ 826 | under certain conditions; type `show c' for details. 827 | \end{quote} 828 | 829 | The hypothetical commands `show w' and `show c' should show the appropriate 830 | parts of the General Public License. Of course, the commands you use may 831 | be called something other than `show w' and `show c'; they could even be 832 | mouse-clicks or menu items--whatever suits your program. 833 | 834 | You should also get your employer (if you work as a programmer) or your 835 | school, if any, to sign a ``copyright disclaimer'' for the program, if 836 | necessary. Here is a sample; alter the names: 837 | \begin{quote}\ttfamily\footnotesize 838 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program\\ 839 | `Gnomovision' (which makes passes at compilers) written by James Hacker.\\ 840 | \mbox{}\\ 841 | \emph{signature of Ty Coon}, 1 April 1989\\ 842 | Ty Coon, President of Vice 843 | \end{quote} 844 | 845 | This General Public License does not permit incorporating your program into 846 | proprietary programs. If your program is a subroutine library, you may 847 | consider it more useful to permit linking proprietary applications with the 848 | library. If this is what you want to do, use the GNU Library General 849 | Public License instead of this License. 850 | 851 | \end{singlespacing} 852 | 853 | \end{document} 854 | -------------------------------------------------------------------------------- /uw-wkrpt-se.tex: -------------------------------------------------------------------------------- 1 | % uw-wkrpt-se.tex - An example work report that uses uw-wkrpt.cls 2 | % Copyright (C) 2002,2003 Simon Law 3 | % 4 | % This program is free software; you can redistribute it and/or modify 5 | % it under the terms of the GNU General Public License as published by 6 | % the Free Software Foundation; either version 2 of the License, or 7 | % (at your option) any later version. 8 | % 9 | % This program is distributed in the hope that it will be useful, 10 | % but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | % GNU General Public License for more details. 13 | % 14 | % You should have received a copy of the GNU General Public License 15 | % along with this program; if not, write to the Free Software 16 | % Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | % 18 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 19 | % 20 | % We begin by calling the workreport class which includes all the 21 | % definitions for the macros we will use. 22 | \documentclass[se]{uw-wkrpt} 23 | 24 | % LaTeX preamble: load some packages to add functionality 25 | \usepackage{graphicx} % Include graphic importing 26 | 27 | \usepackage[T1]{fontenc} % Better fonts 28 | \usepackage{ae,aecompl} 29 | 30 | \usepackage{indentfirst} % Indent first paragraph of each section 31 | 32 | \usepackage[titletoc,title]{appendix} % Prefix appendix letters with `Appendix' 33 | 34 | % For mathematical symbols in our pseudocode 35 | \usepackage{amsmath} 36 | 37 | % Use the algorithmicx package for pseudocode 38 | \usepackage{algorithm} 39 | \usepackage{algpseudocode} 40 | 41 | % Use biblatex for references 42 | \usepackage[style=ieee,sorting=none,dateabbrev=false,backend=biber]{biblatex} 43 | \addbibresource{uw-wkrpt-bib.bib} % Specify the bibliography file 44 | 45 | % This needs to be the last package loaded 46 | \usepackage[pdftex]{hyperref} % Generate PDF links and bookmarks. 47 | \hypersetup{ 48 | bookmarks=true, 49 | bookmarksnumbered=true 50 | } 51 | 52 | % Now we will begin writing the document. 53 | \begin{document} 54 | 55 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 56 | %% IMPORTANT INFORMATION 57 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 58 | 59 | %% First we, should create a title page. This is done below: 60 | % Fill in the title of your report. 61 | \title{A \LaTeX{} Document Class for Work Reports} 62 | 63 | % Fill in your name. 64 | \author{J. Random Hacker} 65 | 66 | % Fill in your student ID number. 67 | \uwid{01234567} 68 | 69 | % Fill in the name of the PNG file with your signature, or leave unchanged. 70 | \signature{signature} 71 | 72 | % Fill in your home address. 73 | \address{123 University Ave. W.\\* 74 | Waterloo, ON\ \ N2L 3G1} 75 | 76 | % Fill in your employer's name. 77 | \employer{Acme Incorporated} 78 | 79 | % Fill in your employer's city and province. 80 | \employeraddress{Burbank, CA} 81 | 82 | % Fill in your school's name. 83 | \school{University of Waterloo} 84 | 85 | % Fill in your faculty name. 86 | \faculty{Software Engineering} 87 | 88 | % Fill in your student user ID 89 | \userid{jrhacker} 90 | 91 | % Fill in your e-mail address. 92 | \email{jrhacker@engmail} 93 | 94 | % Fill in your term. 95 | \term{2A} 96 | 97 | % Fill in your program. 98 | \program{Software Engineering} 99 | 100 | % Fill in the department chair's name. 101 | \chair{Dr.\ A.\ Morton} 102 | 103 | % Fill in the department chair's mailing address. 104 | \chairaddress{Software Engineering\\* 105 | University of Waterloo\\* 106 | Waterloo, ON\ \ N2L 3G1} 107 | 108 | % If you are writing an "SE-confidential" report, uncomment the next line. 109 | %\confidential{SE-confidential} 110 | 111 | % If you want to specify the date, fill it in here. If you comment out 112 | % this line, today's date will be substituted. 113 | \date{April 24, 2012} 114 | 115 | % Now, we ask LaTeX to generate the title. 116 | \maketitle 117 | 118 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 119 | %% FRONT MATTER 120 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 121 | %% \frontmatter will make the \section commands ignore their numbering, 122 | %% it will also use roman page numbers. 123 | \frontmatter 124 | 125 | % After this, we must create a letter of submission. 126 | \begin{letter} 127 | I have just completed my second work term, following my \theterm{} term. 128 | Please find enclosed my first work term report entitled: 129 | ``\thetitle'' for the Software Widgets group at \theemployer. 130 | My departmental manager was Rube Goldberg 131 | and our group was primarily involved with writing and testing 132 | of labour-saving software. 133 | 134 | This report focuses on using the unofficial work report 135 | documentation class, \texttt{uw-wkrpt.cls}, and provides a 136 | sample document on which to base your own SE report. It is written for 137 | fellow classmates who have some working knowledge of \LaTeX{} and \TeX{}. 138 | 139 | I have had no direct assistance from anyone. I do wish to thank Leslie 140 | Lamport and Donald E. Knuth for inventing such marvellous typesetting 141 | tools. 142 | 143 | % Note that I do not need to type out the boilerplate confirmation, 144 | % nor do I need to write a signature block. This is generated for me. 145 | % We are now finished with the letter. 146 | \end{letter} 147 | 148 | % We continue with required sections, such as the Executive Summary. 149 | \section{Executive Summary} 150 | This document describes the use of the \texttt{uw-wkrpt.cls} 151 | document class in creating work reports. Written in the 152 | \LaTeX{} macro language, this document class is designed to typeset 153 | documents that conform to the University of Waterloo co-op student 154 | manual~\cite{ref:coopman} requirements. The class has been generalised 155 | from the earlier \texttt{uw-ece-workreport} document class so that it 156 | may be used by students of any faculty. This particular report 157 | serves as an example for the University of Waterloo, Electrical and 158 | Computer Engineering work report guidelines~\cite{ref:eceguidelines}. 159 | Other example reports for other faculties are included with this package. 160 | 161 | I also argue the advantages of using this document class over other 162 | more traditional ways of generating a report. I hope to convince the 163 | reader that using this technology is superior to writing the document 164 | in a WYSIWYG word processor. 165 | 166 | % Next, we need to make a Table of Contents, List of Figures and 167 | % List of Tables. You will most likely need to run LaTeX twice to 168 | % get these correct. The first pass for LaTeX to figure out the 169 | % labels, and the second pass to put in the right references. 170 | \tableofcontents 171 | \listoffigures 172 | \listoftables 173 | 174 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 175 | %% REPORT BODY 176 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 177 | %% \main will make the \section commands numbered again, 178 | %% it will also use arabic page numbers. 179 | \mainmatter 180 | 181 | % You must have an Introduction 182 | \section{Introduction}\label{sec:intro} 183 | This pretend report, written by an imaginary student, 184 | exists because I got sick of writing a report, 185 | and having to check my document over and over again for simple 186 | formatting errors. Now, I thought that a work report is useful 187 | due to its content; not because my Table of Contents did not have dot 188 | leading for page numbers. So, I turned to \LaTeX{} as my saviour. 189 | 190 | I, Simon Law, implemented my first work report in \LaTeX{} in early 191 | December 2001. Unfortunately, I was feeling my way around and didn't 192 | implement my scheme very well. After learning how to create a 193 | document class, I have created this document class, which I now offer 194 | to you. 195 | 196 | If you find a problem with this document class, or have suggestions to 197 | offer; please drop me a note. As well, patches and fixes are always 198 | welcome. You can find information on how to contact me in Appendix 199 | \ref{app:colophon}. 200 | 201 | % You must have either an Analysis or a Synthesis section. 202 | \section{Synthesis} 203 | 204 | \subsection{Advantages} 205 | Using this class has a number of great advantages: 206 | 207 | \begin{itemize} 208 | \item You no longer have to worry about missing information. If you fill 209 | in all the information at the top of this document, your title page 210 | and all the important fields in your Letter of Submittal will be 211 | properly filled. 212 | 213 | \item Your references will be all correct. Your Table of Contents, 214 | List of Figure and List of Tables will be automatically generated. 215 | Citations and references will be done properly, and your bibliography 216 | will be automatically formatted in IEEE style. 217 | 218 | \item You can cross-reference other sections trivially, 219 | (\emph{e.g.} One can find the introduction at \S\ref{sec:intro}, 220 | p.\pageref{sec:intro}). 221 | 222 | \item You no longer have to worry if your document looks good. You can 223 | ask the computer to worry about formatting and styles, without having to 224 | mess around with differing fonts (roman, \textsf{sans-serif}, 225 | \texttt{fixed}) or with differing styles (normal, \textbf{bold}, 226 | \textit{italics}, \underline{underlined}, \textsl{slanted}, 227 | \textsc{small-caps}). You can concentrate on what you write, and are 228 | assured that your text will look great. 229 | 230 | \item Since the computer formats things for you, you can re-arrange 231 | sections trivially. Or you can define new styles to make global changes 232 | across the entire document. 233 | 234 | \item Math output is by far superior in \LaTeX. You can write things 235 | like $\sum_{i=1}^{\infty} \frac{1}{x}$ or: 236 | \[\int_{0}^{\infty} \delta(x)\,dx = u(x) + C\] 237 | 238 | \item Many useful packages, such as \texttt{algorithmicx}, are available. For 239 | example, consider the nonsensical pseudocode in Figure 240 | \ref{code:nonsense} generated by the \texttt{algorithmicx} package. 241 | \end{itemize} 242 | 243 | \begin{figure} 244 | \caption{Nonsense pseudocode.} 245 | \label{code:nonsense} 246 | \begin{algorithmic}[1] 247 | \Function{Nonsense}{$f, x$} 248 | \For{\textbf{each} cow $C$ in $f$} 249 | \State $l \gets \text{an arbitrary llama in $C$}$ 250 | \State \text{set $l$ to True} 251 | \State $result \gets \Call{Complicate}{f, l}$ 252 | \If {$result \not = \text{UNKNOWN}$} 253 | \State \text{\textbf{return} result} 254 | \EndIf 255 | \EndFor 256 | \EndFunction 257 | \end{algorithmic} 258 | \end{figure} 259 | 260 | \subsection{What are \TeX{} and \LaTeX{}?} 261 | % 262 | \TeX{} was designed and implemented by Donald E. Knuth, the famous author 263 | of \textit{The art of computer programming}~\cite{ref:taocp}. Knuth, 264 | shown in Figure \ref{fig:knuth}, decided to create a typesetting language 265 | that would handle mathematical output beautifully. This was motivated 266 | by the fact that publishers would mangle the formul\ae of his 267 | \textit{magnum opus}. Now, \TeX{} is used by the mathematical, 268 | academic, and documentation communities to typeset beautiful 269 | documents. The \TeX{} language is designed to provide precise control 270 | for text layout. 271 | 272 | % Here is a figure. You MUST cite the figure in the text before it appears. 273 | % 274 | % I include an external picture here. This picture is called don-hires.pdf. 275 | % Notice how I do not specify the extension of the file. pdfLaTeX knows 276 | % about PDFs only, so get your pictures into that format. 277 | \begin{figure} 278 | \centering 279 | \includegraphics[height=3.0in]{don-hires} 280 | \caption[Donald E. Knuth, the creator of \TeX{}.] 281 | {Donald E. Knuth, the creator of \TeX{}.~\cite{ref:donpicture}} 282 | \label{fig:knuth} 283 | \end{figure} 284 | 285 | \LaTeX{} was designed and implemented by Leslie Lamport while he worked 286 | at Digital Equipment Corp. \LaTeX{} was his attempt to create a 287 | documentation system that was easier to use than \TeX{}. In fact, 288 | \LaTeX{} is frequently called a ``document processor'' as opposed to a 289 | ``word processor,'' because it abstracts away the hard details of 290 | formatting and typesetting, allowing the author to use a semantic 291 | language to describe the output. 292 | 293 | 294 | \subsection{Learning \LaTeX} 295 | \newcommand{\us}{\hspace{-0.1ex}} 296 | \newcommand{\teTeX}{\mbox{t\us e\us\us\TeX}} 297 | \newcommand{\MiKTeX}{\mbox{M\us i\us K\us\us\TeX}} 298 | % 299 | Unfortunately, using \LaTeX{} is not quite as intuitive as using a 300 | word processor. However, if you invest the time in learning it, the 301 | payoffs can be great. Unlike a word processor, \LaTeX{} is written 302 | like a markup language, which means you use macros\footnote{The 303 | SGML/HTML/XML world calls these tags.} to tell \TeX{} how to typeset 304 | your document. This means that you can edit your documents in any 305 | old text editor, be it as crude as Microsoft Notepad, or something 306 | more heavy-duty like vi\footnote{Try Vim~\cite{ref:vim} which is 307 | Vi Improved.}~\cite{ref:vi} or Emacs~\cite{ref:emacs}. 308 | 309 | There are some good on-line books if you wish to learn \LaTeX{} without 310 | having to shell out any hard earned money\footnote{You are earning money 311 | during this work term, right?}. The standard reference is \textit{A 312 | not so short introduction to \LaTeXe{}}~\cite{ref:short}. As well, 313 | \textit{A simplified introduction to \LaTeX}~\cite{ref:simplified} is 314 | also an excellent reference. 315 | 316 | The fundamental resource for learning \LaTeX{} has to be \textit{\LaTeX: 317 | a document preparation system}~\cite{ref:latex2e} which is written by 318 | Leslie Lamport, the creator of \LaTeX. Also of note is \textit{The 319 | \LaTeX{} companion} which is the next step up, if you want to become a 320 | power user. 321 | 322 | How does one get a copy of \LaTeX? On Unix systems, the 323 | \teTeX~\cite{ref:tetex} distribution is popular. For Windows users, 324 | \MiKTeX~\cite{ref:miktex} is the distribution of choice. Follow each 325 | packages installation instructions for best results\footnote{On a Debian 326 | GNU/Linux system, invoke \texttt{aptitude~install~tetex-bin~tetex-extra}}. 327 | 328 | You will probably want a PostScript interpreter to create PDFs or to 329 | send PostScript output files to the printer. You can use Adobe Distiller, 330 | which you can purchase from Adobe Systems Inc.; or you could download 331 | a copy of Ghostscript\footnote{Again, on Debian GNU/Linux, run 332 | \texttt{aptitude~install~gs}}~\cite{ref:gs}. 333 | 334 | \subsubsection{How \LaTeX{} works} 335 | 336 | You create text files that include \LaTeX{} commands to generate the 337 | final document. You can consider it similar to writing source code 338 | that is compiled to generate the typeset output. 339 | 340 | Figure \ref{fig:flow} shows the control flow that a typical document 341 | follows in order to generate PDF output. 342 | 343 | \providecommand{\BibTeX}{\textsc{Bib}\us\TeX} 344 | % Here is a another figure. You MUST cite the figure in the text before 345 | % it appears. 346 | % 347 | % I draw a picture here using the picture environment. 348 | \begin{figure} 349 | \centering 350 | \begin{picture}(300,170) 351 | % Draw the text boxes 352 | \put( 50, 150){\makebox(0,0){\fbox{\texttt{document.tex}}}} 353 | \put(250, 150){\makebox(0,0){\fbox{\texttt{document.bib}}}} 354 | \put( 50, 100){\makebox(0,0)[l]{\fbox{\texttt{document.pdf}}}} 355 | \put(180, 100){\makebox(0,0){\fbox{\texttt{document.aux}}}} 356 | \put(250, 50){\makebox(0,0){\fbox{\texttt{document.bbl}}}} 357 | \put(150, 0){\makebox(0,0){\fbox{\texttt{document.pdf}}}} 358 | % Draw the connecting lines 359 | \put( 75, 143){\vector( 0,-1){ 35}} % .tex -> .pdf 360 | \put( 75, 125){\line ( 1, 0){105}} % .tex -> .aux 361 | \put(180, 125){\vector( 0,-1){ 18}} % .tex -> .aux 362 | \put(205, 93){\line ( 0,-1){ 18}} % .aux -- .bbl 363 | \put(205, 75){\line ( 1, 0){ 45}} % .aux -- .bbl 364 | \put(250, 143){\vector( 0,-1){ 86}} % .bib -> .bbl 365 | \put( 25, 143){\line ( 0,-1){118}} % .tex -- .pdf 366 | \put(155, 93){\line ( 0,-1){ 68}} % .aux -- .pdf 367 | \put(250, 43){\line ( 0,-1){ 18}} % .bbl -- .pdf 368 | \put( 25, 25){\line ( 1, 0){225}} % ------------ 369 | \put(150, 25){\vector( 0,-1){ 18}} % .* -> .pdf 370 | % Draw the text 371 | \put( 78, 138){\makebox(0,0)[tl]{\textsc{pdf}\LaTeX{}}} 372 | \put(247, 60){\makebox(0,0)[br]{\BibTeX{}}} 373 | \put(153, 10){\makebox(0,0)[bl]{\textsc{pdf}\LaTeX{}}} 374 | \end{picture} 375 | \caption{Control flow of a \LaTeX{} compilation.} 376 | \label{fig:flow} 377 | \end{figure} 378 | 379 | Since \LaTeX{} is a programming languages, it does have some special 380 | characters. Specifically, the reserved characters are: 381 | \verb'#', 382 | \verb'$', 383 | \verb'%', 384 | \verb'&', 385 | \verb'_', 386 | \verb'{', 387 | \verb'}', 388 | \verb'~', 389 | \verb'^', 390 | \verb'\'. 391 | See Table \ref{tbl:chars} to see them in print. 392 | 393 | % Here is a table. You MUST cite the table in the text before it appears 394 | % in the document. 395 | \begin{table} 396 | \caption{Typesetting special characters.} 397 | \label{tbl:chars} 398 | \centering 399 | \begin{tabular}{|r|l|} 400 | \hline 401 | \multicolumn{1}{|c|}{\textbf{Name}} & 402 | \multicolumn{1}{|c|}{\textbf{Symbol}} \\ 403 | \hline\hline 404 | octothorpe & \# \\ 405 | dollar sign & \$ \\ 406 | percent sign & \% \\ 407 | ampersand & \& \\ 408 | underscore & \_ \\ 409 | left brace & \{ \\ 410 | right brace & \} \\ 411 | tilde & \textasciitilde \\ 412 | circumflex & \textasciicircum \\ 413 | backslash & \textbackslash \\ 414 | \hline 415 | inverted exclaimation & < \\ 416 | inverted question & > \\ 417 | less than & \textless \\ 418 | greater than & \textgreater \\ 419 | \hline 420 | \end{tabular} 421 | \end{table} 422 | 423 | \subsection{Source} 424 | 425 | This document, and the documents it uses are available under the 426 | GNU General Public License (GPL), reproduced in Appendix \ref{app:gnugpl}. 427 | Note that you do not need to accept the GNU GPL to use this document, or 428 | to use the document class. I highly recommend that you read the GPL so 429 | you understand your rights and privledges. 430 | 431 | You can find the most recent version of these documents on my website 432 | in a tarball at: \url{http://www.eng.uwaterloo.ca/~sfllaw/programs/uw-wkrpt/}. 433 | Download the latest version, unpack it, and read the enclosed \texttt{README} 434 | text file. 435 | 436 | \subsection{To do} 437 | There are still some things I want to do, to improve this example 438 | document: 439 | 440 | \begin{enumerate} 441 | \item Demonstrate the use of Gloss\TeX{} to create glossaries. 442 | \item Demonstrate the creation of an index. 443 | \item Look into \texttt{ieeetran.bst}. 444 | \item Fix all the bugs listed in Appendix \ref{app:bugs}. 445 | \end{enumerate} 446 | 447 | Examples that illustrate this usage are most definitely welcome. Please 448 | provide a patch against this document. 449 | 450 | % You must have a Conclusions section 451 | \section{Conclusions} 452 | Using this document class will allow you to reap the advantages of 453 | \LaTeX{}, \TeX{} and many years of labour donated by people much 454 | smarter than you or I. It is obvious that we should use their work 455 | to make ours that much better. For even the great Sir Issac Newton 456 | could only achieve what he did because he ``stood on the shoulders 457 | of giants.'' 458 | 459 | % You must have a Recommendations section 460 | \section{Recommendations} 461 | Learn \LaTeX{} and then use this document class to prepare your 462 | work reports. You will get nice, beautiful documents without a lot 463 | of fuss. 464 | 465 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 466 | %% BACK MATTER 467 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 468 | %% \backmatter will make the \section commands ignore their numbering, 469 | \backmatter 470 | 471 | % Here, we insert a References section, which will be formatted properly. 472 | % The list of works you have referenced should be specified in the preamble. 473 | % In this template, the file is uw-wkrpt-bib.bib. 474 | % 475 | % Note, you will need to process the document in a certain order. First, 476 | % run LaTeX. The % first pass will allow LaTeX to build a list of 477 | % references, it may % emit warning messages such as: 478 | % LaTeX Warning: Reference `app:gnugpl' on page 4 undefined on input line 277. 479 | % LaTeX Warning: There were undefined references. 480 | % This is normal. Now you run BiBTeX in order to generate the proper 481 | % layout for the references. After this, you run LaTeX once more. 482 | \printbibliography[heading=bibintoc] 483 | 484 | \section{Acknowledgements} 485 | % This section shall acknowledge the people who helped with the writing 486 | % of the work report. This would include anyone who was interviewed, 487 | % anyone who proofread the report, or anyone whose files were used in 488 | % the writing of the report. 489 | I would like to thank J. Doe for proofreading this report. 490 | 491 | I used the \textsf{uw-wkrpt} document class written by Simon Law to 492 | typeset it. 493 | 494 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 495 | %% APPENDICES 496 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 497 | %% \appendix will reset \section numbers and turn them into letters. 498 | %% 499 | %% Don't forget to refer to all your appendices in the main report. 500 | \appendix 501 | \begin{appendices} 502 | 503 | \section{Bugs}\label{app:bugs} 504 | Currently, there are some known problems with this document class. 505 | \begin{itemize} 506 | \item It is not officially supported or acknowledged by the 507 | E\&CE department. 508 | \item Not all users have converted to using a typesetting language, and 509 | insist on using word processors. 510 | \item It does not bring world peace. 511 | \end{itemize} 512 | 513 | \subsection{Subsection} 514 | 515 | foobar 516 | 517 | \subsubsection{subsubsection} 518 | 519 | Fixes for these bugs are most certainly welcome. Please provide a patch 520 | against the document class document. 521 | 522 | \section{Colophon}\label{app:colophon} 523 | This sample document was written by Simon Law, a third-year Computer 524 | Engineering student at the University of Waterloo, in Waterloo, ON, CA. 525 | When he is not programming, he can be found reading or sleeping; 526 | both of which are his favourite activities.\footnote{OK, so I don't 527 | have a life yet. I'm working on it.} 528 | 529 | The best way to contact him is by e-mail, at \url{sfllaw@uwaterloo.ca}. 530 | 531 | This document was implemented using the \texttt{ece} variant of the 532 | \texttt{uw-wkrpt} document class. The document class, and the 533 | surrounding documentation is implemented using the \LaTeXe{} macro 534 | package which is built on the \TeX{} typesetting system. The documents 535 | were generated by the web2c implementation of \TeX, found in the 536 | \teTeX{} distribution. The typeface used is Computer Modern. 537 | 538 | The entire system was written in the Vim text editor. The operating 539 | system used was Debian GNU/Linux which ran on an IBM ThinkPad A20m. This 540 | stalwart companion allowed him to work on this report periodically, even 541 | during his ``off'' time up at the cottage. 542 | 543 | 544 | \section{GNU General Public License}\label{app:gnugpl} 545 | \renewcommand{\labelenumii}{\theenumii)} 546 | \begin{singlespacing} 547 | \centerline{Version 2, June 1991} 548 | 549 | \begin{quote} 550 | Copyright \copyright{} 1989, 1991 Free Software Foundation, Inc.\newline 551 | \null\hspace{0.5in}59 Temple Place, Suite 330, Boston, 552 | MA\ \ 02111-1307\ \ USA\\ 553 | Everyone is permitted to copy and distribute verbatim copies 554 | of this license document, but changing it is not allowed. 555 | \end{quote} 556 | 557 | \subsection*{\centerline{Preamble}} 558 | 559 | The licenses for most software are designed to take away your 560 | freedom to share and change it. By contrast, the GNU General Public 561 | License is intended to guarantee your freedom to share and change free 562 | software--to make sure the software is free for all its users. This 563 | General Public License applies to most of the Free Software 564 | Foundation's software and to any other program whose authors commit to 565 | using it. (Some other Free Software Foundation software is covered by 566 | the GNU Library General Public License instead.) You can apply it to 567 | your programs, too. 568 | 569 | When we speak of free software, we are referring to freedom, not 570 | price. Our General Public Licenses are designed to make sure that you 571 | have the freedom to distribute copies of free software (and charge for 572 | this service if you wish), that you receive source code or can get it 573 | if you want it, that you can change the software or use pieces of it 574 | in new free programs; and that you know you can do these things. 575 | 576 | To protect your rights, we need to make restrictions that forbid 577 | anyone to deny you these rights or to ask you to surrender the rights. 578 | These restrictions translate to certain responsibilities for you if you 579 | distribute copies of the software, or if you modify it. 580 | 581 | For example, if you distribute copies of such a program, whether 582 | gratis or for a fee, you must give the recipients all the rights that 583 | you have. You must make sure that they, too, receive or can get the 584 | source code. And you must show them these terms so they know their 585 | rights. 586 | 587 | We protect your rights with two steps: (1) copyright the software, and 588 | (2) offer you this license which gives you legal permission to copy, 589 | distribute and/or modify the software. 590 | 591 | Also, for each author's protection and ours, we want to make certain 592 | that everyone understands that there is no warranty for this free 593 | software. If the software is modified by someone else and passed on, we 594 | want its recipients to know that what they have is not the original, so 595 | that any problems introduced by others will not reflect on the original 596 | authors' reputations. 597 | 598 | Finally, any free program is threatened constantly by software 599 | patents. We wish to avoid the danger that redistributors of a free 600 | program will individually obtain patent licenses, in effect making the 601 | program proprietary. To prevent this, we have made it clear that any 602 | patent must be licensed for everyone's free use or not licensed at all. 603 | 604 | The precise terms and conditions for copying, distribution and 605 | modification follow. 606 | 607 | \subsection*{\centerline{TERMS AND CONDITIONS FOR COPYING,}\\ 608 | \centerline{DISTRIBUTION AND MODIFICATION}} 609 | 610 | \begin{enumerate} 611 | \setcounter{enumi}{-1} 612 | 613 | \item This License applies to any program or other work which contains 614 | a notice placed by the copyright holder saying it may be distributed 615 | under the terms of this General Public License. The ``Program'', below, 616 | refers to any such program or work, and a ``work based on the Program'' 617 | means either the Program or any derivative work under copyright law: 618 | that is to say, a work containing the Program or a portion of it, 619 | either verbatim or with modifications and/or translated into another 620 | language. (Hereinafter, translation is included without limitation in 621 | the term ``modification''.) Each licensee is addressed as ``you''. 622 | 623 | Activities other than copying, distribution and modification are not 624 | covered by this License; they are outside its scope. The act of 625 | running the Program is not restricted, and the output from the Program 626 | is covered only if its contents constitute a work based on the 627 | Program (independent of having been made by running the Program). 628 | Whether that is true depends on what the Program does. 629 | 630 | \item You may copy and distribute verbatim copies of the Program's 631 | source code as you receive it, in any medium, provided that you 632 | conspicuously and appropriately publish on each copy an appropriate 633 | copyright notice and disclaimer of warranty; keep intact all the 634 | notices that refer to this License and to the absence of any warranty; 635 | and give any other recipients of the Program a copy of this License 636 | along with the Program. 637 | 638 | You may charge a fee for the physical act of transferring a copy, and 639 | you may at your option offer warranty protection in exchange for a fee. 640 | 641 | \item You may modify your copy or copies of the Program or any portion 642 | of it, thus forming a work based on the Program, and copy and 643 | distribute such modifications or work under the terms of Section 1 644 | above, provided that you also meet all of these conditions: 645 | 646 | \begin{enumerate} 647 | \item You must cause the modified files to carry prominent notices 648 | stating that you changed the files and the date of any change. 649 | 650 | \item You must cause any work that you distribute or publish, that in 651 | whole or in part contains or is derived from the Program or any 652 | part thereof, to be licensed as a whole at no charge to all third 653 | parties under the terms of this License. 654 | 655 | \item If the modified program normally reads commands interactively 656 | when run, you must cause it, when started running for such 657 | interactive use in the most ordinary way, to print or display an 658 | announcement including an appropriate copyright notice and a 659 | notice that there is no warranty (or else, saying that you provide 660 | a warranty) and that users may redistribute the program under 661 | these conditions, and telling the user how to view a copy of this 662 | License. (Exception: if the Program itself is interactive but 663 | does not normally print such an announcement, your work based on 664 | the Program is not required to print an announcement.) 665 | \end{enumerate} 666 | 667 | These requirements apply to the modified work as a whole. If 668 | identifiable sections of that work are not derived from the Program, 669 | and can be reasonably considered independent and separate works in 670 | themselves, then this License, and its terms, do not apply to those 671 | sections when you distribute them as separate works. But when you 672 | distribute the same sections as part of a whole which is a work based 673 | on the Program, the distribution of the whole must be on the terms of 674 | this License, whose permissions for other licensees extend to the 675 | entire whole, and thus to each and every part regardless of who wrote it. 676 | 677 | Thus, it is not the intent of this section to claim rights or contest 678 | your rights to work written entirely by you; rather, the intent is to 679 | exercise the right to control the distribution of derivative or 680 | collective works based on the Program. 681 | 682 | In addition, mere aggregation of another work not based on the Program 683 | with the Program (or with a work based on the Program) on a volume of 684 | a storage or distribution medium does not bring the other work under 685 | the scope of this License. 686 | 687 | \item You may copy and distribute the Program (or a work based on it, 688 | under Section 2) in object code or executable form under the terms of 689 | Sections 1 and 2 above provided that you also do one of the following: 690 | 691 | \begin{enumerate} 692 | \item Accompany it with the complete corresponding machine-readable 693 | source code, which must be distributed under the terms of Sections 694 | 1 and 2 above on a medium customarily used for software interchange; or, 695 | 696 | \item Accompany it with a written offer, valid for at least three 697 | years, to give any third party, for a charge no more than your 698 | cost of physically performing source distribution, a complete 699 | machine-readable copy of the corresponding source code, to be 700 | distributed under the terms of Sections 1 and 2 above on a medium 701 | customarily used for software interchange; or, 702 | 703 | \item Accompany it with the information you received as to the offer 704 | to distribute corresponding source code. (This alternative is 705 | allowed only for noncommercial distribution and only if you 706 | received the program in object code or executable form with such 707 | an offer, in accord with Subsection b above.) 708 | \end{enumerate} 709 | 710 | The source code for a work means the preferred form of the work for 711 | making modifications to it. For an executable work, complete source 712 | code means all the source code for all modules it contains, plus any 713 | associated interface definition files, plus the scripts used to 714 | control compilation and installation of the executable. However, as a 715 | special exception, the source code distributed need not include 716 | anything that is normally distributed (in either source or binary 717 | form) with the major components (compiler, kernel, and so on) of the 718 | operating system on which the executable runs, unless that component 719 | itself accompanies the executable. 720 | 721 | If distribution of executable or object code is made by offering 722 | access to copy from a designated place, then offering equivalent 723 | access to copy the source code from the same place counts as 724 | distribution of the source code, even though third parties are not 725 | compelled to copy the source along with the object code. 726 | 727 | \item You may not copy, modify, sublicense, or distribute the Program 728 | except as expressly provided under this License. Any attempt 729 | otherwise to copy, modify, sublicense or distribute the Program is 730 | void, and will automatically terminate your rights under this License. 731 | However, parties who have received copies, or rights, from you under 732 | this License will not have their licenses terminated so long as such 733 | parties remain in full compliance. 734 | 735 | \item You are not required to accept this License, since you have not 736 | signed it. However, nothing else grants you permission to modify or 737 | distribute the Program or its derivative works. These actions are 738 | prohibited by law if you do not accept this License. Therefore, by 739 | modifying or distributing the Program (or any work based on the 740 | Program), you indicate your acceptance of this License to do so, and 741 | all its terms and conditions for copying, distributing or modifying 742 | the Program or works based on it. 743 | 744 | \item Each time you redistribute the Program (or any work based on the 745 | Program), the recipient automatically receives a license from the 746 | original licensor to copy, distribute or modify the Program subject to 747 | these terms and conditions. You may not impose any further 748 | restrictions on the recipients' exercise of the rights granted herein. 749 | You are not responsible for enforcing compliance by third parties to 750 | this License. 751 | 752 | \item If, as a consequence of a court judgment or allegation of patent 753 | infringement or for any other reason (not limited to patent issues), 754 | conditions are imposed on you (whether by court order, agreement or 755 | otherwise) that contradict the conditions of this License, they do not 756 | excuse you from the conditions of this License. If you cannot 757 | distribute so as to satisfy simultaneously your obligations under this 758 | License and any other pertinent obligations, then as a consequence you 759 | may not distribute the Program at all. For example, if a patent 760 | license would not permit royalty-free redistribution of the Program by 761 | all those who receive copies directly or indirectly through you, then 762 | the only way you could satisfy both it and this License would be to 763 | refrain entirely from distribution of the Program. 764 | 765 | If any portion of this section is held invalid or unenforceable under 766 | any particular circumstance, the balance of the section is intended to 767 | apply and the section as a whole is intended to apply in other 768 | circumstances. 769 | 770 | It is not the purpose of this section to induce you to infringe any 771 | patents or other property right claims or to contest validity of any 772 | such claims; this section has the sole purpose of protecting the 773 | integrity of the free software distribution system, which is 774 | implemented by public license practices. Many people have made 775 | generous contributions to the wide range of software distributed 776 | through that system in reliance on consistent application of that 777 | system; it is up to the author/donor to decide if he or she is willing 778 | to distribute software through any other system and a licensee cannot 779 | impose that choice. 780 | 781 | This section is intended to make thoroughly clear what is believed to 782 | be a consequence of the rest of this License. 783 | 784 | \item If the distribution and/or use of the Program is restricted in 785 | certain countries either by patents or by copyrighted interfaces, the 786 | original copyright holder who places the Program under this License 787 | may add an explicit geographical distribution limitation excluding 788 | those countries, so that distribution is permitted only in or among 789 | countries not thus excluded. In such case, this License incorporates 790 | the limitation as if written in the body of this License. 791 | 792 | \item The Free Software Foundation may publish revised and/or new versions 793 | of the General Public License from time to time. Such new versions will 794 | be similar in spirit to the present version, but may differ in detail to 795 | address new problems or concerns. 796 | 797 | Each version is given a distinguishing version number. If the Program 798 | specifies a version number of this License which applies to it and ``any 799 | later version'', you have the option of following the terms and conditions 800 | either of that version or of any later version published by the Free 801 | Software Foundation. If the Program does not specify a version number of 802 | this License, you may choose any version ever published by the Free Software 803 | Foundation. 804 | 805 | \item If you wish to incorporate parts of the Program into other free 806 | programs whose distribution conditions are different, write to the author 807 | to ask for permission. For software which is copyrighted by the Free 808 | Software Foundation, write to the Free Software Foundation; we sometimes 809 | make exceptions for this. Our decision will be guided by the two goals 810 | of preserving the free status of all derivatives of our free software and 811 | of promoting the sharing and reuse of software generally. 812 | \newcounter{Enumi} 813 | \setcounter{Enumi}{\value{enumi}} 814 | \end{enumerate} 815 | 816 | \subsubsection*{\centerline{NO WARRANTY}} 817 | 818 | \begin{enumerate} 819 | \setcounter{enumi}{\value{Enumi}} 820 | \item BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 821 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 822 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 823 | PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 824 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 825 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 826 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 827 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 828 | REPAIR OR CORRECTION. 829 | 830 | \item IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 831 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 832 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 833 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 834 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 835 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 836 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 837 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 838 | POSSIBILITY OF SUCH DAMAGES. 839 | \end{enumerate} 840 | 841 | \subsection*{\centerline{END OF TERMS AND CONDITIONS}} 842 | 843 | \subsection*{\centerline{How to Apply These Terms to Your New Programs}} 844 | 845 | If you develop a new program, and you want it to be of the greatest 846 | possible use to the public, the best way to achieve this is to make it 847 | free software which everyone can redistribute and change under these terms. 848 | 849 | To do so, attach the following notices to the program. It is safest 850 | to attach them to the start of each source file to most effectively 851 | convey the exclusion of warranty; and each file should have at least 852 | the ``copyright'' line and a pointer to where the full notice is found. 853 | % This is a hack to make the quote environment behave nicely. 854 | \renewenvironment{quote}{\list{}{}\item\relax}{\endlist} 855 | \begin{quote}\ttfamily\footnotesize 856 | \emph{one line to give the program's name and a brief 857 | idea of what it\nolinebreak[4] does.}\\ 858 | Copyright (C) \emph{year}\ \ \emph{name of author}\\ 859 | \mbox{}\\ 860 | This program is free software; you can redistribute it and/or modify\\ 861 | it under the terms of the GNU General Public License as published by\\ 862 | the Free Software Foundation; either version 2 of the License, or\\ 863 | (at your option) any later version.\\ 864 | \mbox{}\\ 865 | This program is distributed in the hope that it will be useful,\\ 866 | but WITHOUT ANY WARRANTY; without even the implied warranty of\\ 867 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\ 868 | GNU General Public License for more details.\\ 869 | \mbox{}\\ 870 | You should have received a copy of the GNU General Public License\\ 871 | along with this program; if not, write to the Free Software\\ 872 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, \\ 873 | MA\ \ 02111-1307\ \ USA 874 | \end{quote} 875 | 876 | 877 | Also add information on how to contact you by electronic and paper mail. 878 | 879 | If the program is interactive, make it output a short notice like this 880 | when it starts in an interactive mode: 881 | \begin{quote}\ttfamily\footnotesize 882 | Gnomovision version 69, Copyright (C) \emph{year}\ \ 883 | \emph{name of author}\\ 884 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\\ 885 | This is free software, and you are welcome to redistribute it\\ 886 | under certain conditions; type `show c' for details. 887 | \end{quote} 888 | 889 | The hypothetical commands `show w' and `show c' should show the appropriate 890 | parts of the General Public License. Of course, the commands you use may 891 | be called something other than `show w' and `show c'; they could even be 892 | mouse-clicks or menu items--whatever suits your program. 893 | 894 | You should also get your employer (if you work as a programmer) or your 895 | school, if any, to sign a ``copyright disclaimer'' for the program, if 896 | necessary. Here is a sample; alter the names: 897 | \begin{quote}\ttfamily\footnotesize 898 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program\\ 899 | `Gnomovision' (which makes passes at compilers) written by James Hacker.\\ 900 | \mbox{}\\ 901 | \emph{signature of Ty Coon}, 1 April 1989\\ 902 | Ty Coon, President of Vice 903 | \end{quote} 904 | 905 | This General Public License does not permit incorporating your program into 906 | proprietary programs. If your program is a subroutine library, you may 907 | consider it more useful to permit linking proprietary applications with the 908 | library. If this is what you want to do, use the GNU Library General 909 | Public License instead of this License. 910 | 911 | \end{singlespacing} 912 | 913 | \end{appendices} 914 | \end{document} 915 | --------------------------------------------------------------------------------