KOMA-Script:章节标题右对齐,位于水平线之间,章节号以文字形式居中显示

KOMA-Script:章节标题右对齐,位于水平线之间,章节号以文字形式居中显示

我在 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}%
}%

相关内容