
\documentclass{article}


% \documentclass[twocolumn]{article}
\usepackage{lmodern}
\usepackage{erewhon}
% \usepackage[type1,scaled=.95]{cabin} % sans serif like Gill Sans, full styles
\usepackage{sourcesanspro}
\usepackage[varqu,varl]{inconsolata} % typewriter
% \renewcommand{\familydefault}{\sfdefault}

\usepackage[T1]{fontenc} 
\usepackage[utf8]{inputenc}



\setcounter{secnumdepth}{0}

% colored section headers:
\usepackage[x11names]{xcolor}
\usepackage[compact,pagestyles]{titlesec}

\definecolor{sectioncolor}{rgb}{.38,.59,.77}
\definecolor{sectioncolor}{HTML}{033E8C}
\definecolor{burgundycolor}{HTML}{900020}
\definecolor{plumcolor}{HTML}{8E4585}


\titleformat{\section}
  {\normalfont\sffamily\large\bfseries\color{sectioncolor}}{\thesection}{1em}{}%[\hrule]
\titlespacing*{\section}{0pt}{*2}{*.5}

\titleformat{\subsection}
  {\normalfont\sffamily\normalsize\bfseries\color{sectioncolor}}{\thesubsection}{1em}{}
\titlespacing*{\subsection}{0pt}{*1}{*.5}

\titleformat{\subsubsection}
  {\normalfont\sffamily\normalsize\itshape\color{sectioncolor}}{\thesubsubsection}{1em}{}
\titlespacing*{\subsubsection}{0pt}{*1}{*.5}



\newpagestyle{pageheadfoot}{
	\headrule
	\sethead{Programming \LaTeX\Dash{}A survey of documentation and packages}{}{\thepage}
% 	\renewcommand{\makefootrule}{\rule[2.5ex]{\linewidth}{.4pt}}
	\setfoot{}{}{}
}

\pagestyle{pageheadfoot}



