无法使用 titlesec 移动/定位 \chapter?

无法使用 titlesec 移动/定位 \chapter?

不知何故,我尝试更改 \chapter 的位置似乎不起作用。我希望我的 chaptertitle 正好从页面顶部开始。我需要更改普通的页面样式吗?

\documentclass[paper=15cm:23cm, headinclude=true, numbers=enddot, draft]{scrbook}

\usepackage[ngerman]{babel}

\usepackage[automark]{scrpage2}   
\renewcommand*{\headfont}{% 
\normalfont\sffamily\scshape} 
\renewcommand*{\chaptermarkformat}{} 
\renewcommand*{\sectionmarkformat}{}

\usepackage{titlesec}
\setkomafont{chapter}{\huge\normalfont\sffamily\bfseries}

%Position of Chaptertitle
\titlespacing{\chapter}{0pt}{-50pt}{20pt}

\begin{document}
\chapter{This first chapter}
Hi there.
\end{document}

答案1

如果您同时定义了\titleformat\titlespacing,那么您就可以完全控制:

\documentclass{scrbook}
\usepackage[ngerman]{babel}
\usepackage{titlesec}

\setkomafont{chapter}{\huge\normalfont\sffamily\bfseries}

%Position of Chaptertitle
\titleformat{\chapter}
            {\usekomafont{chapter}}
            {\thechapter.\hspace{1em}}
            {0pt}
            {}
\titlespacing{\chapter}{0pt}{-50pt}{20pt}
\begin{document}
\chapter{This first chapter}
Hi there.
\end{document}

我目前不确定为什么你不能直接使用\titlespacing,但这可能与重新定义部分样式的方式有关KOMA。请注意,你不需要使用高级界面– 只需发出任何titlesec实际触及格式的命令即可。因此,您还可以使用轻松设置,指定类选项之一rm,,,,,,,,,,如手册中所述:sfttmdbfupitslsc

\documentclass{scrbook}
\usepackage[ngerman]{babel}
\usepackage[sf,bf]{titlesec}

% This is optional when the easy-setup is used:
%\setkomafont{chapter}{\huge\normalfont\sffamily\bfseries}
%\titleformat*{\chapter}{\usekomafont{disposition}\usekomafont{chapter}}

% Position of Chapter title
\titlespacing{\chapter}{0pt}{-50pt}{20pt}
\begin{document}
\chapter{This first chapter}
Hi there.
\end{document}

答案2

下面的代码运行良好。

我介绍了为了这样的努力而制定的titlesecs 命令。\titleformat

笔记:

  • 我添加了一个字体包(kpfonts仅是一个例子,但很棒),因为如果没有它,您对 pagehead 的定义就无法工作。

  • 我会使用 pagestyle scrheadings,所以我添加了相应的命令。

  • 与 KOMA-Script 一起,建议使用包自己的字体切换命令来scrpage2影响字体属性(参见 KOMA-Script 手册,部分scrpage2)。

  • 另一方面,KOMA-Script 自己的“章节”字体开关在这里不起作用\titleformat;看来,这是另一个KOMA-Script 与 titlesec 不兼容\usekomafont。但是可以通过在定义中使用 来解决这个问题\titleformat(感谢 mforbes 提出这个想法)。请注意,documentclass 选项headings=big(也应将 chaptertitle 设置为\huge)确实 不是也可以工作!

  • 我已将标题分隔的绝对值更改为相对值:\baselineskipem不是pt

      \documentclass[%
      paper=15cm:23cm,%
      headinclude=true,%
      numbers=enddot,%
      draft,%
    ]{scrbook}%
    \usepackage[T1]{fontenc}
    %\usepackage[utf8]{inputenc}
    
    \usepackage{kpfonts}
    
    \usepackage[ngerman,latin]{babel}% option "latin" only because of use of "lipsum"
    
    \usepackage[automark]{scrpage2}
    \pagestyle{scrheadings}
    \renewcommand*{\chaptermarkformat}{}% no numbering in the pagehead
    \renewcommand*{\sectionmarkformat}{}
    %%% works, but is not recommended together with KOMA-Script:
    %\renewcommand*{\headfont}{
    %\normalfont\sffamily\scshape}
    %%% This is the recommended way:
    \setkomafont{pagehead}{\normalfont\sffamily\scshape}
    
    \usepackage{titlesec}
    \setkomafont{chapter}{\normalfont\sffamily\bfseries\huge}
    
    \titleformat{\chapter}
                {\usekomafont{chapter}}
                {\thechapter.}
                {1em}
                {\filleft}
    
    %Position of Chaptertitle
    \titlespacing{\chapter}{0pt}{-3\baselineskip}{2\baselineskip}%
    
    \usepackage{lipsum}
    
    \begin{document}
    
    \chapter{Lipsum Lapsum Lepsum Lopsum Lupsum Lypsum}
    \lipsum[1-5]
    
    \chapter{Lorem Ipsum}
    \lipsum[6-10]
    
    \end{document}
    

相关内容