From b2be59441e626e11292921d7cb1f32c0a9eec544 Mon Sep 17 00:00:00 2001 From: jfbu Date: Sun, 5 Jun 2016 19:32:47 +0200 Subject: [PATCH] Fix #777 (part I): Latex output "too deeply nested" Use \trivlist in Sphinx Verbatim. --- sphinx/texinputs/sphinx.sty | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/sphinx/texinputs/sphinx.sty b/sphinx/texinputs/sphinx.sty index f556b81a3..68eaf01bd 100644 --- a/sphinx/texinputs/sphinx.sty +++ b/sphinx/texinputs/sphinx.sty @@ -341,20 +341,19 @@ % - if caption: vertical space above caption = (\abovecaptionskip + D) with % D = \baselineskip-\FrameHeightAdjust, and then \smallskip above frame. % - if no caption: (\smallskip + D) above frame. By default D=6pt. - \list{}{% - \setlength\parskip{0pt}% - \setlength\itemsep{0ex}% - \setlength\topsep{0ex}% - \setlength\parsep{0pt}% let's not forget this one! - \setlength\partopsep{0pt}% - \setlength\leftmargin{0pt}% - }% - \item + % Use trivlist rather than list to avoid possible "too deeply nested" error. + \itemsep \z@skip + \topsep \z@skip + \partopsep \z@skip% trivlist will set \parsep to \parskip = zero (see above) + % \leftmargin will be set to zero by trivlist + \rightmargin\z@ + \parindent \z@% becomes \itemindent. Default zero, but perhaps overwritten. + \trivlist\item\relax % use a minipage if we are already inside a framed environment - \relax\ifSphinx@inframed\noindent\begin{minipage}{\linewidth}\fi + \ifSphinx@inframed\noindent\begin{minipage}{\linewidth}\fi \MakeFramed {% adapted over from framed.sty's snugshade environment - \advance\hsize-\width\@totalleftmargin\z@\linewidth\hsize - \@setminipage }% + \advance\hsize-\width\@totalleftmargin\z@\linewidth\hsize + \@setminipage }% \small % For grid placement from \strut's in \FancyVerbFormatLine \lineskip\z@skip @@ -365,8 +364,7 @@ \endOriginalVerbatim \par\unskip\@minipagefalse\endMakeFramed \ifSphinx@inframed\end{minipage}\fi - \endlist - % LaTeX environments always revert local changes on exit, here e.g. \parskip + \endtrivlist } % define macro to frame contents and add shadow on right and bottom