|
|
|
\documentclass[12pt,spanish,]{article}
|
|
|
|
\usepackage{lmodern}
|
|
|
|
\usepackage{amssymb,amsmath}
|
|
|
|
\usepackage{ifxetex,ifluatex}
|
|
|
|
\usepackage{fixltx2e} % provides \textsubscript
|
|
|
|
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
|
|
|
|
\usepackage[T1]{fontenc}
|
|
|
|
\usepackage[utf8]{inputenc}
|
|
|
|
\else % if luatex or xelatex
|
|
|
|
\ifxetex
|
|
|
|
\usepackage{mathspec}
|
|
|
|
\else
|
|
|
|
\usepackage{fontspec}
|
|
|
|
\fi
|
|
|
|
\defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}
|
|
|
|
\setmainfont[]{Ubuntu}
|
|
|
|
\setmonofont[Mapping=tex-ansi]{Ubuntu Mono}
|
|
|
|
\fi
|
|
|
|
% use upquote if available, for straight quotes in verbatim environments
|
|
|
|
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
|
|
|
|
% use microtype if available
|
|
|
|
\IfFileExists{microtype.sty}{%
|
|
|
|
\usepackage{microtype}
|
|
|
|
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
|
|
|
|
}{}
|
|
|
|
\usepackage[a4paper]{geometry}
|
|
|
|
\usepackage{hyperref}
|
|
|
|
\PassOptionsToPackage{usenames,dvipsnames}{color} % color is loaded by hyperref
|
|
|
|
\hypersetup{unicode=true,
|
|
|
|
pdftitle={Usando Pandoc},
|
|
|
|
pdfauthor={Sergio Alvariño salvari@gmail.com},
|
|
|
|
colorlinks=true,
|
|
|
|
linkcolor=Maroon,
|
|
|
|
citecolor=Blue,
|
|
|
|
urlcolor=Blue,
|
|
|
|
breaklinks=true}
|
|
|
|
\urlstyle{same} % don't use monospace font for urls
|
|
|
|
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
|
|
|
|
\usepackage[shorthands=off,main=spanish]{babel}
|
|
|
|
\else
|
|
|
|
\usepackage{polyglossia}
|
|
|
|
\setmainlanguage[]{spanish}
|
|
|
|
\fi
|
|
|
|
\IfFileExists{parskip.sty}{%
|
|
|
|
\usepackage{parskip}
|
|
|
|
}{% else
|
|
|
|
\setlength{\parindent}{0pt}
|
|
|
|
\setlength{\parskip}{6pt plus 2pt minus 1pt}
|
|
|
|
}
|
|
|
|
\setlength{\emergencystretch}{3em} % prevent overfull lines
|
|
|
|
\providecommand{\tightlist}{%
|
|
|
|
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
|
|
|
|
\setcounter{secnumdepth}{5}
|
|
|
|
% Redefines (sub)paragraphs to behave more like sections
|
|
|
|
\ifx\paragraph\undefined\else
|
|
|
|
\let\oldparagraph\paragraph
|
|
|
|
\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
|
|
|
|
\fi
|
|
|
|
\ifx\subparagraph\undefined\else
|
|
|
|
\let\oldsubparagraph\subparagraph
|
|
|
|
\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
|
|
|
|
\fi
|
|
|
|
|
|
|
|
\title{Usando Pandoc}
|
|
|
|
\author{Sergio Alvariño
|
|
|
|
\href{mailto:salvari@gmail.com}{\nolinkurl{salvari@gmail.com}}}
|
|
|
|
\date{abril-2016}
|
|
|
|
|
|
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
|
|
\begin{abstract}
|
|
|
|
Una chuleta para usar Pandoc, copiado descaradamente de varios sitios de
|
|
|
|
internet.
|
|
|
|
|
|
|
|
Solo para referencia rápida y personal.
|
|
|
|
\end{abstract}
|
|
|
|
|
|
|
|
{
|
|
|
|
\hypersetup{linkcolor=black}
|
|
|
|
\setcounter{tocdepth}{3}
|
|
|
|
\tableofcontents
|
|
|
|
}
|
|
|
|
\section{¿Cómo usar esto?}\label{cuxf3mo-usar-esto}
|
|
|
|
|
|
|
|
\subsection{Muy rápido}\label{muy-ruxe1pido}
|
|
|
|
|
|
|
|
Clona el repo en un directorio :
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
git clone https://bitbucket.org/salvari/pandoc_basico
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
Renombra el directorio:
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
mv pandoc_basico miProyecto
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
Elimina la info de git
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
rm -rf miProyecto/.git
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
Edita el fichero miProyecto/src/documento.md con tu editor de texto
|
|
|
|
favorito.
|
|
|
|
|
|
|
|
Ejecuta:
|
|
|
|
|
|
|
|
\begin{description}
|
|
|
|
\item[make]
|
|
|
|
Para generar todos los ficheros de salida y el fichero README.md
|
|
|
|
(equivale a \emph{make all})
|
|
|
|
\item[make clean]
|
|
|
|
Para borrar todos los ficheros de salida
|
|
|
|
\item[make reset]
|
|
|
|
Equivale a \emph{make clean all}
|
|
|
|
\end{description}
|
|
|
|
|
|
|
|
\subsection{Más detalles}\label{muxe1s-detalles}
|
|
|
|
|
|
|
|
El makefile está preparado para procesar \textbf{todos} los ficheros con
|
|
|
|
extensión \emph{.md} que haya en el directorio \emph{src}. Esto permite
|
|
|
|
escribir documentos largos y dividirlos en secciones, por ejemplo
|
|
|
|
podríamos tener los siguientes documentos en el directorio \emph{src}
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
00_Comienzo.md
|
|
|
|
10_Capitulo_01.md
|
|
|
|
20_Capitulo_02.md
|
|
|
|
30_Conclusion.md
|
|
|
|
40_apendices.md
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
Al ejecutar make nos crearía \textbf{un solo documento de salida}
|
|
|
|
concatenando todos los ficheros. El orden en que los concatena es el
|
|
|
|
orden en el que aparecen al hacer un \emph{ls} por eso se nombran con
|
|
|
|
una numeración al principio que permita ordenarlos a gusto del autor.
|
|
|
|
|
|
|
|
Si quieres cambiar el nombre del fichero de salida (\emph{documento})
|
|
|
|
tendrás que editar el makefile y cambiar la línea:
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
target := documento
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
Otras líneas que puedes tocar en el makefile son las que especifican el
|
|
|
|
idioma y los tipos de letra usados.
|
|
|
|
|
|
|
|
\section{¿Qué es Pandoc?}\label{quuxe9-es-pandoc}
|
|
|
|
|
|
|
|
Como explican en http://pandoc.org, Pandoc es una librería en Haskell
|
|
|
|
para hacer conversión de documentos de un formato markup a otro. Y
|
|
|
|
también es una herramienta de terminal de comandos que usa esa librería.
|
|
|
|
|
|
|
|
Lo que nos permite Pandoc a la hora de documentar un proyecto es
|
|
|
|
mantener la documentación en un formato abierto y sencillo (markdown) y
|
|
|
|
generar salidas en distintos formatos (pdf, mediawiki, epub, html, etc)
|
|
|
|
con un simple comando.
|
|
|
|
|
|
|
|
\section{¿Qué necesitas tener
|
|
|
|
instalado?}\label{quuxe9-necesitas-tener-instalado}
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
\tightlist
|
|
|
|
\item
|
|
|
|
Pandoc
|
|
|
|
\item
|
|
|
|
make
|
|
|
|
\item
|
|
|
|
git (no es imprescindible pero muy recomendable)
|
|
|
|
\item
|
|
|
|
Las plantillas de Pandoc (o \emph{templates})
|
|
|
|
\item
|
|
|
|
Un buen editor de texto
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
\subsection{Instalación de Pandoc}\label{instalaciuxf3n-de-pandoc}
|
|
|
|
|
|
|
|
Los paquetes de Pandoc están disponibles en la
|
|
|
|
\href{http://pandoc.org/installing.html}{página de descargas del
|
|
|
|
proyecto}. En el caso de Ubuntu se instala sin más que descargar el
|
|
|
|
paquete y abrirlo con el Centro de Software.
|
|
|
|
|
|
|
|
\subsection{Instalación de plantillas de
|
|
|
|
Pandoc}\label{instalaciuxf3n-de-plantillas-de-pandoc}
|
|
|
|
|
|
|
|
Hay muchas plantillas para generar documentación con Pandoc, puestas a
|
|
|
|
disposición de la comunidad. De momento nos hemos limitado a las
|
|
|
|
plantillas del creador de Pandoc:
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
cd
|
|
|
|
mkdir .pandoc
|
|
|
|
cd .pandoc
|
|
|
|
git clone https://github.com/jgm/pandoc-templates templates
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
Esto dejará las plantillas en el directorio
|
|
|
|
\emph{\textasciitilde{}/.pandoc/templates} que es uno de los directorios
|
|
|
|
donde Pandoc busca las plantillas.
|
|
|
|
|
|
|
|
No hay inconveniente en dejar las plantillas en otro directorio, o
|
|
|
|
incluso en el arbol de nuestro proyecto, pero habría que retocar el
|
|
|
|
\emph{makefile} para que Pandoc las encontrara sin problemas.
|
|
|
|
|
|
|
|
\section{Chuletario de Pandoc}\label{chuletario-de-pandoc}
|
|
|
|
|
|
|
|
\subsection{Backslash Escapes}\label{backslash-escapes}
|
|
|
|
|
|
|
|
Salvo que estemos dentro de un bloque de código o de ``código en
|
|
|
|
linea'', \textbf{cualquier carácter de puntuación o espacio} precedido
|
|
|
|
de contrabarra se tratará de forma literal, incluso si ese carácter
|
|
|
|
normalmente indique algún formato.
|
|
|
|
|
|
|
|
\subsection{Bloque de título}\label{bloque-de-tuxedtulo}
|
|
|
|
|
|
|
|
Es una forma rápida de indicar el título el autor o autores y la fecha.
|
|
|
|
Tiene que ir al principio del documento
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
% título
|
|
|
|
% autor(es) (separados por :)
|
|
|
|
% fecha
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
Alternativamente se puede usar otro estilo para el bloque de título,
|
|
|
|
mucho más completo, en formato
|
|
|
|
\href{https://en.wikipedia.org/wiki/YAML}{YAML}, especificando
|
|
|
|
variables. No puede usarse simultáneamente con el anterior, hay que
|
|
|
|
escoger entre los dos estilos.
|
|
|
|
|
|
|
|
Se pueden especificar todo tipo de variables \footnote{Ojo por que en el
|
|
|
|
makefile propuesto se especifica el lenguaje, asi que la variable del
|
|
|
|
bloque de título no va a tener efecto en este caso.}.
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
---
|
|
|
|
title: Título
|
|
|
|
author:
|
|
|
|
- Autor Uno <autor.uno@correo.com>
|
|
|
|
- Otro autor <otroautor@correo.com>
|
|
|
|
tags: [nothing, nothingness]
|
|
|
|
date: enero-2016
|
|
|
|
lang: es-ES
|
|
|
|
abstract: |
|
|
|
|
Este es el resumen.
|
|
|
|
|
|
|
|
Con dos párrafos.
|
|
|
|
...
|
|
|
|
---
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
\subsection{Incrustar TeX y HTML}\label{incrustar-tex-y-html}
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
\tightlist
|
|
|
|
\item
|
|
|
|
Los comandos TeX se pasan de forma transparente al Markdown, y afectan
|
|
|
|
solo a la salida de LaTeX y ConTeXt; en el resto de casos se borran
|
|
|
|
\item
|
|
|
|
El código HTML pasará a la salida sin cambios, pero el Markdown dentro
|
|
|
|
de los bloques HTML se procesa como Markdown
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
\subsection{Párrafos y retornos de
|
|
|
|
línea}\label{puxe1rrafos-y-retornos-de-luxednea}
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
\tightlist
|
|
|
|
\item
|
|
|
|
Un párrafo es una o más líneas de texto separadas por una linea en
|
|
|
|
blanco del resto
|
|
|
|
\item
|
|
|
|
Una línea que termina con dos espacios, o una línea que termina con un
|
|
|
|
fin de linea escapado (contrabarra seguida de retorno de linea) indica
|
|
|
|
un cambio de linea manual
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
\subsection{Itálica, negrita, superescrito, subesctrito,
|
|
|
|
tachado}\label{ituxe1lica-negrita-superescrito-subesctrito-tachado}
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
*Itálica* and **negrita** se indican con asteriscos.
|
|
|
|
|
|
|
|
Para ~~tachar~~ texto usa tildes dobles.
|
|
|
|
|
|
|
|
Superscrito se indica así: 2^ndo^.
|
|
|
|
|
|
|
|
Subescrito con tildes simples, así: H~2~O.
|
|
|
|
|
|
|
|
Los espacios en el superescrito y el subescrito tienen que ir escapados,
|
|
|
|
p.ej., H~esto\ es \ un\ subescrito~.
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
\subsection{TeX matemático o código incrustado en
|
|
|
|
linea}\label{tex-matemuxe1tico-o-cuxf3digo-incrustado-en-linea}
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
El TeX matemático va entre signos$: $2 + 2$.
|
|
|
|
|
|
|
|
El código en linea va entre comillas invertidas: `echo 'hello'`
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
\subsection{Enlaces e imágenes}\label{enlaces-e-imuxe1genes}
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
<http://example.com>
|
|
|
|
<foo@bar.com>
|
|
|
|
[inline link](http://example.com "Title")
|
|
|
|
![inline image](/path/to/image, "alt text")
|
|
|
|
|
|
|
|
[reference link][id]
|
|
|
|
[implicit reference link][]
|
|
|
|
![reference image][id2]
|
|
|
|
|
|
|
|
[id]: http://example.com "Title"
|
|
|
|
[implicit reference link]: http://example.com
|
|
|
|
[id2]: /path/to/image "alt text"
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
\subsection{Notas al pie de página}\label{notas-al-pie-de-puxe1gina}
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
Las notas en linea son como
|
|
|
|
esta.^[Nótese que las notas en linea no pueden tener más de un párrafo.]
|
|
|
|
Las notas de referencia son como esta.[^id]
|
|
|
|
|
|
|
|
[^id]: Las notas de referencia pueden contener varios párrafos.
|
|
|
|
|
|
|
|
Los parámetros a continuación deben estar identados.
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
\subsection{Citas}\label{citas}
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
Blah blah [see @doe99, pp. 33-35; also @smith04, ch. 1].
|
|
|
|
|
|
|
|
Blah blah [@doe99, pp. 33-35, 38-39 and *passim*].
|
|
|
|
|
|
|
|
Blah blah [@smith04; @doe99].
|
|
|
|
|
|
|
|
Smith says blah [-@smith04].
|
|
|
|
|
|
|
|
@smith04 says blah.
|
|
|
|
|
|
|
|
@smith04 [p. 33] says blah.
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
\subsection{Encabezados}\label{encabezados}
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
Encabezado 1
|
|
|
|
========
|
|
|
|
|
|
|
|
Encabezado 2
|
|
|
|
--------
|
|
|
|
|
|
|
|
# Encabezado 1 #
|
|
|
|
|
|
|
|
## Encabezado 2 ##
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
Las almohadillas de cierre \# son opcionales. Es necesario añadir una
|
|
|
|
línea en blanco antes y después de cada cabecera.
|
|
|
|
|
|
|
|
\subsection{Listas}\label{listas}
|
|
|
|
|
|
|
|
\paragraph{Listas Ordenadas}\label{listas-ordenadas}
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
1. example
|
|
|
|
2. example
|
|
|
|
|
|
|
|
A) example
|
|
|
|
B) example
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
\paragraph{Listas desordenadas}\label{listas-desordenadas}
|
|
|
|
|
|
|
|
Los items de la lista deben ir marcados con `*', `+', or `-'.
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
+ example
|
|
|
|
- example
|
|
|
|
* example
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
Las listas se pueden anidar de la forma usual:
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
+ example
|
|
|
|
+ example
|
|
|
|
+ example
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
\paragraph{Listas de definición}\label{listas-de-definiciuxf3n}
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
Term 1
|
|
|
|
|
|
|
|
: Definition 1
|
|
|
|
|
|
|
|
Term 2
|
|
|
|
|
|
|
|
: Definition 2
|
|
|
|
Second paragraph of definition 2.
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
\subsection{Blockquotes}\label{blockquotes}
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
> blockquote
|
|
|
|
>> nested blockquote
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
Es necesario añadir lineas en blanco antes y después de los
|
|
|
|
bloques-cita.
|
|
|
|
|
|
|
|
\subsection{Tablas}\label{tablas}
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
Right Left Center Default
|
|
|
|
------- ------ ---------- -------
|
|
|
|
12 12 12 12
|
|
|
|
123 123 123 123
|
|
|
|
1 1 1 1
|
|
|
|
|
|
|
|
Table: Demonstration of simple table syntax.
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
(Para tablas más complejas consulta la
|
|
|
|
\href{http://pandoc.org/README.html\#tables}{documentación de Pandoc}.)
|
|
|
|
|
|
|
|
\subsection{Bloques de código}\label{bloques-de-cuxf3digo}
|
|
|
|
|
|
|
|
Los bloques de código empiezan con tres o más tildes; y acaban por lo
|
|
|
|
menos con el mismo número de tildes:
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
~~~~~~~
|
|
|
|
{code here}
|
|
|
|
~~~~~~~
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
Opcionalmente, se puede especificar el lenguaje que corresponde al
|
|
|
|
bloque de código:
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {.haskell .numberLines}
|
|
|
|
qsort [] = []
|
|
|
|
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++
|
|
|
|
qsort (filter (>= x) xs)
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
\subsection{Lineas horizontales}\label{lineas-horizontales}
|
|
|
|
|
|
|
|
3 o mas guiones o asteriscos en una linea (se permiten espacios
|
|
|
|
intercalados)
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
---
|
|
|
|
* * *
|
|
|
|
- - - -
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
\subsection{Bloques verbatim}\label{bloques-verbatim}
|
|
|
|
|
|
|
|
Todo el texto identado cuatro espacios
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
Ejemplo Esto es un bloque verbatim y por ejemplo *esto* aparece
|
|
|
|
tal cual y no en itálica.
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
\section{En que me he basado (o copiado si lo
|
|
|
|
prefieres)}\label{en-que-me-he-basado-o-copiado-si-lo-prefieres}
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
\tightlist
|
|
|
|
\item
|
|
|
|
En la \href{http://pandoc.org/README.html}{guia de usuario de Pandoc}
|
|
|
|
Importante leersela para sacarle todo el jugo a esta herramienta
|
|
|
|
\item
|
|
|
|
En la
|
|
|
|
\href{https://github.com/dsanson/Pandoc.tmbundle/blob/master/Support/doc/cheatsheet.markdown}{chuleta
|
|
|
|
de Pandoc} de \href{https://github.com/dsanson}{David Sanson},
|
|
|
|
perfecta para referencia rápida
|
|
|
|
\item
|
|
|
|
Para hacer el makefile me he leido varios tutoriales y copiado
|
|
|
|
descaradamente de varios sitios que olvidé apuntar (lo siento)
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
\end{document}
|