epígrafe e titlesec + titletoc criam mau comportamento

epígrafe e titlesec + titletoc criam mau comportamento

Eu uso titlesec e titletoc para criar meu próprio estilo de capítulo que contém um minitoc após o título do capítulo. E eu uso epígrafe quando quero ter uma antes do título do capítulo.

Atualmente estou escrevendo um capítulo que contém várias seções, então o minitoc deve continuar na próxima página. Isto leva a uma impressão errada da epígrafe e as últimas seções não são impressas no exemplo a seguir:

\documentclass[11pt]{book}
\usepackage[utf8]{inputenc}     
\usepackage[T1]{fontenc}        


\usepackage{titletoc}
\usepackage{titlesec}
    \newlength{\HeightBeforeChap}
    \setlength{\HeightBeforeChap}{0pt}

    % redefine chapter style
    \titleformat{\chapter}[hang]{\filright}{}{0pt} 
        {\vspace*{\HeightBeforeChap} \\! \Huge \bfseries\raggedleft}
        [\vspace*{4pc}%
            \startcontents
            {\raggedright\bfseries \large Mini ToC \endgraf}
            \titlerule
            \vspace{6pt}
            \printcontents{p}{1}{\setcounter{tocdepth}{3}}
            \vspace{6pt}
            \titlerule
        ]

\usepackage{epigraph}
        \renewcommand{\textflush}{flushepinormal}
        \setlength\epigraphwidth{.55\textwidth}
        \makeatletter
            \@ifundefined{HeightBeforeChap}
            {% \HeightBeforeChap not defined
                }
            {% \HeightBeforeChap defined
                \renewcommand{\dropchapter}[1]{\setlength{\HeightBeforeChap}{#1} }
            }%
        \makeatother


\begin{document}

    \dropchapter{11pt}
    \chapter{title 1}

    \epigraphhead[40]{
            \epigraph{\itshape Computer programming is an art, because it applies 
                accumulated knowledge to the world, because it requires skill and ingenuity, 
                and especially because it produces objects of beauty.
            }{Donald Knuth, \textit{"Computer Programming as an Art". Communications of the ACM, Volume 17, Issue 12, dl.acm.org., December 1974}}
        }
    \dropchapter{0cm}

    \section{section 1}
    \subsection{title}
    \subsubsection{title}
    \section{section 2}
    \section{section 3}
    \section{section 4}
        \subsection{title}
        \subsubsection{title}
    \section{section 5}
    \section{section 6}
    \section{section 7}
        \subsection{title}
        \subsubsection{title}
    \section{section 8}
        \subsection{title}
        \subsubsection{title}
    \section{section 9}
        \subsection{title}
        \subsubsection{title}
    \section{section 10}
    \section{section 11}
    \section{section 12}
    \section{section 13}
        \subsection{title}
        \subsubsection{title}
    \section{section 14}
        \subsection{title}
        \subsubsection{title}
    \section{section 15}
        \subsection{title}
        \subsubsection{title}
    \section{section 16}
    \section{section 17}
    \section{section 18}
    \section{section 19}
        \subsection{title}
        \subsubsection{title}
    \section{section 20}
        \subsection{title}
        \subsubsection{title}
    \section{section 21}
        \subsection{title}
        \subsubsection{title}
    \section{section}

    \chapter{title 2}
    \section{title}

\end{document}

Aqui estão os resultados que obtenho:insira a descrição da imagem aquiinsira a descrição da imagem aqui

Graças à resposta deegrégia, acho que está relacionado ao encerramento da página necessária para imprimir a epígrafe, mas não tenho ideia de como resolver.

Obrigado pela ajuda.

Responder1

Como não há um único comentário mesmo depois da recompensa que coloquei, encontro uma solução feia, esperando soluções melhores do SE.

O feio:

\documentclass[11pt]{book}
\usepackage[utf8]{inputenc}     
\usepackage[T1]{fontenc}        

\usepackage{titletoc}
\usepackage{titlesec}
    \newlength{\HeightBeforeChap}
    \setlength{\HeightBeforeChap}{0pt}
    \newcommand{\BeforeChapCmd}{}
    \newcommand{\BeforeChap}[1]{\gdef\BeforeChapCmd{#1}}

    % redefine chapter style
    \titleformat{\chapter}[hang]{\filright}{}{0pt} 
        {\BeforeChapCmd\leavevmode\vspace*{\HeightBeforeChap}\BeforeChap{}\\ \Huge \bfseries\raggedleft}
        [\vspace*{4pc}%
            \startcontents
            {\raggedright\bfseries \large Mini ToC \endgraf}
            \titlerule
            \vspace{6pt}
            \printcontents{p}{1}{\setcounter{tocdepth}{3}}
            \vspace{6pt}
            \titlerule
            \leavevmode
        ]

\usepackage{epigraph}
    \renewcommand{\epigraphhead}[2][]{\BeforeChap{#2}   

\begin{document}

%   \dropchapter{11pt}
    \epigraphhead[40]{
                 \epigraph{\itshape Computer programming is an art, because it applies 
                     accumulated knowledge to the world, because it requires skill and ingenuity, 
                     and especially because it produces objects of beauty.
                 }{Donald Knuth, \textit{"Computer Programming as an Art". Communications of the ACM, Volume 17, Issue 12, dl.acm.org., December 1974}}
             }
    \chapter{title 1}
%    \dropchapter{0cm}

     \section{section 1}
     \subsection{title}
     \subsubsection{title}
     \section{section 2}
     \section{section 3}
     \section{section 4}
         \subsection{title}
         \subsubsection{title}
     \section{section 5}
     \section{section 6}
     \section{section 7}
         \subsection{title}
         \subsubsection{title}
     \section{section 8}
         \subsection{title}
         \subsubsection{title}
     \section{section 9}
         \subsection{title}
         \subsubsection{title}
     \section{section 10}
     \section{section 11}
     \section{section 12}
     \section{section 13}
         \subsection{title}
         \subsubsection{title}
         blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla.
     \section{section 14}
         \subsection{title}
         \subsubsection{title}
     \section{section 15}
         \subsection{title}
         \subsubsection{title}
     \section{section 16}
     \section{section 17}
     \section{section 18}
     \section{section 19}
         \subsection{title}
         \subsubsection{title}
     \section{section 20}
         \subsection{title}
         \subsubsection{title}
     \section{section 21}
         \subsection{title}
         \subsubsection{title}
     \section{section}

     \chapter{title 2}
     \section{title}

\end{document}

informação relacionada