summaryrefslogtreecommitdiff
path: root/macros/generic/polexpr/polexpr-examples.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/generic/polexpr/polexpr-examples.tex')
-rw-r--r--macros/generic/polexpr/polexpr-examples.tex86
1 files changed, 49 insertions, 37 deletions
diff --git a/macros/generic/polexpr/polexpr-examples.tex b/macros/generic/polexpr/polexpr-examples.tex
index fa2f330513..564c1912da 100644
--- a/macros/generic/polexpr/polexpr-examples.tex
+++ b/macros/generic/polexpr/polexpr-examples.tex
@@ -145,25 +145,12 @@
\makeatletter
\catcode`_ 11
-\def\everbatimtop {\MacroFont\small}% default
-\let\everbatimbottom\empty
-\let\everbatimhook\empty
-
\def\everbatim {\s@everbatim\@everbatim }
-\@namedef{everbatim*}{\s@everbatim\expandafter\@everbatimx\expandafter
- {\the\newlinechar}}
-\let\everbatimbgcolorcmd\empty
-\def\everbatimeverypar{\strut
- {\everbatimbgcolorcmd\vrule\@width\linewidth }%
- \kern-\linewidth
- \kern\everbatimindent }
-\def\everbatimindent {\z@}
-% voir plus loin atbegindocument
+%! ancienne méthode sans doute motivé par possibilité code ferme un groupe?
+%! \@namedef{everbatim*}{\s@everbatim\@everbatimx\expandafter
+%! {\the\newlinechar}}
+\@namedef{everbatim*}{\s@everbatim\@everbatimx }
-\def\endeverbatim {\if@newlist \leavevmode\fi\endtrivlist }
-
-\@namedef{endeverbatim*}{\endeverbatim\aftergroup\everbatimundoparskip}
-\def\everbatimundoparskip{\vbox{}\kern-\baselineskip\kern-\parskip}
% Note 25 juin 2021
% On ne peut pas emboîter un everbatim à l'intérieur d'un everbatim
% ou un everbatim* à l'intérieur d'un everbatim*...
@@ -197,6 +184,14 @@
}%
\obeylines \@vobeyspaces
}
+\def\everbatimtop {\MacroFont\small}% default
+\let\everbatimhook\empty
+\def\everbatimeverypar{\strut
+ {\everbatimbgcolorcmd\vrule\@width\linewidth }%
+ \kern-\linewidth
+ \kern\everbatimindent }
+\let\everbatimbgcolorcmd\empty
+\def\everbatimindent {\z@}
\begingroup
\lccode`X 13
@@ -210,31 +205,47 @@
|lowercase[|endgroup% both freezes catcodes and converts X to active ^^M
|def|@everbatim #1X#2\end{everbatim}%
[#2|end[everbatim]|everbatimbottom ]
-|def|@everbatimx #1#2X#3\end{everbatimY}]%
- {#3\end{everbatim*}%
- \everbatimbottom
+|def|@everbatimx #1X#2\end{everbatimY}]%
+ {#2\end{everbatim*}%
+% refactored 2022/01/11, rather than passing \newlinechar value
+% as was done formerly via everbatim* (see above) and fetching it here as #1
+% it is thus assumed executed contents will not terminate a scope
+ \edef\everbatimrestorenewlinechar{\newlinechar\the\newlinechar\relax}%
\newlinechar 13
+% refactored 2022/01/11:
+% attention, \parskip set to zero for execution of contents
+% reason: avoid extra space if everbatim* is in an \item of a list
+% between verbatim and output of execution, if it starts a paragraph
+% \vskip-\parskip would be no good in case contents create a display
+ \edef\everbatimrestoreparskip{\parskip\the\parskip}%
+ \parskip\z@skip
% execution as LaTeX code of contents
\everbatimxprehook
- \scantokens {#3}%
- \newlinechar #1\relax
+ \scantokens {#2}%
+ \everbatimrestorenewlinechar
+ \everbatimrestoreparskip
\everbatimxposthook
}%
-
% L'espace venant du endofline final mis par \scantokens sera inhibé si #3 se
% termine par un % ou un \x, etc...
-\let\everbatimxfgcolorcmd\empty
+\let\everbatimbottom\empty
+
+\def\endeverbatim {\if@newlist \leavevmode\fi\endtrivlist }
+\@namedef{endeverbatim*}{\endeverbatim}
+% \@namedef{endeverbatim*}{\endeverbatim\aftergroup\everbatimundoparskip}
+% \def\everbatimundoparskip{\vbox{}\kern-\baselineskip\kern-\parskip}
+% \let\everbatimundoparskip\empty
+
+% rationale: we do not want a group
+% see xint.dtx for better way avoiding colorstack overflow problem
+% with latex+dvipdfmx
\def\everbatimxprehook {\colorlet{everbsavedcolor}{.}%
- \everbatimxfgcolorcmd
- \smallskip % pour polexpr-examples.tex
- % à cause de problèmes avec les
- % output en "display"
- }%
+ \everbatimxfgcolorcmd}%
+\let\everbatimxfgcolorcmd\empty % default
\def\everbatimxposthook {\color{everbsavedcolor}}
-
\catcode`_ 8
\makeatother
@@ -251,9 +262,9 @@
% \verb
%\colorlet{verbcolor}{DarkCyan}
-\colorlet{verbcolor}{black}
+\colorlet{verbcolor}{Maroon}
\colorlet{verbsoftwrapiconcolor}{DarkBlue}
-\def\MicroFont{\ttfamily%\color{verbcolor}
+\def\MicroFont{\ttfamily\color{verbcolor}
\makestarlowast\makequotesstraight}%
% everbatim/everbatim*
@@ -265,11 +276,13 @@
\def\MacroFont{\ttfamily\color{everbatimfgcolor}}
%\colorlet{everbatimbgcolor}{WhiteSmoke}
-\colorlet{everbatimbgcolor}{Ivory}
+%\colorlet{everbatimbgcolor}{Ivory}
+\colorlet{everbatimbgcolor}{Beige}
\def\everbatimbgcolorcmd{\color{everbatimbgcolor}}
%\colorlet{everbatimxfgcolor}{MidnightBlue}
-\colorlet{everbatimxfgcolor}{OliveDrab}
+%\colorlet{everbatimxfgcolor}{OliveDrab}
+\colorlet{everbatimxfgcolor}{Maroon}
\def\everbatimxfgcolorcmd{\color{everbatimxfgcolor}}
% Notice that \macrocode uses \macro@font which stores the \MacroFont meaning
@@ -281,7 +294,7 @@
The package provides a parser |\poldef| of algebraic polynomial
-expressions.
+expressions.
Once defined, a polynomial is usable by its name either as a numerical
function in |\xintexpr/\xinteval|, or for additional polynomial
@@ -373,11 +386,10 @@ file.
\section{A first example}
-
In this example the polynomial is square-free.
\begin{everbatim*}
\poldef f(x) := x^7 - x^6 - 2x + 1;
-
+%
\PolToSturm{f}{f}
\PolSturmIsolateZeros{f}
The \PolTypeset{f} polynomial has \PolSturmNbOfIsolatedZeros{f} distinct real