\newcommand{\shortTitle}[1]{}
\newcommand{\thisnetaddress}{}
\newcommand{\netaddress}[1]{\renewcommand{\thisnetaddress}{#1}}
\newcommand{\thispersonalURL}{}
\newcommand{\personalURL}[1]{\renewcommand{\thispersonalURL}{#1}}

\DeclareRobustCommand{\cs}[1]{{\tt \char`\\#1}}
\DeclareRobustCommand{\tubbraced}[1]{\mbox{\texttt{\char`\{#1\char`\}}}}
\DeclareRobustCommand{\env}[1]{\cs{begin}\tubbraced{#1}}
\DeclareRobustCommand{\thinskip}{\hskip 0.16667em\relax}
\def\endash{–}
\def\emdash{—}
\def\d@sh#1#2{\unskip#1\thinskip#2\thinskip\ignorespaces}
% \def\dash{\d@sh\nobreak\endash}
% \def\Dash{\d@sh\nobreak\emdash}
\newcommand{\thinbrspace}{\hspace{.16667em}\penalty\exhyphenpenalty\hspace{0pt}}
\newcommand{\Dash}{\unskip\thinspace\textemdash\thinbrspace}
\newcommand{\dash}{\unskip\thinspace\mbox{--}\thinbrspace}
\def\ldash{\d@sh\empty{\hbox{\endash}\nobreak}}
\def\rdash{\d@sh\nobreak\endash}
\def\Ldash{\d@sh\empty{\hbox{\emdash}\nobreak}}
\def\Rdash{\d@sh\nobreak\emdash}
\def\hyph{-\penalty\z@\hskip\z@skip }
% \def\slash{/\penalty\z@\hskip\z@skip }
\renewcommand{\slash}{/\penalty\exhyphenpenalty\hspace{0pt}}
\newcommand{\spslash}{\unskip\kern.085em/\hspace{.085em}\penalty\exhyphenpenalty\hspace{0pt}}


\let\texttub\textsl              % redefined in other situations
% \DeclareRobustCommand{\AllTeX}{(\La\kern-.075em)\kern-.075em\TeX}
% \def\AMS{American Mathematical Society}
% \def\AmS{$\mathcal{A}$\kern-.1667em\lower.5ex\hbox
%     {$\mathcal{M}$}\kern-.125em$\mathcal{S}$}
% \def\AmSLaTeX{\AmS-\LaTeX}
% \def\AmSTeX{\AmS-\TeX}
% \def\ANSI{\acro{ANSI}}
% \def\API{\acro{API}}
% \def\ASCII{\acro{ASCII}}
% \def\aw{\acro{A\kern.04em\raise.115ex\hbox{-}W}}
% \def\AW{Addison\kern.1em-\penalty\z@\hskip\z@skip Wesley}
% \def\Bib{%
%   \ifdim \fontdimen1\font>0pt
%      B{\SMC\SMC IB}%
%   \else
%      \textsc{Bib}%
%   \fi
% }
% \def\BibTeX{\Bib\kern-.08em \TeX}
% \def\BSD{\acro{BSD}}
% \def\CandT{\textsl{Computers \& Typesetting}}
% \def\ConTeXt{C\kern-.0333emon\-\kern-.0667em\TeX\kern-.0333emt}
% \def\CMkIV{\ConTeXt\ \MkIV}
% \def\Cplusplus{C\plusplus}
% \def\plusplus{\raisebox{.7ex}{$_{++}$}}
% \def\CPU{\acro{CPU}}
% \def\CSS{\acro{CSS}}
% \def\CSV{\acro{CSV}}
\def\CTAN{\acro{CTAN}}
% \def\DTD{\acro{DTD}}
% \def\DTK{\acro{DTK}}
% \def\DVD{\acro{DVD}}
% \def\DVI{\acro{DVI}}
% \def\DVIPDFMx{\acro{DVIPDFM}$x$}
% \def\DVItoVDU{DVIto\kern-.12em VDU}
% \def\ECMA{\acro{ECMA}}
% \def\EPS{\acro{EPS}}
% \DeclareRobustCommand{\eTeX}{\ensuremath{\varepsilon}-\kern-.125em\TeX}
% \DeclareRobustCommand{\ExTeX}{%
%   \ensuremath{\textstyle\varepsilon_{\kern-0.15em\cal{X}}}\kern-.2em\TeX}
% \def\FAQ{\acro{FAQ}}
% \def\FTP{\acro{FTP}}
% \def\Ghostscript{Ghost\-script}
% \def\GNU{\acro{GNU}}
% \def\GUI{\acro{GUI}}
% \def\Hawaii{Hawai`i}
% \def\HTML{\acro{HTML}}
% \def\HTTP{\acro{HTTP}}
% \def\IDE{\acro{IDE}}
% \def\IEEE{\acro{IEEE}}
% \def\ISBN{\acro{ISBN}}
% \def\ISO{\acro{ISO}}
% \def\ISSN{\acro{ISSN}}
% \def\JPEG{\acro{JPEG}}
% \def\JTeX{\leavevmode\hbox{\lower.5ex\hbox{J}\kern-.18em\TeX}}
% \def\JoT{\textsl{The Joy of \TeX}}
% \def\LAMSTeX{L\raise.42ex\hbox{\kern-.3em
%                    $\m@th$\fontsize\sf@size\z@\selectfont
%                    $\m@th\mathcal{A}$}%
%     \kern-.2em\lower.376ex\hbox{$\m@th\mathcal{M}$}\kern-.125em
%     {$\m@th\mathcal{S}$}-\TeX}
% \DeclareRobustCommand{\La}%
%    {L\kern-.36em
%         {\setbox0\hbox{T}%
%          \vbox to\ht0{\hbox{$\m@th$%
%                             \csname S@\f@size\endcsname
%                             \fontsize\sf@size\z@
%                             \math@fontsfalse\selectfont
%                             A}%
%                       \vss}%
%         }}
% \def\LyX{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX}
% \def\MacOSX{Mac\,\acro{OS\,X}}
% \def\MathML{Math\acro{ML}}
% \def\Mc{\setbox\TestBox=\hbox{M}M\vbox
%    to\ht\TestBox{\hbox{c}\vfil}} %  for Robert McGaffey
% \def\mf{\textsc{Metafont}}
% \def\MFB{\textsl{The \MF book}}
% \def\MkIV{Mk\acro{IV}}
% % \let\TB@@mp\mp
% \DeclareRobustCommand{\mp}{\ifmmode\TB@@mp\else MetaPost\fi}
% \DeclareRobustCommand{\NTG}{\acro{NTG}}
% \DeclareRobustCommand{\NTS}{\ensuremath{\mathcal{N}\mkern-4mu
%   \raisebox{-0.5ex}{$\mathcal{T}$}\mkern-2mu \mathcal{S}}}
% \DeclareTextSymbol{\textohm}{OT1}{'012}
% \DeclareTextSymbolDefault{\textohm}{OT1}
% \newcommand{\OMEGA}{\textohm}
% \DeclareRobustCommand{\OCP}{\OMEGA\acro{CP}}
% \DeclareRobustCommand{\OOXML}{\acro{OOXML}}
% \DeclareRobustCommand{\OTF}{\acro{OTF}}
% \DeclareRobustCommand{\OTP}{\OMEGA\acro{TP}}
% \def\mtex{T\kern-.1667em\lower.424ex\hbox{\^E}\kern-.125emX\@}
% \def\Pas{Pascal}
% \def\pcMF{\leavevmode\raise.5ex\hbox{p\kern-.3\p@ c}MF\@}
% \def\PCTeX{PC\thinspace\TeX}
% \def\pcTeX{\leavevmode\raise.5ex\hbox{p\kern-.3\p@ c}\TeX}
% \def\PDF{\acro{PDF}}
% \def\PGF{\acro{PGF}}
% \def\PHP{\acro{PHP}}
% \def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC\@}
% \def\PiCTeX{\PiC\kern-.11em\TeX}
% \def\plain{\texttt{plain}}
% \def\PNG{\acro{PNG}}
% \def\POBox{P.\thinspace O.~Box }
% \def\PS{{Post\-Script}}
% \def\PSTricks{\acro{PST}ricks}
% \def\RTF{\acro{RTF}}
% \def\SC{Steering Committee}
% \def\SGML{\acro{SGML}}
% \def\SliTeX{\textrm{S\kern-.06em\textsc{l\kern-.035emi}%
%                      \kern-.06em\TeX}}
% \def\slMF{\textsl{\MF}} % should never be used
% \def\SQL{\acro{SQL}}
% \def\stTeX{\textsc{st}\kern-0.13em\TeX}
% \def\STIX{\acro{STIX}}
% \def\SVG{\acro{SVG}}
% \def\TANGLE{\texttt{TANGLE}\@}
% \def\TB{\textsl{The \TeX book}}
% \def\TIFF{\acro{TIFF}}
% \def\TP{\textsl{\TeX}: \textsl{The Program}}
% \DeclareRobustCommand{\TeX}{T\kern-.1667em\lower.424ex\hbox{E}\kern-.125emX\@}
% \def\TeXhax{\TeX hax}
% \def\TeXMaG{\TeX M\kern-.1667em\lower.5ex\hbox{A}%
%    \kern-.2267emG\@}
% \def\TeXtures{\textit{Textures}}
% \let\Textures=\TeXtures
% \def\TeXworks{\TeX\kern-.07em works}
% \def\TeXXeT{\TeX-{}-\XeT}
% \def\TFM{\acro{TFM}}
% \expandafter\ifx\csname XeTeXrevision\endcsname\relax
% \def\Thanh{H\`an~Th\^e\llap{\raise 0.5ex\hbox{\'{}}}~Th\`anh}% non-XeTeX
% \else
% \def\Thanh{H\`an~Th\textcircumacute{e}~Th\`anh}% xunicode drops the acute else
% \fi
% \def\TikZ{Ti{\em k}Z}
% \def\ttn{\textsl{TTN}\@}
% \def\TTN{\textsl{\TeX{} and TUG News}}
% \let\texttub\textsl              % redefined in other situations
\def\TUB{\texttub{TUGboat}}
% \def\TUG{\TeX\ \UG}
% \def\tug{\acro{TUG}}
% \def\UG{Users Group}
% \def\UNIX{\acro{UNIX}}
% \def\VAX{V\kern-.12em A\kern-.1em X\@}
% \def\VnTeX{V\kern-.03em n\kern-.02em \TeX}
% \def\VorTeX{V\kern-2.7\p@\lower.5ex\hbox{O\kern-1.4\p@ R}\kern-2.6\p@\TeX}
% \def\XeT{X\kern-.125em\lower.424ex\hbox{E}\kern-.1667emT\@}
% \def\XML{\acro{XML}}
% \def\WEB{\texttt{WEB}\@}
% \def\WEAVE{\texttt{WEAVE}\@}
% \def\WYSIWYG{\acro{WYSIWYG}}
% \def\tubreflect#1{%
%   \@ifundefined{reflectbox}{%
%     \TBerror{A graphics package must be loaded for \string\XeTeX}%
%   }{%
%     \ifdim \fontdimen1\font>0pt
%       \raise 1.75ex \hbox{\kern.1em\rotatebox{180}{#1}}\kern-.1em
%     \else
%       \reflectbox{#1}%
%     \fi
%   }%
% }
% \def\tubhideheight#1{\setbox0=\hbox{#1}\ht0=0pt \dp0=0pt \box0 }
% \def\XekernbeforeE{-.125em}
% \def\XekernafterE{-.1667em}
% \DeclareRobustCommand{\Xe}{\leavevmode
%   \tubhideheight{\hbox{X%
%     \setbox0=\hbox{\TeX}\setbox1=\hbox{E}%
%     \lower\dp0\hbox{\raise\dp1\hbox{\kern\XekernbeforeE\tubreflect{E}}}%
%     \kern\XekernafterE}}}
% \def\XeTeX{\Xe\TeX}
% \def\XeLaTeX{\Xe{\kern.11em \LaTeX}}
% \def\XHTML{\acro{XHTML}}
% \def\XSL{\acro{XSL}}
% \def\XSLFO{\acro{XSL}\raise.08ex\hbox{-}\acro{FO}}
% \def\XSLT{\acro{XSLT}}


\newcommand{\acro}[1]{\textsc{\MakeLowercase{#1}}}


\newcommand{\EDITORnoaddress}{}


\usepackage{microtype}
\usepackage{graphicx}
\usepackage{ifpdf}
\ifpdf
\usepackage[breaklinks,hidelinks]{hyperref}
\else
\usepackage{url}
\fi

\usepackage{enumitem}
\setlist[description]{style=nextline,font=\small}

\usepackage{multicol}


\usepackage{titling}
\setlength{\droptitle}{-1in}
\predate{\begin{center}\small}


\newcommand*{\pkg}[1]{\textsf{#1}}
\newcommand*{\environ}[1]{\texttt{#1}}
\newcommand*{\prog}[1]{\texttt{#1}}
\newcommand*{\LuaLaTeX}{Lua\-\LaTeX}
\newcommand*{\LuaTeX}{Lua\-\TeX}
\newcommand*{\tag}[1]{\texttt{<#1>}}
\newcommand*{\prop}[1]{\textsl{\texttt{#1}}}
\newcommand*{\epub}{\acro{EPUB}}
\newcommand*{\texdoc}[1]{\hspace*{\fill}\mbox{(\texttt{texdoc #1}})}
\newcommand*{\userentry}[1]{%
\leavevmode\par\hspace*{2em}\texttt{#1}\smallskip\\}


\title{Programming \LaTeX\Dash A survey of documentation and packages}

\author{Brian Dunn \\
	\small \href{mailto:bd@bdtechconcepts.com}{bd@bdtechconcepts.com} \\
	\small Copyright 2017 Brian Dunn\thanks{
		This work may be distributed and/or modified under the
		conditions of the \LaTeX\ Project Public License, either version 1.3
		of this license or (at your option) any later version.
		The latest version of this license is in
		\url{http://www.latex-project.org/lppl.txt}
		and version 1.3 or later is part of all distributions of \LaTeX\
		version 2005/12/01 or later.
	}
}



\begin{document}

\maketitle

\thispagestyle{empty}

\begin{abstract}
\noindent
A survey of documentation sources and
packages useful for \LaTeX\ programmers.
\end{abstract}

\section{Introduction}

Reinventing the wheel may be useful if you think that you can do it better.
Worse, though, is not even being aware that the wheel has already been
invented in the first place, which can be an embarrassing waste of time.
Such can be the case both for a new \LaTeX\ programmer who isn't aware of
the many ways things may be done, but also for someone, the author included,
who learned \LaTeX\ many years ago but may have missed some of the recent
advancements in package code and documentation.

A wealth of information is available, not
only in print and online, but also directly embedded in the typical \LaTeX\
distribution.
The following is meant to be a broad overview of some of today's resources
for \LaTeX\ programmers.

(The latest version of this document is available in the \pkg{docsurvey} package.)

\section{Printed books}

Even in an electronic/online era, printed books still have the advantage
of being able to be opened for reference without taking up space
on the screen.  Printed books also provide extended discussion of
useful topics, have extensive human-edited indexes which are more useful
than a simple document-wide search function, and some are also available in
electronic format.
\begin{description}
\item[\LaTeX:\ A Document Preparation System:]
	The classic introduction to \LaTeX, in continuous reprint for
	decades.~\cite{lamport:latex}
\item[Guide to \LaTeX:]
	An introduction and more advanced material, including an extensive
	reference guide.
	Fourth edition: 2004.~\cite{hokpkadaly:guide}
\item[More Math into \LaTeX:]
	Updated to a fifth edition in 2016.~\cite{gratzer:moremath}
\item[\LaTeX\ Beginner's Guide:]
	An overview with numerous examples.~\cite{kottwitz:beginner}
\item[\LaTeX\ Cookbook:]
	More examples.~\cite{kottwitz:cookbook}
\item[The \LaTeX\ Companion:]
	Provides extended discussion and examples of the inner workings
	of \LaTeX\ and numerous useful packages.
	Second edition: 2004.~\cite{mittelbachgossens:companion}
\end{description}
Other books are listed at the \acro{UK TUG FAQ}: \\
\url{http://www.tex.ac.uk/FAQ-latex-books.html}


\section{Electronic books}

Provided with the \TeX\ distribution:
% These are provided with the documentation built into a \TeX\ distribution,
% and thus are occasionally updated alongside \TeX.
% The \prog{texdoc} command can be used to display them.

\begin{description}
\item[The Not So Short Introduction to \LaTeXe:]
	Covers introductory material, customizations,
	and a simple package.~\cite{oetiker:introduction}
	\texdoc{lshort}

\item[\LaTeXe: An unofficial reference manual:]
	A thorough but concise reference manual for \LaTeXe,
	available in several languages.~\cite{greenwade:reference}
	\texdoc{-l latex2e-help}

\item[LaTeX WikiBook:] An online book, includes information about
	creating \LaTeX\ packages and classes. \\
	\url{https://en.wikibooks.org/wiki/LaTeX}

\item[\TeX\ by Topic, A \TeX{}nician's Reference:]
	A reference for \TeX.
	This may be useful for understanding the source code of \LaTeX\ packages,
	many of which are quite old and written in
	low-level \TeX.~\cite{eijkhout:topic}
	\texdoc{texbytopic}
\end{description}


\section{Symbol references}

These are lists of the \LaTeX\ commands which produce symbols.

\begin{description}
\item[Comprehensive \LaTeX\ Symbol List:]
More than 14,000 symbols and \LaTeX\ commands. \cite{pakin:list}
\texdoc{symbols-letter} \texdoc{symbols-a4}

\item[Every symbol (most symbols) defined\\\hspace*{-\leftmargin}by
unicode-math:]
Unicode math symbols.~\cite{robertson:mathsymbols}
\texdoc{unimath-symbols}
\end{description}


\section{FAQs}

%Frequently-Asked Questions

\begin{description}
\item[UK TUG FAQ:] A wide-ranging list of
fre\-quently-asked questions.~\cite{UK:FAQ}
\texdoc{letterfaq}
\texdoc{newfaq}

\item[Visual \LaTeX\ FAQ:] Click on a visual element to learn how
it is programmed.~\cite{pakin:visual} \\
\texdoc{visualFAQ}
\end{description}


\section{Accessing embedded documentation}

A large amount of documentation is included in a \TeX\ distribution.
Most can be accessed with the \prog{texdoc} program.
Use \prog{texdoc -l name} to select from many choices of
matching package, file, or program names.  In some cases the same document
is available in both letter or A4 paper sizes, or in several languages.

The program \prog{kpsewhich} may be used to find out where a file is
located.  \prog{kpsewhich filename} searches for and returns the
path to the given filename.

\prog{kpsewhich} can also return directories, such as:
\begin{verbatim}
        kpsewhich -var-value TEXMFROOT
        kpsewhich -var-value TEXMFDIST
        kpsewhich -var-value TEXMFLOCAL
\end{verbatim}
\medskip

Some package authors choose not to include the source code in the
package documentation.  To view the source code:

\begin{enumerate}
\item To locate and read a package's \verb+.sty+ file:
\userentry{kpsewhich package.sty}
Usually these files have their comments removed,
so it is better to use the \verb+.dtx+ file instead.
\item The \verb+.dtx+ file is usually available,
and will have the package's source code.
\userentry{kpsewhich package.dtx}
The comments are not yet typeset and so
will not be as easily read.
\item To typeset the documentation with the source code,
copy the \verb+.dtx+ file and any associated image files
somewhere local and then look for
\cs{OnlyDescription}
in the source.
This command tells the \pkg{ltxdoc} package not to print the source code.
\item Remove \cs{OnlyDescription}, then process the \verb+.dtx+ file with
\userentry{pdflatex package.dtx}
Barring unusual circumstances, this will create a new documentation
\verb+.pdf+ file with the package source code included.
\end{enumerate}



\section{Source code}

The source code for \LaTeXe\ itself is also included in the distribution.

\begin{description}
\item[The \LaTeXe\ sources:] Occasionally useful for figuring out how
	something really works.~\cite{latexteam:sources} \\
		\hspace*{\fill} \texdoc{source2e}
\item[List of internal \LaTeXe\ macros
      \\\hspace*{-\leftmargin}useful to package authors:]
	A list of the core \LaTeX\ macros, each of which is linked to the
	source code.~\cite{scharrer:listinternal}
	\texdoc{macros2e}
\end{description}


\section{Comprehensive \TeX\ Archive Network}

The Comprehensive \TeX\ Archive Network
(\CTAN) provides a master collection of
packages.  A search function is available, which is useful when you know the
name of a package or its author, and a list of topics is also provided.
There are so many topics, however, that finding the right topic can be a
problem in itself.  One useful method to find what you are looking for is
to search for a related package you may already know about, then look at
its description on \CTAN\ to see what topics are shown for it.  Selecting these
topics then shows you related packages.~\cite{ctan}



\section{Packages}

A number of packages are especially useful for \LaTeX\ programmers:

\begin{multicols}{2}

\begin{description}[style=unboxed]
\raggedright
\item[\pkg{xifthen}:] Conditionals.
\item[\pkg{etoolbox}:] A wide range of programming tools, often avoiding
	the need to resort to low-level \TeX.
\item[\pkg{etextools}:] Adds to \pkg{etoolbox}.
	Strings, lists, and more.
\item[\pkg{xparse}:] Define macros and environments with
	flexible argument types.
\item[\pkg{environ}:] Process environment contents.
\item[\pkg{arrayjobx}, \pkg{fifo-stack}, \pkg{forarray},
	\pkg{forloop}, \pkg{xfor}:]
	Programming arrays, stacks, and loops.
\item[\pkg{iftex}:] Detect \TeX\ engine.
\item[\pkg{ifplatform}:] Detect operating system.
\item[\pkg{xstring}:] String manipulation.
\item[\pkg{keyval}, \pkg{xkeyval}, \pkg{kvsetkeys}:] Key\slash{}value arguments.
\item[\pkg{pgfkeys}, \pkg{pgfkeyx}:] Another form of key\slash{}value arguments.
\item[\pkg{kvoptions}:] Key\slash{}value package options.
\item[\pkg{expl3}:] \LaTeX3 programming.
\item[\pkg{l3keys}, \pkg{l3keys2e}:] Key\slash{}value for \LaTeX3.
\item[\CTAN\ topic \pkg{macro-supp}:] An entire topic of
	useful programming macros.
\end{description}
\end{multicols}


\section{Creating and documenting packages}

\subsection{Packages and programs}

Documentation for those interested in creating their own package or class:
\begin{description}
\item[How to package your \LaTeX\ package:] A tutorial.~\cite{pakin:dtxtut}
	\texdoc{dtxtut}
\item[\LaTeXe\ for class and package writers:] Programming a package
	or class.~\cite{latexteam:class}
	\texdoc{clsguide}
\item[The doc and shortvrb packages:] Packages for documenting
	packages.~\cite{mittelbach:doc}
	\texdoc{doc}
\item[The DocStrip program:] The program which processes \verb+.dtx+
	and \verb+.ins+ files to generate documentation and \verb+.sty+
	files. \cite{mittelbach:docstrip}
	\texdoc{docstrip}
\end{description}

\subsection{Articles}

Related articles from \TUB:

\begin{description}
\item[Rolling your own Document Class:
Using \LaTeX\ to keep away from the Dark Side:] An overview of the
	\pkg{article} class.~\cite{flynn:article}
\item[Good things come in little packages:\\\hspace*{-\leftmargin}An
	introduction to writing .ins and .dtx files:] How and why to create
	your own \verb+.dtx+ and \verb+.ins+ files.~\cite{pakin:goodthings}
\item[How to develop your own document
     class\Dash\\\hspace*{-\leftmargin}our experience:]
	A comparison of developing class vs.\ package
	files.~\cite{mansfield:class}

\end{description}

\section{Online communities}

\begin{description}[style=unboxed]
\item[English forums:] \
\begin{description}
\raggedright
\item[TeX\Dash \LaTeX\ Stack Exchange:] Almost any question has already
	been asked, and a quick web search will find answers, ranked by vote. \\
	\url{http://tex.stackexchange.com/}
\item[\LaTeX\ Community:] A traditional forum with quick replies
	to your questions. \\
	\url{http://www.latex-community.org/}
\end{description}

\item[German forums:] \
\begin{description}
\item[TeXwelt:] \url{http://texwelt.de/wissen/}
\item[goLaTeX:] \url{http://golatex.de/}
\end{description}

\item[Newsgroup:] \url{comp.text.tex}
\end{description}


\begin{thebibliography}{99}

\bibitem{lamport:latex}
\LaTeX: A Document Preparation System,
Leslie Lamport,
second edition, Addison Wesley, 1994, ISBN 0201529831.

\bibitem{hokpkadaly:guide}
Guide to \LaTeX,
Helmut Kopka and Patrick W. Daly,
fourth edition, Addison-Wesley, 2004, ISBN 0321173856.

\bibitem{gratzer:moremath}
More Math Into \LaTeX,
George Gr\"{a}tzer,
5th ed., Springer, 2016,
ISBN 3319237950.
%ISBN-13: 978-3319237954.

\bibitem{kottwitz:beginner}
\LaTeX\ Beginner's Guide,
Stefan Kottwitz,
Packt Publishing, 2011, ISBN 1847199860.
%ISBN-13 1847199860.

\bibitem{kottwitz:cookbook}
\LaTeX\ Cookbook, Stefan Kottwitz, Packt Publishing, 2015,
ISBN-13 9781784395148, \\
\url{http://latex-cookbook.net/}

\bibitem{mittelbachgossens:companion}
The \LaTeX\ Companion,
Frank Mittelbach, Michel Goossens, Johannes Braams,
David Carlisle and Chris Rowley,
second edition, Addison-Wesley, 2004,
ISBN 0201362996.
%ISBN-13 0-201-36299-6.

\bibitem{oetiker:introduction}
The Not So Short Introduction to \LaTeXe,
Tobias Oetiker,
\url{https://ctan.org/pkg/lshort}

\bibitem{greenwade:reference}
\LaTeXe: An unofficial reference manual,
George~D. Greenwade, Stephen Gilmore,
Torsten~Martinsen, and Karl Berry, \\
\url{http://home.gna.org/latexrefman}

\bibitem{eijkhout:topic}
\TeX\ by Topic, A \TeX{}nician's Reference,
Victor Eijkhout,
Addison-Wesley UK, 1991, ISBN 0201568829,
\url{http://eijkhout.net/texbytopic/texbytopic.html}

\bibitem{pakin:list}
The Comprehensive \LaTeX\ Symbol List,
Scott Pakin,
\url{https://ctan.org/pkg/comprehensive}

\bibitem{robertson:mathsymbols}
Every symbol (most symbols) defined by unicode-math,
Will Robertson, \\
\url{https://ctan.org/pkg/unicode-math}

\bibitem{UK:FAQ}
UK TUG FAQ,
UK \TeX\ Users Group, \\
\url{http://www.tex.ac.uk/}

\bibitem{pakin:visual}
The Visual \LaTeX\ FAQ,
Scott Pakin, \\
\url{https://ctan.org/pkg/visualfaq}

\bibitem{latexteam:sources}
The \LaTeXe\ Sources,
Johannes Braams, David Carlisle, Alan Jeffrey, Leslie Lamport,
Frank Mittelbach, Chris Rowley, and Rainer Sch\"opf, \\
\url{https://ctan.org/pkg/source2e}

\bibitem{scharrer:listinternal}
List of internal \LaTeXe\ Macros useful to Package Authors,
Martin Scharrer, \\
\url{https://ctan.org/pkg/macros2e}

\bibitem{ctan}
Comprehensive \TeX\ Archive Network (CTAN), \\
\url{https://ctan.org}

\bibitem{pakin:dtxtut}
How to Package Your \LaTeX\ Package,
Scott~Pakin,
\url{https://ctan.org/pkg/dtxtut}

\bibitem{latexteam:class}
\LaTeXe\ for class and package writers,
\LaTeX3 Project,
\url{https://ctan.org/pkg/clsguide}

\bibitem{mittelbach:doc}
The doc and shortvrb packages,
Frank Mittelbach,
\url{https://ctan.org/pkg/doc}

\bibitem{mittelbach:docstrip}
The DocStrip program,
Frank Mittelbach, Denys Duchier, Johannes Braams,
Marcin Woli\'nski, and Mark Wooding,
\url{https://ctan.org/pkg/docstrip}

\bibitem{flynn:article}
Rolling your own Document Class:
Using \LaTeX\ to keep away from the Dark Side,
Peter~Flynn,
\TUB\ 28:1 (2007), pp.\,110--123,
\url{http://tug.org/TUGboat/tb28-1/tb88flynn.pdf}

\bibitem{pakin:goodthings}
Good things come in little packages:
An introduction to writing .ins and .dtx files,
Scott~Pakin,
\TUB\ 29:2 (2008), pp.\,305--314,
\url{http://tug.org/TUGboat/tb29-2/tb92pakin.pdf}

\bibitem{mansfield:class}
How to develop your own document class\Dash our experience,
Niall Mansfield,
\TUB\ 29:3 (2008), pp.\,356--361.
\url{http://tug.org/TUGboat/tb29-3/tb93mansfield.pdf}


\end{thebibliography}
\vfilneg
\end{document}
