
% To compile:
% lualatex docsurvey.tex
% lualatex docsurvey.tex
% biber docsurvey
% lualatex docsurvey.tex
% lualatex docsurvey.tex

\begin{filecontents}[overwrite]{docsurvey.bib}
@book{lamport:latex,
    title={\LaTeX: A Document Preparation System},
    author={Leslie Lamport},
    edition=2,
    publisher={Addison Wesley},
    year=1994,
    isbn=0201529831,
}

@book{hokpkadaly:guide,
    title={Guide to \LaTeX},
    author={Helmut Kopka and Patrick W. Daly},
    edition=4,
    publisher={Addison-Wesley},
    year=2004,
    isbn=0321173856,
}

@book{gratzer:moremath,
    title={More Math Into \LaTeX},
    author={George Gr\"{a}tzer},
    edition=5,
    publisher={Springer},
    year=2016,
    isbn=9783319237954,
}

@book{kottwitz:beginner,
    title={\LaTeX\ Beginner's Guide},
    author={Stefan Kottwitz},
    publisher={Packt Publishing},
    year=2011,
    isbn=1847199860,
}

@book{kottwitz:cookbook,
    title={\LaTeX\ Cookbook},
    author={Stefan Kottwitz},
    publisher={Packt Publishing},
    year=2015,
    isbn=9781784395148,
    url={http://latex-cookbook.net}
}

@book{mittelbachgossens:companion,
    title={The \LaTeX\ Companion},
    author={Frank Mittelbach and Michel Goossens and Johannes Braams
        and David Carlisle and Chris Rowley},
    edition=2,
    publisher={Addison-Wesley},
    year=2004,
    isbn=0201362996,
}

@book{eijkhout:topic,
    title={\TeX\ by Topic},
    subtitle={A \TeX{}nician's Reference},
    author={Victor Eijkhout},
    publisher={Addison-Wesley UK},
    year=1991,
    isbn=0201568829,
    url={http://eijkhout.net/texbytopic/texbytopic.html}
}

@manual{hefferon:first,
    title={Getting something out of \LaTeX},
    author={Jim Hefferon},
    year=2009,
    url={https://ctan.org/pkg/first-latex-doc}
}

@manual{flynn:veryshort,
    title={The very short guide to typesetting with \LaTeX},
    author={Peter Flynn},
    year=2016,
    url={https://ctan.org/pkg/latex-veryshortguide}
}

@manual{flynn:formatting,
    title={Formatting Information, A beginner’s introduction to
        typesetting with \LaTeX},
    author={Peter Flynn},
    year=2005,
    url={https://ctan.org/pkg/beginlatex}
}

@manual{talbot:novices,
    title={\LaTeX\ for Complete Novices},
    author={Nicola L. C. Talbot},
    year=2012,
    publisher={Dickimaw Books},
    url={http://www.dickimaw-books.com}
}

@manual{talbot:phd,
    title={Using \LaTeX\ to Write a PhD Thesis},
    author={Nicola L. C. Talbot},
    year=2013,
    publisher={Dickimaw Books},
    url={http://www.dickimaw-books.com}
}

@manual{morris:gettingstarted,
    title={Getting Started with \LaTeXe},
    author={Michael P. Morris},
    year=2020,
    url={https://ctan.org/pkg/startlatex2e}
}

@manual{Bennieston:scientific,
    title={Writing Scientific Documents Using \LaTeX},
    author={Andrew J. Bennieston},
    year=2009,
    url={https://ctan.org/pkg/intro-scientific}
}

@manual{oetiker:introduction,
    title={The Not So Short Introduction to \LaTeXe},
    author={Tobias Oetiker},
    year=2015,
    url={https://ctan.org/pkg/lshort}
}

@manual{greenwade:reference,
    title={\LaTeXe: An unofficial reference manual},
    author={George~D. Greenwade and Stephen Gilmore and Torsten~Martinsen and Karl Berry},
    url={https://latexref.xyz}
}

@manual{latex:authors,
    title={\LaTeXe\ for authors},
    author={\LaTeX3 Project Team},
    year=2020,
    url={https://ctan.org/pkg/usrguide}
}

@manual{downes:shortmath,
    title={Short Math Guide for \LaTeX},
    author={Michael Downes and Barbara Beeton},
    year=2017,
    url={https://ctan.org/pkg/short-math-guide}
}

@article{voss:farbige,
    title={Farbige Mathematik},
    journaltitle={TeXnische Komödie},
    author={Herbert Voß},
    year=2004,
    url={https://ctan.org/pkg/voss-mathcol}
}

@manual{Gonzato:musicians,
    title={\LaTeX\ for Musicians},
    author={Guido Gonzato},
    year=2019,
    url={https://ctan.org/pkg/latex4musicians}
}

@manual{pakin:list,
    title={The Comprehensive \LaTeX\ Symbol List},
    author={Scott Pakin},
    year=2017,
    url={https://ctan.org/pkg/comprehensive}
}

@manual{robertson:mathsymbols,
    title={Every symbol (most symbols) defined by unicode-math},
    author={Will Robertson},
    year=2018,
    url={https://ctan.org/pkg/unicode-math}
}

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

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

@online{TeX:FAQ,
    title={\TeX\ FAQ},
    url={https://texfaq.org/}
}

@manual{pakin:visual,
    title={The Visual \LaTeX\ FAQ},
    author={Scott Pakin},
    url={https://ctan.org/pkg/visualfaq}
}

@manual{bouzigues:guide,
    title={Initiation à \LaTeX},
    subtitle={Pour débutants ou jeunes utilisateurs},
    author={Adrien Bouzigues},
    year=2017,
    url={https://ctan.org/pkg/guide-latex-fr}
}

@manual{Goulet:Redaction,
    title={Rédaction avec \LaTeX},
    author={Vincent Goulet},
    year=2020,
    url={https://ctan.org/pkg/formation-latex-ul}
}

@manual{Holkar:polyglossia,
    title={A practical guide to \LaTeX\ and polyglossia for Indian Languages},
    author={Rohit Dilip Holkar},
    year=2017,
    url={https://ctan.org/pkg/latex-mr}
}

@manual{massago:exemplos,
    title={\LaTeXe\ Via Exemplos},
    author={Sadao Massago},
    year=2018,
    url={https://ctan.org/pkg/latex-via-exemplos}
}

@online{latexwikibook,
    title={Wikibooks},
    subtitle={LaTeX},
    url={https://en.wikibooks.org/wiki/LaTeX}
}

@online{ebookfoundation:free,
    title={Free Programming Books},
    author={Ebook Foundation},
    url={https://github.com/EbookFoundation/free-programming-books}
}

@book{wilson:design,
    title={A Few Notes on Book Design},
    author={Peter Wilson},
    year=2009,
    month=8,
    publisher={The Herries Press},
    edition=1,
    url={https://ctan.org/pkg/memdesign}
}

@manual{kohm:typearea,
    title={KOMA-Script — The Guide},
    author={Markus Kohm},
    year=2018,
    url={https://ctan.org/pkg/koma-script}
}

@manual{tufte:book,
    title={A TUFTE-STYLE BOOK},
    author={The Tufte-LaTeX Developers},
    year=2015,
    url={https://ctan.org/pkg/tufte-latex}
}

@article{revets:octavo,
    title={The Octavo Package},
    author={Stefan A. Revets},
    journaltitle={TUGboat},
    number={23 3/4},
    year=2002,
    pages={269},
    url={https://ctan.org/pkg/octavo}
}

@manual{beccari:canoniclayout,
    title={Package canoniclayout},
    author={Claudio Beccari},
    year=2011,
    url={https://ctan.org/pkg/canoniclayout}
}

@manual{fear:booktabs,
    title={Publication-quality tables in \LaTeX},
    author={Simon Fear},
    year=2016,
    url={https://ctan.org/pkg/booktabs}
}

@manual{tantu:pgf,
    title={The TikZ and PGF Packages},
    author={Till Tantau},
    year=2020,
    url={https://ctan.org/pkg/pgf}
}

@online{texdocnet,
    title={TeXdoc Online},
    url={http://texdoc.net}
}

@online{ctan,
    title={Comprehensive \TeX\ Archive Network},
    shorttitle={CTAN},
    url={https://ctan.org}
}

@manual{hefferon:firstset,
    title={A First Set of \LaTeX\ Packages},
    author={Jim Hefferon},
    year=2020,
    url={https://ctan.org/pkg/first-packages}
}

@manual{pakin:dtxtut,
    title={How to Package Your \LaTeX\ Package},
    author={Scott Pakin},
    url={https://ctan.org/pkg/dtxtut}
}

@manual{latexteam:class,
    title={\LaTeXe\ for class and package writers},
    author={\LaTeX3 Project},
    url={https://ctan.org/pkg/clsguide}
}

@manual{mittelbach:doc,
    title={The doc and shortvrb packages},
    author={Frank Mittelbach},
    url={https://ctan.org/pkg/doc}
}

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

@article{flynn:article,
    title={Rolling your own Document Class:
        Using \LaTeX\ to keep away from the Dark Side},
    author={Peter Flynn},
    journaltitle={TUGboat},
    number={28:1},
    year=2007,
    pages={110--123},
    url={http://tug.org/TUGboat/tb28-1/tb88flynn.pdf}
}

@article{pakin:goodthings,
    title={Good things come in little packages:
        An introduction to writing \texttt{.ins} and \texttt{.dtx} files},
    author={Scott~Pakin},
    journaltitle={TUGboat},
    number={29:2},
    year=2008,
    pages={305--314},
    url={http://tug.org/TUGboat/tb29-2/tb92pakin.pdf}
}

@article{mansfield:class,
    title={How to develop your own document class\Dash our experience},
    author={Niall Mansfield},
    journaltitle={TUGboat},
    number={29:3},
    year=2008,
    pages={356--361},
    url={http://tug.org/TUGboat/tb29-3/tb93mansfield.pdf}
}

@online{gutenberg:TeXniques,
    title={TeXniques},
    subtitle={Groupe francophone des Utilisateurs de TEX, \LaTeX\ et logiciels compagnons},
    url={https://www.gutenberg.eu.org/TeXniques}
}

@book{lozano:everythingLaTeX,
    title={Tout Ce Que Vous Avez Toujours Voulu Savoir Sur \LaTeX\ Sans Jamais Oser Le Demander},
    author={Vincent Lozano},
    year=2011,
    url={http://lozzone.free.fr/index.php?vlunch=latex}
}

@book{baudoin:learnLaTeX,
    title={Apprends \LaTeX!},
    author={Marc Baudoin},
    year=2012,
    url={http://www.babafou.eu.org/Apprends_LaTeX}
}

@manual{amsmath,
    title={User’s Guide for the amsmath Package},
    author={{American Mathematical Society} and {\LaTeX3 project}},
    year=2020,
    url={https://ctan.org/pkg/amsmath}
}

@manual{amsmath-it,
    title={Manuale utente per il pacchetto amsmath},
    author={{American Mathematical Society} and {\LaTeX3 project}},
    translator={
        Giulio Agostini and Giuseppe Bilotta and Flavio Casadei Della Chiesa and Onofrio
        de Bari and Giacomo Delre and Luca Ferrante and Tommaso Pecorella and
        Mileto Rigido and Roberto Zanasi
    },
    year=1999,
    url={http://tug.ctan.org/tex-archive/info/italian/amsldoc/itamsldoc.pdf}
}

@manual{campani:tutorial,
    title={Introdução ao Uso do Preparador de Documentos \LaTeX},
    author={Carlos A. P. Campani},
    year=2011,
    url={https://ctan.org/pkg/cursolatex}
}

@manual{amsmath-vn,
    title={{\setmainfont{Latin Modern Roman} \textit{Hướng dẫn sử dụng gói amsmath}}},
    author={{American Mathematical Society} and {\LaTeX3 project}},
    translator={Ky Anh},
    year=1999,
    url={https://ctan.org/pkg/amslatexdoc-vietnamese}
}

@manual{latex2e-japanese,
    title={\LaTeX2e for authors},
    author={\LaTeX3 Project Team},
    translator={Yukitoshi FUJIMURA},
    year=2015,
    url={https://www.latex-project.org/help/documentation/usrguide_jpn.pdf}
}

@manual{amsmath-jp,
    title={User’s Guide for the amsmath Package},
    author={{American Mathematical Society} and {\LaTeX3 project}},
    translator={Yukitoshi FUJIMURA},
    year=2018,
    url={https://www.latex-project.org/help/documentation/amsldoc_jpn.pdf}
}

@manual{shortmath-jp,
    title={Short Math Guide for LaTeX},
    author={Michael Downes and Barbara Beeton},
    translator={Yukitoshi FUJIMURA},
    year=2017,
    url={https://www.latex-project.org/help/documentation/short-math-guide_jpn.pdf}
}

\end{filecontents}




\documentclass{article}


% \documentclass[twocolumn]{article}


% \usepackage[T1]{fontenc} 
% \usepackage[utf8]{inputenc}
\usepackage{fontspec}
% \setmonofont{Inconsolata}
% \setmainfont{Erewhon}
% \setsansfont{SourceSansPro}


\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[bottom=1in]{geometry}

\usepackage{graphicx}

\usepackage{metalogox}

\usepackage{needspace}

\usepackage{biblatex}
\addbibresource{docsurvey.bib}

\usepackage[nottoc,numbib]{tocbibind}

\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*{\XeTeXrevE}
{\protect\hspace{-.1667em}\protect\raisebox{-.5ex}{\protect\reflectbox{E}}\protect\hspace{-.125em}}
\providecommand*{\XeTeX}{\mbox{X\XeTeXrevE\TeX}}
\providecommand*{\XeLaTeX}{\mbox{X\XeTeXrevE\LaTeX}}

\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}}
\newrobustcmd{\Dash}{\unskip\thinspace\textemdash\thinbrspace}
\newrobustcmd{\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{\pub}[1]{\textit{#1}}

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


\newcommand{\EDITORnoaddress}{}


\usepackage{microtype}
\usepackage{graphicx}
\usepackage{ifpdf}
\ifpdf
\definecolor{myurlcolor}{rgb}{.4,0,0}
\definecolor{mylinkcolor}{rgb}{.4,0,0}
\definecolor{mycitecolor}{rgb}{.4,0,0}
\usepackage[breaklinks,colorlinks,
    linkcolor=mylinkcolor,
    urlcolor=myurlcolor,
    citecolor=mycitecolor]{hyperref}
\else
\usepackage{url}
\fi

\hypersetup{%
pdfinfo={%
Title={Programming LaTeX - A survey of documentation and packages},%
Author={Brian Dunn},%
Subject={LaTeX programming documentation},%
Keywords={LaTeX, programming, documentation, BD Tech Concepts LLC}%
}}


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

\usepackage{multicol}


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


\newrobustcmd*{\pkg}[1]{\textsf{#1}}
\newrobustcmd*{\prog}[1]{\texttt{#1}}
\newrobustcmd*{\tag}[1]{\texttt{<#1>}}
\newrobustcmd*{\prop}[1]{\textsl{\texttt{#1}}}
\newrobustcmd*{\epub}{\acro{EPUB}}
\newrobustcmd*{\texdoc}[1]{\hspace*{\fill}\mbox{(\texttt{texdoc #1})}}
\newrobustcmd*{\hfurl}[1]{\hspace*{\fill}\mbox{(\url{#1})}}
\newrobustcmd*{\hfciteurl}[1]{\hspace*{\fill}\mbox{(\citeurl{#1})}}
\newrobustcmd*{\userentry}[1]{%
\leavevmode\par\hspace*{2em}\texttt{#1}\smallskip\\}

\pdfstringdefDisableCommands{
\renewcommand*{\quad}{ }
\renewcommand*{\pkg}[1]{#1}
\renewcommand*{\prog}[1]{#1}
\renewcommand*{\LuaLaTeX}{LuaLaTeX}
\renewcommand*{\XeLaTeX}{XeLaTeX}
\renewcommand*{\TeX}{TeX}
\renewcommand*{\LaTeX}{LaTeX}
\renewcommand*{\Dash}{ --- }
\renewcommand*{\dash}{ -- }
}

\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--2020 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 for \LaTeX.
Included are references to printed and electronic books and manuals,
symbol lists, \acro{FAQ}s, the \LaTeX\ source code, CTAN and distributions,
programming-related packages, users groups and online communities,
and information on creating packages and documentation.
\end{abstract}

\tableofcontents

\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, this 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}
\item[Additional books:] Listed at the \TeX\ \acro{FAQ}.~\cite{TeX:FAQ}
    \hfciteurl{TeX:FAQ}
\end{description}


\section{Electronic books and documentation}

Most of these are provided with the \TeX\ distribution, and may be updated
with each release.
Access the embedded documentation from a command line using the \texttt{texdoc}
program.

\subsection{\TeX}

\begin{description}
\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}

\subsection{\LaTeX}

\begin{description}
\item[Getting something out of \LaTeX:]
    Create your first document in \LaTeX.~\cite{hefferon:first}
    \hfciteurl{hefferon:first}

\item[The very short guide to typesetting with \LaTeX:]
    A four-page introduction.~\cite{flynn:veryshort}
    \hfciteurl{flynn:veryshort}

\item[Formatting Information:]
    A beginner’s introduction to typesetting with \LaTeX.~\cite{flynn:formatting}
    \hfciteurl{flynn:formatting}

\item[\LaTeX\ for Complete Novices:]
    An extensive introduction for a non-technical person.~\cite{talbot:novices}
    \texdoc{dickimaw-novices}

\item[Using \LaTeX\ to Write a PhD Thesis:]
    A followup to \pub{\LaTeX\ for Complete Novices}, including extensive
    discussion about bibliographies, indexes, and glossaries.~\cite{talbot:phd}
    \texdoc{dickimaw-thesis}

\item[Getting Started with \LaTeXe:]
    A beginner's bare-bones overview.~\cite{morris:gettingstarted}
    \texdoc{startlatex2e}

\item[Writing Scientific Documents Using \LaTeX:]
    An introduction to typesetting scientific documents.~\cite{Bennieston:scientific}
    \newline
    \hfciteurl{Bennieston:scientific}

\item[The Not So Short Introduction to \LaTeXe:]
	Covers introductory material, customizations,
	and a simple package.  Available in many languages~\cite{oetiker:introduction}
	\texdoc{-l lshort}
    \hfciteurl{oetiker:introduction}

\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}
    \hfciteurl{greenwade:reference}

\item[LaTeX WikiBook:] An online book, includes information about
	creating \LaTeX\ packages and classes.~\cite{latexwikibook}
    \hfciteurl{latexwikibook}

\item[\LaTeXe\ for authors:]
    An overview of the new features of \LaTeXe\ compared to \LaTeX 2.09.
   ~\cite{latex:authors}
    \texdoc{usrguide}
\end{description}

\subsection{Lua\LaTeX}

\begin{description}
\item [A guide to Lua\LaTeX:] An introduction. \texdoc{lualatex-doc}
\item [Lua\TeX\ Reference:] The full manual. \texdoc{luatex.pdf}
\end{description}

\subsection{\XeLaTeX}

\begin{description}
\item [The \XeTeX\ reference guide:] A summary of additional features.
    \texdoc{xetex-reference}
\item [Font-change-xetex:] Macros for using fonts.
    \texdoc{font-change-xetex}
\end{description}

\subsection{\LaTeX3 and \pkg{expl3}}

\begin{description}
\item [The \LaTeX3 Interfaces:] Reference documentation for the \pkg{expl3}
    programming environment.    \texdoc{interface3}
\end{description}


\subsection{Math typesetting}
\label{sec:math}

\begin{description}
\item [User’s Guide for the amsmath Package:]
    How to use \pkg{amsmath}.~\cite{amsmath} \texdoc{amsmath} \\
    Also see \nameref{sec:international} for the Italian, Japanese,
    and Vietnamese translations.

\item[Short Math Guide for \LaTeX:]
    A summary of features in \LaTeX\ and packages for writing
    math formulas.~\cite{downes:shortmath}
    \texdoc{short-math-guide}

\item[Farbige Mathematik:]
    Math in color.  In German, but with easy-to-use examples.~\cite{voss:farbige}
    \texdoc{voss-mathcol}
\end{description}


\subsection{Music typesetting}

\begin{description}
\item [\LaTeX\ for Musicians:]
    Packages and programs for music symbols, lyrics, chord sheets, sheet music,
    and guitar tablature.~\cite{Gonzato:musicians}
    \texdoc{latex4musicians}
\end{description}


\subsection{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 by unicode-math:]
Unicode math symbols.~\cite{robertson:mathsymbols}
\texdoc{unimath-symbols}
\end{description}


\subsection{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}
        \texdoc{source2e}
\item[List of internal \LaTeXe\ macros 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}



\subsection{FAQs}

%Frequently-Asked Questions

\begin{description}
\item[\TeX\ FAQ:] A wide-ranging list of fre\-quently-asked questions.
(Formerly the UK TUG FAQ.)
~\cite{TeX: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}


\subsection{International languages}
\label{sec:international}

\begin{description}[style=standard]
    \item [Multiple languages:] The following are available in several languages.
    \begin{description}
        \item[The Not So Short Introduction to \LaTeXe:]
            Covers introductory material, customizations,
            and a simple package.~\cite{oetiker:introduction}
            \texdoc{-l lshort}
            \hfciteurl{oetiker:introduction}

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

        \item [Ebook Foundation — Free Programming Books:] A variety
        of \TeX-related and other programming books
        and documents.~\cite{ebookfoundation:free}
        \hfciteurl{ebookfoundation:free}
    \end{description}
    \item[Brazilian Portuguese:] \
        \begin{description}
        \item[\LaTeXe\ Via Exemplos:] A study course.~\cite{massago:exemplos}
            \hfciteurl{massago:exemplos}
        \end{description}
    \item[French:] \
        Also see \nameref{sec:online}.
        \begin{description}
        \item[TeXniques:]
            A collection of resources.~\cite{gutenberg:TeXniques}
            \hfciteurl{gutenberg:TeXniques}
        \item[%
            Tout Ce Que Vous Avez Toujours Voulu Savoir
            Sur \LaTeX\ Sans Jamais Os Er Le Demander:%
        ]
            A book for beginners.~\cite{lozano:everythingLaTeX}
            \hfciteurl{lozano:everythingLaTeX}
        \item[Apprends \LaTeX!:] A full textbook written for
            École Nationale Supérieure de Techniques Avancées.~\cite{baudoin:learnLaTeX}
            \hfciteurl{baudoin:learnLaTeX}
        \item[Initiation à LATEX:] A guide on \LaTeX\ — for beginners
            or advanced users.~\cite{bouzigues:guide}
            \hfciteurl{bouzigues:guide}
        \item[Rédaction avec \LaTeX:]
            An introductory course prepared for
            Université Laval, Québec, Canada.~\cite{Goulet:Redaction}
            \texdoc{formation-latex-ul}
            \texdoc{formation-latex-ul-diapos}
        \end{description}
    \item[German:] \
        See \nameref{sec:math}, \nameref{sec:groups}, and \nameref{sec:online}.
    \item[Indian:] \
        \begin{description}
        \item [A practical guide to \LaTeX\ and polyglossia for Indian Languages:]
            \LaTeX\ and \pkg{polyglossia} for Indian languages.~\cite{Holkar:polyglossia}
            \texdoc{latex-mr}
        \end{description}
    \item[Italian:] \
        \begin{description}
        \item [Manuale utente per il pacchetto amsmath:] Manual for \pkg{amsmath}.
            \cite{amsmath-it}
            \texdoc{amsldoc-it}
        \end{description}
    \item[Japanese:] \
        \begin{description}
        \item [\LaTeX2e for authors:] \cite{latex2e-japanese}
            \hfciteurl{latex2e-japanese}
        \item [User’s Guide for the amsmath Package:] \cite{amsmath-jp}
            \hfciteurl{amsmath-jp}
        \item [Short Math Guide for LaTeX:] \cite{shortmath-jp}
            \hfciteurl{shortmath-jp}
        \end{description}
    \item[Portuguese:] \
        \begin{description}
        \item [Introdução ao Uso do Preparador de Documentos \LaTeX:]
            A tutorial as \acro{PDF} slides.~\cite{campani:tutorial}
            \texdoc{cursolatex}
        \end{description}
    \item[Vietnamese:] \
        \begin{description}
        \item [%
            {\setmainfont{Latin Modern Roman} \textbf{Hướng dẫn sử dụng gói}}
            amsmath:%
        ] Manual for \pkg{amsmath}.~\cite{amsmath-vn}
            \texdoc{amsldoc-vn}
        \end{description}
\end{description}

\subsection{General typesetting theory}

Discussion about general typesetting theory,
presented by various \TeX-related authors.

\begin{description}
\item[A Few Notes on Book Design:]
    Discussion about book design and typography.
    100+ pages.~\cite{wilson:design}
    \texdoc{memdesign}

\item[KOMA-Script — The Guide --- Calculating the Page Layout with typearea:]
    Discussion about the page layout of a book.~\cite{kohm:typearea}
    \texdoc{typearea}

\item[A TUFTE-STYLE BOOK --- The Design of Tufte's Books:]
    Emulating ideas from the books of Edward R. Tufte.~\cite{tufte:book}
    \texdoc{tufte-latex}

\item[The Octavo Package:]
    Design principles and guidelines emulating books
    from the Renaissance.~\cite{revets:octavo}
    \texdoc{octavo}

\item[Package canoniclayout:]
    Ideas regarding text-block proportions.~\cite{beccari:canoniclayout}
    \texdoc{canoniclayout}

\item[Publication-quality tables in \LaTeX:]
    Improved design of tabular layouts.~\cite{fear:booktabs}
    \texdoc{booktabs}

\item[The Ti\textit{k}Z and PGF Packages --- Guidelines on Graphics:]
    ``General guidelines and principles concerning the creation of graphics
    for scientific presentations, papers, and books''.~\cite{tantu:pgf}
    \texdoc{pgfmanual}

\end{description}

\section{Accessing embedded information}

\subsection{\pkg{texdoc}}

A large amount of documentation is included in a \TeX\ distribution.
Most can be accessed with the \prog{texdoc} program.
Enter ``\prog{texdoc -l <name>}'' to search for
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.
\prog{texdoc} is also available online~\cite{texdocnet},
with popular packages sorted by category. \hfciteurl{texdocnet}

\subsection{\prog{kpsewhich}}

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}
If it is not installed on your local system, it will
be necessary to download the \verb+.dtx+ file from
CTAN (see the next section).

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{%
    Obtaining packages \Dash Comprehensive \TeX\ Archive Network \protect\quad (CTAN)%
}

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}


\needspace{7\baselineskip}
\section{Useful packages}

\subsection{General use}

\begin{description}
\item [A First Set of \LaTeX\ Packages:]
    A list of packages useful for beginners.~\cite{hefferon:firstset}
    \texdoc{first-packages}
\end{description}

\subsection{Programming \LaTeX}

A number of packages are especially useful for \LaTeX\ programmers:
\texdoc{<packagename>}

\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[\pkg{chktex}:] Locates typographic errors.
\item[\CTAN\ topic \pkg{macro-supp}:] An entire topic of
	useful programming macros.
\end{description}
\end{multicols}


\section{Creating and documenting new packages}

\subsection{How-to}

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{Published articles about creating \LaTeX\ packages}

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: An
	introduction to writing \texttt{.ins} and \texttt{.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 our experience:]
	A comparison of developing class vs.\ package
	files.~\cite{mansfield:class}

\end{description}

\section{Users groups}
\label{sec:groups}

\begin{description}[style=unboxed]
\item[\TeX\ Users Group:] \url{http://tug.org}
\item[Dante:] German users group.  \url{https://www.dante.de}
\item[List of international users groups:] \url{http://tug.org/usergroups.html}
\end{description}

\section{Online communities}
\label{sec:online}

\begin{description}[style=unboxed]
\item[English forums:] \
\begin{description}[style=unboxed]
\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}[style=unboxed]
\item[TeXwelt:] \url{http://texwelt.de/wissen/}
\item[goLaTeX:] \url{http://golatex.de}
\end{description}

\item[French forums:] \
\begin{description}[style=unboxed]
\item[TeXnique.fr:] \url{http://texnique.fr}
\end{description}

\item[Mailing lists:]
    Several dozen, spanning a wide range of \TeX-related topics.
    \url{http://tug.org/mailman/listinfo}

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


\section{Distributions \Dash \LaTeX\ for various operating systems}
\begin{description}[style=unboxed]
\item[TeXLive:] \url{http://tug.org/texlive} \hfill Unix and Windows
\item[MiKTex:] \url{https://miktex.org}  \hfill Windows and Mac
\item[proTeXt:] \url{http://tug.org/protext/}  \hfill Windows
\item[MacTex:] \url{http://tug.org/mactex/} \hfill Mac
\end{description}


\section{Change log}

\begin{description}[style=standard]
\item[2017/03/06:] Initial version.
\item[2017/10/04:] Added users groups, mailing lists,
    distributions, \LuaTeX, \XeTeX, \pkg{chktex}.
    Organization and formatting improvements.
\item[2017/10/14:] More information about accessing embedded documentation.
\item[2018/01/18:] Added \url{texdoc.net}.
\item[2018/01/21:] Added \pkg{la­tex-veryshort­guide}, \pkg{first-latex-doc},
                    \pkg{beginlatex},
                    \pkg{intro-scientific}, \pkg{guide-latex-fr}.
\item[2018/03/24:] Added \pkg{interface3}, \pkg{dickimaw-novices}, \pkg{dickimaw-thesis}.
\item[2018/04/01:] Added TeXnique.fr.
\item[2018/06/28:] Added sections for non-English documents and general typesetting theory.
    Updated host and name for \TeX\ \acro{FAQ}.  Added \pkg{latex-via-exemplos} and
    Ebook Foundation free programming books.
\item[2018/10/18:] Updated \acro{URL} for \pub{\LaTeXe: An unofficial reference manual}.
\item[2020/12/14:] Improved bibliography.
    Added categories for math and music; \pkg{startlatex2e};
    items written in French, German, Indian, Italian, Japanese, Portuguese, Vietnamese;
    Dante users group.
\end{description}


\printbibliography



\end{document}
