I repeatedly get the LaTeX warning:
LaTeX Warning: Marginpar on page x moved.
What does this mean? Is that a problem? How can I fix the corresponding problem?
marginparwarnings
I repeatedly get the LaTeX warning:
LaTeX Warning: Marginpar on page x moved.
What does this mean? Is that a problem? How can I fix the corresponding problem?
Quoting Phil Miller answer, for completeness:
This message means that a line of your document is too long to fit within the horizontal space on the page, and TeX couldn't find a good way to break it apart. This will usually result in text hanging out past the margin, possibly even running off the side of the page. Common causes are long words without proper hyphenation information and long displayed equations.
These warnings can also happen by manually breaking works with -
as commented by Sebastian. This can be fixed by importing the package \usepackage{hyphenat}
and using its command \hyp{}
to break words, i.e., hyphenated\hyp{}word
instead of hyphenated-word
. But as can be easily noted, typing \hyp{}
all the time can be quite annoying. Here come in the babel
package shorthands. See the question How to create an alternative to shortcut "= or \hyp{}?, to learn about the usage of the ~=
shorthand. So you can write like hyphenated~=word
, instead of hyphenated\hyp{}word
.
Badboxes warnings can also be caused by breaking lines with \\
and \hbox
as demonstrated on this other question: How to stop \newsavebox giving me bad boxes warnings or how to use better names with \setbox?
You can control how the overfull hbox, badness
work configuring these latex parameters explained on:
badness
is an integer from 0 to 10000 that is a measure of the quality of the spacing in any given box. https://en.wikibooks.org/wiki/TeX/definition/badness
\tolerance
A parameter that tells TeX how much badness is allowable without error. [number] can range from 0 to 10000, and there are no units. https://en.wikibooks.org/wiki/TeX/tolerance
The TeX primitive
\pretolerance
is an integer parameter that is used in TeX's line breaking algorithm as described below. The quantity is an integer from -1 to 10000.If
\pretolerance
is an integer from 0 to 10000, then TeX's line breaking algorithm first attempts to break up a paragraph without hyphenation. In this attempt TeX ties to minimize the badness of each line. If TeX can break up a paragraph so that none of the lines have badness greater than\pretolerance
, then TeX accepts it. If this is not possible, TeX will re-attempt to break up the paragraph with the allowance of hyphenation of words. In this second attempt, the integer parameter \tolerance is used instead of\pretolerance
. If TeX is unsuccessful in the second attempt an error is reported in the log file.If
\pretolerance
is-1
, then TeX bypasses the first attempt at breaking a paragraph without hyphenation. https://en.wikibooks.org/wiki/TeX/pretolerance
On these questions there are more related information about line breaking:
Hyphenation:
Bad boxes:
Table of Contents:
Miscellaneous:
KOMA uses his own algorithm to create float environments provided by tocbasic
.
So packages like float or listings uses an old version and produce this warning. However Markus Kohm wrote a small package named scrhack
fixing this issue.
Example 1 without scrhack
:
\documentclass{scrartcl}
\usepackage{listings}
\begin{document}
\lstlistoflistings
\begin{lstlisting}[caption={example}]
for i=1 by 1 to 10 do
i++
od:
\end{lstlisting}
\end{document}
Warning:
Class scrartcl Warning: Usage of deprecated \float@listhead!
(scrartcl) You should use the features of package `tocbasic'
(scrartcl) instead of \float@listhead.
(scrartcl) Definition of \float@listhead my be removed from
(scrartcl) `scrartcl' soon, so it should not be used on input lin
e 5.
Example 2 with scrhack
\documentclass{scrartcl}
\usepackage{scrhack}
\usepackage{listings}
\begin{document}
\lstlistoflistings
\begin{lstlisting}[caption={example}]
for i=1 by 1 to 10 do
i++
od:
\end{lstlisting}
\end{document}
0 warnings
Best Answer
Thank you for the answers! I add my own since I found it on the
todonotes
package author's blog page:http://midtiby.blogspot.com/2008/05/updated-todonotes-package.html?showComment=1215360900000#c7770492295748791763
In fact, just deactivating the
todonotes
packages makes the warning go away. This is fine since those notes are only useful for the draft version.