将字母与标题对齐

将字母与标题对齐

我想重现旧书第一页的外观。是否可以将首字母与章节标题对齐?

在此处输入图片描述

\documentclass{scrbook}
\usepackage{microtype,fontspec,lettrine}    
\usepackage{ebgaramond}
\usepackage[explicit]{titlesec}
\titleformat{\section}[block]{\scshape\LARGE\raggedleft}{}{0pt}{#1\quad\thesection}

\renewcommand{\thesection}{\Roman{section}}

\begin{document}
\section{Hello world}
\lettrine[loversize=0.9, lines=3]{S}{ed ut perspiciatis unde omnis  iste natus error sit voluptatem accusantium doloremque} laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi...
\end{document}

答案1

您不应titlesec与 KOMA-Script 类结合使用。因此,我首先使用 KOMA-Script 用户界面更改了基本部分格式,在本例中\setkomafont是更改部分的字体,并重新定义\secionlinesformat以更改部分编号和部分标题的顺序。要删除部分编号后的点,您可以使用类选项numbers=noenddot或重新定义\sectionformat。要打印右对齐的部分标题,您可以更改\raggedsection以更改对齐方式全部\raggedleft级别,或者在 的定义中添加\sectionlinesformat。恕我直言,打印具有相同对齐方式的所有章节、小节等标题更有意义,因此我将使用 的重新定义\raggedsection

然后您可以使用它\RedeclareSectionCommand来改变部分命令的垂直间距。

\documentclass{scrartcl}
\usepackage{microtype,fontspec,lettrine}    
\usepackage{ebgaramond}

\renewcommand{\thesection}{\Roman{section}}
\renewcommand*{\sectionformat}{\thesection}% no dot or space behind the number
\let\raggedsection\raggedleft
\setkomafont{section}{\normalfont\Large\scshape}
\makeatletter
\renewcommand*{\sectionlinesformat}[4]{%
  \Ifstr{#1}{section}
    {#4\quad#3}
    {\@hangfrom{\hskip#2#3}#4}%
  }
\makeatother
\RedeclareSectionCommand[afterskip=-\ht\strutbox,runin=false]{section}% change space after heading

\begin{document}
\section{Hello world}
\lettrine[loversize=0.9, lines=3]{S}{ed ut perspiciatis unde omnis  iste natus error sit voluptatem accusantium doloremque} laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi...
\end{document}

在此处输入图片描述

笔记:

  • 该值-\ht\strutbox是估计值。如果这还不够,您还可以使用绝对值,如-1.5ex-10pt。但不要忘记使用runin=false。否则,您会因为负数 而定义一个 runin 标题afterskip。有关更多信息,请参阅 KOMA-Script 手册。

  • 如果有多行章节标题,则定义如下

    \renewcommand*{\sectionlinesformat}[4]{%
      \Ifstr{#1}{section}
        {\parbox[b]{.8\textwidth}{\raggedleft #4}\quad#3}
        {\@hangfrom{\hskip#2#3}#4}%
    }
    

    可能会有用。但在这种情况下,您首先必须决定如何打印较长的章节标题。

  • 我使用了,因为恕我直言,如果不使用 ,scrartcl使用 就没有意义。但是,该解决方案也适用于。scrreprt\chapterscrreprt

  • 除了 KOMA-Script 手册外,还有关于 KOMA-Script wiki 中章节标题格式的部分,其中有几个关于此答案中也使用的命令用法的示例。维基百科也提供德语版本

答案2

由于titlesec与不兼容scrbook,我将使用book

粗略测量得出的结果约为 22pt,经过一些视觉格式化后,必须将其减小到 21pt。

我会留下一点超调。

\documentclass[a4paper]{book}
\usepackage{
  microtype,
  fontspec,
  lettrine
}
\usepackage{ebgaramond}
\usepackage[explicit]{titlesec}

\titleformat{\section}[block]
  {\scshape\LARGE\raggedleft}
  {}
  {0pt}
  {#1\quad\thesection}
\titlespacing*{\section}
 {0pt}
 {3.5ex plus 1ex minus .2ex}
 {-21pt}

\renewcommand{\thesection}{\Roman{section}}

\begin{document}

\section{Hello world\makebox[0pt][r]{\vrule height \dimeval{\fontcharht\font`H+0.2pt}
depth -\fontcharht\font`H width \textwidth}}

\lettrine[loversize=0.9,lines=3]{S}{ed ut perspiciatis unde omnis  
iste natus error sit voluptatem accusantium doloremque} laudantium, 
totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et 
quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam 
voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia 
consequuntur magni dolores eos qui ratione voluptatem sequi...

\section{Hello world\makebox[0pt][r]{\vrule height \dimeval{\fontcharht\font`H+0.2pt}
depth -\fontcharht\font`H width \textwidth}}

\lettrine[loversize=0.9,lines=3]{T}{ed ut perspiciatis unde omnis  
iste natus error sit voluptatem accusantium doloremque} laudantium, 
totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et 
quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam 
voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia 
consequuntur magni dolores eos qui ratione voluptatem sequi...

\section{Hello world\makebox[0pt][r]{\vrule height \dimeval{\fontcharht\font`H+0.2pt}
depth -\fontcharht\font`H width \textwidth}}

\lettrine[loversize=0.9,lines=3]{B}{ed ut perspiciatis unde omnis  
iste natus error sit voluptatem accusantium doloremque} laudantium, 
totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et 
quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam 
voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia 
consequuntur magni dolores eos qui ratione voluptatem sequi...

\end{document}

在此处输入图片描述

相关内容