# pdfTeX error (font expansion): auto expansion is only possible with scalable

I'm using a custom class file.

My main file looks like this:

\documentclass[12pt,a4paper]{thesis}
\begin{document}
\frontmatter
\pagenumbering{alph}

\pagenumbering{roman}
\clearpage

\cleardoublepage
\tableofcontents
\clearpage
\listoffigures
\clearpage
\listoftables

\mainmatter
\part{test}
\input{test}
\end{document}


If I put this in my test.tex it does work:

\chapter{test}
\label{chapter:test}
test


When it becomes more text (lets say 40x the word "test") I get the error stated in my question title.

To test it I brought my class file down to this:

\ProvidesClass{thesis}
\NeedsTeXFormat{LaTeX2e}

% Based on the memoir class
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{memoir}}
\ProcessOptions


I'm totally confused what is causing my error now.

This is the complete error:

! pdfTeX error (font expansion): auto expansion is only possible with scalable
fonts.
\AtBegShi@Output ...ipout \box \AtBeginShipoutBox
\fi \fi

• I have this error with package frutiger since Tex Live 2016, with 2015 everything works fine. – Matthias Pospiech Jun 19 '16 at 15:27
• I'm not quite sure what the problem was but I was getting that same error trying to run the Annalen der Physik class over a newish installation of MikTeX. Related to the advice here, running initexmf --mkmaps made the problem go away. – E.P. Feb 1 '17 at 0:36
• I think I figured out two things: 1. Thanks to @Krebto and his answer I realised that this error can be removed by running the updmap.exe in the miktex installation directory. 2. I think if you are asked to install a new package via a software like texmaker or texworks or if you are compiling a .tex file and during this compilation, if a new package is installed, then the miktex itself is not being updated for some reason. If you then run updmap.exe immediately after, this error message vanishes. – ramanunni.pm Dec 23 '17 at 22:16
• Also note that in some cases (texlive on debian) the problem is caused by .pk files in the user ~/.texlive2016/ directory. Removing this directory with rm -rf solves the issue. – begemotv2718 Jun 13 '19 at 21:36
• I seriously recommend reconsidering the accepted answer for this question, given the top one doesn't preserve the intent of your post and that this error seems to stem from TeX installation problems/missing files. – gktscrk Jun 13 at 10:48

You have to load a scalable font like lmodern:

\usepackage[T1]{fontenc}
\usepackage{lmodern}


or install the cm-super fonts.

• But wait, i wanna use Minion Pro. Does this mean i cant use it or? – Elmer Feb 9 '11 at 21:04
• As far as I know there is no configuration for MinionPro – user2478 Feb 9 '11 at 21:22
• no, for microtype. There must be a configuration file which defines what to do with the characters. – user2478 Feb 9 '11 at 21:37
• @Herbert, @Joseph: Microtype works fine with every (scalable) font. If no specific configuration file exists it falls back to the default configuration. The error message above means that the document is using a bitmap font. A new configuration file will not solve the problem. – Ulrike Fischer Feb 11 '11 at 14:20
• I don't fully understand why this answer is accepted. This sounds like the solution is to not solve the problem, right? Or am I doing something wrong, and this answer really provides a solution how to use MinionPro with microtype? 5 years ago, I successfully wrote my diploma thesis with MinionPro + microtype following these instructions, so in general it is possible, but using the more recent FontPro approach gives me the same problem as the OP. – bluenote10 Mar 14 '14 at 16:16

To solve the problem navigate to C:\Program Files\MiKTeX 2.9\miktex\bin\x64 and run updmap.exe. The program may seem as it hangs for a while, but its probably because it tries to update the whole font tree. This solved the problem for me. After re-compiling everything should work fine.

• I personally think, this answer is more pertinent than the other answers. Because the other answers basically ask you to default back to lmodern, which is not useful at all, if you are trying to write a thesis/important document which necessitates the use of a particular font. And not only did this work, it works like a charm for almost all fonts in the Latex Font Catalogue which previously gave this issue.Can you explain why this is the case though? Thanks again.. – ramanunni.pm Dec 23 '17 at 22:05
• Because I don't understand the logic as to why this doesn't happen by default when you run the package manager/update settings in miktex. – ramanunni.pm Dec 23 '17 at 22:07
• This actually solves the problem and isnt a work around – JulianWgs Mar 5 '18 at 9:54
• I can confirm that this does not require any change in the document. It just works. – miho Jun 23 '18 at 11:12
• I agree. This should be the correct answer. – Smarzaro Jan 10 at 2:14

First of all (as pointed out by @Herbert), you have to load a scalable font such as lmodern or mathptmx:

\usepackage[T1]{fontenc}
\usepackage{lmodern}


This, however, did not solve the issue on my freshly installed MiKTeX system. I had to install the cm-super package and to update MiKTeX completely.

I had to do the following steps:

1. Start "MiKTeX Package Manager (Admin)"
2. Install the cm-super package.
3. I would recommend to update all packages to the latest version as described at https://tex.stackexchange.com/a/108490/9075.
5. Press "Refresh FNDB"
6. Press "Update Formats"
7. Press "OK" (to close the app)
8. Recompile. Everything should work.

(source: miktex.org)

The installation hint of the cm-super package is taken from https://tex.stackexchange.com/a/310169/9075 and was also stated by @Herbert

MiKTeX does not automatically install cm-super when using microtype. This was discussed on the mailinglist on 2016-11, but no action was taken.

• Didn't work for me. – bdeonovic Nov 6 '16 at 21:02
• I updated it to include cm-super. Could you please check? This worked for me and was also stated at tex.stackexchange.com/a/310169/9075 as solution. – koppor Nov 18 '16 at 17:27
• This worked for me – Micah Smith Dec 12 '16 at 6:04
• worked for me although Package Manager and Settings is now included in "MikTeX Console". You can find point 5 and 6 under "Tasks" in the MikTeX Console. – Bazi Jul 8 '19 at 7:36

Check in the log-file in which package/file microtype is loaded and comment the call. Then compile your document (now without the microtype package) with pdflatex. Then check at the end of the log-file the list of fonts and identify the bitmap font(s) (with ending .pk) causing the problem.

• Check in the log-file in which package/file microtype is loaded how can I notice/identify that? – Kristof Tak Nov 2 '14 at 0:23

Configuration files for fonts can be found in tex/latex/microtype/ subdirectory of your TeX installation.

But wait, i have no configuration file for PSCyr font; however i can use font expansion in a way like this (stretch and shrink are way too large, for the sake of demonstration):

% in preamble:
\SetExpansion[stretch = 70, shrink = 70,] { encoding = {T2A} } { }
\DeclareMicrotypeSet{t2atext}{encoding=T2A}
\UseMicrotypeSet{t2atext}


An i have result like this:

It's clear, i have font expansion working here.

The point is that configuration file contains commands for character protrusion and font expansion --- like this one --- nothing special or magic.

So, you can write your own command, you can collect them in your own configuration file for your favorite font face.

• Im reading into it now. So ehm, i should use the microtype package first. And when that doesent work ur way of making my own configuration file with commands. Is there some explanation somwhere (on a noob level) on how to do what you just explained? – Elmer Feb 11 '11 at 18:35
• microtype's manual is great! Well, i set stretchability and shrinkability to 70/1000th of em --- for T2A-encoded font. And asked microtype to use these rules. Like that. Just try!-) You will like it. – brownian Feb 11 '11 at 19:15
• I got it all working now. Just some text looks weird, i think cuz of Minion Pro not being able to handle it. For instance: when i type griffie it looks like this in my pdf:ifïnAe. Is this something that could be fixed using microtype? I checked the microtype manual but thats abracadabra to me. – Elmer Feb 13 '11 at 18:26
• Well, i've never got things like that. You can, however, try to disable ligatures (the manual, section 8), i would try this \DisableLigatures[ri]{encoding = T1} (and, possibly, experiment a bit more). – brownian Feb 14 '11 at 14:22
• @Elmer could explain how did you make it work? – Kristof Tak Nov 2 '14 at 0:22

I had the same error after installing latex from scratch using texlive-full. What solved it for me was to simply do

updmap

which updates the fonts (https://www.tug.org/texlive/doc/updmap.html). I found this solution here: https://github.com/xdanaux/moderncv/issues/34

Not really an answer, but just a post-mortem on a tricky variation of this error to watch out for; this is a bit too long for a comment.

I had loaded Utopia as the main document font (using \usepackage[utopia]{mathdesign}) as well as \usepackage[stretch=15,shrink=15]{microtype}. Everything went swimmingly, until I typeset a single character in sans-serif (\textsf{Y}). Then I got the auto expansion is only possible ... error.

The funny part was that the error was flagged on a paragraph that was downstream of the \textsf{Y} macro, but which itself contained only regular text in Utopia. When I commented out the upstream \textsf{Y}, the error disappeared. Likewise, when I loaded the lmodern or the berasans package together with [utopia]{mathdesign}, the error was gone.

If I understand the situation correctly, Utopia comes without matching sans-serif fonts, so when pdflatex encountered the \textsf{Y}, it fell back on the default CM fonts, which are not scalable; and from that point on in the document, microtype gave up on scaling.

Morale: make sure to load scalable fonts for all font shapes that you might use anywhere in the document, not just for your main document font.

The following command works for me. Pls try this, it helps me to fix this headache!!!

initexmf --mkmaps


works!!!