![将章节号的高度调整为章节名称高度的 n 倍](https://linux22.com/image/259964/%E5%B0%86%E7%AB%A0%E8%8A%82%E5%8F%B7%E7%9A%84%E9%AB%98%E5%BA%A6%E8%B0%83%E6%95%B4%E4%B8%BA%E7%AB%A0%E8%8A%82%E5%90%8D%E7%A7%B0%E9%AB%98%E5%BA%A6%E7%9A%84%20n%20%E5%80%8D.png)
我希望章节号的高度是章节名称的 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 的空白。选择完全取决于您认为更自然的规范。