From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- info/docsurvey/README.txt | 23 + info/docsurvey/docsurvey.pdf | Bin 0 -> 348900 bytes info/docsurvey/docsurvey.tex | 1055 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1078 insertions(+) create mode 100644 info/docsurvey/README.txt create mode 100644 info/docsurvey/docsurvey.pdf create mode 100644 info/docsurvey/docsurvey.tex (limited to 'info/docsurvey') diff --git a/info/docsurvey/README.txt b/info/docsurvey/README.txt new file mode 100644 index 0000000000..085730577f --- /dev/null +++ b/info/docsurvey/README.txt @@ -0,0 +1,23 @@ + +The LaTeX docsurvey package + +Provides the document +"Programming LaTeX — A survey of documentation and packages" + +2018/10/18 +Copyright 2017-2018 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 and manuals, +symbol lists, FAQs, the LaTeX source code, CTAN and distributions, +programming-related packages, users groups and online communities, +and information on creating packages and documentation. + +--- + +Files: +README.txt, docsurvey.pdf, docsurvey.tex diff --git a/info/docsurvey/docsurvey.pdf b/info/docsurvey/docsurvey.pdf new file mode 100644 index 0000000000..97b146e8c1 Binary files /dev/null and b/info/docsurvey/docsurvey.pdf differ diff --git a/info/docsurvey/docsurvey.tex b/info/docsurvey/docsurvey.tex new file mode 100644 index 0000000000..4b37f380b5 --- /dev/null +++ b/info/docsurvey/docsurvey.tex @@ -0,0 +1,1055 @@ + +\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} + +\usepackage[bottom=1in]{geometry} + +\usepackage{graphicx} + +\usepackage{needspace} + +\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} + +\usepackage{multicol} + + +\usepackage{titling} +\setlength{\droptitle}{-1in} +\predate{\begin{center}\small} + + +\newrobustcmd*{\pkg}[1]{\textsf{#1}} +\newrobustcmd*{\prog}[1]{\texttt{#1}} +\newrobustcmd*{\LuaLaTeX}{Lua\-\LaTeX} +\newrobustcmd*{\LuaTeX}{Lua\-\TeX} +\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*{\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--2018 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 programming-related 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} + \hfurl{https://texfaq.org/} +\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} + \hfurl{https://ctan.org/pkg/first-latex-doc} + +\item[The very short guide to typesetting with \LaTeX:] + A four-page introduction.~\cite{flynn:veryshort} + \hfurl{https://ctan.org/pkg/latex-veryshortguide} + +\item[Formatting Information:] + A beginner’s introduction to typesetting with \LaTeX.~\cite{flynn:formatting} + \hfurl{https://ctan.org/pkg/beginlatex} + +\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[Writing Scientific Documents Using \LaTeX:] + An introduction to typesetting scientific documents.~\cite{Bennieston:scientific} \\ + \hfurl{https://ctan.org/pkg/intro-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} \hfurl{https://ctan.org/pkg/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} \\ + \hfurl{https://latexref.xyz} + +\item[LaTeX WikiBook:] An online book, includes information about + creating \LaTeX\ packages and classes. \\ + \hfurl{https://en.wikibooks.org/wiki/LaTeX} +\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{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 + \\\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} + + + +\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{Non-English} + +\begin{description} +\item[Initiation à LATEX:] A French guide on \LaTeX — for beginners + or advanced users.~\cite{bouzigues:guide} \\ + \hfurl{https://ctan.org/pkg/guide-latex-fr} + +\item[\LaTeXe\ Via Exemplos:] A study course +in Brazilian Portuguese.~\cite{massago:exemplos} + \hfurl{https://ctan.org/pkg/latex-via-exemplos} + +\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} \hfurl{https://ctan.org/pkg/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} \\ + \hfurl{https://latexref.xyz} + +\item [Ebook Foundation — Free Programming Books:] A variety +of \TeX-related and other programming books and documents, +in a number of languages.~\cite{ebookfoundation:free} +\hfurl{https://github.com/EbookFoundation/free-programming-books} +\end{description} + +\subsection{General typeseting 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 }'' 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. \hfurl{texdoc.net} + +\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{Packages useful for programming \LaTeX} + +A number of packages are especially useful for \LaTeX\ programmers: +\texdoc{} + +\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} + +\begin{description}[style=unboxed] +\item[\TeX\ Users Group:] \url{http://tug.org} +\item[List of international users groups:] \url{http://tug.org/usergroups.html} +\end{description} + +\section{Online communities} + +\begin{description}[style=unboxed] +\item[English forums:] \ +\begin{description}[style=unboxed] +\raggedright +\item[TeX\Dash \LaTeX\ Stack Exchange:] + \url{http://tex.stackexchange.com} \\ + Almost any question has already + been asked, and a quick web search will find answers, ranked by vote. +\item[\LaTeX\ Community:] \url{http://www.latex-community.org} \\ + A traditional forum with quick replies + to your questions +\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:] \url{http://tug.org/mailman/listinfo} \\ + Several dozen, spanning a wide range of \TeX-related topics. +\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}. +\end{description} + + +\begin{thebibliography}{99} + +\bibitem{lamport:latex} +\pub{\LaTeX: A Document Preparation System}, +Leslie Lamport, +second edition, Addison Wesley, 1994, ISBN 0201529831. + +\bibitem{hokpkadaly:guide} +\pub{Guide to \LaTeX}, +Helmut Kopka and Patrick W. Daly, +fourth edition, Addison-Wesley, 2004, ISBN 0321173856. + +\bibitem{gratzer:moremath} +\pub{More Math Into \LaTeX}, +George Gr\"{a}tzer, +5th ed., Springer, 2016, +ISBN 3319237950. +%ISBN-13: 978-3319237954. + +\bibitem{kottwitz:beginner} +\pub{\LaTeX\ Beginner's Guide}, +Stefan Kottwitz, +Packt Publishing, 2011, ISBN 1847199860. +%ISBN-13 1847199860. + +\bibitem{kottwitz:cookbook} +\pub{\LaTeX\ Cookbook}, Stefan Kottwitz, Packt Publishing, 2015, +ISBN-13 9781784395148. \\ +\url{http://latex-cookbook.net} + +\bibitem{mittelbachgossens:companion} +\pub{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{eijkhout:topic} +\pub{\TeX\ by Topic}, A \TeX{}nician's Reference, +Victor Eijkhout, +Addison-Wesley UK, 1991, ISBN 0201568829. +\url{http://eijkhout.net/texbytopic/texbytopic.html} + +\bibitem{hefferon:first} +\pub{Getting something out of \LaTeX}, +Jim Hefferon, 2009. \url{https://ctan.org/pkg/first-latex-doc} + +\bibitem{flynn:veryshort} +\pub{The very short guide to typesetting with \LaTeX}, +Peter Flynn, 2016. \\ +\url{https://ctan.org/pkg/latex-veryshortguide} + +\bibitem{flynn:formatting} +\pub{Formatting Information}, A beginner’s introduction to +typesetting with \LaTeX, Peter Flynn, 2005. \\ +\url{https://ctan.org/pkg/beginlatex} + +\bibitem{talbot:novices} +\pub{\LaTeX\ for Complete Novices}, +Nicola L. C. Talbot, 2012. +Dickimaw Books. +\url{http://www.dickimaw-books.com} + +\bibitem{talbot:phd} +\pub{Using \LaTeX\ to Write a PhD Thesis}, +Nicola L. C. Talbot, 2013. +Dickimaw Books. +\url{http://www.dickimaw-books.com} + +\bibitem{Bennieston:scientific} +\pub{Writing Scientific Documents Using \LaTeX}, +Andrew J. Bennieston, 2009. \\ +\url{https://ctan.org/pkg/intro-scientific} + +\bibitem{oetiker:introduction} +\pub{The Not So Short Introduction to \LaTeXe}, +Tobias Oetiker, 2015. \url{https://ctan.org/pkg/lshort} + +\bibitem{greenwade:reference} +\pub{\LaTeXe: An unofficial reference manual}, +George~D. Greenwade, Stephen Gilmore, +Torsten~Martinsen, and Karl Berry. +\url{https://latexref.xyz} + +\bibitem{pakin:list} +\pub{The Comprehensive \LaTeX\ Symbol List}, +Scott Pakin, 2017. +\url{https://ctan.org/pkg/comprehensive} + +\bibitem{robertson:mathsymbols} +\pub{Every symbol (most symbols) defined by unicode-math}, +Will Robertson, 2018. \\ +\url{https://ctan.org/pkg/unicode-math} + +\bibitem{latexteam:sources} +\pub{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} +\pub{List of internal \LaTeXe\ Macros useful to Package Authors}, +Martin Scharrer. \\ +\url{https://ctan.org/pkg/macros2e} + +\bibitem{TeX:FAQ} +\TeX\ FAQ. +\url{https://texfaq.org/} + +\bibitem{pakin:visual} +\pub{The Visual \LaTeX\ FAQ}, +Scott Pakin. +\url{https://ctan.org/pkg/visualfaq} + +\bibitem{bouzigues:guide} +\pub{Initiation à \LaTeX}, Pour débutants ou jeunes utilisateurs, +Adrien Bouzigues, 2017. \\ +\url{https://ctan.org/pkg/guide-latex-fr} + +\bibitem{massago:exemplos} +\pub{\LaTeXe\ Via Exemplos}, +Sadao Massago, 2018. +\url{https://ctan.org/pkg/latex-via-exemplos} + +\bibitem{ebookfoundation:free} +\pub{Free Programming Books}, +Ebook Foundation. \\ +\url{https://github.com/EbookFoundation/free-programming-books} + +\bibitem{wilson:design} +\pub{A Few Notes on Book Design}, +Peter Wilson, 2009. +\url{https://ctan.org/pkg/memdesign} + +\bibitem{kohm:typearea} +\pub{KOMA-Script — The Guide}, +Markus Kohm, 2018. +\url{https://ctan.org/pkg/koma-script} + +\bibitem{tufte:book} +\pub{A TUFTE-STYLE BOOK}, +The Tufte-LaTeX Developers, 2015. +\url{https://ctan.org/pkg/tufte-latex} + +\bibitem{revets:octavo} +\pub{The Octavo Package}, +Stefan A. Revets, +\pub{TUGboat} 23 3/4 (2002), p.~269. +\url{https://ctan.org/pkg/octavo} + +\bibitem{beccari:canoniclayout} +\pub{Package canoniclayout}, +Claudio Beccari, 2011. +\url{https://ctan.org/pkg/canoniclayout} + +\bibitem{fear:booktabs} +\pub{Publication-quality tables in \LaTeX}, +Simon Fear, 2016. +\url{https://ctan.org/pkg/booktabs} + +\bibitem{tantu:pgf} +\pub{Till Tantau}, 2015. +\url{https://ctan.org/pkg/pgf} + +\bibitem{texdocnet} +TeXdoc Online. +\url{http://texdoc.net} + +\bibitem{ctan} +Comprehensive \TeX\ Archive Network (CTAN). +\url{https://ctan.org} + +\bibitem{pakin:dtxtut} +\pub{How to Package Your \LaTeX\ Package}, +Scott~Pakin. +\url{https://ctan.org/pkg/dtxtut} + +\bibitem{latexteam:class} +\pub{\LaTeXe\ for class and package writers}, +\LaTeX3 Project. +\url{https://ctan.org/pkg/clsguide} + +\bibitem{mittelbach:doc} +\pub{The doc and shortvrb packages}, +Frank Mittelbach. +\url{https://ctan.org/pkg/doc} + +\bibitem{mittelbach:docstrip} +\pub{The DocStrip program}, +Frank Mittelbach, Denys Duchier, Johannes Braams, +Marcin Woli\'nski, and Mark Wooding. +\url{https://ctan.org/pkg/docstrip} + +\bibitem{flynn:article} +\pub{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} +\pub{Good things come in little packages: +An introduction to writing \texttt{.ins} and \texttt{.dtx} files}, +Scott~Pakin, +\TUB\ 29:2 (2008), pp.\,305--314. +\url{http://tug.org/TUGboat/tb29-2/tb92pakin.pdf} + +\bibitem{mansfield:class} +\pub{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} -- cgit v1.2.3