460 likes | 465 Views
Learn the anatomy of thesis writing, managing data complexity, and document structuring using LaTeX. Explore charts, figures, tables, and referencing techniques essential for research!
E N D
Document Preparation LaTeX and other vital tools for computing scientists. CMPUT 603: Teaching and Research Methods Paul Berube Sept. 19, 2005
Anatomy of a Thesis • 6 Chapters, 2 Appendixes • 14 Section • 18 Subsections • 196 Charts • 11 Figures • 48 Tables • 35 cited works CMPUT 603, Paul Berube
Data for a Thesis • ~ 40,000 raw data files • ~ 8,000 processed data files • 865 charts • 41 tables • Charts and tables change when data changes! CMPUT 603, Paul Berube
Managing the Complexity • Scripts to process data • Shell scripts, awk, bc, grep, sed, wc, etc… • Non-interactive programs to create charts • Matlab, gnuplot • A document preparation system that: • Decomposes and compartmentalizes writing • Integrates with other tools • Automates formatting and numbering CMPUT 603, Paul Berube
The Basics • Commands start with a ‘\’ • \chapter, \section, \subsection, \subsubsection • {\tt <monospaced text>}, {\bf <bold text>}, {\it <italicized text>} • \input{<filename} • Some special characters: ‘#’, ‘&’, ‘\’, ‘{‘, ‘}’ • ‘~’ : non-breaking space • ‘$’ : math mode, ‘^’ superscript, ‘_’ subscript • ‘%’ : comments CMPUT 603, Paul Berube
Document Structure Root File Local.bib Intro.tex Results.tex Conc.tex Fig1.eps Sec1.tex Sec2.tex Tab.tex Fig2.eps CMPUT 603, Paul Berube
Document Structure Root File Local.bib Intro.tex Results.tex Conc.tex Fig1.eps Sec1.tex Sec2.tex xfig gnuplot Tab.tex Fig2.eps script CMPUT 603, Paul Berube
The figure environment • Used for inserting images, graphs, charts, etc… • A “float” environment • Latex will put the figure where it thinks is best Figure 2, top of page 4: \begin{figure} \centering \includegraphics{motiv2.eps} \caption{Motivating Example.} \label{fig:motiv-exmp} \end{figure} CMPUT 603, Paul Berube
Captions \begin{figure} \centering \includegraphics{motiv2.eps} \caption{Motivating Example.} \label{fig:motiv-exmp} \end{figure} Caption CMPUT 603, Paul Berube
Labels & References \begin{figure} \centering \includegraphics{motiv2.eps} \caption{Motivating Example.} \label{fig:motiv-exmp} \end{figure} Label CMPUT 603, Paul Berube
Labels & References Reference Figure~\ref{fig:motiv-exmp} shows… \begin{figure} \centering \includegraphics{motiv2.eps} \caption{Motivating Example.} \label{fig:motiv-exmp} \end{figure} Label CMPUT 603, Paul Berube
Labels & References Reference Figure~\ref{fig:motiv-exmp} shows… Figure 2 shows… \begin{figure} \centering \includegraphics{motiv2.eps} \caption{Motivating Example.} \label{fig:motiv-exmp} \end{figure} Label CMPUT 603, Paul Berube
(conclusion.tex <motiv2.eps>Overfull \hbox (196.49pt too wide) \begin{figure} \centering \includegraphics{motiv2.eps} \caption{Motivating Example.} \label{fig:motiv-exmp} \end{figure} CMPUT 603, Paul Berube
figure* • Adding a ‘*’ lets a figure or table span the whole page in multi-column documents \begin{figure*} \centering \includegraphics{motiv2.eps} \caption{Motivating Example.} \label{fig:motiv-exmp} \end{figure*} CMPUT 603, Paul Berube
Tables • Also a “float” environment \begin{table} \centering \begin{tabular}{|l|c|} \hline {\bf Evaluation Category} & {\bf Score} \\ How confident are [snip] & \\ \hline {\bf Reviewer Confidence} & \\ Are you convinced [snip] & \\ \hline \end{tabular} \caption{Peer-based referee report for \paper.} \label{tab:eval1} \end{table} Table 1, Page 3 CMPUT 603, Paul Berube
Tables • Also a “float” environment \begin{table} \centering \begin{tabular}{|l|c|} \hline {\bf Evaluation Category} & {\bf Score} \\ How confident are [snip] & \\ \hline {\bf Reviewer Confidence} & \\ Are you convinced [snip] & \\ \hline \end{tabular} \caption{Peer-based referee report for \paper.} \label{tab:eval1} \end{table} Table 1, Page 3 • Table Format Specifier: • ‘r’ : right-justified column • ‘l’ : left-justified column • ‘c’: center-justified column • ‘|’ : vertical line CMPUT 603, Paul Berube
Tables • Also a “float” environment \begin{table} \centering \begin{tabular}{|l|c|} \hline {\bf Evaluation Category} & {\bf Score} \\ How confident are [snip] & \\ \hline {\bf Reviewer Confidence} & \\ Are you convinced [snip] & \\ \hline \end{tabular} \caption{Peer-based referee report for \paper.} \label{tab:eval1} \end{table} Table 1, Page 3 & = column separator CMPUT 603, Paul Berube
Tables • Also a “float” environment \begin{table} \centering \begin{tabular}{|l|c|} \hline {\bf Evaluation Category} & {\bf Score} \\ How confident are [snip] & \\ \hline {\bf Reviewer Confidence} & \\ Are you convinced [snip] & \\ \hline \end{tabular} \caption{Peer-based referee report for \paper.} \label{tab:eval1} \end{table} Table 1, Page 3 \\ = newline CMPUT 603, Paul Berube
Tables • Also a “float” environment \begin{table} \centering \begin{tabular}{|l|c|} \hline {\bf Evaluation Category} & {\bf Score} \\ How confident are [snip] & \\ \hline {\bf Reviewer Confidence} & \\ Are you convinced [snip] & \\ \hline \end{tabular} \caption{Peer-based referee report for \paper.} \label{tab:eval1} \end{table} Table 1, Page 3 \hline CMPUT 603, Paul Berube
Text-figures • To create a figure containing text, use a tabular inside a figure • Works great for code segments, etc \begin{figure} \centering \begin{tabular}{|l|} \hline Title\\ 1. Introduction\\ Acknowlegments\\ \hline \end{tabular} \caption{Organization for \paper.} \label{fig:organization} \end{figure} CMPUT 603, Paul Berube
Other Table Tricks • Multicolumn • \multicolumn{<span>}{<text>} • Multirow • \multirow{<span>}*{<common text>} CMPUT 603, Paul Berube
Enumeration Environments • Not a float • Enumerate : ordered list • Itemize : unordered list • Description : unordered list with item labels Canadian bands include: \begin{itemize} \item Chilliwack \item Harlequin \item The Guess Who \end{itemize} CMPUT 603, Paul Berube
Math Mode • LaTeX is the tool to typeset mathematics and symbols • $ <math> $ : inline math • $$ <math> $$ : not-inline math CMPUT 603, Paul Berube
Make your own commands • Customized commands • Shorthand • Help ensure consistency • \def • \def\course{{\tt CMPUT}~603} • This course is \course. • \let, \newcommand, \newenvironment This course is CMPUT 603. CMPUT 603, Paul Berube
Citations & Bibliographies • Bibtex makes it easy • Create a .bib file with your references • Cite references with \cite{<name>} in text • \cite{<name>} [<num>] in text, eg, [3] • Bibliography automatically generated with proper formatting • Bibliography only includes references you actually cite CMPUT 603, Paul Berube
Citations & Bibliographies .bib file CMPUT 603, Paul Berube
Citations & Bibliographies • Color-coded items Required Optional CMPUT 603, Paul Berube
Citations & Bibliographies • Fill in everything you can find out. CMPUT 603, Paul Berube
Citations & Bibliographies • CTRL-C, CTRL-C to clean up bib entry CMPUT 603, Paul Berube
Things to read about • Math mode • Subfigures • Tabularx environment • Tabbing environment • Minipages • Algorithmics packages CMPUT 603, Paul Berube
Bash scripting See: Advanced Bash-Scripting Guide
Scripts • Automate tedious tasks • Tests and checks more robust than manual execution • “Glue” to bind a collection of tasks • High-level programming • Scripts like a “meta-program”? • Rely on common utilities to do the “real work” CMPUT 603, Paul Berube
sed See: Advanced Bash-Scripting Guide
Sed • String manipluation utility • Substitution • $> sed –e “s/hate/love/” file • $> find ./data/ -name “*.data” | sed –e “s/\.\/data\///” < file • Selection • $> sed –n –e “10p” file CMPUT 603, Paul Berube
awk See: Google
Awk • Used to process data in plain-text formats • C-like syntax • Can address file data by column • $> awk ‘{print $3}’ file CMPUT 603, Paul Berube
Awk • Use to process data in plain-text formats • C-like syntax • Can address file data by column • Can perform math, has variables awk ‘BEGIN \ {max = 0; min = 9999; cnt = 0; sum = 0} \ { cnt++; sum += $1; \ if($1 > max) max = $1; \ if($1 < min) min = $1; } \ END \ {printf "%f %f %f\n", min, max, sum/cnt}’ CMPUT 603, Paul Berube
Awk • Use to process data in plain-text formats • C-like syntax • Can address file data by column • Can perform math, has variables awk ‘BEGIN \ {max = 0; min = 9999; cnt = 0; sum = 0} \ {cnt++; sum += $1; \ if($1 > max) max = $1; \ if($1 < min) min = $1; } \ END \ {printf "%f %f %f\n", min, max, sum/cnt}’ CMPUT 603, Paul Berube
Awk • Use to process data in plain-text formats • C-like syntax • Can address file data by column • Can perform math, has variables awk ‘BEGIN \ {max = 0; min = 9999; cnt = 0; sum = 0} \ {cnt++; sum += $1; \ if($1 > max) max = $1; \ if($1 < min) min = $1; } \ END \ {printf "%f %f %f\n", min, max, sum/cnt}’ CMPUT 603, Paul Berube
Awk • Use to process data in plain-text formats • C-like syntax • Can address file data by column • Can perform math, has variables awk ‘BEGIN \ {max = 0; min = 9999; cnt = 0; sum = 0} \ {cnt++; sum += $1; \ if($1 > max) max = $1; \ if($1 < min) min = $1; } \ END \ {printf "%f %f %f\n", min, max, sum/cnt}’ CMPUT 603, Paul Berube
gnuplot See: gnuplot webpage, Google
gnuplot • Script-based 2D and 3D plotting • Many output formats, including eps • Graph functions and/or data from files • Apply functions to data in files before graphing CMPUT 603, Paul Berube
gnuplot set term postscript eps set output ‘sincos.eps’ set title “sin(x), cos(x)” set xrange [-2*pi:2*pi] plot sin(x) with lines, cos(x) with points CMPUT 603, Paul Berube
Putting It All Together • A Script: • Build the program if needed • Run the program to simulate M experiments, each run N times • Calulate the min, max, and average of the N runs for each experiment • Graph the results • Max and min lines • Smooth average line • Each data point CMPUT 603, Paul Berube
Putting It All Together Demo… CMPUT 603, Paul Berube