答案1
我可以使用以下测试代码精确复制 OP 的问题:
\documentclass[12pt]{article}
\begin{document}
\rule{\textwidth}{0.6pt}
\end{document}
具体来说,我收到以下警告信息:
段落第 5-6 行的 \hbox 过满(宽了 17.62482pt)
请注意,这Overfull \hbox (17.62482pt too wide)
也出现在 OP 报告的警告消息中。
\noindent
解决办法是什么?我建议在指令之前立即发出指令\rule
。
最后的评论:不一定是文本会导致出现 overfull-hbox 警告;它也可以是水平规则。
答案2
溢出是由于段落缩进造成的。因此\rule
前面应该加上\noindent
。
但是,当您flushleft
按照该规则执行操作时,只需将规则放在其中即可。
这也\\[\baselineskip]\vspace{0.5cm}
并不是很好的编程,\\
无论如何都不应该在那种情况下使用:只需在规则后使用一个空白行,然后跟上所需的垂直空间量。
添加列来tabular
获取空间也不是最好的方法:看看下面的代码,其中插入了列之间的特定距离。
\documentclass[a4paper]{book}
\newcommand{\printauthor}{A. Uthor}
\newcommand{\matnr}{176--761}
\newcommand{\abgabedatum}{July 38, 2043}
\begin{document}
\begin{flushleft}
\rule{\textwidth}{0.4pt}
\vspace{1cm}
\begin{tabular}{@{} l @{\hspace{2em}} l @{}}
\textbf{von:} & \printauthor \\
& Matrikelnummer: \matnr \\
\textbf{Betreuer:} & Dr.\ Daniel Brunner \\
\textbf{Abgabedatum:} & \abgabedatum
\end{tabular}
\end{flushleft}
\end{document}
根据您的喜好调整长度。