Sign up ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

What is the "right" way to search for a package/class to solve a random problem? Whenever I need to find a new package or class, I never feel like I am doing it efficiently. I tend to use a mixture of CTAN, Google, and The issue I have with CTAN is it doesn't provide any guidance on quality. Google tends to be filled with how-tos of questionable quality from various eras. seems to give the most up to date answer with a voting based judgment of quality (e.g., this question on CVs), but only when the question has been asked.

share|improve this question
I have recently discovered the command line tool "texdoc" and having lots of fun with that. For me it's the fastest way of checking packages documentation and every on and off, I also check the .sty files. I found it fairly useful specially when the files are commented properly. – Pouya Jan 22 '13 at 13:09
Did you try the TeX FAQ ? – TeXtnik Jan 22 '13 at 13:12
As you say, Google searches are probably the least reliable in this respect. As for CTAN searches, in deciding about quality, recency is often a helpful guide to quality as is having an active maintainer with a recent change history (even if minor changes). For quick question like this, chat is also helpful. – Alan Munn Jan 22 '13 at 14:09
@AlanMunn do you mean I should have asked this question question (as opposed to this comment question) on chat instead of the main site? What about this comment question? – StrongBad Jan 22 '13 at 15:00
Sorry, no the "this" in my comment was meant to be something like "for quick questions of this type" (i.e. questions like "What package should I use for X") can be asked in chat. Your actual question is useful, although hard to answer definitively. – Alan Munn Jan 22 '13 at 15:22

2 Answers 2

up vote 11 down vote accepted

CTAN .. doesn't provide any guidance on quality

I happen to have reflected on this question. :-)

The packages that have repeated functionality is not a large percentage of the archive as a whole, but for jobs that people often want to do you do see redundancy. We can imagine a number of attacks on that issue.

For instance, CTAN could track downloads and rank related packages that way. The issue here is that distributions such as TeX Live include the most widely-used packages so for instance the often-recommended geometry would be rarely downloaded from CTAN.

Or a web crawler could look at online docs to see what packages are actually used. That has the advantage of being automated, but an immediate difficulty is that many documents on the web are ancient and their package choices limited by their creation date, even assuming that majority vote is a good recomendation. A person could think to weigh more recent docs more highly .. but I don't know of any effort on this.

Maybe there could be some peer review process. That might help improve packages as well as give a person some recommendations. One issue here is that it could create another layer of documents to wade through and the great number of TeX users are already struggling with complexity. But the main issue is: who will bell this cat?

Finally (its the last idea that I have but no doubt someone else has better ones) we could have people write articles for TUGboat, etc., that give advice. I have this one (PDF) but it is getting old and anyway such articles by others would be a good thing. (Alternatively, such an article could be a wiki-type thing). One disadvantage here is that over time the "best" choice can change. In addition it has the disadvantage that some recommendations are just choices. For instance, I like Asymptote while others like TikZ and to some extent a recommendation is arbitrary.

share|improve this answer
What about a voting system on – marczellm Jan 22 '13 at 14:54
@marczellm This is activated on an alpha state test site: New CTAN, new toys. – Speravir Jan 22 '13 at 15:13
@marczellm As Jim notes in his answer, most packages are included as a matter of course in the major distributions, and so most people don't ever need to visit CTAN to get a package. This fact alone will make CTAN voting pretty unreliable for the same reason that counting download rates would. – Alan Munn Jan 22 '13 at 15:19
I think the jury is out on the voting system but it would be great if it worked and solved the OP's problem. If everyone here would make an effort to vote, surely that would be a help. – Jim Hefferon Jan 22 '13 at 19:32
It seems like it would be hard for a new package to ever overtake an old package. Imagine if voting had been in place from early on the natbib would have so many votes that it would take years before biblatex could over take it. Votes would need to expire to keep things up to date. – StrongBad Jan 23 '13 at 15:41

With "vanilla" TeXLive, you can use tlmgr and its search action to find useful packages.


$ tlmgr search margin


 adjmulticol - Adjusting margins for multicolumn and single column output.
 akletter - Comprehensive letter support.
 anysize - A simple package to set up document margins.
 autoarea - Automatic computation of bounding boxes with PiCTeX.
 block - A block letter style for the letter class.
 changepage - Margin adjustment and detection of odd/even pages.
 dlfltxb - Macros related to "Introdktion til LaTeX".
 edmargin - Multiple series of endnotes for critical editions.
 expdlist - Expanded description environments.
 fixme - Insert "fixme" notes into draft documents.
 fullblck - Left-blocking for letter class.
 fullwidth - Adjust margins of text block.
 genmpage - Generalization of LaTeX's minipages.
 geometry - Flexible and complete interface to document dimensions.
 image-gallery - Create an overview of pictures from a digital camera or from other sources.
 jura - A document class for German legal texts.
 margbib - Display bibitem tags in the margins.
 marginfix - Patch \marginpar to avoid overfull margins.
 marginnote - Notes in the margin, even where \marginpar fails
 match_parens - Easily detect mismatched parens.
 mcaption - Put captions in the margin.
 minipage-marginpar - Minipages with marginal notes.
 mparhack - A workaround for a LaTeX bug in marginpars.
 notes - Mark sections of a document.
 pdfmarginpar - Generate marginpar-equivalent PDF annotations.
 preprint - A bundle of packages provided "as is".
 randbild - Marginal pictures.
 refman - Format technical reference manuals.
 showlabels - Show label commands in the margin.
 sidenotes - Typeset notes containing rich content, in the margin.
 standalone - Compile TeX pictures stand-alone or as part of a document.
 sttools - Various macros.
 tabto-generic - "Tab" to a measured position in the line.
 tabto-ltx - "Tab" to a measured position in the line.
 tamefloats - Experimentally use \holdinginserts with LaTeX floats.
 texdiff - Compare documents and produce tagged merge.
 thumbs - Create thumb indexes.
 tikzpagenodes - Create commutative diagrams with TikZ
 titlesec - Select alternative section titles.
 vertbars - Mark vertical rules in margin of text.
 vmargin - Set various page dimensions.
 wordlike - Simulating word processor layout.
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.