Commit | Line | Data |
---|---|---|
bcbc4dbf MW |
1 | \documentclass[t]{beamer} |
2 | \usetheme{Madrid} | |
3 | \usefonttheme{professionalfonts} | |
4 | \usefonttheme[stillsansseriflarge, stillsansserifsmall]{serif} | |
5 | ||
6 | \usepackage[T3, T1]{fontenc} | |
7 | \usepackage[utf8]{inputenc} | |
8 | \usepackage{at} | |
9 | \usepackage{cmtt} | |
10 | \usepackage[palatino, helvetica, courier, maths=cmr]{mdwfonts} | |
11 | \usepackage{mflogo} | |
12 | \usepackage{sverb} | |
13 | \usepackage{syntax} | |
14 | \usepackage{tikz} | |
15 | \usetikzlibrary{calc} | |
16 | \usetikzlibrary{positioning} | |
17 | \usetikzlibrary{shapes.geometric} | |
18 | \usepackage{tipa} | |
19 | ||
20 | \errorcontextlines=999 | |
21 | \let\listingsize=\relax | |
22 | ||
23 | \title{Whirlwind Tour of \LaTeX} | |
24 | \author{Mark Wooding} | |
25 | \date{18 March 2022} | |
26 | ||
27 | \atdef|#1|{\mtt{#1}} | |
28 | \atdef<#1>{\textit{#1}} | |
29 | ||
30 | \tikzset{every picture/.style={>=stealth, thick}} | |
31 | ||
32 | \begin{document} | |
33 | ||
34 | \frame{\titlepage} | |
35 | \frame{\frametitle{Outline} | |
36 | \tableofcontents[sectionstyle=show/show, | |
37 | subsectionstyle=shaded/show/hide]} | |
38 | \AtBeginSection{\frame{\frametitle{Outline} | |
39 | \tableofcontents[sectionstyle=show/shaded, | |
40 | subsectionstyle=show/show/hide]}} | |
41 | ||
42 | \section{What is \LaTeX?} | |
43 | ||
44 | \subsection{Background and history} | |
45 | ||
46 | \begin{frame}{So what even is this \LaTeX\ thing anyway?} | |
47 | \begin{itemize}[<+->] | |
48 | \item \LaTeX\ is a `document preparation system' based on Knuth's \TeX\ and | |
49 | \MF\ programs. | |
50 | \item You describe the document you want in a plain text file (or several), | |
51 | run some programs, and they generate printable output. | |
52 | \end{itemize} | |
53 | ||
54 | \centering \vfill | |
55 | \begin{tikzpicture} | |
56 | [file/.style={draw=black, outer sep=1mm, | |
57 | text height=\ht\strutbox, text depth=\dp\strutbox}, | |
58 | input/.style={file, rectangle, fill=blue!30}, | |
59 | output/.style={file, rectangle, fill=green!30}, | |
60 | program/.style={file, ellipse, fill=yellow!30}] | |
61 | ||
62 | \uncover<+-> | |
63 | {\node[input] (tex0) at (0, 0) {\phantom{\texttt{foo.tex}}}; | |
64 | \node[input] (tex1) at ($(tex0) - (2mm, -2mm)$) {\phantom{\texttt{foo.tex}}}; | |
65 | \node[input, outer xsep=5mm, outer ysep=5mm] | |
66 | (texn) at ($(tex1) - (2mm, -2mm)$) {\texttt{foo.tex}};} | |
67 | ||
68 | \uncover<+-> | |
69 | {\node[program, below=7mm of texn] (latex) {\texttt{latex}}; | |
70 | \node[output, right=6mm of latex] (dvi) {\texttt{foo.dvi}}; | |
71 | \draw[->] (texn) to (latex); | |
72 | \draw[->] (latex) to (dvi);} | |
73 | \uncover<+-> | |
74 | {\node[program, right=6mm of dvi] (dvips) {\texttt{dvips}}; | |
75 | \node[output, right=6mm of dvips] (ps) {\texttt{foo.ps}}; | |
76 | \draw[->] (dvi) to (dvips); | |
77 | \draw[->] (dvips) to (ps);} | |
78 | \uncover<+-> | |
79 | {\node[program, right=6mm of ps] (ps2pdf) {\texttt{ps2pdf}}; | |
80 | \node[output, above=10mm of ps2pdf] (pdf) {\texttt{foo.pdf}}; | |
81 | \draw[->] (ps) to (ps2pdf); | |
82 | \draw[->] (ps2pdf) to (pdf);} | |
83 | \uncover<+-> | |
84 | {\node[program] (pdflatex) at ($(texn)!.5!(pdf)$) {\texttt{pdflatex}}; | |
85 | \draw[->] (texn) to (pdflatex); | |
86 | \draw[->] (pdflatex) to (pdf);} | |
87 | \end{tikzpicture} | |
88 | \end{frame} | |
89 | ||
90 | \begin{frame}{Where does this stuff come from?} | |
91 | \begin{itemize}[<+->] | |
92 | \item Donald E.\ Knuth wrote the original versions of \TeX\ and \MF\ back | |
93 | in the late 1970s because he was dissatisfied with the appearance of the | |
94 | second editions of \emph{The Art of Computer Programming}. He stopped | |
95 | evolving \TeX\ in 1982, and \MF\ in 1984. | |
96 | ||
97 | \item These programs implement \emph{languages}: | |
98 | \begin{itemize} | |
99 | \item the \MF\ language describes bitmap glyphs in terms of lines and | |
100 | curves; and | |
101 | \item the \TeX\ language describes page layouts in terms of text, boxes, | |
102 | and glue. | |
103 | \end{itemize} | |
104 | ||
105 | \item Both languages have a similar structure: | |
106 | \begin{itemize} | |
107 | \item a base layer of primitive commands; and | |
108 | \item a macro layer to sequence the commands. | |
109 | \end{itemize} | |
110 | \end{itemize} | |
111 | \end{frame} | |
112 | ||
113 | \begin{frame}{Writing and saying the names} | |
114 | This is unfortunately tricky. | |
115 | \pause | |
116 | \begin{itemize}[<+->] | |
117 | \item The letters in \TeX\ are \emph{Greek}: capital tau, epsilon, chi. So | |
118 | it should be pronounced as \textipa{/tEx/}. \uncover<+->{`\emph{When you | |
119 | say it corretly to your computer, the terminal may become slightly | |
120 | moist.}'} | |
121 | \item While Knuth was working on \TeX, Honeywell's `Text EXecutive' | |
122 | processor appeared, so it was important that they not be confused. | |
123 | \item In print, ideally the `E' should be lowered. In media that don't | |
124 | allow this, it's usual to write the `E' in lowercase, as `\texttt{TeX}'. | |
125 | \item The name `\LaTeX' is short for `Lamport \TeX', after its initial | |
126 | author. | |
127 | \item Lamport is not proscriptive about pronunciation: \textipa{/"lA:tEk/}, | |
128 | \textipa{/"lEItEk/}, \textipa{/"lA:tEx/}, \textipa{/"lEItEx/}, | |
129 | \textipa{/"lA:tEks/}, \textipa{/"lEItEks/} are all fine (but the last | |
130 | risks confusion with dispersons of polymer microparticles in water). | |
131 | \item In writing, the `A' of `\LaTeX' is reduced, raised and kerned over | |
132 | the `L'; in media that can't do this, it's usual to write it in | |
133 | lowercase, as `\texttt{LaTeX}'. | |
134 | \end{itemize} | |
135 | \end{frame} | |
136 | ||
137 | \begin{frame}{So, err, again, what's this \LaTeX\ thing?} | |
138 | \begin{itemize}[<+->] | |
139 | \item \LaTeX\ is a \emph{macro package} (called a `format') for \TeX. It | |
140 | provides the machinery to describe \emph{documents} in terms of their | |
141 | \emph{content}, \emph{structure}, and \emph{style}. | |
142 | \item \LaTeX\ was originally written by Leslie Lamport. The moderm | |
143 | version, \LaTeXe\ was extensively reworked by `The \LaTeX~3 Project'; | |
144 | \LaTeX~3 is still basically vapourware. | |
145 | \item Other \TeX\ formats exist, notably Hans Hagen's Con\TeX{}t. | |
146 | \end{itemize} | |
147 | \end{frame} | |
148 | ||
149 | \subsection{Strengths and weaknesses} | |
150 | ||
151 | \begin{frame}{What \TeX\ is good at} | |
152 | \begin{itemize}[<+->] | |
153 | \item Knuth developed an excellent line-breaking algorithm, which examines | |
154 | whole paragraphs at a time to decide how best to split them into lines. | |
155 | General page layout is excellent. | |
156 | \item Typesetting mathematics well was one of Knuth's primary objectives | |
157 | for \TeX. Knuth studied mathematical typsetting practices of the time | |
158 | carefully; \TeX\ has pretty much taken over as the standard, since it's | |
159 | been used for just about all serious mathematical communication for the | |
160 | last thirty years. | |
161 | \item \LaTeX's \emph{float} machinery, for placing tables and figures at | |
162 | the top or bottom of pages `near' to the right place, generally works | |
163 | rather well, though sometimes it needs some gentle kicking. | |
164 | \end{itemize} | |
165 | \end{frame} | |
166 | ||
167 | \begin{frame}{What \TeX\ is bad at} | |
168 | \begin{itemize}[<+->] | |
169 | \item The default fonts (Knuth's Computer Modern family) are widely | |
170 | considered to be rather ugly. | |
171 | \item Cross-references and tables of contents are good; but \TeX\ processes | |
172 | the document strictly start-to-finish, and you must run \texttt{latex} | |
173 | multiple times to get the document to converge. | |
174 | \item Multiline text in tables is annoying: you must specify the column | |
175 | width explicitly. | |
176 | \item Complex layout and graphics are possible using extensions (e.g., | |
177 | \texttt{pstricks}, Ti\textit{k}Z), but this is something of an acquired | |
178 | taste. | |
179 | \item In particular, trying to place graphics in paragraphs, with the text | |
180 | flowing around them, is extremely difficult and doesn't work well. | |
181 | \item Generally trying to do things off the well-trodden path leaves you | |
182 | having to program \TeX\ to do things the hard way. Alas, \TeX's | |
183 | programming facilities are weird and primitive, and this is widely | |
184 | considered not to be very enjoyable. | |
185 | \end{itemize} | |
186 | \end{frame} | |
187 | ||
188 | \section{How do I install \LaTeX?} | |
189 | ||
190 | \begin{frame}{\TeX\ distributions} | |
191 | \begin{itemize}[<+->] | |
192 | \item The \TeX\ system is one of the most widely ported serious programs | |
193 | ever. Ports will be available for every system you might want to run it | |
194 | on. | |
195 | \item There are \emph{lots} of pieces. Fitting them together is no fun at | |
196 | all. | |
197 | \item A \TeX\ \emph{distribution} comes will all of the necessary pieces | |
198 | set up for you ready to go. | |
199 | \item The `\TeX\ Live' distribution is free and runs on Unix (including | |
200 | Linux), Windows and Mac\,OS. It's Unixy in flavour. This is what I use. | |
201 | \item If you run Linux, your distribution should provide \TeX\ Live | |
202 | packages. On Debian and Ubuntu, \texttt{apt install texlive-full}. | |
203 | \item For Windows, MiK\TeX\ seems to be the popular choice. | |
204 | \item For Mac\,OS, Mac\TeX seems to be the \TeX\ Live distribution of | |
205 | choice. | |
206 | \end{itemize} | |
207 | \end{frame} | |
208 | ||
209 | \section{How do I use \LaTeX?} | |
210 | ||
211 | \subsection{Basic syntax} | |
212 | ||
213 | \begin{frame}[fragile]{A minimal document} | |
214 | The following will give you a single sheet of paper with the text `Hello, | |
215 | world!' printed on it. | |
216 | \begin{listing} | |
217 | \documentclass{article} | |
218 | \begin{document} | |
219 | Hello, world! | |
220 | \end{document} | |
221 | \end{listing} | |
222 | \pause | |
223 | Unfortunately, it will want to give you a sheet of \emph{US letter}-sized | |
224 | paper. | |
225 | \begin{listing} | |
226 | \documentclass[a4paper]{article} | |
227 | \begin{document} | |
228 | Hello, world! | |
229 | \end{document} | |
230 | \end{listing} | |
231 | \end{frame} | |
232 | ||
233 | \begin{frame}[fragile]{Magical characters} | |
234 | The \TeX\ language steals quite a lot of characters for its own purposes. | |
235 | There are more-or-less convenient ways of typesetting them literally. | |
236 | \begin{itemize}[<+->] | |
237 | \item The backslash `@|\\|' introduces \emph{control sequences}. | |
238 | \item Braces `@|\{|\dots@|\}|' surround arguments and group things | |
239 | together. | |
240 | \item The percent sign `@|\\\%|' starts a comment which continues to the | |
241 | end of the line. | |
242 | \item The dollar sign `@|\$|' switches into or out of mathematical text. | |
243 | \item The ampersand `@|\&|' separates cells in tables. | |
244 | \item The ampersand `@|\#|' indicates where to substitute argument values | |
245 | in macros and alignments. | |
246 | \item The underscore `@|\_|' and caret `@|\^|' indicate mathematical | |
247 | \emph{subscripts} and \emph{superscripts}. | |
248 | \item The tilde `@|\~|' is like a space, but prevents line breaking. | |
249 | \end{itemize} | |
250 | \end{frame} | |
251 | ||
252 | \begin{frame}{Whitespace} | |
253 | Whitespace is somewhat significant to \TeX. | |
254 | \begin{itemize}[<+->] | |
255 | \item Spaces separate words and allow line breaking. Multiple spaces mean | |
256 | the same a single space. | |
257 | \item A single newline acts just like a space, so you can break paragraphs | |
258 | in your source text however you like. | |
259 | \item A \emph{blank line} indicates a paragraph break. (\TeX\ actually | |
260 | synthesizes a @|\\par| command internally when it sees a blank line.) | |
261 | \item A comment, and its terminating newline, are \emph{entirely} ignored. | |
262 | \item White space \emph{also} terminates alphabetic control-sequence | |
263 | names. Use `@|\\ |' to force an actual space to the output. | |
264 | \end{itemize} | |
265 | \end{frame} | |
266 | ||
267 | \begin{frame}[fragile]{Example document: Basic structure} | |
268 | (Download the PDF from \url{https://odin.gg/u/VlC}.) | |
269 | \begin{block}<+->{Overview} | |
270 | \begin{listing} | |
271 | \documentclass[a4paper]{article} | |
272 | ... | |
273 | \title{...} | |
274 | \author{...} | |
275 | \begin{document} | |
276 | \maketitle | |
277 | \begin{abstract} | |
278 | ... | |
279 | \end{abstract} | |
280 | \tableofcontents | |
281 | \section{...} | |
282 | ... | |
283 | \end{document} | |
284 | \end{listing} | |
285 | \end{block} | |
286 | \end{frame} | |
287 | ||
288 | \begin{frame}[fragile]{Example document: Paragraphs} | |
289 | \begin{block}<+->{Paragraphs} | |
290 | \begin{listing} | |
291 | This is an initial paragraph ... | |
292 | ||
293 | This is a second paragraph, ... | |
294 | \end{listing} | |
295 | \end{block} | |
296 | \begin{block}<+->{Lists} | |
297 | \begin{listing} | |
298 | \begin{itemize} | |
299 | \item We can typeset lists of things. | |
300 | \item | |
301 | \begin{enumerate} | |
302 | \item ... | |
303 | \end{enumerate} | |
304 | ... | |
305 | \end{itemize} | |
306 | \end{listing} | |
307 | \end{block} | |
308 | \end{frame} | |
309 | ||
310 | \begin{frame}[fragile]{Example document: Font changes} | |
311 | \begin{block}<+->{Font changes} | |
312 | \begin{listing} | |
313 | ... \emph{...} ... | |
314 | ... \textbf{...} ... | |
315 | ... \textsf{...} ... | |
316 | ... \texttt{...} ... | |
317 | \end{listing} | |
318 | \end{block} | |
319 | \end{frame} | |
320 | ||
321 | \begin{frame}[fragile]{Example document: Cross-references} | |
322 | \begin{block}<+->{Labelling things} | |
323 | \begin{listing} | |
324 | \section{...} \label{sec:...} | |
325 | ... | |
326 | \begin{enumerate} | |
327 | \item \label{en:...} | |
328 | \end{enumerate} | |
329 | \end{listing} | |
330 | \end{block} | |
331 | \begin{block}<+->{Referring to things} | |
332 | \begin{listing} | |
333 | ... Section~\ref{sec:...} ... | |
334 | ... | |
335 | ... item~\ref{en:...} ... | |
336 | \end{listing} | |
337 | \end{block} | |
338 | \end{frame} | |
339 | ||
340 | \begin{frame}[fragile]{Example document: Tables} | |
341 | \begin{block}<+->{Table} | |
342 | \begin{listing} | |
343 | \centering | |
344 | \begin{tabular}{...} \hline | |
345 | ... & ... & ... \\ \hline | |
346 | ... & ... & ... \\ | |
347 | ... & \multicolumn{2}{...}{...} \\ | |
348 | ... & ... & ... \\ \hline | |
349 | \end{tabular} | |
350 | \end{listing} | |
351 | \end{block} | |
352 | \begin{block}<+->{Floating environments} | |
353 | \begin{listing} | |
354 | \begin{table} | |
355 | ... | |
356 | \caption{...} | |
357 | \label{tab:...} | |
358 | \end{table} | |
359 | \end{listing} | |
360 | \end{block} | |
361 | \end{frame} | |
362 | ||
363 | \begin{frame}[fragile]{Example document: Mathematics} | |
364 | \begin{block}<+->{Inline maths; display maths} | |
365 | \begin{listing} | |
366 | ... $...$ ... | |
367 | \[ ... \] | |
368 | \end{listing} | |
369 | \end{block} | |
370 | \begin{block}<+->{More symbols} | |
371 | \begin{listing} | |
372 | \usepackage{amssymb} | |
373 | \end{listing} | |
374 | \end{block} | |
375 | \begin{block}<+->{General stuff} | |
376 | \begin{listing} | |
377 | ... x^{n-1}_2 ... | |
378 | ... \frac{...}{...} ... | |
379 | \end{listing} | |
380 | \end{block} | |
381 | \begin{block}<+->{Matrices} | |
382 | \begin{listing} | |
383 | \left( \begin{array}{...} | |
384 | ... & ... & ... \\ ... | |
385 | \end{array} \right) | |
386 | \end{listing} | |
387 | \end{block} | |
388 | \end{frame} | |
389 | ||
390 | \begin{frame}[fragile]{Example document: Miscellaneous niceties} | |
391 | \begin{block}<+->{Character sets} | |
392 | \begin{listing} | |
393 | \usepackage[T1]{fontenc} | |
394 | \usepackage[utf8]{inputenc} | |
395 | \end{listing} | |
396 | \end{block} | |
397 | \begin{block}<+->{Localization} | |
398 | \begin{listing} | |
399 | \usepackage[british]{babel} | |
400 | \end{listing} | |
401 | \end{block} | |
402 | \begin{block}<+->{Hyperlinking} | |
403 | \begin{listing} | |
404 | \usepackage{hyperref} | |
405 | \end{listing} | |
406 | \end{block} | |
407 | \begin{block}<+->{Non-default fonts} | |
408 | \begin{listing} | |
409 | \renewcommand{\rmdefault}{ppl} | |
410 | \renewcommand{\sfdefault}{phv} | |
411 | \renewcommand{\ttdefault}{pcr} | |
412 | \end{listing} | |
413 | \end{block} | |
414 | \end{frame} | |
415 | ||
416 | ||
417 | \section{What useful packages are there?} | |
418 | ||
419 | \begin{frame}{\LaTeX\ packages} | |
420 | \begin{itemize}[<+->] | |
421 | \item Generally, the answer to `How do I do this thing in \LaTeX?' is | |
422 | `Someone wrote a package to do just that.' | |
423 | \item Trying to do things yourself gets you enmired in raw \TeX\ | |
424 | programming. If that sounds like fun then go right ahead. | |
425 | \item The \TeX\ Live distribution comes bundled with \emph{over two | |
426 | thousand} packages, pretty much everything in the Comprehensive \TeX\ | |
427 | Archive Network (CTAN). You just need to add the right @|\\usepackage| | |
428 | command to your document preamble. | |
429 | \end{itemize} | |
430 | \end{frame} | |
431 | ||
432 | \begin{frame}{The most important packages} | |
433 | My highly individual view: | |
434 | \begin{itemize}[<+->] | |
435 | \item The standard package collection includes \texttt{color}, | |
436 | \texttt{dcolumn}, \texttt{graphicx}, \texttt{longtable}, and | |
437 | \texttt{tabularx}. | |
438 | \item \texttt{babel} supports `foreign' -- i.e., not American English -- | |
439 | languages, with many of their distinctive typesetting conventions. | |
440 | \item \texttt{hyperref} does automatic hyperlinking in PDF documents. | |
441 | \item \texttt{tikz} does drawings and diagrams. | |
442 | \item \texttt{beamer} makes presentations like this one. | |
443 | \item \texttt{memoir} is an extremely versatile document class, intended | |
444 | mostly for high-quality books. | |
445 | \end{itemize} | |
446 | \end{frame} | |
447 | ||
448 | \section{How do I find out more?} | |
449 | ||
450 | \begin{frame}{Books} | |
451 | Alas, much basic documentation is in conventionally-published books. \\ | |
452 | \begin{itemize}[<+->] | |
453 | \item \emph{The \LaTeX{}book} by Leslie Lamport. | |
454 | \item \emph{The \LaTeX\ Companion} by the \LaTeX\ maintainers. | |
455 | \item \emph{The \TeX book} by Don Knuth. | |
456 | \end{itemize} | |
457 | \uncover<+->{(All published by Addison Wesley.)} \medskip | |
458 | ||
459 | \uncover<+->{There is \emph{\LaTeXe: An unofficial reference manual}, by | |
460 | Stephen Gilmore, Torsten Martinsen, and Karl Berry, included with \TeX\ | |
461 | Live.} | |
462 | \end{frame} | |
463 | ||
464 | \begin{frame}{Online} | |
465 | \begin{block}<+->{Learning} | |
466 | \begin{itemize}[<+->] | |
467 | \item<.-> There is much good information at \url{https://texfaq.org/}. | |
468 | \item \url{https://texfaq.org/FAQ-man-latex} links to many introductions | |
469 | to \LaTeX. \emph{I've not read any of them.} | |
470 | \end{itemize} | |
471 | \end{block} | |
472 | \begin{block}<+->{Asking for help} | |
473 | \begin{itemize}[<+->] | |
474 | \item<.-> Traditionally, Usenet \texttt{comp.text.tex}. | |
475 | \item Now, probably \url{https://tex.stackexchange.com/} looks like your | |
476 | best bet. | |
477 | \end{itemize} | |
478 | \end{block} | |
479 | \end{frame} | |
480 | ||
481 | \end{document} | |
482 | ||
483 | %%% Local variables: | |
484 | %%% mode: latex | |
485 | %%% TeX-PDF-mode: t | |
486 | %%% TeX-master: t | |
487 | %%% End: |