Dans une autre discussion, on m'a aidé à générer la correction à l'aide d'un booléen : Ouvrir dans l'éditeur Overleaf
\documentclass[french]{article} \usepackage{lmodern} \usepackage[T1]{fontenc} \usepackage{babel} \usepackage{verbatim} \newif\ifcorrige %\corrigetrue % décommenter pour afficher les réponses \newcounter{nbrlignes} \newcounter{nbrpointilles} \newcommand{\completerparpointilles}[1]{% \loop \ifnum\value{nbrlignes}<#1 \stepcounter{nbrlignes}% \noindent\dotfill\par \repeat} \ifcorrige \newenvironment{reponse}[1][1] {% \setcounter{nbrpointilles}{#1}% \par\noindent } {% \par\setcounter{nbrlignes}{\prevgraf}% \completerparpointilles{\value{nbrpointilles}}% } \else \newenvironment{reponse}[1][1] {\par\setcounter{nbrlignes}{0}% \completerparpointilles{#1}% \comment} {\endcomment \par} \fi %\linespread{1.2} \begin{document} 1 - Quelle était la population mondiale en 2013 ? \begin{reponse}[6] La population en 2013 était de 7.2 milliards d'habitants. \end{reponse} \end{document} Maintenant je cherche à générer le corrigé d'un devoir, soit sur le même pdf, ou bien générer un second pdf avec le corrigé. À mon avis, il faudrait que je crée un environnement « copieacorriger ». Dès que Je sais qu'il existe le package Je souhaite éviter d'utiliser le package answers que je trouve assez complexe après avoir lu sa documentation. |
Voici trois méthodes. 1- Devoir et son corrigé dans le même pdf. Commencer par créer un fichier .tex comme suit (Attention: Ouvrir dans l'éditeur Overleaf
\documentclass[french]{article} \usepackage{lmodern} \usepackage[T1]{fontenc} \usepackage{babel} \usepackage{verbatim} \newif\ifcorrige \newcounter{nbrlignes} \newcounter{nbrpointilles} \newcommand{\completerparpointilles}[1]{% \loop \ifnum\value{nbrlignes}<#1 \stepcounter{nbrlignes}% \noindent\houdotfill\par \repeat} \newcommand{\houdotfill}{} \newcommand{\reponse}{} %\linespread{1.2} \begin{document} \input{devoiravril} \newpage \corrigetrue \input{devoiravril} \end{document} Créer un deuxième fichier Ouvrir dans l'éditeur Overleaf
\ifcorrige \renewcommand{\houdotfill}{\hfill} \renewenvironment{reponse}[1][1] {% \setcounter{nbrpointilles}{#1}% \par\noindent } {% \par\setcounter{nbrlignes}{\prevgraf}% \completerparpointilles{\value{nbrpointilles}}% } \else \renewcommand{\houdotfill}{\dotfill} \renewenvironment{reponse}[1][1] {\par\setcounter{nbrlignes}{0}% \completerparpointilles{#1}% \comment} {\endcomment \par} \fi 1 - Quelle était la population mondiale en 2013 ? \begin{reponse}[1] La population en 2013 était de 7.2 milliards d'habitants. \end{reponse} 2 - Quelle était la population mondiale en 2013 ? \begin{reponse}[5] Afin d'éviter des sauts de page intempestifs et garder le même nombre de pages sur mon document, je souhaite que le nombre de lignes entre mes questions ne changent pas. En effet, il arrive qu'à une ligne près, une nouvelle page soit créée ; et c'est ce que je veux éviter. \end{reponse} 3 - Quelle était la population mondiale en 2013 ? \begin{reponse}[7] Afin d'éviter des sauts de page intempestifs et garder le même nombre de pages sur mon document, je souhaite que le nombre de lignes entre mes questions ne changent pas. En effet, il arrive qu'à une ligne près, une nouvelle page soit créée ; et c'est ce que je veux éviter. \end{reponse} oui 2- Devoir et son corrigé sur 2 pdf. Vous avez besoin de créer deux fichiers : un fichier Ouvrir dans l'éditeur Overleaf
\documentclass[french]{article} \usepackage{lmodern} \usepackage[T1]{fontenc} \usepackage{babel} \usepackage{verbatim} \newif\ifcorrige \corrigeounon % \corrigeounon peut être \corrigetrue ou \corrigefalse \newcounter{nbrlignes} \newcounter{nbrpointilles} \newcommand{\completerparpointilles}[1]{% \loop \ifnum\value{nbrlignes}<#1 \stepcounter{nbrlignes}% \noindent\houdotfill\par \repeat} \ifcorrige \newcommand{\houdotfill}{\hfill} \newenvironment{reponse}[1][1] {% \setcounter{nbrpointilles}{#1}% \par\noindent } {% \par\setcounter{nbrlignes}{\prevgraf}% \completerparpointilles{\value{nbrpointilles}}% } \else \newcommand{\houdotfill}{\dotfill} \newenvironment{reponse}[1][1] {\par\setcounter{nbrlignes}{0}% \completerparpointilles{#1}% \comment} {\endcomment \par} \fi %\linespread{1.2} \begin{document} 1 - Quelle était la population mondiale en 2013 ? \begin{reponse}[1] La population en 2013 était de 7.2 milliards d'habitants. \end{reponse} 2 - Quelle était la population mondiale en 2013 ? \begin{reponse}[5] Afin d'éviter des sauts de page intempestifs et garder le même nombre de pages sur mon document, je souhaite que le nombre de lignes entre mes questions ne changent pas. En effet, il arrive qu'à une ligne près, une nouvelle page soit créée ; et c'est ce que je veux éviter. \end{reponse} 3 - Quelle était la population mondiale en 2013 ? \begin{reponse}[7] Afin d'éviter des sauts de page intempestifs et garder le même nombre de pages sur mon document, je souhaite que le nombre de lignes entre mes questions ne changent pas. En effet, il arrive qu'à une ligne près, une nouvelle page soit créée ; et c'est ce que je veux éviter. \end{reponse} oui \end{document} Maintenant créer le deuxième fichier, c'est un fichier batch Ouvrir dans l'éditeur Overleaf
pdflatex -jobname=devoiravril \let\corrigeounon\corrigefalse \input{devoiravril} pdflatex -jobname=corrigeavril \let\corrigeounon\corrigetrue \input{devoiravril} Il suffit de double-cliquer ce fichier ou lancer dans un terminal et le tour est joué. 3 - Un fichier Cet méthode est une version automatisée de la première méthode : c'est LaTeX, avec son environnement Ouvrir dans l'éditeur Overleaf
\documentclass[french]{article} \usepackage{lmodern} \usepackage[T1]{fontenc} \usepackage{babel} \usepackage{verbatim} \newif\ifcorrige \newcounter{nbrlignes} \newcounter{nbrpointilles} \newcommand{\completerparpointilles}[1]{% \loop \ifnum\value{nbrlignes}<#1 \stepcounter{nbrlignes}% \noindent\houdotfill\par \repeat} \newcommand{\houdotfill}{} \newcommand{\reponse}{} %\linespread{1.2} \begin{document} \begin{filecontents*}[nosearch,force]{devoiravril} \ifcorrige \renewcommand{\houdotfill}{\hfill} \renewenvironment{reponse}[1][1] {% \setcounter{nbrpointilles}{#1}% \par\noindent } {% \par\setcounter{nbrlignes}{\prevgraf}% \completerparpointilles{\value{nbrpointilles}}% } \else \renewcommand{\houdotfill}{\dotfill} \renewenvironment{reponse}[1][1] {\par\setcounter{nbrlignes}{0}% \completerparpointilles{#1}% \comment} {\endcomment \par} \fi 1 - Quelle était la population mondiale en 2013 ? \begin{reponse}[1] La population en 2013 était de 7.2 milliards d'habitants. \end{reponse} 2 - Quelle était la population mondiale en 2013 ? \begin{reponse}[5] Afin d'éviter des sauts de page intempestifs et garder le même nombre de pages sur mon document, je souhaite que le nombre de lignes entre mes questions ne changent pas. En effet, il arrive qu'à une ligne près, une nouvelle page soit créée ; et c'est ce que je veux éviter. \end{reponse} 3 - Quelle était la population mondiale en 2013 ? \begin{reponse}[7] Afin d'éviter des sauts de page intempestifs et garder le même nombre de pages sur mon document, je souhaite que le nombre de lignes entre mes questions ne changent pas. En effet, il arrive qu'à une ligne près, une nouvelle page soit créée ; et c'est ce que je veux éviter. \end{reponse} oui \end{filecontents*} \input{devoiravril} \newpage \corrigetrue \input{devoiravril} \end{document} Publiée 27 Mar '20, 19:20 touhami J'ai modifié la réponse, la première méthode est corrigée.
(27 Mar '20, 20:04)
touhami
Une autre méthode utilise les boites de sauvegarde.
(27 Mar '20, 20:24)
touhami
@touhami. Je suppose (mais je n'ai pas essayé) que, puisqu'il peut se lancer sur un terminal, le contenu du fichier batch peut parfaitement être accepté par un terminal Debian, non ?
(27 Mar '20, 23:19)
fred02840
fred02840 C'est ce que je suppose moi aussi, le pauvre windowsien ;-)
(28 Mar '20, 00:12)
touhami
|
@floyd973. J'aurais justement préconisé
beamer-article-teacher
, qui me semble pourtant répondre à la question. Mais je n'ai pas dû bien le comprendre. Pourriez-vous préciser ?Je ne souhaite pas générer de présentation beamer. De plus, il faut ajuster l'installation manuellement. A l'époque cela m'avait rebuté. Je souhaite juste générer un doublon mais avec le corrigé.
@floyd973 Je vous propose d'utiliser la classe exam. C'est une classe très personnalisable que j'utilise personnellement pour composer mes devoirs et interrogations.
C'est noté.