我在 Slackware64-14.2 上使用带有 LyX-2.3.6.1 的 TL2023。
我正在尝试更改 KOMA-Script 书籍章节标题,使标题右对齐,位于两个水平规则之间,并且章节标题位于顶部规则之上,就像回忆录类演示章节标题一样。
我在 KOMA-Script wiki 上找到了将章节标题放在两行之间并右对齐的代码,但后者的代码丢失了。下面是一个最小工作示例序言。章节标题位于两个规则之间,但仍然左对齐。序言的最后两行显示了我在 StackExchange 线程中尝试过的方法;这两种方法对我来说都不起作用,而且我找不到将标题编号放在小写单词上方居中的代码。
\textclass scrbook
\begin_preamble
\date{}
\usepackage{mathpazo,amssymb}
\usepackage{graphicx,relsize}
\usepackage{scrlayer-scrpage}
\pagestyle{scrheadings}
\usepackage{lipsum}
%% Add clines above and below chaper headings
\usepackage{xpatch}
\xapptocmd{\chapterheadstartvskip}{%
{%
\setlength{\parskip}{0pt}%
\setlength{\parfillskip}{0pt plus 1fil}%
\noindent\rule[.3\baselineskip]{\linewidth}{1pt}\par
}\nobreak
}{%
\typeout{Horizontal line before chapter heading added.}%
}{%
\errmessage{Failed to patch \string\chapterheadstartvskip}%
}%
\xpretocmd{\chapterheadendvskip}{%
{%
\setlength{\parskip}{0pt}%
\setlength{\parfillskip}{0pt plus 1fil}%
\noindent\rule[-.3\baselineskip]{\linewidth}{1pt}\par
}\nobreak
}{%
\typeout{Horizontal line after chapter heading added.}%
}{%
\errmessage{Failed to patch \string\chapterheadendvskip}%
}%
%% Align chapter heading on right
%\let\raggedchapter\raggedrightrenewcommand*{\raggedsec
%%\renewcommand*{\raggedchapter}{\raggedright}
\end_preamble
指向所需解决方案的指针。
答案1
Herbert Voss 在 LyX 邮件列表上提供了解决方案:
在文件序言中写入:
\usepackage{fmtcount}
\setkomafont{chapter}{\huge}
\renewcommand\chapterlinesformat[3]{%
\ifx\relax#2\relax\else\makebox[\linewidth]{%
\numberstringnum{\thechapter}}\\\smallskip\fi\rule{\linewidth}{1pt}\par
\ifx\relax#2\relax\smallskip\else\bigskip\fi
\parbox{\linewidth}{\raggedchapter\raggedleft#3}%
\par\medskip\rule{\linewidth}{1pt}%
}%