From faccc2182275354ebe7d85ac61dd753887b98315 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20B?= <2589111+jfbu@users.noreply.github.com> Date: Sat, 23 Jul 2022 12:42:33 +0200 Subject: [PATCH] Fix #10695: old LaTeX does not allow \@ifpackageloaded usage in body --- sphinx/texinputs/sphinx.sty | 21 +++++++++++++++++++++ sphinx/texinputs/sphinxlatexadmonitions.sty | 2 +- sphinx/texinputs/sphinxlatexliterals.sty | 2 +- sphinx/texinputs/sphinxlatexshadowbox.sty | 2 +- sphinx/texinputs/sphinxpackageboxes.sty | 16 ---------------- 5 files changed, 24 insertions(+), 19 deletions(-) diff --git a/sphinx/texinputs/sphinx.sty b/sphinx/texinputs/sphinx.sty index b1105515b..8e01c8ac2 100644 --- a/sphinx/texinputs/sphinx.sty +++ b/sphinx/texinputs/sphinx.sty @@ -685,6 +685,27 @@ %% FRAMED ENVIRONMENTS % \RequirePackage{sphinxpackageboxes} +% This macro is possibly executed at begin document if the check +% whether radii setting options have been used turns out positive +\def\spx@RequirePackage@PictIIe{% +\IfFileExists{pict2e.sty} + {\RequirePackage{pict2e}} + {\PackageWarningNoLine{sphinx}{% + The package pict2e is required for rounded boxes.\MessageBreak + It does not seem to be available on your system.\MessageBreak + Options for setting radii will thus be ignored}% + \AtEndDocument{\PackageWarningNoLine{sphinx}{% + I issued a warning which may have gotten lost in the\MessageBreak + gigantic console output: pict2e.sty was not found,\MessageBreak + and radii setting options have been ignored}}% + \def\spx@boxes@fcolorbox@rounded{\spx@boxes@fcolorbox}% + }% +}% +% This at begin document will be executed after \spx@RequirePackage@PictIIe +\AtBeginDocument{% + \@ifpackageloaded{pict2e}{\let\spx@ifpackageloaded@pictiie\@firstoftwo}% + {\let\spx@ifpackageloaded@pictiie\@secondoftwo}% +}% \input{sphinxlatexadmonitions.sty} \input{sphinxlatexliterals.sty} \input{sphinxlatexshadowbox.sty} diff --git a/sphinx/texinputs/sphinxlatexadmonitions.sty b/sphinx/texinputs/sphinxlatexadmonitions.sty index 052de9bb0..d2a63daf2 100644 --- a/sphinx/texinputs/sphinxlatexadmonitions.sty +++ b/sphinx/texinputs/sphinxlatexadmonitions.sty @@ -162,7 +162,7 @@ \ifdim\spx@boxes@radius@bottomleft >\z@0\fi 1\spx@boxes@fcolorbox{##1}% \else - \@ifpackageloaded{pict2e}% + \spx@ifpackageloaded@pictiie {\ifspx@boxes@insetshadow \spx@boxes@fcolorbox{##1}% \else diff --git a/sphinx/texinputs/sphinxlatexliterals.sty b/sphinx/texinputs/sphinxlatexliterals.sty index 35fc9ca9f..b7b01f7aa 100644 --- a/sphinx/texinputs/sphinxlatexliterals.sty +++ b/sphinx/texinputs/sphinxlatexliterals.sty @@ -164,7 +164,7 @@ \ifdim\spx@pre@radius@bottomleft >\z@0\fi 1\spx@boxes@fcolorbox{\box\z@}% \else - \@ifpackageloaded{pict2e}% + \spx@ifpackageloaded@pictiie {\ifspx@pre@insetshadow \spx@boxes@fcolorbox{\box\z@}% \else diff --git a/sphinx/texinputs/sphinxlatexshadowbox.sty b/sphinx/texinputs/sphinxlatexshadowbox.sty index d9a35eb56..069526717 100644 --- a/sphinx/texinputs/sphinxlatexshadowbox.sty +++ b/sphinx/texinputs/sphinxlatexshadowbox.sty @@ -79,7 +79,7 @@ \ifdim\spx@topic@radius@bottomleft >\z@0\fi 1\spx@boxes@fcolorbox{\box\z@}% \else - \@ifpackageloaded{pict2e}% + \spx@ifpackageloaded@pictiie {\ifspx@topic@insetshadow \spx@boxes@fcolorbox{\box\z@}% \else diff --git a/sphinx/texinputs/sphinxpackageboxes.sty b/sphinx/texinputs/sphinxpackageboxes.sty index 1c1ec57ad..c1438f841 100644 --- a/sphinx/texinputs/sphinxpackageboxes.sty +++ b/sphinx/texinputs/sphinxpackageboxes.sty @@ -72,22 +72,6 @@ % if nothing else is changed (perhaps in future the title itself could be also % rendered in a rounded box?) -\def\spx@RequirePackage@PictIIe{% -\IfFileExists{pict2e.sty} - {\RequirePackage{pict2e}} - {\PackageWarningNoLine{sphinx}{% - The package pict2e is required for rounded boxes.\MessageBreak - It does not seem to be available on your system.\MessageBreak - Options for setting radii will thus be ignored}% - \AtEndDocument{\PackageWarningNoLine{sphinx}{% - I issued a warning which may have gotten lost in the\MessageBreak - gigantic console output: pict2e.sty was not found,\MessageBreak - and radii setting options have been ignored}}% - \def\spx@boxes@fcolorbox@rounded{\spx@boxes@fcolorbox}% - }% -}% - - %//// \spx@boxes@fcolorbox % This box will have the same baseline as its argument (which is typeset in % horizontal mode). It takes into account four border widths parameters, four