Pàgines

dimarts, 6 d’agost del 2013

Diagrames de Gantt o cronogrames

Abstract (en): A Gantt chart is a type of bar chart, developed by Henry Gantt, that illustrates a project schedule. Gantt charts illustrate the start and finish dates of the terminal elements and summary elements of a project. We can buid Gantt charts in LaTeX with pgfgantt package.

Els diagrames de Gantt o cronogrames són representacions gràfiques que permeten visualitzar les fites i dates dels projectes. Això permet que fer el seguiment dels projectes i la seva avaluació sigui molt més senzill. Amb pgfgantt podem crear-los en els documents LaTeX.

El paquet  pgfgantt proporciona l’entorn ganttchart que dibuixa un diagrama de Gantt en una imatge TikZ.

L’usuari, per personalitzar el diagrama, pot afegir diversos elements al gràfic, com ara:
  • títols amb el comandament \gantttitle
  • barres amb \ganttbar
  • fites amb \ganttmilestone
  • grups amb \ganttgroup
  • enllaços entre aquests elements amb el comandament \ganttlink
Cada element és una línia del diagrama que té un punt d’origen i un altre de final dins el calendari del projecte. Els enllaços permeten veure com estan relacionats entre sí els diferents elements i si, per exemple, perquè comenci un cal que s’acabi un altre.

Per crear una línia nova només cal escriure dues contrabarres \\ al final de l’element. Si no les posem els elements se situen en la mateixa línia.

Al document tex adjunt podeu trobar alguns exemples de cronogrames i estudiar-ne el codi. Al PDF adjunt en podeu veure el resultat.

A https://github.com/jqueralt/gantt trobareu les darreres versions dels fitxers.

Publicat per primera vegada el dissabte 8 de desembre de 2012.

De markdown a beamer amb pandoc

Una manera ràpida de crear presentacions

Abstract (en): Discussion about how to prepare a Beamer presentation from a markdown format text file with pandoc.

Si hi ha una feina pesada a l’hora de crear presentacions amb la classe beamer és escriure’n el codi. És igual que utilitzem una plantilla, sempre hi ha molta feina a escriure el codi.

Però hi ha una solució que ens simplifica la feina: escriure el contingut de la presentació en format markdown i en acabat amb l’ajuda de pandoc transformar-lo en format LaTeX o, directament, a un PDF generat per beamer.

Pandoc és un programa que permet passar d’un llenguatge de marques a un altre i del que hem parlat en l’article Creació d’epub des de LaTeX amb pandoc i al nostre blog personal Bitàcola. Ara en veure una nova i potent possibilitat relacionada amb la creació de presentacions.

