Skip to content

This error appears when you have included a package or class in the main body of your document, instead of in the preamble. The preamble to the document consists of everything written before \begin{document}. In the preamble you define the type of document you are writing, the language and several other elements. For instance, a normal document preamble would look like this:

\documentclass[12pt, letterpaper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}

\title{First document}
\author{Hubert Farnsworth \thanks{funded by the ShareLaTeX team}}
\date{February 2014}

If you write \usepackage{...} in the main body of the document (after \begin{document}) instead of in the preamble, you will generate the error message shown below.

main.tex, line 7

LaTeX Error: Can be used only in preamble.

See the LaTeX manual or LaTeX Companion for explanation. Type H <return> for immediate help. ... l.4 \usepackage {amsmath} Your command was ignored. Type I <command> <return> to replace it with another command, or <return> to continue without it. [1

To fix this error, make sure that all \usepackage{...} commands, as well as \documentclass[...]{...}, are written before \begin{document}. To learn more about how to structure a document in LaTeX, check out our documentation.

Overleaf guides

LaTeX Basics

Mathematics

Figures and tables

References and Citations

Languages

Document structure

Formatting

Fonts

Presentations

Commands

Field specific

Class files

Advanced TeX/LaTeX