underfull hbox badness 10000 in paragraph что делать
Набор текста
Абзацы
Чтобы TeX сверстал абзац, никаких специальных усилий прилагать не нужно: достаточно оставить в исходном тексте пустую строку, указывающую TeX’у на конец абзаца. В этом разделе речь пойдет о тех » нештатных ситуациях», которые могут при этом возникнуть. Система TeX предоставляет множество способов реакции на эти ситуации; некоторые из них важны для всех пользователей, но большая часть — только для полиграфистов. Рекомендуем читателям, полиграфистами не являющимися, пропускать весь мелкий шрифт в этом разделе.
Overfull и underfull
Обычно абзацы делаются выровненными по правому краю; при необходимости промежутки между словами растягиваются или сжимаются, а в словах делаются переносы. При этом и для сжатия, и для растяжения промежутков между словами есть пределы, которые TeX старается не превышать.
Если это удается, то получается аккуратный абзац, но нам сейчас интереснее, что происходит в том случае, когда это не удается.
Прежде всего заметим, что «предел сжимаемости» строки не превышается TeX’ом ни при каких условиях 2 Если не предпринимать для этого специальных усилий. ; что бы ни было, строки не станут более тесными, чем им позволяют параметры шрифта. Поэтому строки, которые не удалось ужать, остаются чересчур длинными (при этом, естественно, они выходят на поля документа). С другой стороны, предел растяжимости, за неимением лучшего, может быть превышен. При этом получается то, что полиграфисты называют жидкими, или разреженными строками:
Предположим, вы получили строку, выходящую на поля (в нашем примере она отмечена черным прямоугольником):
При этом выдается на экран и записывается в файл с расширением log сообщение наподобие такого:
Давайте разберем, что в нем написано. Сначала идет надпись «Overfull\hbox», указывающая, что произошло » переполнение» (overfull) строки. В скобках указано, на какое именно расстояние строка выходит за край: на пункта. (Напомним, что пункт примерно равен одной трети миллиметра). Далее сказано, что переполнение произошло при верстке абзаца (слова «in paragraph»), а затем указаны номера строк исходного файла, в которых был записан этот абзац.
Наконец, в этом сообщении приведен фрагмент неудачной строки вблизи ее конца (конца не в исходном тексте, а на печати)<Загадочный набор символов, предшествующий фрагменту строки, характеризует текущий шрифт;>. Обратите внимание, что в некоторые слова вставлены дефисы: они показывают те места, в которых TeX в принципе мог бы сделать переносы. Если вглядеться повнимательнее, то станет ясна и причина катастрофы: в слове «если», которым заканчивается строка, дефиса не стоит вообще; значит, программа не смогла найти подходящего места для переноса и оказалась перед неприятным выбором: либо перенести это «если» целиком на другую строку (что, видимо, вызвало бы проблемы в других местах), либо оставить его на этой строке и создать overfull. Выбрано было второе (ниже мы объясним, как можно в какой-то мере управлять этим выбором).
Сообщения о разреженных строках выглядят так:
Главных элементов в этих сообщениях три:
Итак, мы выяснили, какие могут быть неприятности при верстке абзацев и как TeX о них сообщает. Вся оставшаяся часть этого раздела посвящена тому, как с этими неприятностями бороться.
Борьба с переносами
то при обработке всех абзацев, кончающихся после этой команды, переносы с отрывом двух последних букв будут разрешены. Если вам встретится абзац английского текста, то перед завершающей его пустой строкой дайте команду
дабы не сделать неверных переносов в английских словах 3 Сказанное в этом абзаце относится к вариантам русификации, где русские и английские слова включены в общую таблицу переносов (такова, например, русификация, использованная при подготовке этой книги и описанная в приложении babel. В других случаях могут потребоваться явные команды переключения языков (которые могут также заодно менять \righthyphenmin).
Совет номер один — попробуйте немного отредактировать абзац. Обычно после небольших изменений в абзаце неприятности с переносами исчезают; качество текста при этом тоже зачастую улучшается (с точки зрения языка, а не TeX’а).
Пусть, однако, улучшать изложение дальше некуда, а абзац все равно получается неудачный. Что еще можно сделать, чтобы избавиться от переполнения?
Если TeX не может перенести слово, перенос которого по правилам русского языка возможен, то есть два способа указать TeX’у на это обстоятельство.
Во-первых, существует «одноразовый» способ указать TeX’у места переносов в слове. Это делается с помощью команды \- таким, например, образом:
Бывают случаи, когда избавиться от переполнения не помогают даже идеально расставленные переносы: например, если в конец строки попадает слово, которое переносить нельзя (скажем, » гвоздь»), или не допускающая переноса математическая формула. Что делать в таких случаях, рассказано в последующих разделах.
LaTeX.org
We love good questions
LaTeX forum ⇒ General ⇒ Underfull \hbox (badness 10000) during compilation Topic is solved
Underfull \hbox (badness 10000) during compilation
Post by Cham » Tue Mar 24, 2015 4:39 pm
Here’s the 20—39 code lines :
Recommended reading 2021:
Underfull \hbox (badness 10000) during compilation
Post by Stefan Kottwitz » Tue Mar 24, 2015 5:55 pm
This «Underfull \hbox» error comes because TeX thinks in boxes. And there was a box (line) which wasn’t filled with anything.
A proper way would be not inserting space by hand, but to design the document so it would not be necessary. It’s often too hard and a user would like to manually tweak the output, but then a \vspace command should be used. An own macro (with \vspace inside) is better than a specific value, for document wide adjustments at such places.
Re: Underfull \hbox (badness 10000) during compilation
Post by Cham » Tue Mar 24, 2015 6:01 pm
Hmmm, thanks a lot for the explanation, Stefan.
That picture was just intended as a joke, at the end of that section.
Underfull \hbox (badness 10000) during compilation
Post by Cham » Tue Mar 24, 2015 6:07 pm
Underfull \hbox (badness 10000) during compilation
Post by Stefan Kottwitz » Tue Mar 24, 2015 6:11 pm
underfull hbox (badness 10000) warning and line breakage inside algorithm in two column page
Here I want line 4, 5, 9 and 11 to stay in one line but they are getting broken. Moreover, the line 11 has this unwanted indent in the beginning, whereas it should be aligned with line 10.
And here is the aistats2021.sty file
And here is algorithm.sty
2 Answers 2
I assume you’re using the algorithmicx package, although I don’t see it imported anywhere. You would be served to look at the documentation. You shouldn’t be manually indenting or boldfacing. So, for example, your for loops would be marked up using:
Note also the use of \Comment for the right-aligned comment.
This should resolve your indentation issues and might solve line breaks as well. I’ll leave the rewriting of the algorithm markup to you and we can see what else needs to be done.
In the comments below, you indicated that you’re actually using algorthimic which has a slightly different syntax and documentation here. You still shouldn’t be manually indenting or boldfacing. Here is the equivalent version of the for loop from above:
algorithmic uses all caps for all of its commands (there’s a \COMMENT command as well, but it doesn’t work with looping/flow-control constructs so for those you would use the optional argument on the statement as above).
It’s unclear what you’re hoping to accomplish with the \vspace commands sprinkled through the algorithm.
Вот например длинное слово велосипедисты. А так же полученный на днях очень хороший самолётостроительный завод. \end
#latex test.tex выдаёт: This is TeX, Version 3.14159 (Web2C 7.4.5) (format=latex 2006.3.9) 9 MAR 2006 14:59 **test.tex (./test.tex LaTeX2e Babel and hyphenation patterns for american, french, german, ngerman, r ussian, nohyphenation, loaded. (/usr/share/texmf/tex/latex/base/book.cls Document Class: book 2001/04/21 v1.4e Standard LaTeX document class (/usr/share/texmf/tex/latex/base/bk12.clo File: bk12.clo 2001/04/21 v1.4e Standard LaTeX file (size option) ) \c@part=\count79 \c@chapter=\count80 \c@section=\count81 \c@subsection=\count82 \c@subsubsection=\count83 \c@paragraph=\count84 \c@subparagraph=\count85 \c@figure=\count86 \c@table=\count87 \abovecaptionskip=\skip41 \belowcaptionskip=\skip42 \bibindent=\dimen102 ) (/usr/share/texmf/tex/latex/t2/mathtext.sty Package: mathtext 1999/01/28 v1.0 transparent text-and-math defs LaTeX Info: Redefining \halign on input line 111. ) (/usr/share/texmf/tex/latex/base/fontenc.sty Package: fontenc 2001/06/05 v1.94 Standard LaTeX package
(/usr/share/texmf/tex/latex/cyrillic/t2aenc.def File: t2aenc.def 2001/08/11 v1.0f Cyrillic encoding definition file \symT2Aletters=\mathgroup4 ) LaTeX Font Info: Try loading font information for T2A+cmr on input line 95.
(/usr/share/texmf/tex/latex/cyrillic/t2acmr.fd File: t2acmr.fd 2001/08/11 v1.0a Computer Modern Cyrillic font definitions )) (/usr/share/texmf/tex/latex/base/inputenc.sty Package: inputenc 2001/07/10 v0.99a Input encoding file
(/usr/share/texmf/tex/latex/cyrillic/koi8-r.def File: koi8-r.def 1999/11/16 v1.0d Input encoding file )) (/usr/share/texmf/tex/generic/babel/babel.sty Package: babel 2001/03/01 v3.7h The Babel package
(/usr/share/texmf/tex/generic/babel/russianb.ldf Language: russianb 2001/02/21 v1.1n Russian support from the babel system
Underfull \hbox (badness 10000) in paragraph at lines 7—8 []\T2A/cmr/m/n/12 Вот такие вот пироги интересно [] Underfull \hbox (badness 10000) in paragraph at lines 7—8 \T2A/cmr/m/n/12 в принципе, разметка и все дела. [] Underfull \hbox (badness 10000) in paragraph at lines 7—8 \T2A/cmr/m/n/12 В долбанном MS офисе тоже [] Underfull \hbox (badness 10000) in paragraph at lines 9—10 []\T2A/cmr/m/n/12 Вот например длинное слово [] Underfull \hbox (badness 10000) in paragraph at lines 9—10 \T2A/cmr/m/n/12 велосипедисты. А так же [] Underfull \hbox (badness 10000) in paragraph at lines 9—10 \T2A/cmr/m/n/12 полученный на днях очень хороший []
] (./test.aux) ) Here is how much of TeX’s memory you used: 1254 strings out of 95819 14200 string characters out of 1195286 59140 words of memory out of 1000001 4237 multiletter control sequences out of 10000+50000 5600 words of font info for 17 fonts, out of 500000 for 1000 24 hyphenation exceptions out of 1000 25i,4n,32p,247b,196s stack positions out of 1500i,500n,5000p,200000b,5000s
Output written on test.dvi (1 page, 888 bytes).
При этом создаётся рабочий dvi с русской кодировкой, но переносов нет. В чём проблема?
Вот например длинное слово велосипедисты. А так же полученный на днях очень хороший самолётостроительный завод.
\end
#latex test.tex выдаёт:
This is TeX, Version 3.14159 (Web2C 7.4.5) (format=latex 2006.3.9) 9 MAR 2006 14:59
**test.tex
(./test.tex
LaTeX2e
Babel and hyphenation patterns for american, french, german, ngerman, r
ussian, nohyphenation, loaded.
(/usr/share/texmf/tex/latex/base/book.cls
Document Class: book 2001/04/21 v1.4e Standard LaTeX document class
(/usr/share/texmf/tex/latex/base/bk12.clo
File: bk12.clo 2001/04/21 v1.4e Standard LaTeX file (size option)
)
\c@part=\count79
\c@chapter=\count80
\c@section=\count81
\c@subsection=\count82
\c@subsubsection=\count83
\c@paragraph=\count84
\c@subparagraph=\count85
\c@figure=\count86
\c@table=\count87
\abovecaptionskip=\skip41
\belowcaptionskip=\skip42
\bibindent=\dimen102
)
(/usr/share/texmf/tex/latex/t2/mathtext.sty
Package: mathtext 1999/01/28 v1.0 transparent text-and-math defs
LaTeX Info: Redefining \halign on input line 111.
)
(/usr/share/texmf/tex/latex/base/fontenc.sty
Package: fontenc 2001/06/05 v1.94 Standard LaTeX package
(/usr/share/texmf/tex/latex/cyrillic/t2aenc.def
File: t2aenc.def 2001/08/11 v1.0f Cyrillic encoding definition file
\symT2Aletters=\mathgroup4
)
LaTeX Font Info: Try loading font information for T2A+cmr on input line 95.
(/usr/share/texmf/tex/latex/cyrillic/t2acmr.fd
File: t2acmr.fd 2001/08/11 v1.0a Computer Modern Cyrillic font definitions
))
(/usr/share/texmf/tex/latex/base/inputenc.sty
Package: inputenc 2001/07/10 v0.99a Input encoding file
(/usr/share/texmf/tex/latex/cyrillic/koi8-r.def
File: koi8-r.def 1999/11/16 v1.0d Input encoding file
))
(/usr/share/texmf/tex/generic/babel/babel.sty
Package: babel 2001/03/01 v3.7h The Babel package
(/usr/share/texmf/tex/generic/babel/russianb.ldf
Language: russianb 2001/02/21 v1.1n Russian support from the babel system
Underfull \hbox (badness 10000) in paragraph at lines 7—8
[]\T2A/cmr/m/n/12 Вот такие вот пироги интересно
[]
Underfull \hbox (badness 10000) in paragraph at lines 7—8
\T2A/cmr/m/n/12 в принципе, разметка и все дела.
[]
Underfull \hbox (badness 10000) in paragraph at lines 7—8
\T2A/cmr/m/n/12 В долбанном MS офисе тоже
[]
Underfull \hbox (badness 10000) in paragraph at lines 9—10
[]\T2A/cmr/m/n/12 Вот например длинное слово
[]
Underfull \hbox (badness 10000) in paragraph at lines 9—10
\T2A/cmr/m/n/12 велосипедисты. А так же
[]
Underfull \hbox (badness 10000) in paragraph at lines 9—10
\T2A/cmr/m/n/12 полученный на днях очень хороший
[]
] (./test.aux) )
Here is how much of TeX’s memory you used:
1254 strings out of 95819
14200 string characters out of 1195286
59140 words of memory out of 1000001
4237 multiletter control sequences out of 10000+50000
5600 words of font info for 17 fonts, out of 500000 for 1000
24 hyphenation exceptions out of 1000
25i,4n,32p,247b,196s stack positions out of 1500i,500n,5000p,200000b,5000s
Output written on test.dvi (1 page, 888 bytes).
При этом создаётся рабочий dvi с русской кодировкой, но переносов нет. В чём проблема?
Набор текста
Абзацы
Чтобы TeX сверстал абзац, никаких специальных усилий прилагать не нужно: достаточно оставить в исходном тексте пустую строку, указывающую TeX’у на конец абзаца. В этом разделе речь пойдет о тех » нештатных ситуациях», которые могут при этом возникнуть. Система TeX предоставляет множество способов реакции на эти ситуации; некоторые из них важны для всех пользователей, но большая часть — только для полиграфистов. Рекомендуем читателям, полиграфистами не являющимися, пропускать весь мелкий шрифт в этом разделе.
Overfull и underfull
Обычно абзацы делаются выровненными по правому краю; при необходимости промежутки между словами растягиваются или сжимаются, а в словах делаются переносы. При этом и для сжатия, и для растяжения промежутков между словами есть пределы, которые TeX старается не превышать.
Если это удается, то получается аккуратный абзац, но нам сейчас интереснее, что происходит в том случае, когда это не удается.
Прежде всего заметим, что «предел сжимаемости» строки не превышается TeX’ом ни при каких условиях 2 Если не предпринимать для этого специальных усилий. ; что бы ни было, строки не станут более тесными, чем им позволяют параметры шрифта. Поэтому строки, которые не удалось ужать, остаются чересчур длинными (при этом, естественно, они выходят на поля документа). С другой стороны, предел растяжимости, за неимением лучшего, может быть превышен. При этом получается то, что полиграфисты называют жидкими, или разреженными строками:
Предположим, вы получили строку, выходящую на поля (в нашем примере она отмечена черным прямоугольником):
При этом выдается на экран и записывается в файл с расширением log сообщение наподобие такого:
Давайте разберем, что в нем написано. Сначала идет надпись «Overfull\hbox», указывающая, что произошло » переполнение» (overfull) строки. В скобках указано, на какое именно расстояние строка выходит за край: на пункта. (Напомним, что пункт примерно равен одной трети миллиметра). Далее сказано, что переполнение произошло при верстке абзаца (слова «in paragraph»), а затем указаны номера строк исходного файла, в которых был записан этот абзац.
Наконец, в этом сообщении приведен фрагмент неудачной строки вблизи ее конца (конца не в исходном тексте, а на печати)<Загадочный набор символов, предшествующий фрагменту строки, характеризует текущий шрифт;>. Обратите внимание, что в некоторые слова вставлены дефисы: они показывают те места, в которых TeX в принципе мог бы сделать переносы. Если вглядеться повнимательнее, то станет ясна и причина катастрофы: в слове «если», которым заканчивается строка, дефиса не стоит вообще; значит, программа не смогла найти подходящего места для переноса и оказалась перед неприятным выбором: либо перенести это «если» целиком на другую строку (что, видимо, вызвало бы проблемы в других местах), либо оставить его на этой строке и создать overfull. Выбрано было второе (ниже мы объясним, как можно в какой-то мере управлять этим выбором).
Сообщения о разреженных строках выглядят так:
Главных элементов в этих сообщениях три:
Итак, мы выяснили, какие могут быть неприятности при верстке абзацев и как TeX о них сообщает. Вся оставшаяся часть этого раздела посвящена тому, как с этими неприятностями бороться.
Борьба с переносами
то при обработке всех абзацев, кончающихся после этой команды, переносы с отрывом двух последних букв будут разрешены. Если вам встретится абзац английского текста, то перед завершающей его пустой строкой дайте команду
дабы не сделать неверных переносов в английских словах 3 Сказанное в этом абзаце относится к вариантам русификации, где русские и английские слова включены в общую таблицу переносов (такова, например, русификация, использованная при подготовке этой книги и описанная в приложении babel. В других случаях могут потребоваться явные команды переключения языков (которые могут также заодно менять \righthyphenmin).
Совет номер один — попробуйте немного отредактировать абзац. Обычно после небольших изменений в абзаце неприятности с переносами исчезают; качество текста при этом тоже зачастую улучшается (с точки зрения языка, а не TeX’а).
Пусть, однако, улучшать изложение дальше некуда, а абзац все равно получается неудачный. Что еще можно сделать, чтобы избавиться от переполнения?
Если TeX не может перенести слово, перенос которого по правилам русского языка возможен, то есть два способа указать TeX’у на это обстоятельство.
Во-первых, существует «одноразовый» способ указать TeX’у места переносов в слове. Это делается с помощью команды \- таким, например, образом:
Бывают случаи, когда избавиться от переполнения не помогают даже идеально расставленные переносы: например, если в конец строки попадает слово, которое переносить нельзя (скажем, » гвоздь»), или не допускающая переноса математическая формула. Что делать в таких случаях, рассказано в последующих разделах.