%%% ==================================================================== %%% @LaTeX-file{ %%% filename = "beamerarticle-teacher-doc.tex", %%% version = "1.00", %%% date = "2013/09/26", %%% time = "18:02:46 EDT", %%% author = "Benoit LANDRIEU", %%% copyright = "copyleft", %%% email = "benoit.landrieu@gmail.com", %%% codetable = "ISO/ASCII", %%% supported = "yes", %%% keywords = "latex, beamer, beamerarticle, maths, teacher", %%% abstract = "This file is the User's Guide for the %%% beamerarticle-teacher class". %%% package.", %%% } %%% ==================================================================== \documentclass[twoside,french]{article} \pagestyle{myheadings} % Use the same version numbers as for the amslatex instructions. \def\instrversion{1.00} \def\instrdate{September 2014} \title{Utilisation de la classe \pkg{beamerarticle-teacher}} \author{Version \instrversion, \instrdate\\Benoit LANDRIEU} \date{} \providecommand{\qq}[1]{\textquotedblleft#1\textquotedblright} \providecommand{\mdash}{\textemdash\penalty\hyphenpenalty} % Embedded \index commands are a legacy from the time when this % documentation was part of amsldoc. Since they don't hurt anything, % let's leave them in. Maybe they will become useful again in the % future. [mjd,2000/06/06] \chardef\bslchar=`\\ % p. 424, TeXbook \newcommand{\ntt}{% \fontfamily\ttdefault \fontseries\mddefault \fontshape\updefault \selectfont } \DeclareRobustCommand{\cn}[1]{{\ntt\bslchar#1}} \DeclareRobustCommand{\cls}[1]{{\ntt#1}} \DeclareRobustCommand{\pkg}[1]{{\ntt#1}} \DeclareRobustCommand{\opt}[1]{{\ntt#1}} \DeclareRobustCommand{\env}[1]{{\ntt#1}} \DeclareRobustCommand{\fn}[1]{{\ntt#1}} \providecommand{\qedsymbol}{\leavevmode \hbox to.77778em{% \hfil\vrule \vbox to.675em{\hrule width.6em\vfil\hrule}% \vrule\hfil}} %% Provide a meta-command facility; provide an alternate escape %% character so it can be used within the verbatim environment. \catcode`\|=0 \begingroup \catcode`\>=13 % in LaTeX2e verbatim env makes > active \gdef\?#1>{{\normalfont$\langle$\textup{#1}$\rangle$}} \gdef\0{\relax} \endgroup \def\<#1>{{\normalfont$\langle$\textup{#1}$\rangle$}} \def\ntnote#1{{\normalfont$^{#1}$}} \hfuzz4pt \vbadness9999 \hbadness5000 \def\latex/{{\protect\LaTeX}} \setlength{\textwidth}{210mm}\addtolength{\textwidth}{-2in} \setlength{\oddsidemargin}{39pt} \setlength{\evensidemargin}{39pt} \addtolength{\textwidth}{-2\oddsidemargin} %Ben \usepackage[francais]{babel} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{url} \urlstyle{sf} \begin{document} \maketitle \markboth{Utilisation de la classe \pkg{beamerarticle-teacher}}{Utilisation de la classe \pkg{beamerarticle-teacher}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Introduction} \begin{sloppypar} La classe \pkg{beamerarticle-teacher} a été développé dans le but de faciliter la rédaction de cours pour les enseignants. La problématique était la suivante : \og Comment à partir du même source \LaTeX{} générer plusieurs documents à destination de l'impression pour les étudiants, l'impression pour le professeur et la présentation pour la classe \fg{}. Actuellement le développement de la classe \pkg{beamerarticle-teacher} permet à partir du même source \LaTeX{} de générer : \begin{itemize} \item un \textit{polycopié pour l'étudiant (article)} \item un \textit{polycopié pour le professeur (article)} \item une \textit{présentation pour la classe (beamer)} \item un \textit{polycopié pour les élèves dys (dys)} \item un \textit{polycopié pour les élèves en format a3 double page (a3)} \end{itemize} La classe s'appuie sur la classe \pkg{beamerarticle}, pour générer les 5 fichiers en même temps, il faut utiliser un \pkg{Makefile}. La génération peut se faire depuis un éditeur mais on ne peut générer qu'un seul fichier document à la fois et il faut changer une ligne dans le code pour générer les autres fichiers. Vous trouverez la dernière version de la classe \pkg{beamerarticle-teacher} sur le \emph{gitlab} \url{https://gitlab.com/benoitldr/beamerarticle-teacher} Un exemple de cours qui montre les fonctionnalités de cette classe se trouve dans le fichier \fn{beamerarticle-teacher-example.tex} \end{sloppypar} \section{La classe \pkg{beamerarticle-teacher}} Je tape depuis quelques années mes cours en \LaTeX{} et je trouvais pénible de devoir gérer plusieurs sources pour les polycopiés des élèves, pour ma version et pour ma présentation \pkg{beamer}. J'ai trouvé une solution qui permettait de gérer à la fois l'\pkg{article} et le \pkg{beamer} : la classe \pkg{beamerarticle}. En effet grâce à cette classe on peut taper comme si l'on tapait du \pkg{beamer} et ensuite générer au choix l'aspect \pkg{article} ou \pkg{beamer}. J'ai donc commencé à créer une classe qui permettrait de générer les trois fichiers documents : \emph{STUDENT}, \emph{TEACHER} et \emph{BEAMER}. La classe \pkg{beamerarticle-teacher} est le fruit de cette réflexion. Pour commencer un document il suffit d'insérer le code \begin{verbatim} \documentclass[]{beamerarticle-teacher} \end{verbatim} Cette classe a trois options : \begin{verbatim} % student version \documentclass[student]{beamerarticle-teacher} % teacher version \documentclass[teacher]{beamerarticle-teacher} % beamer version \documentclass[beamer]{beamerarticle-teacher} % dys version \documentclass[dys]{beamerarticle-teacher} % a3 version \documentclass[a3]{beamerarticle-teacher} \end{verbatim} Si vous n'utilisez pas le \emph{Makefile}, il vous faudra choisir l'option du document que vous voulez générer (voir le code ci-dessus) (il est normalement presque compatible Windows avec GnuMake32) Un document standard pour le commencement serait le suivant : \begin{verbatim} \listfiles \documentclass[]{beamerarticle-teacher} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \begin{document} % CONTENU \end{document} \end{verbatim} Pour compiler vous aurez besoin aussi du \pkg{Makefile} \begin{verbatim} % File common.mk LATEX=pdflatex LATEXOPT=--shell-escape -synctex=1 NONSTOP=--interaction=nonstopmode STUDENTOPT="\PassOptionsToClass{student,landscape,twocolumn}{beamerarticle-teacher}\input{%S}" TEACHEROPT="\PassOptionsToClass{teacher,landscape,twocolumn}{beamerarticle-teacher}\input{%S}" BEAMEROPT="\PassOptionsToClass{beamer}{beamerarticle-teacher}\input{%S}" STUDENTSUFF=ELEV TEACHERSUFF=PROF BEAMERSUFF=PRES LATEXMK=latexmk LATEXMKOPT=-pdf CONTINUOUS=-pvc USBDIR=/Volumes/BENOIT-VERB/00-ENCOURS USBPRINTDIR=/Volumes/BENOIT-VERB/00-TOPRINT/ CSTUDENT: $(TEXSRC).tex $(LATEXMK) $(LATEXMKOPT) $(CONTINUOUS)\ -pdflatex='$(LATEX) $(LATEXOPT) $(NONSTOP) %O $(STUDENTOPT)' %-jobname='$(TEXSRC)-$(STUDENTSUFF)' $(STUDENT) CTEACHER:$(TEXSRC).tex $(LATEXMK) $(LATEXMKOPT) $(CONTINUOUS)\ -pdflatex='$(LATEX) $(LATEXOPT) $(NONSTOP) %O $(TEACHEROPT)' %-jobname='$(TEXSRC)-$(TEACHERSUFF)' $(TEACHER) CBEAMER:$(TEXSRC).tex $(LATEXMK) $(LATEXMKOPT) $(CONTINUOUS)\ -pdflatex='$(LATEX) $(LATEXOPT) $(NONSTOP) %O $(BEAMEROPT)' %-jobname='$(TEXSRC)-$(BEAMERSUFF)' $(BEAMER) STUDENT: $(TEXSRC).tex $(LATEXMK) $(LATEXMKOPT) \ -pdflatex='$(LATEX) $(LATEXOPT) $(NONSTOP) %O $(STUDENTOPT)' %-jobname='$(TEXSRC)-$(STUDENTSUFF)' $(STUDENT) TEACHER:$(TEXSRC).tex $(LATEXMK) $(LATEXMKOPT) \ -pdflatex='$(LATEX) $(LATEXOPT) $(NONSTOP) %O $(TEACHEROPT)' %-jobname='$(TEXSRC)-$(TEACHERSUFF)' $(TEACHER) BEAMER:$(TEXSRC).tex $(LATEXMK) $(LATEXMKOPT) \ -pdflatex='$(LATEX) $(LATEXOPT) $(NONSTOP) %O $(BEAMEROPT)' %-jobname='$(TEXSRC)-$(BEAMERSUFF)' $(BEAMER) article: $(TEXSRC).tex make STUDENT make TEACHER all: $(TEXSRC).tex make STUDENT make TEACHER make BEAMER usb-student: cp $(TEXSRC)-$(STUDENTSUFF).pdf $(USBDIR) ps2pdf $(USBDIR)/$(TEXSRC)-$(STUDENTSUFF).pdf $(USBPRINTDIR)/$(TEXSRC)-$(STUDENTSUFF).pdf usb-teacher: cp $(TEXSRC)-$(TEACHERSUFF).pdf $(USBDIR) ps2pdf $(USBDIR)/$(TEXSRC)-$(TEACHERSUFF).pdf $(USBPRINTDIR)/$(TEXSRC)-$(TEACHERSUFF).pdf usb-beamer: cp $(TEXSRC)-$(BEAMERSUFF).pdf $(USBDIR) usb-all: make usb-student make usb-teacher make usb-beamer clean: rm -rf *.aux *.bbl *.bcf *.blg *.fdb_latexmk *.fls *.log *.maf *.mtc* *.out *.run.xml *.synctex.gz *.nav *.toc *.snm *.gnuplot *.thm *.vrb cleanall: make clean rm -rf *.pdf \end{verbatim} et pour le \pkg{Makefile} \begin{verbatim} % File Makefile TEXSRC=example-beamerarticle-teacher include ../common.mk \end{verbatim} Il suffit juste de taper \begin{verbatim} make all % generate the 3 files make BEAMER % generate BEAMER version make STUDENT % generate STUDENT version make TEACHER % generate TEACHER version make clean % cleaning temp files make cleanall % make clean + clean pdf make CSTUDENT % make STUDENT avec compilation continue etc... \end{verbatim} Voilà les commandes basiques pour générer les 3 documents. \section{Différenciations des versions} Il est parfois important de pouvoir différencier les versions, ceci est possible grâce aux \emph{booléens} \emph{isprof} et \emph{isbm} Si vous voulez différencier les versions \emph{TEACHER} et \emph{STUDENT} \begin{verbatim} \ifisteach % contents for TEACHER version \else % contents for STUDENT version \fi \end{verbatim} Vous pouvez regarder dans le \cn{beamerarticle-beamer.cls}, j'ai définie des commandes pour gérer les \og trous \fg{} du polycopié \emph{STUDENT} Si vous voulez différencier les versions \emph{BEAMER} et \emph{ARTICLE} \begin{verbatim} \ifisbm % contents for BEAMER version \else % contents for ARTICLE version \fi \end{verbatim} Ceci peut être utile parfois par exemple, une figure est de la bonne taille pour un \emph{article} par contre elle est trop grande pour le \emph{beamer}, il suffit d'un code du style \begin{verbatim} \ifisbm \includegraphics[scale=0.5]{some-graphics} \else \includegraphics[scale=1]{some-graphics} \fi \end{verbatim} Voilà les grandes lignes, j'espère que cela vous servira, vous trouverez un exemple complet sur le \emph{gitlab} \url{https://gitlab.com/benoitldr/beamerarticle-teacher} notamment sur l'utilisation des commandes qui génèrent les trous pour les polycopiés, quelques commandes utiles (faire des lignes pointillées, des parties de copie petits carreaux etc...). J'ai essayé de commenter au maximum mon code, vu le nombre de ligne assez faible, je pense que c'est assez lisible. Si vous avez des questions sur l'utilisation cette classe contacter moi par mail \url{benoit.landrieu@ac-grenoble.fr}, n'hésitez pas à me donner vos avis sur le \emph{gitlab} (issues, requests etc...) \end{document}