Partim d’un fitxer de text escrit en format markdown que podem anomenar test.md. En aquest fitxer només hi posarem el contingut que vulguem que tingui la nostra presentació amb unes poques marques que tindran el següent significat un cop processades per pandoc:


  • Els títols de Nivell 1 (marcats amb el prefix #) seran les seccions de la presentació.
  • Els títols de Nivell 2 (prefixats amb ##) seran els títols de les diapositives.
  • Podem iniciar una diapositiva amb qualsevol moment amb una sèrie de guionets: ------------------
  • També, tot seguint la sintaxi de markdown, hi podem incloure enllaços, imatges així com qualsevol comandament LaTeX.

Un cop tenim el fitxer markdown test.md fet podem triar dos camins a seguir:

1. De markdown a LaTeX

Utilitzant pandoc podem transformar el fitxer de text markdown test.md en un fitxer de LaTeX que podem anomenar test.tex. L’ordre de pandoc és:
pandoc test.md --slide-level 2 -t beamer -o test.tex
el fitxer test.tex resultant conté tot el codi de beamer tan feixuc d’escriure.

Aleshores podem crear un fitxer, diguem-li matriu.tex amb les especificacions de la presentació, el tipus de lletra i els temes de beamer a usar, etc i que finalment cridi al contingut desat a test.tex de manera que només amb un parell de passades de pdflatex matriu.tex tindrem una presentació de beamer en format PDF en la que controlem fins al més mínim detall. Una presentació perfecta.

2. De markdown a (beamer)PDF

El camí directe que ens ofereix pandoc és transformar el fitxer test.md en un pdf amb la presentació de beamer anomenat, per exemple test.pdf. L’ordre de pandoc és:
pandoc --toc --slide-level 2 -V theme:NomTema -t beamer test.md -o test.pdf
Observem que aquesta ordre permet triar el tema de beamer que s’utilitzarà i que equival al comandament de beamer \usetheme{NomTema}.

Com és costum adjuntem els fitxers que han permès crear la presentació PDF adjunta. Trobareu tant el fitxer testbeamer.md, com testbeamer.tex i el fitxer matriu.tex que permet tenir un control més detallat del procés. Podreu trobar les darrers actualitzacions d’aquest fitxers a github: https://github.com/jqueralt/md2beamer

+info: Beamer presentations using pandoc, markdown, LaTeX, and a makefile

+info: Producing slide shows with Pandoc

Esperem que pandoc estalviï a partir d’ara força temps a l’hora de crear presentacions.

Publicat per primera vegada el dissabte 1 de setembre de 2012.

PDFs per a e-readers

Abstract (en): Discussion about how to prepare a LaTeX document in order to read in a e-reader the resultant PDF.

Des que disposem d’un lector de llibres electrònics (en concret del Cervantes 2 de bq readers) anem fent proves per poder-hi llegir els documents resultants del processament de documents de LaTeX. La millor solució, sobre la que molt aviat publicarem algun articles és, sens dubte, el format epub obtingut a partir de LaTeX, però en aquest article discutirem l’experiència de preparar PDFs per a ser llegits en la petita pantalla de l’e-reader.

El tema és bastant habitual als fòrums de tex.stackexchange.com i hem anat seguint amb interès tant les preguntes com les respostes. D’entre les aparegudes la més interessant és la que remet a la solució donada pel Projecte Gutemberg a la publicació del llibre Calculus Made Easy, de Silvanus Thompson . En el fitxer tex font es pot veure que plantegen la possibilitat d’obtenir un PDF preparat per a imprimir o bé, l’opció per defecte, obtenir-ne un per veure en la pantalla d’un e-reader. I aquesta és la solució que hem seguit en el nostre exemple.

Es basa en l’ús del paquet \usepackage{ifthen} amb el qual definim la variable \newboolean{ForPrinting}. si és certa crearà el PDF clàssic per imprimir, però si és falsa, el que volem, aleshores definim els comandaments:
%% Initialize values to ForPrinting=false
\newcommand{\Margins}{hmarginratio=1:1} % marges simètrics
\newcommand{\HLinkColor}{blue} % color dels enllaços
\newcommand{\PDFPageLayout}{SinglePage}
\ifthenelse{\boolean{ForPrinting}}{%
\setlength{\paperwidth}{8.5in}%
\setlength{\paperheight}{11in}%
\usepackage[body={5in,7in},\Margins]{geometry}
}{%
\setlength{\paperwidth}{5.5in}% modificada en .5 polzades
\setlength{\paperheight}{7.5in}% modificada en .5 polzades
\raggedbottom
\usepackage[body={4.5in,6.5in},\Margins,includeheadfoot]{geometry} %cos modificat en .5 polzades pels marges
}
En l’original les mides de la pàgina i del cos eren mitja polzada més grans, suposem que per e-readers amb pantalla un xic més gran. Però pel Cervantes 2 les hem reduïdes i el resultat és perfecte: les pàgines encaixen perfectament en pantalla i són llegibles amb tota claredat i comoditat.

Però, sempre n’hi ha d’haver algun, sembla que el lector de PDFs que du incorporat el firmware del Cervantes 2 no és prou bo i no permet llegir les fórmules complexes, només les més senzilletes (superíndexs i subíndexs). Llàstima.

Trobareu adjunts el fitxer tex amb el codi i el PDF resultant (preparat per anar al vostre Cervantes 2 o per ser llegit en pantalla). Es poden trobar les versions actualitzades dels documents a https://github.com/jqueralt/ebookpdf

La conclusió és que el format PDF no és l’ideal pels e-readers. Provarem amb l’epub i us ho explicarem en propers articles.

Publicat per primer cop el dijous 30 d'agost de 2012.

Millores en les referències creuades amb prettyref

Abstract (en): The package prettyref improves creating cross-references regarding hyperref.

En articles anteriors hem vist l’ús i algunes millores en les referencies creuades. En aquest article veurem què ens pot aportar el paquet prettyref a l’hora d’inserir referencies a seccions, figures, taules o equacions.

El paquet, que es crida al preàmbul amb \usepackage{prettyref}, només té un requisit i es que quan fem les etiquetes posem un codi per identificar cada element separat per dos punts de l’etiqueta. Per exemple:

  • una equació es pot etiquetar amb \label{eq:segongrau}
  • una secció amb \label{sec:nomseccio}
  •  una taula amb \label{tau:nomdelataula}, etc.

prettyref , que admet l’ús simultani de \ref, \pageref i \autoref, permet redefinir el comandament
\newrefformat{eq}{Equació \ref{#1} de la pàgina \pageref{#1}} 
perquè quan escrivim el comandament per fer les referències creuades ens aparegui un text complet i ben adreçat:
\newrefformat{eq}{Equació \ref{#1} de la pàgina \pageref{#1}}
\newrefformat{lem}{Lema \ref{#1}}
\newrefformat{teo}{Teorema \ref{#1} de la pàgina \pageref{#1}}
%\newrefformat{cap}{Capítol \ref{#1}}
\newrefformat{sec}{Secció \ref{#1}}
\newrefformat{tau}{Taula \ref{#1} de la pàgina \pageref{#1}}
\newrefformat{fig}{Figura \ref{#1} de la pàgina \pageref{#1}}
Al document tex adjunt hom pot estudiar el codi i veure’n el resultat, un cop processat, al PDF adjunt.
Es poden trobar les versions actualitzades dels documents a github.

Publicat per primera vegada el dissabte 18 d'agost de 2012.