Why should you avoid using (complex) templates?

To start with a quote (from Wikibook):

If a friend of yours wants to give you his/her template, it is a very nice gesture. Say Thanks, but no, Thanks. You won't believe how many strange stuff is in there without him/her even noticing it. All those are little tripwires that you don't want in your document. Unfortunately, the same is true for many templates you can find online.

The following text summarizes some common points. (In the following text the term "template" is meant for every piece of code you'll find out there providing a full-featured TeX document which just misses the content and, of course, those custom document classes you'll find everywhere.)

Deprecated commands

Many templates you'll find are built on the command set of LaTeX 2.09. That includes commands like \bf etc. which should not be used in recent documents. Those old commands may cause some harm especially working with some document classes (see, e.g., KOMA) you may want to use.

Bugs

Many templates have crashingly bad code, often from using packages and classes that are incompatible with one another. (classicthesis is a prime example.)
above sentence taken from a comment by Alan Munn

In addition some problems with maintenance may occur as there are templates that were published once, but are not maintained anymore. If you encounter bugs (bugs are not not modification requests) in such a template, you may have to solve them on your own.

Single-purpose templates

Another problem with templates is that you will find many templates made on purpose. So a thesis template for university X probably meets the style requirements of university X, but not Y. You should not even try to use it at Y, because most templates do not want you to modify them.

Overload of packages

Many templates also tend to load a whole bunch of packages. Some of them aren't even needed and some of them may clash with packages you need to use. You could try to rewrite or delete parts of the template, but that's cumbersome.

Predefined structure and dependencies

Some templates (especially for bigger projects) also force you to use a specific file and folder layout, because they link to an image file or a file in another directory. Sometimes templates even include a reference to a package which is not distributed with all distributions, but only some (or has to be downloaded).

It's getting even worse if the name of the template clashes with other packages (or if it's too general like thesis.cls).

Problems in typography

As in every other subject you should understand what you're doing. Some templates change typographic conventions and want to force you to some specific style. That's especially problematic as typography differs around the world. American style is not always applicable in Germany, for example.

Mostly it's better if you learn how to present your data (which is also important) in the traditions of your country's typography (look, e.g., at booktabs etc.).

Suggestion

Do not use a (complex) template if you do not have to. If you're studying at a university forcing you to use a specific template, you should use it, but if you're free to choose your style, just start off with a very basic document and spend some time learning LaTeX to get the style you want without using a complex template which does not suit exactly your needs.


I'm a template user ...

I'm using them constantly: When I write a letter, I use an older one as template. At every project my first step is to look if I have or know about some older code that I could use as a starting template. Quite often the templates I use are not good – they are old, sometimes buggy, or they don't really fit. Many of my templates are rather complex. They nevertheless save me time: I don't have to retype everything, I don't have to wade through documentations to find out command names and syntax, I can reuse ideas.

So I don't find it very convincing to tell people not to use templates at all.

... but I have the knowledge to handle the templates

And this is imho the main point: Many users use templates to avoid having to learn LaTeX and read some documentation. This almost never works.

So if you want to use a (rather complex) template or a local custom class:

Imagine that you get a fatal error and nothing compiles, or that someone tells you to change the header or the bibliography style, or that you realize in the middle of your work that something in the template doesn't fit your needs. Consider if and how you can handle such a problem.

If the answer is one of these

  • I know enough about LaTeX to debug or adapt the template.
  • I have a friend with enough knowledge who will help me.
  • I have access to some professional support that will help me.
  • I understand enough of the template and of LaTeX to be able to build a minimal example and ask on tex.SX or some other help site.

Then go along and use the template if you like it. If you are relying on external support for problems perhaps ask them first if they recommend the template.

If the answer is

  • in case of problems I will put everything in a zip file on the net and then hope to find some stranger who spends a few hours to disentangle everything for free.

Then you had better reconsider the use of the template. Even if you find help you seldom find it fast as there are far less people around who are willing to spend that much time on a problem and often you get the help only after a lot of begging and disagreeable discussions about why you use a template that you can't handle.

If the answer is

  • I won't get problems – the template is perfect.

Good luck.


I'm a user. I have no idea of TeX, plus neither of Lua nor of »expl3«.

I'm a user. I made an installation of texlive or MikTeX on my computer. I read an introduction to LaTeX and learned about some basic packages as well as about what an editor is, why encoding is necessary and about babel / polyglossia. I'm skimming through the manual of every package I'm loading (texdoc packagename on the command line produces the manual). If I encounter an issue, I'm able to produce a minimal working example and get help.

If I were a template user, I'd have missed much of that. No idea how to discern flagship packages from unmaintained stuff. No way to produce a minimal working example and get help.

Starting with LaTeX with a complex template is like downhill racing on a mountain bike without having ever learned how to cycle on a bike: Hell.