如何使用 psvectorian 在零件编号和零件标题之间插入装饰物?

如何使用 psvectorian 在零件编号和零件标题之间插入装饰物?

我想用 psvectorian 在零件编号和零件标题之间插入一个装饰物,正如上一个问题中解释的那样:

使用 psvectorian 为 Part 页面添加样式

不幸的是,我选择的装饰(88)似乎有问题,装饰出现在零件的下一页(并且不居中),而不是零件编号和零件标题之间。错误在哪里?也许我需要使用 pgfornament?

这是我的代码:

\documentclass[symmetric,justified,marginals=raggedouter]{tufte-book}
\usepackage{tikz}
\usepackage{psvectorian}
\renewcommand\partheadmidvskip{%
  \par\nobreak\vspace*{\baselineskip}%
  \psvectorian[height=0.2cm]{88}%
  \par\nobreak\vspace*{\baselineskip}%
}
\begin{document}
\thispagestyle{empty}
\begin{fullwidth}
\part{La Pi\`{e}ce d'Orgue \mbox{en \textit{r\'e} majeur} BWV 532}
\psvectorian[height=0.2cm]{88}
\end{fullwidth}
\end{document}

答案1

这应该有效:

\documentclass[symmetric,justified,marginals=raggedouter]{tufte-book}
\usepackage{tikz}
\usepackage{psvectorian}
\usepackage{auto-pst-pdf} % to use pstricks with pdflatex

\makeatletter
\def\H@old@part[#1]#2{%
    \ifnum \c@secnumdepth >-2\relax
      \refstepcounter{part}%
      \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
    \else
      \addcontentsline{toc}{part}{#1}%
    \fi
    \markboth{}{}%
    {%
     \begin{fullwidth}%
     \centering
     \interlinepenalty \@M
     \normalfont
     \ifnum \c@secnumdepth >-2\relax
       \huge\bfseries \partname\nobreakspace\thepart
       \par
       \vskip 10\p@
       \psvectorian[height=0.2cm]{88}\par
       \vskip 10\p@
     \fi
     \Huge \bfseries #2\par
     \end{fullwidth}%
    }%
    \@endpart}

% compact form (without fullwidth environment)
%\usepackage{xpatch}
%\xpatchcmd\H@old@part
%  {\vskip 20\p@}
%  {%
%    \vskip 10\p@
%    \psvectorian[height=0.2cm]{88}\par
%    \vskip 10\p@
%  }
%  {}{\fail}
\makeatother

\begin{document}
\part{La Pi\`{e}ce d'Orgue \mbox{en \textit{r\'e} majeur} BWV 532}
\end{document}

在此处输入图片描述

应该有更好的解决方案,只是因为这个对我来说更清楚。

相关内容