As a relatively novice LaTeX user, is it OK to plunge right into using the helpful packages out there, or is it better to stick to core LaTeX primitives and packages so as learn the mechanics of LaTeX?

EDIT: I should clarify:

  • I'm not a total newbie, and I'm not either a complete idiot as to copy someone else's preamble without understanding the purpose of each package and what it does.

  • Although, in general, it's of course important to keep in mind that one can rely on LaTeX to provide a decent format, it's also true that the whole point of a program like LaTeX is to provide flexibility and customization. As someone with a programming background, that is what I find attractive about LaTeX in the first place.

The point of my question was whether to begin customizations at the high level, using existing packages or to achieve those same customizations (when relatively feasible) at the low level by doing things with just the core commands and packages. For example, to get my margins the way I want them to be, should I use the geometry package or do all the calculations on my own.

The question is similar to asking whether a novice programmer should immediately start using his programming language's existing Linked List data structure or code his own first so as to gain a thorough understanding of the concept.

  • 3
    I think that one of the greatest strengths of LaTeX over WYSIWYG word processors is the conceptual separation of content and formatting. When I was just learning LaTeX, it took a while to accept this and I would compile my docs constantly to see what they looked like. As I became more comfortable with LaTeX, I learned to focus on content when I was writing and now I rarely compile until the document is fairly complete. This isn't a specific answer to your question but I think it argues more for a stick to the basics approach and let LaTeX do what it does best while you focus on the content.
    – DQdlM
    Jan 20, 2012 at 14:43

5 Answers 5


I'd recommend to stick to the basics and "basic" packages. What they are is open to discussion.

The reason for this advice is that I find that most users tend to waste (they call it spending:-) a lot of time tweaking the form (style) of the output document. A lot of questions in TeX.sx are related to tweaking the output (how can I colour text here, how can I colour it there, how can I change the caption style to this, how to that, ...). In most cases this shouldn't be needed for basic documents like articles, reports, theses, and lecture notes. For basic documents I recommend that you accept the basic settings and/or the options that are provided by the basic document class.

Another advantage of using fewer classes and packages is that you reduce the dependencies/conflicts between the classes and packages. (A lot of problems are caused by package conflicts.)

The core basic packages/classes that I use myself are as follows. (Please note that except for the beamer class, I don't tweak them and accept the way they work. For the beamer class, I've implemented lots of commands that I find useful to write my presentations, notes, and even a book in the same source file.)

  • beamer for presentations;
  • tikz for producing pictures;
  • booktabs for producing better tabulars;
  • xcolor for the colour in presentations. (I don't like colour in printed running text/tables.);
  • microtype for marginal kerning/character protrusion, font expansion and letterspacing for acronyms and abbreviations;
  • biblatex for better bibliography management;
  • pgfkeys/pgfopts for key=value parsing;
  • amsmath for improved mathematical typesetting support;
  • acronym for acronym/abbreviation support.

Of course I also use the packages that are loaded when I include these packages. For example, implicitly, I'm always using hyperref.


In my time of heavy LaTeX use during my studies of mathematics, I proof-read quite a lot of articles and theses written by friends and collegues. I noticed that beginners tend to load loads of packages because they simply copied their document preambles from someone who (hopefully!) knew what he was doing, entirely ignorant as to what each of the twenty or so packages was responsible for. This often lead to the most peculiar errors and typesetting inconsistencies.

My approach to LaTeX was the other way around. Instead of copying someone else's code, I started writing my stuff down and every time I came upon something I couldn't figure out how to do myself, I started looking for a package that would do the trick. During research, you typically stumble over quite a few packages that do what you want. This gives you the opportunity to compare the packages to each other and pick the most light-weight and side-effect free one.

Another good hint is to have a look into the LaTeX companion. A package listed there has most likely been around for some time and hence had time to evolve from some hacked-together thing into something quite safe to use.

But bear in mind: less is often more. Don't fiddle too much with style parameters and fancy formatting. LaTeX's defaults and basic constructs are well-chosen and will almost always produce well-looking documents.


I only partially concur with the standpoints of the other answers. It certainly is good to avoid fiddling with typographic layout too much if you don't know (yet) what you're doing. Most novice users come from a MS Word background and are used to deal with typesetting differently, so in order to get to (good) terms with LaTeX, one should try to accept the settings of the basic classes in the beginning.

But many users get to LaTeX for a thesis of some kind, which often have strict requirements regarding the formatting. While these requirements tend to be typographically ... suboptimal, they are a reality that needs to be dealt with. Hence, adaptions need to be made. Given this, it often seems advisable to use a package instead of manually fiddling with settings. A well-known example of this is line spacing: It's better to use the package setspace instead of changing \linespread. I think the same applies to paragraph spacing, if needed: It's better to use the package parskip instead of manually changing \parskip.

Furthermore, there are some packages that are essential for any non-English document (inputenc, fontenc, babel), that no user should feel obliged to restrain from using. Other packages improving the layout can pretty safely be loaded and don't do harm (microtype, booktabs), so there's no need to stay away from these. While I don't usually typeset math in LaTeX, I think there's a bunch of packages that you need for relatively basic math (i.e. the AMS math packages).

So here's some advice for new users, coming from me as a relatively new LaTeX user (1.5 years), who doesn't have a lot of TeX knowledge as a background, but is deeply in love with LaTeX:

  • Find out about some underlying principles of LaTeX, how it's different from ordinary word processing software, and how you can use these differences to your advantage. I highly recommend reading The Not So Short Introduction to LaTeX2e all the way through, only skipping sections truly irrelevant for you (languages you don't use, perhaps -- like in my case -- math and drawing).
  • Don't change the basic layout if you don't need to.
  • Only use a package if you know why. Try to find out what packages are good for your desired output. You'll find popular solution-packages to common situations at What packages do people load by default in LaTeX?.
  • Develop a template with packages you need and which are useful. Always make comments (%) why you're using each package. If you feel they're not necessary after using the template for some months, you can still remove them.
  • Read the other answers to this question as they present a slightly different take on this matter and some good advice :).

all the answers so far give good guidance. but one thing isn't mentioned, at least not very strongly: if you are submitting a manuscript to a publisher or to some other entity (e.g. a dissertation to a university), use the document class and packages they recommend! there is usually a reason for their selection (albeit sometimes not a very solid one). and if you don't follow instructions, you will end up with more work making your document conform.

if you don't understand why some particular document class or package is recommended, ask. you may even get a reasonable answer, and even, sometimes, a change in the recommendation if you can show that the recommendation (or part of it) is counterproductive for the kind of material you are trying to include in your work. don't accept "it's always been done this way" except as a last resort, e.g. to meet the deadline for submitting your dissertation.

in any event, learning the basics will always stand you in good stead.

  • I am fascinated with your use of lower case capitals except, from what I understand "official" AMS announcements. What prompted you to adopt this?
    – yannisl
    Jan 20, 2012 at 14:31
  • @Yiannis -- there's an interview on the tex users group site where i answer this question. look at the last answer on the page. Jan 20, 2012 at 15:01

I'd endorse the two previous answers, but would add this:

  1. To start with, stick with the basic LaTeX classes (book, article, report), and try not to spend too much effort on tweaking (the effort you save can be spent on #2);

  2. When you feel you need to invest time in LaTeX (and have the time to invest!), or, perhaps, even to know what's possible, read memdesign.pdf from here, and start to try out the memoir document class. This is a large, comprehensive document class which, I believe, will repay your investment in studying it many times over.

In the interests of full disclosure, I admit to being a memoir fanboy.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .