113

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
\LoadClass{memoir}

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 
6
  • 1
    I have this error with package frutiger since Tex Live 2016, with 2015 everything works fine. Commented Jun 19, 2016 at 15:27
  • 1
    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.
    Commented Feb 1, 2017 at 0:36
  • 3
    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. Commented Dec 23, 2017 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. Commented Jun 13, 2019 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
    Commented Jun 13, 2020 at 10:48

10 Answers 10

119

You have to load a scalable font like lmodern:

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

or install the cm-super fonts.

13
  • 2
    But wait, i wanna use Minion Pro. Does this mean i cant use it or?
    – Elmer
    Commented Feb 9, 2011 at 21:04
  • 3
    no, for microtype. There must be a configuration file which defines what to do with the characters.
    – user2478
    Commented Feb 9, 2011 at 21:37
  • 4
    @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. Commented Feb 11, 2011 at 14:20
  • 13
    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
    Commented Mar 14, 2014 at 16:16
  • 2
    If anyone is wondering how to install these fonts in Ubuntu Linux: sudo apt-get install cm-super
    – karsten
    Commented Apr 15, 2021 at 9:46
69

I had the same error after installing latex from scratch using texlive-full. What solved it for me was to use updmap to update the fonts (https://www.tug.org/texlive/doc/updmap.html)

  • On *nix you can run updmap
  • On Windows you can navigate to C:\Program Files\MiKTeX <version>\miktex\bin\x64 and run updmap.exe. The program may seem to hang for a while, but it's probably because it tries to update the whole font tree.

After re-compiling everything should work fine.

20
  • 19
    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.. Commented Dec 23, 2017 at 22:05
  • 2
    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. Commented Dec 23, 2017 at 22:07
  • 4
    This actually solves the problem and isnt a work around
    – JulianWgs
    Commented Mar 5, 2018 at 9:54
  • 6
    I can confirm that this does not require any change in the document. It just works.
    – miho
    Commented Jun 23, 2018 at 11:12
  • 4
    I agree. This should be the correct answer.
    – Smarzaro
    Commented Jan 10, 2020 at 2:14
31

UPDATE: Added cm-super. Please comment if that does not help in your case.

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.
  4. Start "MiKTeX Settings (Admin)"
  5. Press "Refresh FNDB"
  6. Press "Update Formats"
  7. Press "OK" (to close the app)
  8. Recompile. Everything should work.

MiKTeX settings
(source: miktex.org)

See also https://docs.miktex.org/manual/configuring.html#fndbupdate

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.

7
  • 2
    Didn't work for me.
    – bdeonovic
    Commented Nov 6, 2016 at 21:02
  • 1
    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
    Commented Nov 18, 2016 at 17:27
  • 1
    This worked for me Commented Dec 12, 2016 at 6:04
  • 5
    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
    Commented Jul 8, 2019 at 7:36
  • 2
    This indeed solved the problem for me.
    – Dimiter P
    Commented Jan 7, 2021 at 9:53
10

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.

2
  • 2
    Check in the log-file in which package/file microtype is loaded how can I notice/identify that? Commented Nov 2, 2014 at 0:23
  • I am looking at the log file right now and I do not see that information. That is, there are no .pk files. Is there a way to see all the fonts that microtype has loaded somehow? Commented Oct 14, 2021 at 8:54
6

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:

enter image description here

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.

Read manuals, specify your values (encoding!) and enjoy.

5
  • 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
    Commented Feb 11, 2011 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
    Commented Feb 11, 2011 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
    Commented Feb 13, 2011 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
    Commented Feb 14, 2011 at 14:22
  • @Elmer could explain how did you make it work? Commented Nov 2, 2014 at 0:22
4

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

1
  • 1
    To me, this shouldn’t be a standalone answer, but rather a comment to the answer by @Krebto. Commented Sep 2, 2022 at 11:15
2

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.

2

Just to add that on MacOS 11.6 using TexLive, this problem was also solved by adding the cm-super fonts as in the accepted answer.

❯ tlmgr install cm-super

2
  • 3
    This adds nothing new to the accepted answer. Commented Dec 7, 2021 at 22:42
  • Only that it also works on Mac with TexLive.
    – jerlich
    Commented Dec 9, 2021 at 0:33
1

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

initexmf --mkmaps 

works!!!

2
  • initexmf --mkmaps worked for me too. Thanks
    – user230964
    Commented Dec 14, 2020 at 16:30
  • This also worked in my case. Thank you for sharing.
    – Scientist
    Commented Sep 3 at 22:54
1

On Ubuntu, I added texlive-fonts-extra:

sudo apt install texlive-fonts-extra

And, it worked. I didn't make any changes to the tex files.

You must log in to answer this question.

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