titlesec \titleformat 中的 pgfornament 问题

titlesec \titleformat 中的 pgfornament 问题

我想使用 titlesec 包中的 \titleformat 中的 pgfornament 包来制作一个漂亮的章节标题。

当我在左侧仅使用一个装饰物时,它就起作用了。

\documentclass[11pt]{book}
\usepackage[utf8]{inputenc}
\usepackage{titlesec}
\usepackage{pgfornament}

\begin{document}
\titleformat{\section}[block]{\parbox[c]{5em}{\pgfornament[width=4em]{17}}\begin{minipage}{0.7\textwidth}\normalfont\Large\bfseries}{\thesection}{1em}{}[\end{minipage}]

\chapter{Story}

\section*{Introduction}
\end{document}

装饰部分

但当我想要两侧的装饰时,它不起作用。

\titleformat{\section}[block]{\parbox[c]{5em}{\pgfornament[width=4em]{17}}\begin{minipage}{0.7\textwidth}\normalfont\Large\bfseries}{\thesection}{1em}{}[\end{minipage}\parbox[c]{5em}{\pgfornament[width=4em]{18}}]

我从 pdflatex 收到以下错误消息:

Chapter 1.
(/usr/share/texlive/texmf-dist/tex/generic/vectorian17.pgf)
Runaway argument?
c\@@par \ttl@endlongest \fi \endgroup \ttl@finmarks \@ifundefined {tt\ETC.
! Paragraph ended before \@iparbox was complete.
<to be read again> 
                   \par 
l.13 \section*{Introduction}

任何帮助都将不胜感激。提前谢谢您。

答案1

\parbox由于和 的可选参数,您需要将最后一个可选参数的全部内容括在一对额外的括号中\pgfornament

\documentclass[11pt]{book}
\usepackage[utf8]{inputenc}
\usepackage{titlesec}
\usepackage{pgfornament}

\begin{document}
\titleformat{\section}[block]
  {\parbox[c]{5em}{\pgfornament[width=4em]{17}}\begin{minipage}{0.7\textwidth}\normalfont\Large\bfseries}
  {\thesection}{1em}{}
  [{\end{minipage}\parbox[c]{5em}{\pgfornament[width=4em]{18}}}]
\chapter{Story}

\section*{Introduction}
\end{document}

在此处输入图片描述

为了防止过满\hbox,请更改的宽度minipage;也许您还希望右侧的装饰物也能被刷新:

\titleformat{\section}[block]{\parbox[c]{5em}{\pgfornament[width=4em]{17}}\begin{minipage}{\dimexpr\textwidth-10em\relax}\normalfont\Large\bfseries}{\thesection}{1em}{}
[{\end{minipage}\parbox[c]{5em}{\hfill\pgfornament[width=4em]{18}}}]

相关内容