summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/docsurvey
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-03-07 22:43:50 +0000
committerKarl Berry <karl@freefriends.org>2017-03-07 22:43:50 +0000
commit243d26dbbd5091d90af70251227b009d730db95e (patch)
tree26cfa0da58ad374b3ecc13223e84bb71b21e2662 /Master/texmf-dist/doc/latex/docsurvey
parent5242a77f951726f37e97cc73e0109bc8d18f617e (diff)
docsurvey (7mar17)
git-svn-id: svn://tug.org/texlive/trunk@43426 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/docsurvey')
-rw-r--r--Master/texmf-dist/doc/latex/docsurvey/README.txt23
-rw-r--r--Master/texmf-dist/doc/latex/docsurvey/docsurvey.pdfbin0 -> 255495 bytes
-rw-r--r--Master/texmf-dist/doc/latex/docsurvey/docsurvey.tex748
3 files changed, 771 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/docsurvey/README.txt b/Master/texmf-dist/doc/latex/docsurvey/README.txt
new file mode 100644
index 00000000000..f8a7661e470
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/docsurvey/README.txt
@@ -0,0 +1,23 @@
+
+The LaTeX docsurvey package
+
+Provides the document
+"Programming LaTeX — A survey of documentation and packages"
+
+March 6, 2017
+Copyright 2017 Brian Dunn — www.BDTechConcepts.com
+
+LaTeX Project Public License, version 1.3
+
+---
+
+A survey of programming-related documentation for LaTeX.
+Included are references to printed and electronic books,
+symbol lists, FAQs, compiling documentation when necessary,
+the LaTeX source code, CTAN, programming-related packages,
+creating documentation for packages, and online communities.
+
+---
+
+Files:
+README.txt, docsurvey.pdf, docsurvey.tex
diff --git a/Master/texmf-dist/doc/latex/docsurvey/docsurvey.pdf b/Master/texmf-dist/doc/latex/docsurvey/docsurvey.pdf
new file mode 100644
index 00000000000..27d39d77635
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/docsurvey/docsurvey.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/docsurvey/docsurvey.tex b/Master/texmf-dist/doc/latex/docsurvey/docsurvey.tex
new file mode 100644
index 00000000000..87ce2bcb567
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/docsurvey/docsurvey.tex
@@ -0,0 +1,748 @@
+
+\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}