I'm preparing a list of package recommendations for an intermediate workshop on LaTeX. I avoided providing such a list at the introductory workshop as the tendency is to then add packages without really understanding why, but it seems appropriate to provide such a list to users who have a little bit of experience with LaTeX under their belts. Participants in the workshop will primarily be postgraduate students in a variety of academic disciplines.
One side of the handout will list general package recommendations, mostly in conditional form. For example, 'enumitem for custom lists'. The other side will list more specialised packages according to academic discipline. This question concerns only the second side of the handout.
My current rather lopsided list is given below. I am trying to adhere to 2 constraints:
- packages should be available from CTAN, preferably as part of TeX Live and MiKTeX;
- packages should be compatible with both the LaTeX format and the pdfTeX engine.
What should I add, delete or amend?
Changes to the existing subject lists or suggestions for listings for additional subjects are equally welcome.
Subject specific listings:

[Obviously, the current lopsidedness consists in the length of the list for logic, linguistics and the humanities. That it is not lopsided entirely in favour of logic is thanks to responses in comments on this question!]
Note that mathtools, amssymb and ntheorem are listed under Mathematics on the first, general side of the handout as these are not really specific to mathematicians. Similarly, tikz and pgfplots are listed there under Diagrams. Obviously there are grey areas here and I'm aware that my categories are rather arbitrary. I'm more interested in making sure that key packages are on the list and that I'm not listing things which are best avoided.
Here is the general list for reference:

