Take the 2-minute tour ×
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.

I've been trying to change the language of my LaTeX document by replacing \usepackage[swedish]{babel} with \usepackage[english]{babel} but I only get this message:

! Package babel Error: You haven't loaded the option swedish yet.

I've read in an other question at this forum that compiling enough would solve the problem, but that doesn't work for me. Does anyone know what I should do?

share|improve this question
8  
When you change languages you also need to delete your .aux file. Try that and recompile and the error should disappear. –  Alan Munn Aug 8 '13 at 14:09
2  
In addition to Alans comment, that comment you have read that it is enough to recompile, depends on how which options the editor passes to latex. –  daleif Aug 8 '13 at 14:13
2  
It is sufficient if you just compile once again. The inappropriate .aux has been overwritten with the first compiler run and will now be read correctly. –  Thorsten Donig Aug 8 '13 at 14:47
1  
I'm not seeing this as a dupe: this is very focussed on a specific issue, and is a pretty common problem. In particular, it's not caused by an error in the auxiliary files. –  Joseph Wright Aug 8 '13 at 15:49
1  
Please, close voters, this is not really a duplicate, even though the answer is contained in the linked question. The supposed duplicate is much more general. I've linked to it in my answer, but I think we should leave this question open. –  Alan Munn Aug 8 '13 at 16:40

1 Answer 1

up vote 12 down vote accepted

This is a very common error with babel, and is solved by removing the .aux file whenever you change languages.

When you use babel it writes information to the .aux file that refer specifically to the language you have chosen. In your case, for example, when you select swedish as the babel language it does two things: (i) it loads a set of macros related to Swedish and (ii) it (minimally) writes the following to the .aux file.

\select@language{swedish}
\@writefile{toc}{\select@language{swedish}}
\@writefile{lof}{\select@language{swedish}}
\@writefile{lot}{\select@language{swedish}}

The command \select@language{swedish} tells TeX to use the specific macros defined for Swedish.

The .aux file is used for storing information that will be reused on the next compilation. See

for some more information on this.

babel writes to the .aux file because it changes the names of things like the table of contents and list of figures according to the chosen language.

Now, when you change the language without deleting the .aux file, and compile your file, TeX reads in the .aux file and encounters the \select@language command. But since you have changed the language, the macros for Swedish haven't been loaded, and you get the error you received.

The babel package is not the only package that can sometimes require you to delete the .aux file. See the following more general question for information about them:

share|improve this answer

Your Answer

 
discard

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.