summaryrefslogtreecommitdiff
path: root/info/dickimaw/src/novices/term-defs
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /info/dickimaw/src/novices/term-defs
Initial commit
Diffstat (limited to 'info/dickimaw/src/novices/term-defs')
-rw-r--r--info/dickimaw/src/novices/term-defs/argument.tex5
-rw-r--r--info/dickimaw/src/novices/term-defs/auxiliary.tex53
-rw-r--r--info/dickimaw/src/novices/term-defs/cls.tex11
-rw-r--r--info/dickimaw/src/novices/term-defs/command.tex144
-rw-r--r--info/dickimaw/src/novices/term-defs/declaration.tex84
-rw-r--r--info/dickimaw/src/novices/term-defs/dvi.tex18
-rw-r--r--info/dickimaw/src/novices/term-defs/environment.tex51
-rw-r--r--info/dickimaw/src/novices/term-defs/fragile.tex26
-rw-r--r--info/dickimaw/src/novices/term-defs/group.tex32
-rw-r--r--info/dickimaw/src/novices/term-defs/hyphenation.tex34
-rw-r--r--info/dickimaw/src/novices/term-defs/intersentencespacing.tex124
-rw-r--r--info/dickimaw/src/novices/term-defs/introduction.tex129
-rw-r--r--info/dickimaw/src/novices/term-defs/length.tex104
-rw-r--r--info/dickimaw/src/novices/term-defs/mandatory.tex83
-rw-r--r--info/dickimaw/src/novices/term-defs/optional.tex75
-rw-r--r--info/dickimaw/src/novices/term-defs/output.tex14
-rw-r--r--info/dickimaw/src/novices/term-defs/perl.tex20
-rw-r--r--info/dickimaw/src/novices/term-defs/preamble.tex11
-rw-r--r--info/dickimaw/src/novices/term-defs/robust.tex1
-rw-r--r--info/dickimaw/src/novices/term-defs/short.tex10
-rw-r--r--info/dickimaw/src/novices/term-defs/source.tex6
-rw-r--r--info/dickimaw/src/novices/term-defs/terminal.tex59
-rw-r--r--info/dickimaw/src/novices/term-defs/tex.tex16
23 files changed, 1110 insertions, 0 deletions
diff --git a/info/dickimaw/src/novices/term-defs/argument.tex b/info/dickimaw/src/novices/term-defs/argument.tex
new file mode 100644
index 0000000000..16690f2c54
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/argument.tex
@@ -0,0 +1,5 @@
+Some \glspl{command} take one or more \glspl*{argument}. This
+provides a way to give \LaTeX\ additional information so that it is
+able to carry out the command. There are two types of arguments:
+\glslink{mandatory}{mandatory} and \glslink{optional}{optional}.
+
diff --git a/info/dickimaw/src/novices/term-defs/auxiliary.tex b/info/dickimaw/src/novices/term-defs/auxiliary.tex
new file mode 100644
index 0000000000..2f8b633578
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/auxiliary.tex
@@ -0,0 +1,53 @@
+When \LaTeX\ creates your \gls{output}, it not only creates a PDF
+file but also creates other associated files. The most common of these are
+the log file\indexLOG, which has the extension \texttt{.log}, and
+the \gls*{auxiliary}, which has the extension \texttt{.aux}.
+
+The log file contains a transcript of the most recent \LaTeX\ run.
+It lists all the files that have been loaded, including the \glsterm{cls}
+and any \htmlref{packages}{sec:packages} that your document has used.
+There should also be the class or package version number and date,
+although this is dependent on the class or package author. If you
+ever want \htmlref{to ask for help}{ch:help}, you need to say what
+version you are using.
+
+For example, this book uses the \icls{scrbook}
+class, so the log file includes the lines:
+\begin{flushleft}\ttfamily
+\noindent
+(\slash usr\slash local\slash texlive\slash 2010\slash texmf-dist\slash tex\slash latex\slash koma-script\slash scrbook.cls\par
+\noindent
+Document Class:\ scrbook 2010\slash 06\slash 17 v3.06 KOMA-Script document class (book)\par
+\end{flushleft}
+(This is actually now out-of-date as the latest version at the time
+of writing this is version~3.11a dated 2012/07/05.)
+
+Error messages, warnings and general information messages are also
+written to the log file as well as the document statistics. You can
+delete this log file if you like. It will be created again the next
+time you run \LaTeX.
+
+The auxiliary file contains all the information needed for
+cross-referencing (covered in \sectionref{sec:crossref}). This is
+needed to ensure all your cross-references are up-to-date. You can
+delete this file, but you will need at least two \LaTeX\ runs to
+ensure your cross-references are correct the next time you create
+your \gls{output}.
+
+\htmlref{TeXWorks}{sec:texworks} also creates a file with the extension
+\texttt{.synctex.gz}\indexSYNCTEX. This file allows you to jump to
+and from the \gls{source} and the appropriate part of the
+\gls{output}. If you delete this file, you will have to run \LaTeX\
+again before you can use this function.
+
+Other files that may be created include the table of contents file
+(\texttt{.toc})\indexTOC, the list of figures file
+(\texttt{.lof})\indexLOF\ and the list of tables file (\texttt{.lot})\indexLOT.
+Some \glsunset{cls}\glspl{cls}\glsreset{cls} or \htmlref{packages}{sec:packages} create
+additional files. If your operating system
+hides file extensions, you might want to switch off this behaviour,
+if possible, to make it easier to distinguish between all the
+various files.
+
+TeXWorks has a menu item \menu{File}\menuto\menu{Remove AUX Files}
+that will remove the auxiliary files.
diff --git a/info/dickimaw/src/novices/term-defs/cls.tex b/info/dickimaw/src/novices/term-defs/cls.tex
new file mode 100644
index 0000000000..53d0bae718
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/cls.tex
@@ -0,0 +1,11 @@
+The \gls*{cls} (\texttt{.cls}) defines the page layout, heading
+styles and various \glspl{command} and \glspl{environment} needed for a
+particular type of document. The class file is specified using the
+command
+\begin{definition}
+\glsentrytext{documentclass}\oarg{\meta{options}}\marg{\meta{class-name}}
+\end{definition}%
+where \meta{class-name} is the name of the
+file without the \texttt{.cls} extension. All \LaTeX\ documents
+must start with this command. This book uses the
+\icls{scrbook} class.
diff --git a/info/dickimaw/src/novices/term-defs/command.tex b/info/dickimaw/src/novices/term-defs/command.tex
new file mode 100644
index 0000000000..1453311872
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/command.tex
@@ -0,0 +1,144 @@
+A \gls*{command} is used to tell \LaTeX\ to do a particular thing
+at that point in the document. These are the basic forms a command
+can take:
+
+\begin{enumerate}
+\item \label{itm:controlword}\textbf{A Control Word.}\index{command!control word|hyperpage}
+
+This is a backslash \gls{backslashchar} followed by letters (A,\ldots,Z,a,\ldots,z). \faq{Commands gobble following space}{xspace}There can be no
+non-alphabetical characters in the command, apart from the initial
+backslash, and the name is always \textbf{case-sensitive} so, for example, \glsni{gamma}
+and \glsni{Gamma} have different meanings. One command
+that often trips up new users is \gls{LaTeX}, which prints the
+LaTeX logo: \makeimg{LaTeX logo}{\LaTeX}. This command has three
+captial letters and two lower case letters. If you get the case
+of any of the letters incorrect, you will get an \dq{undefined
+control sequence} error.
+
+\strut\warning There must be no space between the backslash and the
+start of the command name. Some command names are made up of two
+or more names joined together, such as \glsni{tableofcontents}.
+\emph{Make sure you don't insert any spaces in the control word.} This will
+either lead to an error or an unexpected result.
+For example,
+\begin{alltt}\correct
+\cmdname{appendixname}
+\end{alltt}
+displays \dq{\appendixname} but
+\begin{alltt}\wrong
+\cmdname{appendix name}
+\end{alltt}
+switches to the appendices and then prints the word \dq{name}.
+
+Most \LaTeX\ commands have fairly self-explanatory names.
+(For example, \booklinebreak\glsni{chapter} starts a new chapter and
+\glsni{rightarrow} prints an arrow pointing to the right.)
+However, in most cases, you need to use U.S. spelling
+(for example, \glsni{color} rather than \cmdname{colour}).
+
+This is the most common form of command. Any spaces immediately
+following a command of this type are ignored, so for example
+\begin{codeS}
+\gls{TeX} nician
+\end{codeS}%
+ will produce
+\begin{resultS}[TeXnician (where the TeX logo is written with a dropped E)]
+\TeX nician
+\end{resultS}%
+ whereas
+\begin{codeS}
+\glsni{TeX}\marg{} nician
+\end{codeS}%
+ will produce
+\begin{resultS}[TeX nician (where the TeX logo is written with a dropped E)]
+\TeX{} nician
+\end{resultS}%
+\bookpagebreak
+ But the following will cause an \dq{undefined control sequence}
+ error:
+\begin{alltt}\wrong
+\cmdname{TeXnician}
+\end{alltt}
+
+There is one command that you must use in every document you create,
+and that is the \glsi{documentclass} command. This command
+must be placed at the very start of your document, and indicates what
+type of document you are creating. This command is described in more detail
+\latex{in }\chapterref[later]{ch:simpledoc}.
+
+\item \label{itm:starredcommand}\textbf{A Starred Command}\index{command!starred|hyperpage}
+
+Some commands have variants that are indicated by an asterisk at the
+end of the name. For example, \verb|\chapter| makes a numbered
+chapter whereas \verb|\chapter*| is makes an unnumbered chapter.
+A \keyword{starred command} is the version of the command with the
+asterisk. (On a UK keyboard the asterisk character is usually
+located on the same key as the digit~\texttt{8}.)
+
+This may seem like a different form to a control word, described
+above. After all, I've just said that a control word can only
+contain alphabetical characters. However a starred command is actually a control
+word (such as \glsi{chapter}) followed by an asterisk. The
+control word checks to see if the next character is
+an asterisk. If it is, it performs one action, otherwise it performs
+another action.
+
+This type should therefore just come under the previous category,
+but as you will often hear of \dq{starred commands} it seemed better
+to have a separate category.
+
+\item \label{itm:controlsymbol}\textbf{A Control Symbol.}\index{command!control
+symbol|hyperpage}
+
+This is a backslash followed by a single non-alphabetical character.
+For example \glsi{percent} will print a percent symbol.
+Spaces are
+not ignored after this type of command, for example
+\begin{codeS}
+17.5\glsi{percent} VAT
+\end{codeS}%
+will produce
+\begin{resultS}[vat.html]
+17.5\% VAT
+\end{resultS}
+
+It's also possible to have starred forms of control symbols. For
+example \glsi{newline.dbbackslashchar} forces a line break. If it's
+not followed by an asterisk a page break is allowed at that line
+break, but if it is followed by an asterisk \verb|\\*| no page break is allowed
+at that line break. (If a page break is needed, it will be made at
+the end of the previous line instead.)
+
+\item \label{itm:charactersequence}\textbf{Character Sequence.}\index{command!character
+sequence|hyperpage}
+
+Some special sequences of characters combine to form an instruction. For example \texttt{ffi}
+is the command to produce the \makeimg{ffi}{ffi} ligature, and the sequence
+of symbols \iexclamdowncmd\ is the command to produce the upside
+down exclamation mark !`
+
+\item \textbf{An Internal Command.}\index{command!internal|hyperpage}
+
+This is like the first type, a control word, but the
+\texttt{@}\index{"@ in a command name@\texttt{"@} (in a command name)|hyperpage}
+character appears in the command name (for example
+\cmdname{c@section}) \emph{however} internal commands should only be
+used in \htmlref{class files}{sec:cls} or
+\htmlref{packages}{sec:packages}. The @ symbol takes on a special
+meaning when a file is included using \glsi{documentclass} (a
+class file) or \glsi{usepackage} (a package).
+
+For example, in a class file or package \cmdname{c@section} is an
+internal representation of the section
+\htmlref{counter}{ch:counters}, whereas in a \texttt{.tex} file
+\cmdname{c@section} is interpreted as the command \cmdname{c} (the
+cedilla \htmlref{accent command}{obj:accents}) that takes the
+character @ as its argument, followed by \texttt{section}, which
+produces the rather odd looking
+\makeimg{@ with a cedilla section}{\c{@}section}\faq{\textbackslash @ and @ in macro
+names}{atsigns}.
+
+Don't be tempted to use internal commands until you have first
+grasped the basics. You have been warned!
+
+\end{enumerate}
diff --git a/info/dickimaw/src/novices/term-defs/declaration.tex b/info/dickimaw/src/novices/term-defs/declaration.tex
new file mode 100644
index 0000000000..beea9b3a2f
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/declaration.tex
@@ -0,0 +1,84 @@
+The term \gls*{declaration} is used to refer to a \gls{command} that
+affects the document from that point onwards. The declaration itself
+does not produce any text and, in most cases, its effect can be
+localised by placing the declaration within a \gls{group}. For
+example, \glsi{bfseries} is a declaration that switches the
+current font weight to bold, so the following code
+\begin{code}
+\begin{alltt}
+Here is some normal text.
+\glsni{bfseries} Here is some bold text.
+\end{alltt}
+\end{code}%
+will appear in the typeset document looking like:
+\begin{resultS}[declaration.html]
+Here is some normal text. \bfseries Here is some bold text.
+\end{resultS}
+
+Some declarations don't immediately have a visible effect. For
+example, the declarations
+\begin{definition}
+\gls{raggedright}
+\gls{raggedleft}
+\gls{centering}
+\end{definition}
+only set the paragraph justification to ragged-right,
+ragged-left or centred, respectively, if the
+declaration is still in effect at the end of the paragraph.
+That is, if it is still in effect at the next \glsni{par} or blank line.
+
+\xminisec{Example:}
+\begin{code}
+This is an example paragraph illustrating the paragraph justification declarations. The default justification is fully justified.
+\glsni{raggedright} The paragraph justification can be switched to
+ragged-right or \glsni{raggedleft} ragged-left.
+\glsni{par}
+\end{code}
+\begin{result}[raggedleft.html]
+This is an example paragraph illustrating the paragraph justification declarations. The default justification is fully justified.
+\raggedright The paragraph justification can be switched to
+ragged-right or \raggedleft ragged-left.
+\par
+\end{result}
+Above, the justification at the paragraph break is ragged-left, so
+that's the justification used for the entire paragraph.
+Compare with:
+\begin{code}
+\marg{This is an example paragraph illustrating the paragraph justification declarations. The default justification is fully
+justified.
+\glsni{raggedright} The paragraph justification can be switched to
+ragged-right or \glsni{raggedleft} ragged-left.}
+\glsni{par}
+\end{code}
+\begin{result}[fullyjustified.html]
+\setlength{\parindent}{1.5em}% For the benefit of LaTeX2HTML
+{This is an example paragraph illustrating the paragraph justification declarations. The default justification is fully justified.
+\raggedright The paragraph justification can be switched to
+ragged-right or \raggedleft ragged-left.}\relax
+\par
+\end{result}
+Above, the justification at the paragraph break is fully-justified,
+since both the declarations \glsni{raggedright} and
+\glsni{raggedleft} are cancelled when their local scope (signified
+by the curly braces) ends.
+This type of mistake most often occurs when people try to centre
+text doing something like:
+\begin{alltt}
+\marg{\glsni{centering} Some text that is supposed to
+be centred.
+}
+\wrong
+Next paragraph.
+\end{alltt}
+The paragraph break (blank line) must go before the closing brace.
+\begin{alltt}
+\marg{\glsni{centering} Some text that is supposed to
+be centred.
+\correct
+}
+Next paragraph.
+\end{alltt}
+
+\warning While we're on the subject of centred text, don't be
+tempted to use \cmdname{centerline}. It's obsolete~\cite{l2tabu}.
+
diff --git a/info/dickimaw/src/novices/term-defs/dvi.tex b/info/dickimaw/src/novices/term-defs/dvi.tex
new file mode 100644
index 0000000000..34cfb3a3d4
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/dvi.tex
@@ -0,0 +1,18 @@
+\glsterm{tex} (and subsequently \LaTeX) originally created \glspl*{dvi}
+instead of PDF files.\footnote{There was no PDF
+back then.} However, although there are free DVI viewers, not many
+people have them installed, so it's really only \TeX\ users who
+can read them. Also, you can't embed image files in a DVI file or
+have fancy effects, such as rotation. Instead, people can use
+\TeX\slash \LaTeX\ to create
+a DVI file and then use an application to convert the DVI file to
+PostScript.
+
+These days PDF is the preferred platform-independent format, and
+with the advent of PDF\TeX, modern \TeX\slash \LaTeX\ users can
+directly create PDF documents rather than going through the DVI
+route. Some people still prefer to create DVI files as an
+intermediate step, particularly if they want to embed PostScript
+instructions (as is done by the \isty{pstricks} package). For
+simplicity, this book assumes that you have a modern \TeX\
+distribution and are using PDF\LaTeX\ rather than \LaTeX\TO DVI.
diff --git a/info/dickimaw/src/novices/term-defs/environment.tex b/info/dickimaw/src/novices/term-defs/environment.tex
new file mode 100644
index 0000000000..d4b8f0aa3a
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/environment.tex
@@ -0,0 +1,51 @@
+An \gls*{environment} is a block of code contained within the
+\glspl{command}
+\begin{definition}
+\gls{begin}\marg{\meta{env-name}}
+\end{definition}%
+and
+\begin{definition}
+\gls{end}\marg{\meta{env-name}}
+\end{definition}%
+where \meta{env-name} is the
+name of the environment. The block of code is then formatted in a
+method specific to that environment. For example, the
+\gls{env-bfseries}\footnote{Note there is no backslash in
+the
+environment name.}\ environment will typeset the contents of the
+environment in a bold font. The following code:
+\begin{codeS}
+\glsni{begin}\marg{bfseries}Here is some bold text.\glsni{end}\marg{bfseries}
+\end{codeS}%
+will appear in the typeset document looking like:
+\begin{resultS}[Here is some bold text. (The entire sentence is in a
+bold font.)]
+\begin{bfseries}Here is some bold text.\end{bfseries}
+\end{resultS}
+
+Some environments also supply \glspl{command} that may only be used
+within that environment.
+
+\xminisec{Example:}
+The \glsni{env-itemize} environment provides a command called
+\glsni{item} so that you can specify individual items within
+an unordered list:
+\begin{code}
+\begin{alltt}
+Shopping List:
+\glsni{begin}\marg{itemize}
+ \glsni{item} Cabbages
+ \glsni{item} Bananas
+ \glsni{item} Apples
+\glsni{end}\marg{itemize}
+\end{alltt}
+\end{code}%
+The above will produce the following output:
+\begin{result}[shoppinglist.html]
+Shopping List:
+\begin{itemize}
+\item Cabbages
+\item Bananas
+\item Apples
+\end{itemize}
+\end{result}
diff --git a/info/dickimaw/src/novices/term-defs/fragile.tex b/info/dickimaw/src/novices/term-defs/fragile.tex
new file mode 100644
index 0000000000..115f956157
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/fragile.tex
@@ -0,0 +1,26 @@
+Certain types of \glspl{command}, called \glspl*{fragile}, can
+seriously mess things up when they are used in what is termed a
+\emph{moving argument}. These types of
+\gls{argument}
+are generally those whose contents are copied to another part of the
+document. For example, section headings appear at the start of a
+section, but they can also appear in the table of contents. The
+\glsi{footnote} command is a fragile command, so
+\begin{alltt}\wrong
+\glsni{section}\marg{A heading\glsni{footnote}\marg{with a footnote}}
+\end{alltt}
+will cause an error\faq{An extra `\rightbracesym'??}{extrabrace}.
+
+If there is no other command to use in its place, you should
+use \gls{protect} immediately before the
+fragile command:
+\begin{codeS}
+\begin{alltt}
+\glsni{section}\marg{A heading\glsni{protect}\glsni{footnote}\marg{with a footnote}}
+\end{alltt}
+\end{codeS}%
+\faq{Footnotes in LaTeX section headings}{ftnsect}This, however, is
+a contrived example, because it isn't a good idea to have a footnote
+in a
+section heading, as it will also end up in the table of contents,
+and possibly in page headings.
diff --git a/info/dickimaw/src/novices/term-defs/group.tex b/info/dickimaw/src/novices/term-defs/group.tex
new file mode 100644
index 0000000000..2604ce6db3
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/group.tex
@@ -0,0 +1,32 @@
+ A segment of code may be \glsd[hyper=false]{group} by placing it
+ within \gls{leftbracechar} and \gls{rightbracechar} (curly braces).
+ Most \glspl{command} that occur within a group will be
+ local to that group. For example, \glsi{bfseries} changes
+ the font weight to bold, so the following segment of code:
+\begin{code}
+Here is some text. \marg{This text \glsi{bfseries} is in a
+group.} Here is some more text.
+\end{code}%
+will appear in the typeset document looking like:
+\begin{resultS}[grouping.html]
+Here is some text. {This text \bfseries is in a group.}
+Here is some more text.
+\end{resultS}
+
+As can be seen, the font change only stays in effect until it
+reaches the end of the group (signified by the closing curly brace
+\glsni{rightbracechar}.) For a command to be in the same
+\keywordfmt{scope} as another command, both commands must be within the same group.
+For example, in the following, \glsi{bfseries} and
+\glsi{itshape} are in the same scope:
+\begin{codeS}
+\marg{\glsi{bfseries} Some bold \glsi{itshape}
+and italic text}
+\end{codeS}
+But below, they are in different scopes:
+\begin{codeS}
+\marg{\glsni{bfseries} Some bold text}
+\marg{\glsni{itshape} and some italic text}
+\end{codeS}
+
+\Glsplural{environment} form an implicit scope.
diff --git a/info/dickimaw/src/novices/term-defs/hyphenation.tex b/info/dickimaw/src/novices/term-defs/hyphenation.tex
new file mode 100644
index 0000000000..1bf2a2649e
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/hyphenation.tex
@@ -0,0 +1,34 @@
+Words sometimes require \gls*{hyphenation} to help justify paragraphs
+and prevent overly large areas of white space or protrusions into
+the right margin. Some word processors by default don't hyphenate
+words in fully-justified paragraphs, which has led some people to
+believe that hyphenation is bad. Just because word processors do
+something a certain way, doesn't mean that it's the correct way.
+\TeX\ has an excellent hyphenation algorithm, but the default
+hyphenation pattern is designed for English. If you are writing in
+another language, use the \isty{babel} package to switch the
+hyphenation pattern (see \sectionref{sec:babel}).
+
+Despite using an excellent algorithm, \TeX\ occasionally gets the
+hyphenation wrong, particularly where the hyphenation is context
+sensitive. There are two ways of setting the hyphenation for a given
+word.
+
+\begin{enumerate}
+\item For all occurrences of the word, use
+\begin{definition}
+\gls{cshyphenation}\marg{\meta{hyphenated word}}
+\end{definition}
+inserting a hyphen \Indextt{-} at all possible hyphenation
+points. For example:
+\begin{codeS}
+\glsni{cshyphenation}\marg{gal-axy}
+\end{codeS}
+
+\item For a particular instance of a word, use \gls{hyphen} at the
+hyphenation point within the word. For example:
+\begin{code}
+There once was a little alien called Uiop who lived in the faraway gal\glsni{hyphen}axy of
+Zxcv.
+\end{code}
+\end{enumerate}
diff --git a/info/dickimaw/src/novices/term-defs/intersentencespacing.tex b/info/dickimaw/src/novices/term-defs/intersentencespacing.tex
new file mode 100644
index 0000000000..a91f4f9a96
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/intersentencespacing.tex
@@ -0,0 +1,124 @@
+\Gls*{intersentencespacing} refers to the default type of space
+to be inserted between adjacent sentences within a paragraph. There is
+disagreement over what size this space should be. French spacing
+uses the same space as used between words. English spacing uses an
+\Index{en-space} (half an \htmlref{em}{tab:units}\doifbook
+ {\csname footnote\endcsname{see \sectionref{sec:length}}}-space). With proportional
+fonts\latex{ (such as this one)}, the en-space is slightly larger than a
+single space. The difference is shown here:
+\begin{code}
+\begin{alltt}
+X X
+
+X\gls{enspace} X
+\end{alltt}
+\end{code}
+\begin{result}
+X X
+\glspar
+X\enspace X
+\end{result}
+(Note that with fully-justified paragraphs, in both cases the spaces
+may be stretched to ensure the sides of the paragraph are flushed.)
+
+\TeX\ (and \LaTeX) defaults to English spacing, but you can switch
+to French spacing using the declaration:
+\begin{definition}
+\gls{frenchspacing}
+\end{definition}
+and switch back again using
+\begin{definition}
+\gls{nonfrenchspacing}
+\end{definition}
+
+There was no en-space on a typewriter, so typists started using two
+spaces in an attempt to emulate that slightly larger than one space
+look. This habit has spread to word-processor users as well, and now
+many people incorrectly assume English spacing means adding two
+spaces after a full stop, which is too wide and looks ugly, but this
+error shouldn't be used as a criticism against English spacing.
+
+There has been a gradual trend towards French spacing over the last
+century, and some publishers insist on it. I~think this may in part
+be due to a backlash against the ugliness of two spaces in
+typewritten and word-processed documents. In fact the Oxford Style
+Manual~\cite{oxford} simply states, \dq{In text, only use a single
+space after all sentence punctuation.}
+
+Personally, I~prefer English spacing, particularly in reference
+books. I~have many reference books on my shelf, but I~haven't read
+any of them from cover-to-cover. I~flick to a particular section and
+skim through the paragraphs until I~reach the desired bit of
+information. Sometimes I've already looked something up, so I~have a vague
+idea as to where to find the information. The extra space between
+sentences makes it easier to locate a particular sentence.
+
+This isn't so much of an issue with books designed to be read from
+beginning to end, such as a novel. However, I~have read one such
+book that used a font where the commas had tiny tails and most of
+the sentences contained multiple proper nouns, which made it very
+difficult to read as it wasn't clear where the sentences ended. Is
+that a full stop followed by a new sentence that happens to start
+with a proper noun, or is it a comma whose tiny tail is blurred by
+my short-sighted eyes followed by a clause that happens to start
+with a proper noun? A~well-written, well-presented document should
+not interrupt the reader, forcing them to continually go back to
+re-parse a sentence.
+
+However, if you are writing a document, whether prose or technical,
+with the intention of having it published you must check with the
+publisher's guidelines to see if they insist on a particular style.
+\xminisec{Notes:}
+An end of sentence punctuation mark can be one of: a full stop
+(\gls{sentence.periodchar}), exclamation mark
+(\gls{sentence.exclamchar}) or question mark (\gls{questionchar}).
+
+\begin{enumerate}
+\item If an end of sentence punctuation mark follows a lower case
+character, \TeX\ assumes the punctuation mark indicates the end of
+the sentence. For example, as in:
+\begin{codeS}
+Did you see that? I certainly did.
+\end{codeS}
+
+\item Where this isn't the case, use \gls{spacesym} (backslash
+followed by a space).
+\begin{code}
+This can happen when a sentence contains
+a lower case abbreviation, e.g.\glsni{spacesym}like this
+one.
+\end{code}
+
+\item If an end of sentence punctuation mark follows an upper case
+character, \TeX\ assumes the sentence hasn't ended at that point.
+For example, as in:
+\begin{codeS}
+The G.P. said it was only hypochondria.
+\end{codeS}
+
+\item Where the sentence actually ends with an upper case letter,
+add \gls{at} after the letter and before the punctuation mark.
+\begin{code}
+Yesterday, I saw my G.P\glsni{at}. Tomorrow I'm going to see the
+specialist.
+\end{code}
+
+\end{enumerate}
+
+\xminisec{Note on Typewriter Fonts}
+
+Note that \gls{nonfrenchspacing} in a monospaced font will insert
+two spaces between sentences, emulating a typewritten document.
+\begin{code}
+\begin{alltt}
+\glsni{ttfamily}
+\glsni{nonfrenchspacing} x. x.
+
+\glsni{frenchspacing} x. x.
+\end{alltt}
+\end{code}
+\begin{result}\ttfamily
+\nonfrenchspacing x. x.
+
+\frenchspacing x. x.
+\end{result}
diff --git a/info/dickimaw/src/novices/term-defs/introduction.tex b/info/dickimaw/src/novices/term-defs/introduction.tex
new file mode 100644
index 0000000000..b1077d07b4
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/introduction.tex
@@ -0,0 +1,129 @@
+\label{ch:def}%
+
+As mentioned in \chapterref[the introduction]{ch:intro}, \LaTeX\ is a
+language, so you can't simply start typing and expect to see your
+document appear before your very eyes\faq{Why is TeX not a WYSIWYG system?}{notWYSIWYG}. You need to know a few things
+before you can get started, so it's best to define a few terms first.
+Don't worry if there seems a lot to take in, there will be some
+practical examples later, which should hopefully make things a little
+clearer.
+
+\begin{latexonly}
+Throughout this book, \glstext{source} is
+illustrated in a typewriter font with the word
+\inputlabelformat{Input} placed in the margin, and the corresponding
+output (how it will appear in the PDF document) is typeset with the word \outputlabelformat{Output} in the
+margin.
+
+\xminisec{Example:}
+A single line of code is displayed like this:
+\end{latexonly}
+\html{Throughout this document, \glstext{source} is
+illustrated in the form:}
+\begin{codeS}
+This is an \glsni{textbf}\marg{example}.
+\end{codeS}%
+The corresponding
+\glslink{output}{output}\html{ (how it will appear in the PDF document)\footnote{This HTML version of the book uses bitmaps to illustrate the output, which doesn't look as good as the actual PDF version.}}\ is illustrated like this:
+\begin{resultS}[exampleoutput.html]
+This is an \textbf{example}.
+\end{resultS}%
+\begin{latexonly}%
+Segments of code that are longer than one line are bounded above and below, illustrated as follows:
+\begin{code}
+\begin{alltt}
+Line one\glsni{par}
+Line two\glsni{par}
+Line three.
+\end{alltt}
+\end{code}%
+with corresponding output:
+\begin{result}
+Line one\par
+Line two\par
+Line three.
+\end{result}%
+\end{latexonly}%
+Take care not to confuse a backslash~\glsni{backslashchar}
+with a forward slash~\gls{text.slash} as they have different meanings.
+\doifnotbook
+{%
+ (Commands typeset in blue, such as \glsni{par}, indicate a hyperlink to
+ the command definition in the
+\latexhtml{\htmlref{summary}{ch:glossary}}{\htmladdnormallink{summary}{summary.html}}.)
+}
+
+\Glstext{command} definitions are shown in a typewriter font in the form:
+\begin{definition}
+\glsni{documentclass}\oarg{\meta{options}}\marg{\meta{class file}}
+\end{definition}%
+In this case the command being defined is called
+\cmdname{documentclass} and text typed \meta{like this} (such as
+\meta{options} and \meta{class file}) indicates the type of thing you
+need to substitute. (Don't type the angle brackets!) For example, if you want the \icls{scrartcl}
+\glstext{cls} you would substitute \meta{class file} with
+\texttt{scrartcl} and if you want the \clsopt{letterpaper} option you
+would substitute \meta{options} with \texttt{letterpaper}, like this:
+\begin{codeS}
+\glsnl{documentclass}\oarg*{letterpaper}\marg*{scrartcl}
+\end{codeS}
+But more on that later.
+
+\refstepcounter{object}\label{obj:visiblespace}%
+Sometimes it can be easy to miss a space character when you're
+reading this kind of \latexhtml{book}{document}. When it's important
+to indicate a space, the visible space symbol~\gls{visiblespace} is used. For
+example:
+\begin{codeS}
+A\glsni{visiblespace}sentence\glsni{visiblespace}consisting\glsni{visiblespace}of\glsni{visiblespace}six\glsni{visiblespace}words.
+\end{codeS}
+When you type up the code, replace any occurrence of
+\glsni{visiblespace} with a space.
+
+\refstepcounter{object}\label{obj:comment}
+One other thing to mention is the comment character~\gls{percentchar}
+(the percent symbol). Anything from the percent symbol up to, and
+including, the end of line character is ignored by \LaTeX. Thus
+\begin{code}
+A simple \glsni{percentchar} next comes a command to make some bold text\newline
+\glsni{textbf}\marg{example}
+\end{code}%
+will produce the output
+\begin{resultS}[commentexample.html]
+A simple % next comes a command to make some bold text
+\textbf{example}
+\end{resultS}%
+\refstepcounter{object}\label{obj:suppresseol}%
+The percent symbol is often used to suppress unwanted space
+resulting from line breaks\footnote{\LaTeX\ treats the end-of-line
+character as a space.}\ in the \glstext{source}.
+For example, the following code
+\begin{code}
+Foo\glsni{percentchar}\newline
+Bar
+\end{code}%
+will produce the output:
+\begin{resultS}[FooBar (single word)]
+Foo%
+Bar
+\end{resultS}%
+as opposed to
+\begin{code}
+Foo\newline
+Bar
+\end{code}%
+which will produce the output:
+\begin{resultS}[Foo Bar (two words)]
+Foo\ Bar\relax% LaTeX2HTML is getting confused!
+\end{resultS}%
+On the other hand, spaces at the start of a line of input are
+ignored, so
+\begin{code}
+Foo\glsni{percentchar}\newline
+\strut~~Bar
+\end{code}
+still produces:
+\begin{resultS}[FooBar]
+Foo%
+ Bar
+\end{resultS}
diff --git a/info/dickimaw/src/novices/term-defs/length.tex b/info/dickimaw/src/novices/term-defs/length.tex
new file mode 100644
index 0000000000..38471d4882
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/length.tex
@@ -0,0 +1,104 @@
+A \gls{length} register stores dimensions (such as 1in, 5cm,
+8.25mm). Like \glslink{command}{control words}, length registers
+start with a backslash and only contain alphabetical characters in
+their name. These registers are used to determine page layouts etc.
+For example, the paragraph indentation is given by the length
+register \gls{parindent}. Acceptable units of measurement are listed
+in \tableref{tab:units}. The two relative units \dq{em} and \dq{ex} are
+dependent on the current font. (The em-value used to be the
+width of an \dq{M} and the ex-value was the height of the letter
+\dq{x}, but these days the values are more
+arbitrary~\protect\cite{texbook}.) Use \texttt{em} for widths and
+\texttt{ex} for heights if you want to use relative values.
+
+\begin{table}[htbp]
+\caption{Units of Measurement}
+\label{tab:units}
+\centering
+\begin{tabular}{ll}
+\iunit{pt}{\protect\TeX\ point} & \TeX\ point: 72.27pt = 1in\\
+\iunit{in}{inch} & inch: 1in = 25.4mm\\
+\iunit{mm}{millimetre} & millimetre: 1mm=2.845pt\\
+\iunit{cm}{centimetre} & centimetre: 1cm = 10mm\\
+\iunit{ex}{relative unit} & the \dq{x-height} of the current font\\
+\iunit{em}{relative unit} & the width of a \dq{quad} in the current font\\
+\iunit{sp}{scaled point} & scaled point: 1sp = 65536pt\\
+\iunit{bp}{big point} & big point (or \Index{PostScript} point): 72bp = 1in\\
+\iunit{dd}{did\^ot point} & did\^ot point: 1dd=0.376mm\\
+\iunit{pc}{pica} & pica: 1pc=12pt\\
+\iunit{cc}{cicero} & cicero: 1cc=12dd\\
+\iunit{mu}{math unit} & math unit: 18mu = 1em
+\end{tabular}
+\par
+\end{table}
+
+To change a length you can use the command:
+\begin{definition}
+\gls{setlength}\marg{\meta{cmd}}\marg{\meta{length}}
+\end{definition}%
+where \meta{cmd} is the register (for example, \glsni{parindent})
+and \meta{length} is the new length. Alternatively, you can add a
+value to a length using:
+\begin{definition}
+\gls{addtolength}\marg{\meta{cmd}}\marg{\meta{length increment}}
+\end{definition}
+The value of a length register can be displayed in your document using
+\begin{definition}
+\gls{the}\meta{register}
+\end{definition}
+
+A \keyword{rubber length} is a length that has a certain amount of
+elasticity. This enables you to specify your desired length but
+allows \LaTeX\ to stretch or contract the space to get the body of
+text as flushed with the margins as possible.
+
+\faq{Zero paragraph indent}{parskip}For example, the paragraph gap \gls{parskip} is usually set to
+\texttt{0pt plus 1pt}. This means that the preferred gap is
+0pt but \LaTeX\ can stretch it up to 1pt to help prevent the
+page from having a ragged bottom. For example:
+\begin{code}
+\begin{alltt}
+\glsni{setlength}\marg{\glsni{parindent}}\marg{0pt}
+\glsni{setlength}\marg{\glsni{parskip}}\marg{10pt plus 1pt minus 1pt}
+
+This is the first paragraph.
+
+This is the second paragraph.
+The paragraph indentation is \glsni{the}\glsni{parindent}.
+\end{alltt}
+\end{code}%
+This now produces:
+\begin{result}
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{10pt plus 1pt minus 1pt}
+
+This is the first paragraph.
+
+This is the second paragraph.
+The paragraph indentation is \the\parindent.
+\end{result}%
+In this example, the preferred paragraph gap is 10pt but
+it will allow for a deviation of up to plus or minus 1pt.
+
+\warning Note that it's generally best not to change \glsni{parskip}
+explicitly as it can cause unexpected complications. If you use one
+of the \koma\ classes, such as \icls{scrreprt}, you can use the
+\scrclsopt{parskip} class option that can take the following values:
+\texttt{parskip=full} (a full line height) \texttt{parskip=half}
+(half a line height).\footnote{There are also variants that have
+\texttt{+}, \texttt{-} or \texttt{*} as a suffix. See the
+\koma\ documentation for further details.}
+
+\xminisec{Example:}
+\begin{codeS}
+\glsni{documentclass}\oarg{parskip=full}\marg{scrbook}
+\end{codeS}
+
+If you want to change any of the page layout lengths (such as
+\gls{textwidth}), the easiest way to do it is to use the
+\isty{geometry} \htmlref{package}{sec:packages}. This package should have been installed
+when you installed your \TeX\ distribution. For example: suppose you want the total text
+area to be 6.5in wide and 8.75in high with a left margin of 0.4in, then you would do:
+\begin{codeS}
+\glsni{usepackage}\oarg{body=\marg{6.5in,8.75in}\comma left=0.4in}\marg{geometry}
+\end{codeS}
diff --git a/info/dickimaw/src/novices/term-defs/mandatory.tex b/info/dickimaw/src/novices/term-defs/mandatory.tex
new file mode 100644
index 0000000000..0630fadd03
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/mandatory.tex
@@ -0,0 +1,83 @@
+\Glspl*{mandatory} are arguments that \emph{have} to be
+specified.
+\glspar
+\xminisec{Examples:}
+\begin{enumerate}
+\item If you want a footnote, you need to use the
+\glsi{footnote} command, which has a mandatory argument that
+specifies the contents of the footnote. Like this:
+\begin{codeS}
+Here is a footnote.\glsni{footnote}\marg{This is the
+footnote
+text.}
+\end{codeS}
+\begin{latexonly}
+\begin{resultS}
+Here is a footnote.\footnotemark
+\end{resultS}
+\footnotetext{This is the footnote text.}%
+\doifnotbook{(By default you
+won't get a hyperlink. This book uses the \sty{hyperref} package,
+which generates the hyperlinks.)}
+\end{latexonly}
+
+\item If you want to start a new chapter, you need to use the
+\glsi{chapter} command, but you also need to tell \LaTeX\
+the
+title of this new chapter. So the \glsi{chapter} command
+takes
+one mandatory argument that specifies the title.
+
+For example, the following code:
+\begin{codeS}
+\glsni{chapter}\marg{Some Definitions}
+\end{codeS}%
+was used to generate the heading for
+\latexhtml{the current chapter (at the top of
+page~\pageref{ch:def})}{\chapterref[the definitions chapter]{ch:def}
+of this document}.
+\item The command \glsi{textbf} typesets its argument in a
+bold
+font (as opposed to the
+\glsterm{declaration}
+\glsi{bfseries} which switches to a bold font.)
+
+For example, the following code:
+\begin{codeS}
+\glsni{textbf}\marg{Some bold text.}
+\end{codeS}%
+produces the output
+\begin{resultS}[Some bold text. (All the text is in bold.)]
+\textbf{Some bold text.}
+\end{resultS}
+\end{enumerate}
+
+\xminisec{Notes:}
+\begin{enumerate}
+\item\label{itm:argnogrp} \LaTeX\ takes the first non-space object
+following the command name as the argument, which is why in the
+above
+examples the arguments have to be \glsd{group}.
+
+Suppose the last example above didn't have a group, so instead the
+code was:
+\begin{codeS}
+\glsni{textbf} Some bold text.
+\end{codeS}%
+then only the \dq{S} would be the argument because it's the first
+object
+following the command, in which case the output would look like:
+\begin{resultS}[Some bold text. (Only the letter S is bold.)]
+\textbf Some bold text.
+\end{resultS}
+
+\item If you want the argument to be blank, use empty braces:
+\gls{leftbracechar}\gls{rightbracechar}. For example, suppose you
+want to have a
+chapter without a title\protect\footnote{The numbers for chapters, sections
+etc are automatically inserted by \LaTeX, so this example would
+produce a numbered chapter without a title.}\ you would need to do:
+\begin{codeS}
+\glsnl{chapter}\marg{}
+\end{codeS}
+\end{enumerate}
diff --git a/info/dickimaw/src/novices/term-defs/optional.tex b/info/dickimaw/src/novices/term-defs/optional.tex
new file mode 100644
index 0000000000..2cbb56233d
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/optional.tex
@@ -0,0 +1,75 @@
+Some \glspl{command} may have one or more \glspl*{optional}. Unlike
+\glspl{mandatory}, optional arguments must always be enclosed in
+square brackets \gls{opt.opensq}~\gls{opt.closesq}.
+\xminisec{Example:}
+The command \gls{newline.dbbackslashchar} ends a line.
+So the following segment of code:
+\begin{codeS}
+Line one\glsni{newline.dbbackslashchar}Line two.
+\end{codeS}%
+will produce the following output:
+\begin{result}[Line one <newline> Line two]\setlength{\parindent}{1.5em}%
+Line one\\Line two.
+\end{result}%
+However the \glsni{newline.dbbackslashchar} command also
+has an optional
+argument that allows you to specify how big the gap between the two
+lines should be. So the following segment of code:
+\begin{codeS}
+Line one\glsni{newline.dbbackslashchar}\oarg{1cm}Line two.
+\end{codeS}%
+will produce the following output:
+\begin{result}[Line one <1cm vertical gap> Line two]\setlength{\parindent}{1.5em}%
+Line one\\[1cm]Line two.
+\end{result}
+Incidentally, note the
+difference between the previous example, and the following example:
+\begin{codeS}
+Line one\glsni{newline.dbbackslashchar}\marg{[1cm]} Line two.
+\end{codeS}\screenpagebreak
+\begin{result}[newlineargs.html]\setlength{\parindent}{1.5em}%
+Line one\\{[1cm]} Line two.
+\end{result}%
+\faq{Start of line goes awry}{newlineargs}In this example the \texttt{[1cm]} has been placed inside a group, so
+it is no longer considered to be an optional argument, and since the
+command \glsni{newline.dbbackslashchar} does not take a
+mandatory argument,
+the \texttt{[1cm]} is simply interpreted as ordinary text.
+
+\xminisec{Example:}
+The command \glsi{framebox} (which will be covered later in
+\sectionref{sec:fbox}) takes a
+\gls{mandatory} and two optional arguments.
+\glsni{framebox} puts a frame around the contents of its
+mandatory argument:
+\begin{codeS}
+\glsni{framebox}\marg{Some Text}
+\end{codeS}%
+\begin{resultS}[Image of the words 'Some Text' inside a rectangular
+box where there is a narrow gap between the edge of the text and the
+frame]
+\framebox{Some Text}
+\end{resultS}
+The first optional argument can be used to make the box a specified
+width:
+\begin{codeS}
+\glsni{framebox}\oarg{4cm}\marg{Some Text}
+\end{codeS}%
+\begin{resultS}[Image of the words 'Some Text' centred inside a
+rectangular box of width 4cm (plus a narrow gap)]
+\framebox[4cm]{Some Text}
+\end{resultS}
+The second optional argument specifies the
+justification of the text (\underline{l}eft, \underline{r}ight or
+\underline{c}entred) within the box:
+\begin{codeS}
+\glsni{framebox}\oarg{4cm}\oarg{r}\marg{Some Text}
+\end{codeS}%
+\begin{resultS}[Image of the words 'Some Text' right justified inside a
+rectangular box of width 4cm (plus a narrow gap)]
+\framebox[4cm][r]{Some Text}
+\end{resultS}
+\glspar
+In general, if a command has both optional and mandatory arguments,
+the optional arguments are usually specified first (although there
+are a few exceptions).
diff --git a/info/dickimaw/src/novices/term-defs/output.tex b/info/dickimaw/src/novices/term-defs/output.tex
new file mode 100644
index 0000000000..6b7149fe72
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/output.tex
@@ -0,0 +1,14 @@
+ The \LaTeX\ application reads in your \glsterm{source}
+ and creates the typeset document, the
+ \gls*{output}. This book assumes that you will be using the
+ version of \LaTeX\ that produces PDF files (PDF\LaTeX). If you are
+ using TeXWorks (see \chapterref{ch:tex2pdf}), you need to select the
+ \mbox{\dq{PDFLaTeX}} item from the drop-down list. If you are using
+ TeXnicCenter, select the \mbox{\dq{LaTeX\TO PDF}} build
+ profile. If you are
+ using WinEdt, when you want to build your document click on the
+ button marked \dq{PDFLaTeX} rather than the one marked \dq{LaTeX}.
+ If you are using a terminal or command prompt, use the command
+ \texttt{pdflatex} rather than \texttt{latex}. (TeXnicCenter, WinEdt
+ and using the terminal or command prompt approach are described in
+ the \suppmaterial[.)]{supplemental material}
diff --git a/info/dickimaw/src/novices/term-defs/perl.tex b/info/dickimaw/src/novices/term-defs/perl.tex
new file mode 100644
index 0000000000..73837d0615
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/perl.tex
@@ -0,0 +1,20 @@
+\glsterm{tex}-distributions such as \itexdistro{TeX~Live} and \itexdistro{MiKTeX} also
+include some helper applications that you may find useful. For example,
+\iappname{texdoc} (\sectionref{sec:texdoc}) helps you access
+installed documentation and \iappname{makeindex} helps generate an
+index for your document. Some of the helper applications are
+written in a scripting language called \gls*{perl}, and you must
+have the \iappname{perl} application installed to be able to use
+them. Unix-like operating systems should already have it installed.
+Windows users can choose between several Perl distributions. The
+most popular seem to be \iperldistro{Strawberry Perl}{http://strawberryperl.com/} and
+\iperldistro[.]{Active Perl}{http://www.activestate.com/activeperl} Perl scripts that come
+with \glsterm{tex} include: \iappname{epstopdf} (converts Encapsulated
+PostScript (EPS)\indexEPS\ files to PDF), \iappname{pdfcrop} (crops
+a PDF file), \iappname{xindy} (a more flexible indexing application
+than \iappname{makeindex}), \iappname{texcount} (counts the number
+of words in a \LaTeX\ document) and \iappname{latexmk} (runs \LaTeX\
+and any associated applications, such as \iappname{bibtex}, the
+required number of times to ensure the document is fully
+up-to-date).
+
diff --git a/info/dickimaw/src/novices/term-defs/preamble.tex b/info/dickimaw/src/novices/term-defs/preamble.tex
new file mode 100644
index 0000000000..262f13a112
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/preamble.tex
@@ -0,0 +1,11 @@
+The \gls*{preamble} is the part of the \gls{source} that comes
+after the \screenlinebreak\reportlinebreak\glsi{documentclass}
+\gls{command} and before
+\glsni{begin}\marg{\texttt{document}} (the start of the
+\glsi{env-document} \gls{environment}). Only
+a few
+special commands may be placed in the preamble (such as \glsni{title}), and there are a few
+special commands that may only go in the preamble (such as \glsi{usepackage}).
+Nothing that generates text (for example, \glsi{maketitle}) may go in the preamble.
+
+\preambleillustration
diff --git a/info/dickimaw/src/novices/term-defs/robust.tex b/info/dickimaw/src/novices/term-defs/robust.tex
new file mode 100644
index 0000000000..3f73e1a066
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/robust.tex
@@ -0,0 +1 @@
+A \gls*{robust} is a \gls{command} that is not a \glsni{fragile}.
diff --git a/info/dickimaw/src/novices/term-defs/short.tex b/info/dickimaw/src/novices/term-defs/short.tex
new file mode 100644
index 0000000000..7ab189d459
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/short.tex
@@ -0,0 +1,10 @@
+A \gls*{short} is a \gls{command} whose \gls{argument} may not
+contain a paragraph break (either as a blank line or using
+\glsi{par}.) Conversely, a \keywordfmt{long command} is a command whose
+\gls{argument} may contain a paragraph break.
+
+Using short commands helps to test for forgotten braces, so it is
+recommended that when you \htmlref{define a new
+command}{ch:newcom}\latex{ (see \chapterref{ch:newcom})} you should
+always make the command a short command, unless there is a chance
+that the argument may need to contain a paragraph break.
diff --git a/info/dickimaw/src/novices/term-defs/source.tex b/info/dickimaw/src/novices/term-defs/source.tex
new file mode 100644
index 0000000000..50a3f0a6af
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/source.tex
@@ -0,0 +1,6 @@
+ The \gls*{source} consists of all the text and \LaTeX\
+ \glslink{command}{commands} that make up an entire document.
+ The source code is typed in using a text
+ editor\faq{TeX-friendly editors and shells}{editors}, and saved with
+ the file extension \texttt{.tex}. The source code may be contained
+ in just one file, or it might be split across several files.%
diff --git a/info/dickimaw/src/novices/term-defs/terminal.tex b/info/dickimaw/src/novices/term-defs/terminal.tex
new file mode 100644
index 0000000000..f6303062ea
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/terminal.tex
@@ -0,0 +1,59 @@
+Sometimes you may find that you need to use a command-line
+application. This is an application that doesn't have a graphical
+user interface. This isn't specific to \glsterm{tex}, but the \TeX\
+distribution comes with a number of them. In fact, front-ends (such
+as TeXWorks) run some of these applications for you when click on
+the typeset or build button.
+
+Most operating systems provide a \gls*{terminal} or command prompt where
+you can type the command-line application name and any associated
+information. For example, \xfigureref{fig:terminal} shows a terminal
+running under Fedora on Linux.
+
+\begin{description}
+\item[Windows] To open the MSDOS Prompt, go to the Start menu, then
+\dq{All Programs}, then \dq{Accessories} and click on \dq{MSDOS
+Prompt}.
+
+\item[Mac OSX] To open the Mac Terminal, go to your
+\dq{Applications} folder, open \dq{Utilities} and double click on \dq{Terminal}.
+
+\item[Unix etc] The Terminal is usually located either in the \dq{Applications}
+menu or in the \dq{System Tools} subdirectory of the
+\dq{Applications} menu.
+\end{description}
+
+\begin{figure}[htbp]
+\figconts
+ {pictures/terminal}
+ {%
+ \caption{A Terminal}
+ }
+ {fig:terminal}
+\end{figure}
+
+\xminisec{Example:}
+
+One such command-line application you are likely to need is
+\iappname{texdoc}. This is mentioned in more detail in
+\sectionref{sec:texdoc}, but to use \iappname{texdoc} you need to
+open the terminal or command prompt as described above and type
+\texttt{texdoc} followed by a package or class name, for example:
+\begin{verbatim}
+texdoc scrbook
+\end{verbatim}
+(see \figureref{fig:terminal-texdoc})
+then press the Enter or Return \enter\ key.
+
+\begin{figure}[htbp]
+\figconts
+ {pictures/terminal-texdoc}
+ {%
+ \caption{Running texdoc From a Terminal}
+ }
+ {fig:terminal-texdoc}
+\end{figure}
+
+Other \glsterm{tex}-related command-line applications include
+\iappname{pdflatex}, \iappname{bibtex}, \iappname{makeindex},
+\iappname{xindy} and \iappname{kpsewhich}.
diff --git a/info/dickimaw/src/novices/term-defs/tex.tex b/info/dickimaw/src/novices/term-defs/tex.tex
new file mode 100644
index 0000000000..29c6fbe47d
--- /dev/null
+++ b/info/dickimaw/src/novices/term-defs/tex.tex
@@ -0,0 +1,16 @@
+\gls*{tex}\faq{What is TeX?}{whatTeX}\ is the typesetting language
+written by
+\htmladdnormallink{Donald~Knuth}{http://www-cs-faculty.stanford.edu/~knuth/}.
+He wrote a format of \TeX\ called Plain \TeX, but many people find
+Plain \TeX\faq{Should I use Plain TeX or LaTeX?}{plainvltx}\
+complicated, so Leslie~Lamport wrote a format of \TeX\ called
+\LaTeX\ to make it a bit easier to use\faq{How does LaTeX relate to
+Plain TeX?}{LaTeXandPlain}. You can think of \LaTeX\ as a
+go-between converting your instructions into \TeX. This
+\latexhtml{book}{document} mostly uses the term \LaTeX, even if the
+matter is more general to \TeX, to avoid complicating matters. Some
+error messages you may see will be \LaTeX\ messages, some will be
+\TeX\ messages. \LaTeX\ error messages tend to be a bit easier to
+understand than \TeX\ messages. There are other formats of \TeX,
+such as ConTeXt\faq{What is ConTeXt?}{context}, but this book
+does not cover them.