N'hésitez pas à réaliser une inscription gratuite afin de pouvoir bénéficier de toutes les fonctionnalités proposées par le site et de désactiver la publicité.
N'hésitez pas à consulter les offres premium proposées par le service de stockage en ligne pCloud et inscrivez-vous afin d'obtenir 10Go de stockage gratuits.
Tout ce qui concerne le langage TeX/LaTeX et ses variantes. Ce langage est utilisable sur le forum via les balises tex. [participation réservée aux utilisateurs inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
Bonjour à toutes et tous,
je souhaiterais créer une commande, ici \itemx, qui a pour argument un énoncé d'exercice ou un input fichier qui contient un exercice. Je souhaiterais les concaténer dans une commande \textenonce pour les faire ressortir à un endroit précis. Je suis arrivé au code suivant et j'ai un souci après le \itemx{input...} où la compilation bloque en déclarant qu'il y a une accolade } de trop. Je vous mets le code ci-dessous.
Merci pour vos aides.
\documentclass[10pt,a4paper]{report}
\usepackage[latin1]{inputenc}
\newenvironment{exercice}{}{}
\newcommand{\textenonceaide}{}
\newcommand{\textenonce}{}
\newcounter{numexo}
\newcommand{\itemx}[1]{%
\global\edef\textenonceaide{\noexpand\textenonce}%
\addtocounter{numexo}{1}%
\global\edef\exonum{EX \arabic{numexo}.}%
\global\edef\textenonce{\textenonceaide\noexpand\par%
\expandafter\exonum\noexpand#1}%
}
\begin{document}
Voici le premier exercice
\begin{exercice}
\itemx{Voilà le contenu du premier exercice}
\end{exercice}
Puis les deuxième et troisième exercices
\begin{exercice}
\itemx{le contenu du deuxième exercice}
\itemx{le contenu du troisième exercice}
\itemx{\input{exomachin.tex}}
\itemx{Voici un 5ème exercice et c'est là où ça bloque}
\end{exercice}
Et enfin le 6ème exercice qui est encore un input
\begin{exercice}
\itemx{\input{exotruc.tex}}
\end{exercice}
\newpage
Affichage des exercices ici:
\textenonce
\end{document}
Dernière modification par GRSG le vendredi 02 juin 2023, 13:35, modifié 3 fois.
\RequirePackage{filecontents}
\begin{filecontents}{exomachin.tex}
Contenu de exomachin
\end{filecontents}
\begin{filecontents}{exotruc.tex}
Contenu de exotruc
\end{filecontents}
\documentclass[10pt,a4paper]{report}
\newenvironment{exercice}{}{}
\newcommand{\textenonceaide}{}
\newcommand{\textenonce}{}
\newcounter{numexo}
\newcommand{\itemx}[1]{%
\addtocounter{numexo}{1}%
\global\edef\exonum{EX \arabic{numexo}.}%
\expandafter\expandafter\expandafter\gdef
\expandafter\expandafter\expandafter\textenonce
\expandafter\expandafter\expandafter{\expandafter\textenonce\expandafter\par\exonum\space#1}%
}
\begin{document}
Voici le premier exercice
\begin{exercice}
\itemx{Voila le contenu du premier exercice}
\end{exercice}
Puis les deuxieme et troisieme exercices
\begin{exercice}
\itemx{le contenu du deuxieme exercice}
\itemx{le contenu du troisieme exercice}
\itemx{\input{exomachin.tex}}
\itemx{Voici un 5eme exercice et c'est la ou ca bloque}
\end{exercice}
Et enfin le 6ème exercice qui est encore un input
\begin{exercice}
\itemx{\input{exotruc.tex}}
\end{exercice}
\newpage
Affichage des exercices ici:
\textenonce
\end{document}
J'ai rajouté des {filecontents} pour que le code soit autonome (cet environnement crée le fichier donné en argument s'il n'existe pas).
Bonjour pg,
Super, merci beaucoup !
En plus, vous me faites découvrir le package filecontents que je ne connaissais pas et qui par sa simplicité d'écriture (du moins à première vue) me sera très utile.
Encore, merci,
Gabriel
(re)bonjour,
finalement, les choses se compliquent car je souhaiterais faire des mises en formes (couleurs, gras,...) et des liens avec hypertarget et hyperlink. J'ai essayé de mettre en rouge le numéro des exercices reportés et je n'y arrive pas en mettant des \expandafter à différents endroits.
Je peux avoir la couleur rouge mais à ce moment là, tous les numéros sont identiques (<<6>>, dernière valeur de numexo) (cf code ci-dessous).
Je ne vois plus comment modifier la commande.
Merci pour votre aide.
\RequirePackage{filecontents}
\begin{filecontents}{exomachin.tex}
Contenu de exomachin
\end{filecontents}
\begin{filecontents}{exotruc.tex}
Contenu de exotruc
\end{filecontents}
\documentclass[10pt,a4paper]{report}
\usepackage{tcolorbox}
\newenvironment{exercice}{}{}
\newcommand{\textenonce}{}
\newcounter{numexo}
\newcommand{\itemx}[1]{%
\addtocounter{numexo}{1}%
\global\edef\exonum{{Ex \arabic{numexo}.}}%
\expandafter\expandafter\expandafter\gdef
\expandafter\expandafter\expandafter\textenonce
\expandafter\expandafter\expandafter{\expandafter\textenonce\expandafter\textcolor{red}%
\exonum\space#1\newpage}%
}
\begin{document}
Voici le premier exercice
\begin{exercice}
\itemx{Voila le contenu du premier exercice}
\end{exercice}
Puis les deuxieme et troisieme exercices
\begin{exercice}
\itemx{le contenu du deuxieme exercice}
\itemx{le contenu du troisieme exercice}
\itemx{\input{exomachin.tex}}
\itemx{Voici un 5eme exercice et c'est la ou ca bloque}
\end{exercice}
Et enfin le 6eme exercice qui est encore un input
\begin{exercice}
\itemx{\input{exotruc.tex}}
\end{exercice}
\newpage
Affichage des exercices ici:
\textenonce
\end{document}
\RequirePackage{filecontents}
\begin{filecontents}{exomachin.tex}
Contenu de exomachin
\end{filecontents}
\begin{filecontents}{exotruc.tex}
Contenu de exotruc
\end{filecontents}
\documentclass[10pt,a4paper]{report}
\usepackage{tcolorbox} % Ajout du package xcolor
\usepackage[pdftex,colorlinks=true,urlcolor=blue,linkcolor=blue]{hyperref}
\newenvironment{exercice}{}{}
\newcommand{\textenonceaide}{}
\newcommand{\textenonce}{}
\newcounter{numexo}
\newcommand{\itemx}[1]{%
\addtocounter{numexo}{1}%
\marginpar{\tcbox[colback=yellow,left=0mm,right=0mm,top=1mm,bottom=1mm,boxsep=0mm,halign=center,beforeafter skip=0pt]{\hypertarget{c\thenumexo}{}\hyperlink{e\thenumexo}{\textcolor{blue}{\small\bf Ex\,\thenumexo}}}}%
\global\edef\exonum{%
\noexpand\hypertarget{e\thenumexo}{}\noexpand\hyperlink{c\thenumexo}{
\noexpand\textcolor{red}{\noexpand\bf Ex \arabic{numexo}.}}%
}%
\expandafter\expandafter\expandafter\gdef
\expandafter\expandafter\expandafter\textenonce
\expandafter\expandafter\expandafter{\expandafter\textenonce\exonum\space#1\newpage}%
}
\begin{document}
Voici le premier exercice
\begin{exercice}
\itemx{Voila le contenu du premier exercice}
\end{exercice}
Puis les deuxieme et troisieme exercices
\begin{exercice}
\itemx{le contenu du deuxieme exercice}
\itemx{le contenu du troisieme exercice}
\itemx{\input{exomachin.tex}}
\itemx{Voici un 5eme exercice et c'est la ou ca bloque}
\end{exercice}
Et enfin le 6eme exercice qui est encore un input
\begin{exercice}
\itemx{\input{exotruc.tex}}
\end{exercice}
\newpage
Affichage des exercices ici:
\textenonce
\end{document}
N'hésitez pas à consulter les offres premium proposées par le service de stockage en ligne pCloud et inscrivez-vous afin d'obtenir 10Go de stockage gratuits.