![在回忆录类中应用章节样式时出错](https://linux22.com/image/240203/%E5%9C%A8%E5%9B%9E%E5%BF%86%E5%BD%95%E7%B1%BB%E4%B8%AD%E5%BA%94%E7%94%A8%E7%AB%A0%E8%8A%82%E6%A0%B7%E5%BC%8F%E6%97%B6%E5%87%BA%E9%94%99.png)
我使用回忆录课程,收到错误消息file ended when scanning \makechapterstye
这就是我想要的。我从 LarsMadsen 的“Variation over VZ39,由 Danie Els 贡献,回忆录类的各种章节样式”中获取了代码
有人能帮帮我吗?这是代码:
\documentclass{memoir}
\usepackage{fourier} % or what ever
\usepackage[scaled=.92]{helvet}%. Sans serif Helvetica
\usepackage{color,calc}
\newsavebox{\ChpNumBox}
\definecolor{ChapBlue}{rgb}{0.00,0.65,0.65}
\makeatletter
\newcommand*{\thickhrulefill}{%
\leavevmode\leaders\hrule height 1\p@ \hfill \kern \z@}
\newcommand*\BuildChpNum[2]{%
\begin{tabular}[t]{@{}c@{}}
\makebox[0pt][c]{#1\strut} \\[.5ex]
\colorbox{ChapBlue}{%
\rule[10em]{0pt}{0pt}%
\rule{1ex}{0pt}\color{black}#2\strut
\rule{1ex}{0pt}}%
\end{tabular}}
\makechapterstyle{BlueBox}{%
\renewcommand{\chapnamefont}{\large\scshape}
\renewcommand{\chapnumfont}{\Huge\bfseries}
\renewcommand{\chaptitlefont}{\raggedright\Huge\bfseries}
\setlength{\beforechapskip}{20pt}
\setlength{\midchapskip}{26pt}
\setlength{\afterchapskip}{40pt}
\renewcommand{\printchaptername}{}
\renewcommand{\chapternamenum}{}
\renewcommand{\printchapternum}{%
\sbox{\ChpNumBox}{%
\BuildChpNum{\chapnamefont\@chapapp}%
{\chapnumfont\thechapter}}}
\renewcommand{\printchapternonum}{%
\sbox{\ChpNumBox}{%
\BuildChpNum{\chapnamefont\vphantom{\@chapapp}}%
{\chapnumfont\hphantom{\thechapter}}}}
\renewcommand{\afterchapternum}{}
\renewcommand{\printchaptertitle}[1]{%
\usebox{\ChpNumBox}\hfill
\parbox[t]{\hsize\width\ChpNumBox{1em}{%
\vspace{\midchapskip}%
\thickhrulefill\par
\chaptitlefont ##1\par}}%
}
\chapterstyle{BlueBox}
\begin{document}
\chapter{Introduction}
\end{document}
错误消息:使用 \makechapterstyle 扫描时文件结束。
答案1
您缺少最后一个\parbox
第一个参数中的右括号,但它没有任何意义:
\hsize\width\ChpNumBox{1em}
不是一个维度。你可能想要的是
\parbox[t]{\hsize-\wd\ChpNumbox-6pt}{...}
您还需要更改代码\BuildChpNum
:
\newcommand*\BuildChpNum[2]{%
\begin{tabular}[t]{@{}c@{}}
\makebox[0pt][c]{#1\strut} \\[.5ex]
\colorbox{ChapBlue}{%
\rule[10em]{0pt}{0pt}%
\hspace{6pt}\color{black}#2\strut\hspace{6pt}%
}%
\end{tabular}}
使用 a\rule
来获得水平空间是相当奇怪的;此外,这两个1ex
是不同的,因为第一个是来自\normalfont
,第二个是来自\bfseries
。将调整6pt
为你喜欢的值。