Code for handout (2015-05-02)
\documentclass[a4paper,welsh,british,twocolumn]{article}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage[tt=lining]{cfr-lm}
\usepackage{enumitem,geometry,url}
\usepackage{csquotes}
\MakeAutoQuote{‘}{’}
\MakeAutoQuote*{“}{”}
\geometry{scale=.9}
\setlength{\columnseprule}{0.4pt}
\urlstyle{sf}
\title{\LaTeX{} Package Recommendations}
\author{cfr}
\date{}
\pagestyle{empty}
\begin{document}
\pdfinfo{%
/Title (LaTeX Package Recommendations)
/Subject (LaTeX)
/Keywords (LaTeX, package)}
\maketitle\thispagestyle{empty}
\newlist{pkgdescription}{description}{1}
\setlist[pkgdescription]{font=\bfseries\ttfamily}
\newcommand*\lpack[1]{\texttt{\bfseries #1}}
\section{General}
You should almost always use:
\begin{pkgdescription}
\item[babel] Pass \verb|welsh,british| to your class.
\item[inputenc] Load with option \verb|utf8|; \verb|\input{ix-utf8enc.dfu}|.
\item[fontenc] Load with option \verb|T1|.
\item[textcomp]
\item[microtype]
\end{pkgdescription}
\section{Document Layout}
If you are using a standard class (e.g.\ \lpack{article}, \lpack{book} or \lpack{report}):
\begin{pkgdescription}
\item[geometry] to change page dimensions.
\item[fancyhdr] for custom headers/footers.
\item[titling] to use document metadata after \verb|\maketitle|.
\end{pkgdescription}
\section{Mathematics}
\begin{pkgdescription}
\item[mathtools] for enhanced \lpack{amsmath}.
\item[amssymb] for more symbols, scripts.
\item[ntheorem] for enhanced theorem environments.
\end{pkgdescription}
\section{Quotes \& Quoting}
\begin{pkgdescription}
\item[csquotes] for context- and language-sensitive quotations and quotation marks. Recommended if using \lpack{biblatex}.
\end{pkgdescription}
\section{Citations \& Bibliographies}
\begin{pkgdescription}
\item[biblatex] Load with option \verb|backend=biber|.
\end{pkgdescription}
\section{Cross-Referencing}
\begin{pkgdescription}
\item[fancyref] for enhanced cross-references.
\item[cleverref] for enhanced cross-references.
\end{pkgdescription}
\section{Lists}
\begin{pkgdescription}
\item[enumitem] for custom lists.
\item[glossaries] for glossaries and lists of acronyms.
\end{pkgdescription}
\section{Tables}
\begin{pkgdescription}
\item[array] for enhanced tabular environments.
\item[booktabs] for professional quality tables.
\item[longtable] for multi-page tables.
\item[tabularx] for tables with specified width.
\item[threeparttable] for tables with notes.
\item[multirow] for cells spanning multiple rows.
\end{pkgdescription}
\section{Floats}
\begin{pkgdescription}
\item[caption] to customise captions.
\item[float] more options for floats.
\item[subcaption] for sub-figures, sub-tables and sub-captions.
\item[floatrow] for aligned sub-figures.
\item[rotating] to rotate floats.
\end{pkgdescription}
\section{Hyperlinks}
\begin{pkgdescription}
\item[hyperref] for hyperlinks.
\item[bookmark] for enhanced bookmarks.
\end{pkgdescription}
\section{Images \& Colour}
\begin{pkgdescription}
\item[graphicx] to load external images.
\item[xcolor] for colour.
\end{pkgdescription}
\section{Diagrams}
\begin{pkgdescription}
\item[tikz] for diagrams.
\item[pgfplots] for plots of all kinds.
\end{pkgdescription}
\section{External Data}
\begin{pkgdescription}
\item[datatool] for data manipulation.
\item[textmerg] for merging text.
\end{pkgdescription}
\section{Version Control}
\begin{pkgdescription}
\item[svn-multi] for use with \verb|subversion|.
\item[gitinfo2] for use with \verb|git|.
\end{pkgdescription}
\appendix
\section{Biology}
\begin{pkgdescription}
\item[texshade] for nucleotide and peptide alignments.
Can process alignments in \textsc{msf}, \textsc{aln} and \textsc{fasta} formats.
\end{pkgdescription}
\section{Chemistry}
% Ref.: \url{}
\begin{pkgdescription}
\item[chemformula] for formulae and reactions.
\item[modiagram] for \lpack{tikz}-based molecular orbital diagrams.
\item[mychemistry] for reaction schemes.
The package depends on \lpack{chemfig} for \lpack{tikz}-based molecules.
\item[tikzorbital] for \lpack{tikz}-based molecular orbitals, inc.\ s, p and d.
\item[siunitx] for SI units.
\end{pkgdescription}
\section{Computer Science}
% Ref.: \url{}
\begin{pkgdescription}
\item[algorithms] for pseudo-code.
\item[algorithm2e] for floating pseudo-code.
\item[listings] for source code.
\item[minted] for highlighted source code.
\end{pkgdescription}
\section{Engineering}
% Ref.: \url{}
\begin{pkgdescription}
\item[bloques] for simple \lpack{tikz}-based control diagrams.
\item[circuitikz] for \lpack{tikz}-based electrical and electronic circuits.
\item[siunitx] for SI units.
\end{pkgdescription}
\section{Humanities}
% Ref.: \url{}
\begin{pkgdescription}
\item[bibleref] for referencing and indexing Bible verses.
\item[classics] to cite classic works sensibly.
\item[eledmac] for critical editions and \lpack{eledpar} for parallel texts.
\item[ednotes] for critical editions of handwritten manuscripts.
\item[edfnotes] for critical editions of printed texts with footnotes.
\item[handout] for handouts consisting of textual excerpts.
\item[poemscol] for critical editions of poetry.
\item[schemata] for topical schemata of the kind sometimes used to illustrate conceptual structure e.g.~in Scholastic thought.
\item[verse] for verse without annotations.
\end{pkgdescription}
\section{Linguistics}
% Ref.: \url{www.essex.ac.uk/linguistics/external/clmt/latex4ling}
\begin{pkgdescription}
\item[gb4e] for examples, glosses etc.
\item[expex] for enhanced examples, glosses etc.
\item[leipzig] for standard and custom glossing abbreviations.
\item[ot-tableau] for optimality-theoretic tableaux.
\item[qtree] for syntactic trees without \lpack{tikz}.
\item[forest] for enhanced \lpack{tikz}-based syntactic trees.
\item[stmaryrd] for semantics brackets.
\item[tikz-dependency] for \lpack{tikz}-based dependency graphs.
\item[tipa] for IPA fonts.
\end{pkgdescription}
\section{Logic}
Ref.: \url{www.latexforlogicians.net}
\begin{pkgdescription}
\item[algorithms] for algorithms.
\item[gene-logic] for better spacing of maths symbols.
\item[bussproofs] for natural deduction/Gentzen sequent proofs.
\item[prftree] a newer alternative to \lpack{bussproofs}.
\item[lplfitch] for ‘Fitch’-style proofs.
\item[logicproof] for ‘Fitch’-style proofs with boxed sub-proofs.
\item[natded] for Jaśkowski-/Kalish-Montague-style proofs.
\item[qtree] for tree proofs without \lpack{tikz}.
\item[forest] for enhanced \lpack{tikz}-based tree proofs.
\item[tikz-cd] for \lpack{tikz}-based commutative diagrams.
\item[turnstile] for turnstiles of all kinds.
\end{pkgdescription}
\section{Physics}
% Ref.: \url{}
\begin{pkgdescription}
\item[feyn] for inline Feynman diagrams.
\item[feynmp] or \lpack{feynmf} for Feynman diagrams.
\item[siunitx] for SI units.
\end{pkgdescription}
\section{}
% Ref.: \url{}
\begin{pkgdescription}
\item[]
\end{pkgdescription}
\end{document}

classicsis useful for avoiding references that suggest Aristotle wrote something new in 2012, andschematais great for outlining complex texts and arguments. – Thérèse Apr 06 '15 at 17:09impnattypofor French). – Thérèse Apr 06 '15 at 17:37versepackage enhances the standard verse environment; I produced some ugly hacks until I came across that package. – Thérèse Apr 06 '15 at 18:47verseas I've used that myself. Just couldn't decide how key it was but if you use it too, that probably means it is of significant use. I think I'll skipimpnattypoas much of it seems to depend on LuaTeX. Doesclassicsdo anything you can't do withbiblatex'sclassical? I'll take a look atschemata- I've not come across that before. – cfr Apr 06 '15 at 18:52poemscolin that case, too... – cfr Apr 06 '15 at 18:54\mathtoolsfor math perhaps? – Apr 06 '15 at 19:25circuitikz? I've addedtexshade,chemfigandtikz-dependency. (Great to have something for biology!) – cfr Apr 06 '15 at 20:14biblatex'sclassical"? (Not that I'd heard of theclassicalpackage either.) – jon Apr 06 '15 at 22:01entrysubtypewith a value ofclassicalin a bib entry andbiblatexwill format it differently. This is especially important for author-year styles where you otherwise end up with Kant writing the Groundwork in 2009 or something. Although, thinking about it, I think it requires a non-standard style. You can certainly do some of whatclassicsdoes withbiblatexand the right style, though, and some, maybe with standard styles. Butclassicsmight just be easier... – cfr Apr 06 '15 at 23:39classicson the list given that it is not tied to a specific (set?) of bibliography styles and given the audience. (However, I think I'll stick to my ownxparse-based citation commands for pre-modern texts sincexparseoffers more flexibility.) – jon Apr 07 '15 at 00:00classics. – cfr Apr 07 '15 at 00:18:-)– Malipivo Apr 07 '15 at 08:04expexas a more powerful example/glossing package (though with a steeper learning curve thangb4e). I would also discourage the use oftipaand instead encourage the use of Unicode IPA fonts with Xe/LuaLaTeX, which can be entered using an IPA keyboard layout and make moving data between (La)TeX and other Unicode linguistics applications much easier (http://tex.stackexchange.com/q/224164/42880). I'd also addleipzigfor standardizing and collecting gloss abbreviations andot-tableaufor Optimality Theory tableaux. – Jason Zentz Apr 09 '15 at 15:14expexand not bothering withgb4e? I'm explicitly avoiding packages which require anything but pdfTeX as engine and LaTeX as format. I mention their existence, but I need to constrain the field somewhat.ot-tableaulooks good! Will look atleipziglater. – cfr Apr 09 '15 at 16:27gb4e— a lot of linguists do just fine with it depending on what kind of examples they work with. If you need finer control over spacing, line breaking, formatting, etc., or need more than 3 lines in your interlinear glossing, thenexpexis the way to go. Alan Munn gives a nice comparison here: http://tex.stackexchange.com/a/77941/42880. Here are some questions that highlight whereexpexis more capable/flexible thangb4e: http://tex.stackexchange.com/q/84410/42880, http://tex.stackexchange.com/q/115591/42880, http://tex.stackexchange.com/q/49579/42880. – Jason Zentz Apr 09 '15 at 18:53qtreeas well asforestfor the same reason.) I'll putexpexdown for 'enhanced...' ;). I have almost as much for linguistics now as I do for logic! – cfr Apr 09 '15 at 20:31\usepackage[version=3]{mhchem}for typesetting reactions andsiunitxas you mention. It might be worth noting that\bibliographystyle{achemso}or theachemsopackage are going to give the right format for bibliographies. I forget why I started adding\usepackage[sort&compress,numbers,super]{natbib}%, but I guess it helped keepachemsohappy.https://en.wikibooks.org/wiki/LaTeX/Chemical_Graphics has some tips
– repurposer Apr 13 '15 at 18:39biblatexin the session rather thanbibtex. (We did the standardthebibliographylast time but, predictably, nobody cared very much. Especially since it can't talk to Mendeley.) Is it useful to mentionmhchemas well asmychemistry? – cfr Apr 13 '15 at 23:08mychemistry, but I would try about anything once. As far as bibliography, I am using BibTeX, with Zotero as a reference manager. Mendeley would, as far as I know, export a.bibfile, which I call using\bibliography{library}– repurposer Apr 13 '15 at 23:34biblatex/bibersobibtexis not going to be relevant. I asked aboutmychemistrybecause it usesmhchem, apparently, and I have been generally not listing included packages unless independently necessary. – cfr Apr 13 '15 at 23:46biblatexin the generic section. – cfr Apr 15 '15 at 12:22handoutandbibleref. – cfr Apr 15 '15 at 22:35babel. But I want to stick to packages for this list which they can use immediately with the documents they are creating during the workshop. (I can't cover everything and, to some extent, I'm told what to cover - I requested a couple of changes and got them, but the basic syllabus was already determined.) Also, your book looks nice but I think I better stick to English resources... ;). (Or Welsh, I guess.) – cfr Apr 16 '15 at 12:04sepfootnotesfor those who indulge in numerous or lengthy footnotes or endnotes. – n.r. May 02 '15 at 02:06footmiscto the list for generic document layout. – cfr May 02 '15 at 02:35\footnotecommands may disrupt reading LaTeX code. – n.r. May 02 '15 at 14:33bigfootso don't know if it is useful or not. What does it do?siunitxis included.polyglossiadoesn't work with pdfTeX (which is assumed here). I would never, ever recommendtabuand would tell any student who asked to avoid it like the plague.xindyisn't a package. Neither ismemoirand Koma includes packages, but usually I'd recommend using the class if people want to use it significantly. (Classes are covered earlier in the workshop.) – cfr Nov 19 '16 at 13:45mychemistry, by the way, so maybe you should look at alternatives. – cfr May 30 '17 at 00:24