如何修复 cleanthesis 中的“Overfull \hbox”警告?

如何修复 cleanthesis 中的“Overfull \hbox”警告?

Cleanthesis 为每一章生成一个溢出的水平盒子。(编译所包含的示例文档时也是如此。)

Overfull \hbox (10.94998pt too wide) in paragraph at lines 22--22(第一章)

我想删除这些警告,因为它们使我的日志变得混乱。设计和布局不应该改变。

尝试的解决方案

通过设置,draft=true我发现问题出在标题的某个地方。我认为这是 koma-script 和它的标题/章节函数以及 cleanthesis 如何使用它们之间的问题,但我找不到好的解决方案。

更改用于章节号的迷你页面的宽度会固定水平盒子,但也会显著地将章节号向左移动。在此示例中,我将宽度减小0.3\pagewitdh0.27\pagewidth

\newcommand{\ctchapternumber}[1]{%
    \usekomafont{chapter}%
    \begin{minipage}[t]{0.27\textwidth}%
        \raggedleft{%
            {\color{ctcolorchapterline}\rule[-5pt]{2pt}{5cm}}%
            \quad%
            {\color{ctcolorchapternum}\fontsize{60}{60}\selectfont#1}%
        }%
    \end{minipage}%
}

平均能量 (背面

\documentclass[%
    paper=A4,               % paper size --> A4 is default in Germany
    twoside=true,           % onesite or twoside printing
    openright,              % doublepage cleaning ends up right side
    parskip=half,           % spacing value / method for paragraphs
    chapterprefix=true,     % prefix for chapter marks
    11pt,                   % font size
    headings=normal,        % size of headings
    bibliography=totoc,     % include bib in toc
    listof=totoc,           % include listof entries in toc
    titlepage=on,           % own page for each title page
    captions=tableabove,    % display table captions above the float env
    chapterprefix=false,    % do not display a prefix for chapters
    appendixprefix=false,    % but display a prefix for appendix chapter
    draft=false,            % value for draft version
]{scrreprt}%

\usepackage{cleanthesis}
\usepackage{scrhack}

\begin{document}
    \chapter{Aasdf}
    \chapter{Wqwer}
    \chapter{Overfull hbox \#3}
\end{document}

答案1

这些“横框溢出”警告是由该parskip=half选项及其要求段落最后一行末尾至少有 1em 可用空间 ( \parfillskip) 引起的。您可以忽略这些警告。

为了避免这些警告,您可以重新定义\chapterlinesformat

\usepackage{cleanthesis}
\renewcommand{\chapterlinesformat}[3]{%
    \ctchaptertitle{#3}%
    #2%
    \hspace{-1em}%
}

或者更一般地:

\usepackage{cleanthesis}
\newlength\savedparfillskip
\newcommand*{\saveparfillskip}[1]{\setlength{\savedparfillskip}{\dimexpr\parfillskip\relax}}
\AddtoDoHook{heading/postinit/chapter}{\saveparfillskip}
\renewcommand{\chapterlinesformat}[3]{%
    \ctchaptertitle{#3}%
    #2%
    \hspace{-\savedparfillskip}%
}

parskip=half+如果您切换到或,这也会有效parskip=half*

例子:

\documentclass[%
    %paper=A4,% default
    twoside=true,
    open=right,
    parskip=half,
    %chapterprefix=true,% disabled later by option chapterprefix=false
    %fontsize=11pt,% default
    headings=normal,
    bibliography=totoc,
    listof=totoc,
    titlepage=on,
    captions=tableabove,
    %chapterprefix=false,% default
    %appendixprefix=false,% default if chapterprefix=false 
    %draft=false% default
]{scrreprt}

\usepackage{cleanthesis}
\newlength\savedparfillskip
\newcommand*{\saveparfillskip}[1]{\setlength{\savedparfillskip}{\dimexpr\parfillskip\relax}}
\AddtoDoHook{heading/postinit/chapter}{\saveparfillskip}
\renewcommand{\chapterlinesformat}[3]{%
    \ctchaptertitle{#3}%
    #2%
    \hspace{-\savedparfillskip}%
}

\begin{document}
    \chapter{Aasdf}
    \chapter{Wqwer}
    \chapter{Overfull hbox \#3}
\end{document}

相关内容