Purplelink
← All LaTeX errors

Infinite glue shrinkage found

A space that can shrink without limit reached a place where TeX breaks lines or pages. TeX makes the shrink finite and keeps going, but the space is not doing what it was written to do.

What it means

Glue is TeX's name for space that can change size. Every space has a natural size, an amount it can stretch (plus) and an amount it can shrink (minus). Stretch and shrink can be finite, in points, or infinite, in fil, fill or filll units. Infinite stretch is normal: \hfill and \vfill are exactly that. Infinite shrink is not allowed where TeX breaks a paragraph into lines or a page into parts, because a space that can shrink without limit would let any amount of material fit in one line or one page.

When TeX finds such a space there, it reports this error, makes the shrink finite and carries on, so the PDF is still produced. The amount stays the same but is read in points: minus 1fil becomes minus 1pt. The end of the message says where TeX found the space:

The log line

This small file triggers the error:

\documentclass{article}
\begin{document}
Name\hspace{0pt minus 1fill}Date

Next paragraph.
\end{document}

Compiled with pdfLaTeX (TeX Live 2026), it writes this to the .log file:

! Infinite glue shrinkage found in a paragraph.
<argument> ...hskip:D \c_zero_dim \fi: \tex_par:D
                                                  \hook_use:n {para/after}\@...
l.4

The paragraph just ended includes some glue that has
infinite shrinkability, e.g., `\hskip 0pt minus 1fil'.
Such glue doesn't belong there---it allows a paragraph
of any length to fit on one line. But it's safe to proceed,
since the offensive shrinkability has been made finite.

The <argument> lines are LaTeX's own code for ending a paragraph, and they say nothing about your source. The l.4 line is the blank line that ended the paragraph, one line below the \hspace. TeX checks the spaces in a paragraph when it breaks the paragraph into lines, so the error always points at the end of the paragraph. The help text names the kind of space to look for: minus followed by a fil unit.

To try a fix without touching your project, save the example as a .tex file and compile it online with the LaTeX to PDF tool.

Why it happens

The causes below are in order of likelihood. Each has a before and an after you can compare with your own source.

1. A horizontal space with infinite shrink in text

\hspace or \hskip with minus 1fil or minus 1fill, or \hss, in a paragraph. To push text to the right edge, use \hfill, which stretches but does not shrink. \hss belongs inside a box of fixed width, such as \hbox to 2cm{...} or \makebox.

Before

Name\hspace{0pt minus 1fill}Date
% ! Infinite glue shrinkage found in a paragraph.

After

Name\hfill Date

2. A vertical space with infinite shrink between paragraphs

A \vspace or \vskip with minus 1fil or minus 1fill, often written to let LaTeX remove the space when the page is full. Give it a finite shrink instead. If the space should push things apart, use \vfill or \vspace{\fill}, which stretch but do not shrink.

Before

First paragraph.

\vspace{0pt minus 1fill}

Second paragraph.
% ! Infinite glue shrinkage found on current page.

After

First paragraph.

\vspace{0pt minus 2pt}

Second paragraph.

3. The footnote spacing has infinite shrink

The message ends in inserted from \skip and a number. Look in the preamble, and in any class or package that sets footnote spacing, for \skip\footins.

Before

\setlength{\skip\footins}{12pt minus 1fil}
% ! Infinite glue shrinkage inserted from \skip253.

After

\setlength{\skip\footins}{12pt plus 4pt minus 2pt}

4. A box with infinite shrink is split

The message ends in found in box being split. A vertical space with a fil shrink sits inside a box that \vsplit divides, either in your own code or in a package that splits boxes. Give the space a finite shrink.

Before

\setbox\mybox=\vbox{First part.\par\vskip 0pt minus 1fil Second part.\par}
\setbox0=\vsplit\mybox to 10pt
% ! Infinite glue shrinkage found in box being split.

After

\setbox\mybox=\vbox{First part.\par\vskip 0pt minus 2pt Second part.\par}
\setbox0=\vsplit\mybox to 10pt

How to find the line

The l. line is where TeX noticed the space, at the end of a paragraph or where a page was broken, so look at that line and a few lines above it. Search the source for minus, fil and \hss or \vss. If nothing in your own files matches, the space comes from a class, a package or a macro you defined in the preamble.

When you run pdflatex in a terminal without -interaction=nonstopmode, TeX stops at the error and prints a ? prompt. Press Return to carry on past the error, type x to quit, or type h for TeX's own help text, which is the paragraph you see after the l. line in the log. Editors run TeX in non-stop mode, so you get the log and never see the prompt.

What each editor shows:

Related errors

Frequently asked questions

Can I ignore Infinite glue shrinkage found?
The PDF is still produced, because TeX changes the shrink to a finite amount and continues. The spacing near that point may not be what you meant, though, and the error will come back on every build. Find the space and fix it.
What is the difference between fil, fill and filll?
They are three orders of infinite stretch or shrink. A higher order wins: a space with plus 1fill takes all the extra room from one with plus 1fil. For stretch they are normal and useful, as in \hfill and \vfill. For shrink, TeX does not allow them where it breaks lines or pages.
Why does the log point at a blank line?
TeX checks for infinite shrink when it breaks a paragraph into lines or a page into pieces, which happens at the end of the paragraph. The l. line is where TeX noticed. The space itself is usually a line or a few lines above.

From the maker of these tools

Writing LaTeX on a Mac?

ModernTex is a native macOS LaTeX studio. It has multi-file manuscript navigation, a PDF preview that stays in sync, BibTeX completion that searches by author or title, and compile errors in plain language. $19.99 once, all updates included, forever.

Requires macOS 14 or later. Free 7-day trial, no account.