% vim:sts=2:sw=2:tw=70 \documentclass[a4paper,10pt]{article} \usepackage[utf8x]{inputenc} \usepackage[italian]{babel} \usepackage[color]{guit} \usepackage{hyperref,indentfirst,fancyvrb,cclicenses,pifont,booktabs,breakurl,graphicx} \graphicspath{{img/}} \hypersetup{colorlinks=true,urlcolor=blue} \newcommand{\email}[1]{\href{mailto:#1}{\ttfamily #1}} \newcommand{\lcap}{{\fontencoding{T1}\selectfont\guillemotleft}} \newcommand{\rcap}{{\fontencoding{T1}\selectfont\guillemotright}} \newcommand{\Cap}[1]{\lcap #1\rcap} \newcommand{\bs}{{\char'134}}% Backslash \newcommand{\lb}{{\char'173}}% Left brackets -> { \newcommand{\rb}{{\char'175}}% Right brackets -> } \newcommand{\ls}{{\char'133}}% Left brackets -> [ \newcommand{\rs}{{\char'135}}% Right brackets -> ] \newcommand{\pkg}[1]{\textsf{#1}} \let\cls\pkg \newcommand{\env}[1]{\texttt{#1}} \newcommand{\cmd}[1]{\texttt{\bs #1}} \newcommand{\cmdarg}[2]{\texttt{\bs #1\lb #2\rb}} \title{La classe per presentazioni \pkg{guitbeamer}} \author{{\LARGE\GuIT} --- \GuITtext\thanks{\cls{guitbeamer} \`e stata scritta da Emiliano Giovanni Vavassori (\email{testina@sssup.it}). Si veda la sezione \ref{sec:acknow}.}} \date{Versione 0.4 --- 11 agosto 2006} \begin{document} \maketitle \begin{abstract} Viene qui presentata l'interfaccia dei comandi della classe \cls{guitbeamer}, scritta appositamente per rendere più semplice la produzione di diapositive per lezioni di \LaTeX. La classe si basa sulla ben più conosciuta classe \cls{beamer}. \end{abstract} \tableofcontents \newpage \section*{Note di \textit{copyright}} La classe \cls{guitbeamer} è rilasciata sotto licenza $\!$\cc$\!\!\!\!$ Creative Commons 2.5\footnote{Il testo completo della licenza è disponibile, in inglese, alla pagina \url{http://creativecommons.org/licenses/by-nc-sa/2.5/legalcode}.}. \noindent\emph{Tu sei libero di:} \begin{dinglist}{227} \item di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico, rappresentare, eseguire e recitare quest'opera; \item di modificare quest'opera. \end{dinglist} \noindent\emph{Alle seguenti condizioni:} \begin{description} \item[\ccby Attribuzione]Devi attribuire la paternità dell'opera nei modi indicati dall'autore o da chi ti ha dato l'opera in licenza. \item[\ccnc Non commerciale]Non puoi usare quest'opera per fini commerciali. \item[\ \ccsa\ \ $\!\!$Condividi allo stesso modo]Se alteri o trasformi quest'opera, o se la usi per crearne un'altra, puoi distribuire l'opera risultante solo con una licenza identica a questa. \end{description} \begin{dinglist}{52} \item Ogni volta che usi o distribuisci quest'opera, devi farlo secondo i termini di questa licenza, che va comunicata con chiarezza. \item In ogni caso, puoi concordare col titolare dei diritti d'autore utilizzi di quest'opera non consentiti da questa licenza. \end{dinglist} \section{Introduzione} L'utilizzo delle diapositive (o, in inglese, \textit{slides}) in ambiente didattico risulta essere uno strumento fondamentale per catturare l'attenzione del discente; tale attenzione viene infatti aumentata con l'utilizzo di particolari effetti grafici e/o colori. \`E tuttavia necessario far attenzione a non abusare di questi espedienti grafici per evitare di ottenere l'effetto diametralmente opposto: tipicamente, l'attenzione dell'auditorio verrebbe completamente assorbita dagli effetti grafici e sviata dall'oggetto della presentazione su qualcosa di molto più frivolo. Questo è un rischio che può correre anche il docente che \Cap{perde energie} per sviluppare una presentazione visivamente molto efficace ma con contenuti di qualità sicuramente inferiore. \cls{beamer} viene incontro alle persone che si trovano a dover presentare, spiegare, approfondire un argomento, permettendo loro di evitare questi problemi e focalizzando l'attenzione sui contenuti della presentazione, in pieno accordo con la filosofia di \LaTeX. La classe \cls{guitbeamer} aggiunge alla potenza di \cls{beamer} una interfaccia di comandi semplificata e ottimizzata per la presentazione di argomenti correlati a \LaTeX, oltre che una serie di impostazioni grafiche studiate \emph{ad hoc}. Per ottenere tale risultato, sono stati posti i seguenti obiettivi: \begin{itemize} \item Razionalizzare i sorgenti delle \emph{slides}, così da evitare che l'occhio di chi presenta si perda nel codice piuttosto che sul contenuto; \item Omogeneizzare il \textit{layout} delle singole \emph{slide} all'interno di una stessa presentazione, per evitare, ad esempio, che una classe venga \Cap{nominata} una volta con un carattere \textit{sans-serif} e una volta con carattere \textit{typewriter}. \end{itemize} La classe \cls{guitbeamer} è stata utilizzata successivamente per le \Cap{Lezioni di \LaTeX} del \GuIT\ \cite{lez-latex05}. \section{Compatibilità e apparenza} \cls{guitbeamer} non è un lavoro a se stante (ovviamente), ma è stata realizzata come \textit{collage} di stili predefiniti e di pacchetti caricati. Indichiamo in questa sezione le dipendenze della classe da eventuali altri pacchetti. \subsection{Pacchetti caricati} La classe \cls{guitbeamer} carica automaticamente la classe \cls{beamer} per le presentazioni e restituisce un errore se essa non è per lo meno alla versione 3.05 (data di rilascio: 12/06/2005); il codice utilizzato nella classe è specifico ed utilizza istruzioni che sono rese disponibili solamente a partire da quella versione. Gli altri pacchetti caricati, le opzioni specifiche utilizzate e l'eventuale richiesta di un numero di versione specifico sono tutte indicate in tabella~\ref{pacchetti}. \begin{table}[b]\centering \caption{Pacchetti caricati nella classe \cls{guitbeamer}, relative versioni richieste e opzioni utilizzate.}\label{pacchetti} \medskip \begin{tabular}{l c l} \toprule \emph{Nome pacchetto} & \emph{Vers. (Data di rilascio)} & \emph{Opzioni utilizzate}\\ \midrule \texttt{xcolor} & & \texttt{svgnames}\\ \texttt{graphicx} & &\\ \texttt{hyperref} & & \texttt{colorlinks=false}\\ \texttt{guit} & $\ge\,0.9$ (24/05/2006)& \texttt{color}\\ \bottomrule \end{tabular} \end{table} Va da sé che le dipendenze dei pacchetti utilizzati devono essere, a loro volta, contemplate ed esaudite. \subsection{Layout e grafica della presentazione} La classe utilizza il tema \Cap{Warsaw}, ne modifica il colore di struttura con quello ufficiale di \GuIT, carica l'\textit{outertheme} \Cap{split}, ridefinisce la \textit{footline}, imposta automaticamente l'istituzione di riferimento e, infine, carica i font serif solamente per la matematica. Se vi è sfuggito qualcosa di quanto appena esposto, vi consigliamo di dare una sbirciatina al manuale di \cls{beamer} \cite{manbeamer} oppure, a vostra discrezione, utilizzare la classe e guardarne l'output \texttt{:)} \section{Interfaccia utente} All'interno della didattica legata a \LaTeX, il docente deve relazionare al pubblico non solo dell'utilizzo di un programma, ma anche alcune nozioni fondamentali all'intero della filosofia propria di \LaTeX; sono state studiate pertanto alcune macro per facilitare questo compito al relatore, fornendo un \textit{feedback} visuale alla spiegazione orale del docente. Di seguito verranno descritti i comandi che sono introdotti dalla classe e come è possibile utilizzarli. \subsection{Scrivere pacchetti, classi, ambienti} La classe rende disponibile alcuni comandi per evidenziare concetti particolari all'interno di \LaTeX: \begin{description} \item[\cmd{Lopt}]serve per evidenziare le opzioni che possono essere specificate ad una classe; \item[\cmd{Lsty}]è necessario per scrivere il nome di pacchetti; \item[\cmd{Lcls}]evidenzia invece il nome delle classi; \item[\cmd{Lenv}]scrive il nome dell'ambiente che è necessario citare. \end{description} Essi richiedono tutti un argomento obbligatorio, che rappresenta per l'appunto il nome dell'oggetto particolare da nominare. \subsection{Evidenziare} Una nota importante, prima di specificare i cambiamenti all'evidenziazione attuati nella classe. Esistono molti modi per evidenziare una parte di testo: fra tutti i modi che si possono scegliere, cambiare il colore del testo è quello, a nostro avviso, più \Cap{distruttivo} e fastidioso, anche se è al contempo quello più efficace. In \cls{guitbeamer} si fa già ricorso a parecchi colori, quindi valutate caso per caso se non convenga evidenziare con \verb+\emph+ oppure con \verb+\textbf+. Si ritiene preferibile utilizzare il grassetto nelle presentazioni che mutare il colore del testo, principalmente per due motivazioni: \begin{itemize} \item il principale motivo per cui non si usa normalmente il grassetto all'interno di un normale documento è perché \Cap{rompe il colore del corpo del testo}. Tipicamente in una presentazione si tende, per motivi di concisione, a scrivere brevi frasi e pertanto non esiste un vero e proprio corpo del testo, inteso con i canoni applicati ai documenti normali; è pertanto possibile e non deleterio utilizzare il grassetto; \item il grassetto è spesso utilizzato nel Web, che risulta essere una delle applicazioni che più si avvicinano ad una presentazione elettronica. \end{itemize} Passando dalla teoria alla pratica, il comando \cmd{alert} di \cls{beamer} è stato ridefinito perché sia di colore blu; esso è stato preferito al colore rosso perché meno appariscente ma altrettanto d'effetto. Se necessario, è possibile ricorrere al nuovo comando \cmd{aalert} che invece evidenzia il suo argomento in rosso, esattamente come fa \verb+\alert+ di \cls{beamer}. \subsection{Caratteri speciali}\label{sec:sp_char} Alcuni comandi della classe richiedono che qualche carattere speciale sia scritto in maniera un po' particolare: è il caso di tutti i comandi che seguiranno. In essi, sarà possibile (e in alcuni casi, necessario) indicare i caratteri speciali di \LaTeX\ \texttt{\bs}, \texttt{\lb} e \texttt{\rb} come \verb+\\+, \verb+\{+ e \verb+\}+. L'eccezione è rappresentata da \verb+[+ e \verb+]+, che possono essere lasciate indicate normalmente o, nel caso non funzionino, sostituite dai meno diretti \verb+\ls+, \textit{left square (parenthesis)} e \verb+\rs+, \textit{right square (parenthesis)}. \`E stata scelta questa soluzione sia per ovviare ad un piccolo problema di natura estetica, sia perché necessario per alcuni comandi. \subsection{Comandi per gli esempi} \subsubsection{Mostrare codice \LaTeX} Parlando di \LaTeX\ a qualunque livello, si finirà inevitabilmente, prima o poi, con il parlare di codice sorgente. \cls{guitbeamer} prevede un ambiente appositamente studiato per mostrare codice, \env{LaTeXcode}; esso è derivato da \env{semiverbatim} di \cls{beamer} e si consiglia pertanto di rileggere la documentazione di questo ambiente \cite{manbeamer} per capirne l'esatto funzionamento. In questo ambiente è \emph{necessario} utilizzare quei simboli speciali definiti in \S~\ref{sec:sp_char}, quando si voglia \Cap{mostrare} tali caratteri speciali. Altri comandi sono disponibili solo ed esclusivamente all'interno di questo ambiente: \begin{description} \item[\cmd{n}]Che rappresenta una singola interruzione di riga (\emph{a capo}); \item[\cmd{nn}]Che rappresenta una interruzione di riga doppia (quindi, una riga vuota); \item[\cmd{alert}]Per evidenziare parte del contenuto. Necessita di un argomento obbligatorio, costituito dal testo da evidenziare. \end{description} \`E inoltre possibile specificare un titolo e un \textit{overlay} per l'ambiente \env{LaTeXcode} nello stesso modo in cui si fa con \cls{beamer}. Si veda, a tale scopo, il seguente esempio: \begin{Verbatim}[gobble=0] \begin{LaTeXcode}[Titolo del blocco]<3-> ci metto un po' quello che voglio\\dots\n e \alert{apparir\\`a} correttamente\nn ciao a tutti \end{LaTeXcode} \end{Verbatim} \subsubsection{Mostrare l'output di \LaTeX} Dopo aver spiegato il codice, è d'uopo mostrare il suo risultato: anche per questo fine è stato predisposto un ambiente, \env{LaTeXoutput}. In questo caso, la sintassi è quella normale di \LaTeX\ e non è richiesta nessuna particolare sintassi nella composizione della parte, se si fa eccezione per: \begin{description} \item[\cmd{noindent}]toglie il rientro (che è stato impostato di \textit{default} dalla classe); \item[\cmd{fakeind}]serve per inserire una falsa indentazione e va usato a mano solo nei casi in cui non si ottiene l'indentazione necessaria. \end{description} Come il suo gemello per il codice, può anch'esso essere fornito di titolo e di specificazioni di \emph{overlay}, come mostrato nell'esempio: \begin{Verbatim} \begin{LaTeXoutput}[Titolo del blocco (output)]<4-> ci metto un po' quello che voglio\dots e apparir\`a correttamente ciao a tutti \end{LaTeXoutput} \end{Verbatim} \subsubsection{Comandi \LaTeX\ nel corpo del testo} Sono state definite due macro, \cmd{LCmd} e \cmd{LCmdArg}, che permettono di evidenziare il codice all'interno del testo. Queste due macro sono comode quando si voglia, ad esempio, citare un comando (\verb+\listfiles+) e si voglia evidenziare l'argomento di un comando (\verb+\vspace{5em}+), rispettivamente. La sintassi di \cmd{LCmd} prevede un argomento opzionale e uno obbligatorio. L'argomento opzionale (e quindi racchiuso fra le parentesi quadre \verb+[ ]+) è il carattere di \emph{inizio comando} o \textit{escape}, che di \textit{default} è settato a \verb+\+. L'argomento obbligatorio risulta invece essere il nome del comando che si vuole mostrare. Il comando \verb+\LCmd+ può inoltre essere inserito in un titolo di \textit{slide}: in tal caso perde il suo colore normale (blu scuro). Facendo alcuni esempi, possiamo dire che \verb+\LCmd[]{pippo}+ produce, nell'output, qualcosa di simile a \texttt{pippo}. \`E possibile, inoltre, scrivere un comando fornito di argomenti senza evidenziarli, utilizzando i caratteri speciali illustrati in \S~\ref{sec:sp_char} e potendo così scrivere \verb+\LCmd{documentclass[a4paper]\{article\}}+, che dà luogo a qualcosa di simile a \verb+\documentclass[a4paper]{article}+. Il comando \verb+\LCmdArg+ invece non è utilizzabile nei titoli, prevede solamente due argomenti obbligatori ed è necessario per evidenziare l'argomento di un comando; ad esempio, per citare il caso precedente, si può utilizzare:\\[.5em] \verb+\LCmdArg{documentclass[a4paper]}{article}+\\[.5em] ed evidenziare così la classe del documento. In entrambi i casi, ricordiamo nuovamente che possono essere utilizzati i caratteri di cui alla sezione \S~\ref{sec:sp_char}. \newpage \section{Esempi di \textit{slides}} In questa piccolissima sezione, analizzeremo alcune slides e il loro output, giusto per dare un'idea al lettore di come possano essere utilizzati i comandi della classe. \subsection*{Esempio 1}\label{ex1} \begin{Verbatim}[gobble=2] \begin{frame} \frametitle{Scrivere i loghi} Ecco come si scrivono i loghi: \begin{LaTeXcode} \\TeX\n \\LaTeX\n \\LaTeXe \end{LaTeXcode} \medskip \begin{LaTeXoutput} \TeX\\ \LaTeX\\ \LaTeXe \end{LaTeXoutput} \end{frame} \end{Verbatim} \bigskip \begin{center} \fbox{\includegraphics[width=.9\textwidth]{latexsymb}} \end{center} \newpage \subsection*{Esempio 2}\label{ex2} \begin{Verbatim}[gobble=0] \begin{frame} \frametitle{Il modello di un documento} \begin{LaTeXcode} \\documentclass[\alert{}]\{\alert{}\}\n \onslide<2-> \quad\alert{}\nn \onslide<3-> \\begin\{document\}\n \onslide<4-> \alert{\quad}\n \onslide<3-> \\end\{document\} \end{LaTeXcode} \end{frame} \end{Verbatim} \bigskip \begin{center} \fbox{\includegraphics[width=.9\textwidth]{docexem}} \end{center} \newpage \subsection*{Esempio 3}\label{ex3} \begin{Verbatim} \begin{frame} \frametitle{La sintassi di base} \begin{itemize}[<+->] \item tutti i comandi cominciano sempre con un \LCmd\ \item spesso il comando è il nome inglese dell'azione \item il comando ``termina'' con uno spazio bianco o con un altro comando: \begin{LaTeXcode}<4-> \\comando \alert{}\n \\comando\\altrocomando \end{LaTeXcode} \end{itemize} \smallskip \begin{block}{Attenzione!}<5-> \begin{center} \LaTeX\ è \textit{case sensitive}!\\[.5em] bisogna pertanto stare attenti a distinguere tra\\[.3em] \alert{\large MAIUSCOLO} e \alert{\large minuscolo} \end{center} \end{block} \end{frame} \end{Verbatim} \bigskip \begin{center} \fbox{\includegraphics[width=.9\textwidth]{cmdexpl}} \end{center} \newpage \subsection*{Esempio 4}\label{ex4} \begin{Verbatim} \begin{frame} \frametitle{Due esempi di pacchetti} \begin{LaTeXcode} \\usepackage\{\alert{graphicx}\} \end{LaTeXcode} \Lsty{graphicx} è un pacchetto che permette di gestire l'inserimento delle immagini, dei colori e di rotazioni \bigskip \onslide<2-> \begin{LaTeXcode} \\usepackage[\alert{italian}]\{\alert{babel}\} \end{LaTeXcode} \Lsty{babel} permette di sillabare testi scritti in lingue diverse dall'inglese (default), attivando la sillabazione della lingua selezionata (in questo caso, la nostra: \LCmd[]{italian}) \end{frame} \end{Verbatim} \bigskip \begin{center} \fbox{\includegraphics[width=.9\textwidth]{pkgexem}} \end{center} \newpage \subsection*{Esempio 5}\label{ex5} \begin{Verbatim} \begin{frame} \frametitle{Le classi base di \LaTeX} \begin{LaTeXcode} \\documentclass[]\{\alert{}\} \end{LaTeXcode} \begin{itemize} \item\Lcls{article} \item\Lcls{report} \item\Lcls{book} \item\Lcls{letter} \item\Lcls{slides} \item\dots \item\Lcls{beamer} \item\dots \end{itemize} \end{frame} \end{Verbatim} \bigskip \begin{center} \fbox{\includegraphics[width=.9\textwidth]{clsexpl}} \end{center} \newpage \section{Ringraziamenti}\label{sec:acknow} Si ringraziano Maurizio Himmelmann e Fabiano Busdraghi che hanno fatto proposte e richieste precise in merito alla classe (alcune tutt'ora insolute, ad onor del vero) e sono stati veri e propri \textit{beta-testers} della classe. Un sentito ringraziamento a Emanuele Vicentini, sempre prezioso e disponibile sia sul lato \TeX nico che su quello personale. Emanuele, ricorda che tutto ciò che hai dato ti sarà restituito 100 volte \texttt{:)} \section{\textit{Disclaimer}, \textit{feedback} e \textit{bug reports}}\label{sec:fb&b} La presente classe non è stata scritta da un programmatore \LaTeX\ professionista ed è pertanto da considerarsi soggetta a \textit{bugs}. Si invitano le persone che abbiano utilizzato questa classe a far pervenire all'autore, per mezzo della casella di posta elettronica \href{mailto:guit@sssup.it?subject=[guitbeamer] Feedback}{\texttt{guit@sssup.it}} eventuali richieste, commenti e segnalazioni di problemi su \cls{guitbeamer}, aggiungendo all'inizio del soggetto della mail la stringa ``\verb+[guitbeamer]+''. \vfill \bibliographystyle{plain} \begin{thebibliography}{99} \bibitem{lez-latex05} Maurizio W.~Himmelmann, Emiliano G.~Vavassori, Fabiano Busdraghi; \newblock\emph{Introduzione al mondo di \LaTeX\ ---\ Guida al corso}, \newblock 2006, \GuITtext, Pisa. \bibitem{manbeamer} Till Tantau; \newblock\emph{The \cls{beamer} class}, manuale della classe, \newblock 2005. \end{thebibliography} \end{document}