Si vous compilez ce qui suit, un rond rouge apparaît dans l'entête des deux chapitres. En fait, j'aimerais qu'il n'apparaisse que quand l'environnement « abstract » est appelé après la commande Ouvrir dans l'éditeur Overleaf
\documentclass[fleqn,11pt]{book} \usepackage{tikz} \usepackage{environ} \makeatletter \NewEnviron{abstract}{% {\toks@=\expandafter{\BODY}% \immediate\write\@auxout {\global\string\@namedef {MyAbstract\the\value{AbstractNum}}{\the\toks@}}}} \newcounter{AbstractNum} \def\@makechapterhead#1{% \addtocounter{AbstractNum}{1}% {% \begin{tikzpicture}[remember picture,overlay]% \node at (current page.north west){% \begin{tikzpicture}[remember picture,overlay]% \fill[blue!10,draw=none] (0,0) rectangle (22,-8);% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \fill[red] (15,-5) circle (2cm);% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \node at (15,-5){\csname MyAbstract\the\value{AbstractNum}\endcsname};% \end{tikzpicture}};% \end{tikzpicture}% \par\vspace*{190\p@}% }}% % \makeatother % ---------------------------------------------> Début du document <--- \begin{document} % --------------------------------------------------------------------- % --------------------------------------------------------------------- \chapter{Titre chapitre} \begin{abstract} texte resume \end{abstract} \section{Titre section} texte % --------------------------------------------------------------------- \chapter{Titre chapitre} \section{Titre section} texte \end{document} |
Bon, après réflexion pendant la nuit, je me suis aperçu que la façon de définir l'environnement « abstract » n'était pas la plus simple. À la place, on peut faire comme suit : Ouvrir dans l'éditeur Overleaf
\documentclass[fleqn,11pt]{book} \usepackage{tikz} \usepackage{environ} \NewEnviron{abstract}{% \begin{tikzpicture}[remember picture,overlay]% \node at (current page.north west){% \begin{tikzpicture}[remember picture,overlay]% \fill[red] (15,-5) circle (2cm);% \node at (15,-5){\BODY};%% \end{tikzpicture}};% \end{tikzpicture}% } \makeatletter \def\@makechapterhead#1{% \begin{tikzpicture}[remember picture,overlay]% \node at (current page.north west){% \begin{tikzpicture}[remember picture,overlay]% \fill[blue!10,draw=none] (0,0) rectangle (22,-8);% \end{tikzpicture}};% \end{tikzpicture}% \par\vspace*{190\p@}% }% % \makeatother % ---------------------------------------------> Début du document <--- \begin{document} % --------------------------------------------------------------------- % --------------------------------------------------------------------- \chapter{Titre chapitre} \begin{abstract} texte resume \end{abstract} \section{Titre section} texte % --------------------------------------------------------------------- \chapter{Titre chapitre} \section{Titre section} texte \end{document} On utilise allègrement l'option Nota bene : la méthode répond à la question. Cependant, je suis toujours intéressé par une autre réponse à la question en gardant l'idée initiale de passer par le fichier .aux, s'il y en a une. En effet, cette solution où un unique environnement tikz est déclaré (il n'y en aurait pas dans l'environnement "abstract") est plus générale, puisqu'il serait possible d'adapter les autres éléments de l'environnement tikz en fonction de l'appel à "abstract", ce qui n'est pas possible actuellement. Publiée 03 Oct '18, 19:28 pluton |
Utiliser un booléen mis à vrai par l'environnement et mis à faux par Publiée 01 Oct '18, 00:46 Le TeXnicien de surface bonne idée. Mais disons que cet environnement "abstract" doit activer la création d'un schéma dans l'entête du chapitre au sein duquel il est appelé. Et cette entête est définie avant l'appel de l'environnement. J'ai l'impression qu'il faut passer par le fichier .aux et attendre une deuxième compilation...
(01 Oct '18, 02:02)
pluton
|
Histoire d'être bien certain d'avoir compris : quand vous écrivez que certains chapitres ne font pas appel à cet environnement, c'est de votre fait, c'est à dire que vous choisissez de ne pas placer cet environnement en tête de chapitre ?
Ou le problème est-il que vous avez placé les commandes nécessaires mais qu'elles ne sont pas exécutées lors de la compilation ?
@Pathe oui c'est de mon fait, je choisis de ne pas appeler cet environnement dans certains chapitres. Et j'aimerais tester ce choix, parce qu'il a des répercussions ailleurs.