将章节号的高度调整为章节名称高度的 n 倍

将章节号的高度调整为章节名称高度的 n 倍

我希望章节号的高度是章节名称的 n 倍,以便两个元素之间有更好的比例。为什么我会出错,我该如何修复该行为?

我认为应该包括以下内容:

\setbox4\hbox{\resizebox*{!}{\myheight}{\hspace{10pt}}}
\edef\hchapterspace{\the\wd4}

并使用\hchapterspace

但我得到:Package graphics Error: Division by 0 }

所以最简单的方法是:

...\hspace{10pt}\vline\hspace{10pt}}\ }{0pt}

{10pt}但用作论据的东西是同一件事吗\titleformat


\documentclass[headinclude,footinclude]{scrbook}
\usepackage[eulerchapternumbers,pdfspacing]{classicthesis}
\usepackage{arsclassica}
\usepackage{lipsum}

\setbox10\hbox{\normalfont\Large\sffamily\spacedallcaps{\chaptername}}

\setbox20\hbox{\resizebox*{!}{\dimexpr\ht10*3\relax}{\chapterNumber\thechapter}}

\titleformat{\chapter}[block]%
        {\normalfont\Large\sffamily}%
        {{\color{halfgray}\box20%
        \hspace{10pt}\vline}  }{10pt}%
        {\spacedallcaps}

\begin{document}

\chapter{graphic test}
\lipsum[1-3]

\end{document}

答案1

在此处输入图片描述

\documentclass[headinclude,footinclude]{scrbook}
\usepackage[eulerchapternumbers,pdfspacing]{classicthesis}
\usepackage{arsclassica,graphicx}
\usepackage{lipsum}

\setbox0\hbox{\normalfont\Large\sffamily\spacedallcaps{\chaptername}}
\edef\myheight{\the\dimexpr 3\ht0\relax}


\titleformat{\chapter}[block]%
        {\normalfont\Large\sffamily}%
        {\color{halfgray}\resizebox*{!}{\myheight}{\chapterNumber\thechapter
        \hspace{10pt}\vline}}{10pt}%
        {\spacedallcaps}

\begin{document}
\refstepcounter{chapter}

\chapter{graphic test}
\lipsum[1-3]

\end{document}

使用 0 2 4 6 8 框作为本地临时寄存器是安全的,您需要使用它们本地您不能假设如果您将它设置在某个位置,该框在文档的后面部分就会有可用的值。另外,当计数器为 0 时,您根本不想要一个框来显示文本的章节号,因此即使 box20 可以安全使用,在章节标题中使用框也不会给出章节号。


对有关水平间距的更新问题发表评论。如果您在 resizebox 之后或(我怀疑,等效地)在以下参数中添加空格,\titleformat则添加的空格将是指定的空格。另一方面,如果您在结束之前添加空格,}\resizebox空格将按数字的缩放比例缩放,因此如果最终\resizebox缩放(例如)3.1 倍,\hspace{10pt}则将在输出中产生 31pt 的空白。选择完全取决于您认为更自然的规范。

相关内容