.sty 中的 \hbox 未满(不良率 10000)

.sty 中的 \hbox 未满(不良率 10000)

我研究了很多关于未满框问题的建议。但我尝试的方法都没有解决问题。我为特定格式编写了一个 .sty 文件,每次出现此标记时都会收到此警告:

\newcommand{\recordsAffected}[2]{%
\noindent This problem affects #1 record\s{#1}:

\vspace{3pt}

\setlength\parindent{0pt}{\tiny #2}
}

.tex 文件中的代码如下所示,任何地方都没有任何换行符,但它可以包含数百个数字:

\recordsAffected{39}{123, 456, 789, 123, 456, 789, 123, 456, 789, 123, 456, 789, 123, 456}%

我究竟做错了什么?

最小示例:

\documentclass[a4paper]{scrartcl}
\sloppy         %improves justification, problem occured also without 
\usepackage{my_possibly_dumb_package}

\begin{document}

\recordsAffected{39}{a43278/008, a43942/008, a45969/008, a46754/008, a49221/008, a49581/008, a49622/008, a52060/008, a52125/008, a52127/008, a52435/008, a55814/008, a56445/008, a57540/008, a57622/008, a57624/008, a57808/008, a60025/008, a61589/008, a61966/008, a69208/008, ocm02999106/008, ocm30263703/008, a40465/008, a40629/008, ocm02573713/008, ocm27892685/008, ocm04943922/008, ocm09696410/008, ocm08401480/008, ocm19374238/008, ocm04445359/008, ocm10964101/008, ocm12302731/008, ocm06112303/008, ocm08717325/008, ocm23645394/008, ocm23400177/008, a69971/008}%

\end{document}

警告:

    Underfull \hbox (badness 4647) in paragraph at lines 7--8
[]\T1/ptm/m/n/6 a43278/008, a43942/008, a45969/008, a46754/008, a49221/008, a49
581/008, a49622/008, a52060/008, a52125/008, a52127/008, a52435/008, a55814/008
,
 []

答案1

发布的示例给出了错误,\s但我猜测了它的定义。

\raggedright在这里使用以避免盒子过满/不足。

\par我在范围的末尾添加了缺失\tiny,以便使用匹配的基线跳过,而不是正常的基线跳过。

在此处输入图片描述

\usepackage{my_possibly_dumb_package}

\begin{document}

\recordsAffected{39}{a43278/008, a43942/008, a45969/008, a46754/008, a49221/008, a49581/008, a49622/008, a52060/008, a52125/008, a52127/008, a52435/008, a55814/008, a56445/008, a57540/008, a57622/008, a57624/008, a57808/008, a60025/008, a61589/008, a61966/008, a69208/008, ocm02999106/008, ocm30263703/008, a40465/008, a40629/008, ocm02573713/008, ocm27892685/008, ocm04943922/008, ocm09696410/008, ocm08401480/008, ocm19374238/008, ocm04445359/008, ocm10964101/008, ocm12302731/008, ocm06112303/008, ocm08717325/008, ocm23645394/008, ocm23400177/008, a69971/008}%

\end{document}

\def\s#1{%
\ifnum#1>1 s\fi
}

\newcommand{\recordsAffected}[2]{%
\noindent This problem affects #1 record\s{#1}:%

\vspace{3pt}%

{\raggedright\tiny#2\par}%
}

或者,如果您希望对齐段落并允许单词间空格伸展以应对,则替换

{\raggedright\tiny#2\par}%

经过

{\parindent0pt \spaceskip .3em plus\textwidth \tiny#2\par}%

在此处输入图片描述

相关内容