Diferencia entre revisiones de «Manual de LaTeX»

Contenido eliminado Contenido añadido
m Artículo completo
PetrohsW (discusión | contribs.)
m Gran aportación, pero esta remplazando toda la introducción. Creo que se debe agregar como algún capitulo. Gracias
Línea 1:
==El paquete ''listings'', modo de uso==
 
__NOTOC__
El paquete {{LaTeX/Package|listings}} es el de uso habitual para la adición de código fuente de múltiples lenguajes de programación en un documento. Su funcionamiento es parecido al paquete {{LaTeX/Package|verbatim}}.
[[Archivo:LaTeX2e_logo.svg|center|400px|{{LaTeX|2e}}]]
 
<center><big>Bienvenido al libro de {{LaTeX|2e}}.</big></center>
Para utilizar este paquete, se debe utilizar:
{{LaTeX/Usage|code=
\usepackage{listings}
}}
 
Si deseas colaborar en este libro, te recomendamos que te pases por la [[Manual de LaTeX/Página de edición|página de edición]].
Este paquete permite el resaltado de los lenguajes de programación más comunes, además de ser configurable. Lo único que se necesita es utilizar el entorno {{LaTeX/Environment|lstlisting}}:
 
{{== Qué es LaTeX/Usage|code ==
\begin{lstlisting}
El código se inserta aquí.
\end{lstlisting}
}}
 
Es un sistema de composición tipográfica basado en TeX, originalmente centrado en obras de contenido matemático, pero que actualmente abarca multitud de tipos de escritos. Tiene características tanto de un lenguaje de marcado como de uno de programación, y puede integrarse en sistemas de producción automática basados en XML (o SGML), Unicode, PDF...
También es posible, y es muy útil, insertar desde un fichero de código fuente. Esto facilita al máximo las modificaciones y pruebas del código a insertar mientras aún lo estás editando ya que las modificaciones que se hagan en el código se reflejarán de forma automática en el documento LaTeX (principio DRY): {{Wikipedia|DRY}}
 
Se basa en el principio del WYGIWYM, siglas inglesas de ''lo que se obtiene es lo que se quiere'', y se basa en crear un documento de texto con marcado lógico y semántico del que se genera un PDF (aunque hay otra opciones).
 
Es muy popular en contextos académicos científicos, pero no se limita a la creación de trabajos, tesis y presentaciones: también, fuera de este ámbito y en el mundo de la producción editorial, abarca la creación de catálogos o diccionarios partir de bases de datos, la producción libros de textos y documentación técnica..., todo ello en un contexto que abarca desde la escritura por el autor, liberado de la tarea del formato, pasando por la composición, hasta la imposición para la imprenta.
{{LaTeX/Usage|code=
\lstinputlisting{nombre_fichero_codigo.py}
}}
 
Además de la composición en sí, LaTeX permite, gracias a las herramientas e extensiones que suelen acompañarlo, elementos gráficos e ilustraciones (incluyendo CMYK, colores directos, perfiles ICC), generación de índices alfabéticos (uno o varios) y de contenido (general o por capítulos), bibliografías (según diversos estilos), notas al pie (o al margen o a final de capítulo), hiperenlaces internos y externos, elementos dinámicos (animaciones, gráficos interactivos)...
En este ejemplo se insertaría un fichero de código en Python. Lo relevante es que se puede incluir cualquier fichero indicando su nombre completo. El lenguaje que se reconoce no depende de la extensión del fichero ni de ninguna indicación interna al mismo, sino que depende de los ajustes que haya establecido para este paquete en el documento. Por ejemplo, para especificar que se trata del lenguaje Python es necesario expresar lo siguiente:
 
Pueden encontrarse ejemplos de publicaciones y otros documentos creados con LaTeX y programas asociados en:
{{LaTeX/Usage|code=
* [http://tex.stackexchange.com/questions/1319/showcase-of-beautiful-typography-done-in-tex-friends Showcase of beautiful typography done in TeX & friends]
\lstinputlisting[language=Python]{nombre_fichero_codigo.py}
* [http://tex.stackexchange.com/questions/105621/beautiful-presentations-done-with-tex-and-related-systems?rq=1 Beautiful presentations done with TeX and related systems]
}}
* [http://tex.stackexchange.com/questions/129274/showcase-of-optical-illusions-made-with-tex-latex-luatex-context Showcase of optical illusions made with TeX/LaTeX/LuaTeX/ConTeXt]
* [http://tex.stackexchange.com/questions/158668/nice-scientific-pictures-show-off Nice scientific pictures show off]
* [http://tex.stackexchange.com/questions/134638/showcase-tex-typography-for-tugs-calendar Showcase TeX Typography for TUG's Calendar]
 
== Tabla de contenido ==
También es posible seleccionar qué líneas se desean incluir:
{{buscar en libro}}
{{Wikipedia|TeX}}
{{Wikipedia|LaTeX}}
 
[[Manual de LaTeX/Datos preliminares|Capítulo 1. Datos preliminares]]
# [[Manual de LaTeX/Introducción/Introducción a LaTeX|Introducción a {{LaTeX}}]]
# [[Manual de LaTeX/Introducción/La escritura en LaTeX|La escritura en {{LaTeX}}]]
# [[Manual de LaTeX/Introducción/Instalación|Instalación]]
## [[Manual de LaTeX/Introducción/Instalación/Instalación en Linux|Instalación en Linux]]
## [[Manual de LaTeX/Introducción/Instalación/Instalación en OS X|Instalación en OS X]]
## [[Manual de LaTeX/Introducción/Instalación/Instalación en Windows|Instalación en Windows]]
# [[Manual de LaTeX/Introducción/Programas complementarios|Programas complementarios]]
 
[[Manual de LaTeX/La estructura de un documento en LaTeX|Capítulo 2. La estructura de un documento en {{LaTeX}}]]
{{LaTeX/Usage|code=
# [[Manual de LaTeX/La estructura de un documento en LaTeX/El preámbulo y el cuerpo del documento|El preámbulo y el cuerpo del documento]]
\lstinputlisting[language=Python, firstline=37, lastline=45]{nombre_fichero_codigo.py}
# [[Manual de LaTeX/La estructura de un documento en LaTeX/Clases de documento y algunos paquetes comunes|Clases de documento y algunos paquetes comunes]]
}}
 
[[Manual de LaTeX/Escribiendo texto|Capítulo 3. Escribiendo texto]]
Lo que es muy útil para mostrar en el documento solamente aquello que sea relevante del código fuente. Si se omiten alguno de estos parámetros, {{LaTeX/Parameter|firstline}} o {{LaTeX/Parameter|lastline}}, que se deben mostrar todas las líneas desde el comienzo o hasta el final, respectivamente.
# [[Manual de LaTeX/Escribiendo texto/Espacios|Espacios]]
# [[Manual de LaTeX/Escribiendo texto/Caracteres especiales|Caracteres especiales]]
# [[Manual de LaTeX/Escribiendo texto/Tamaños, estilos y tipos de letra|Tamaños, estilos y tipos de letra]]
# [[Manual de LaTeX/Escribiendo texto/Alineación del texto|Alineación del texto]]
# [[Manual de LaTeX/Escribiendo texto/Partición de palabras|Partición de palabras]]
# [[Manual de LaTeX/Escribiendo texto/Signos ortográficos|Signos ortográficos]]
# [[Manual de LaTeX/Escribiendo texto/Portada del documento|Portada del documento]]
# [[Manual de LaTeX/Escribiendo texto/Capítulos y secciones|Secciones de un documento]]
# [[Manual de LaTeX/Escribiendo texto/Estilos de página|Estilos de página]]
# [[Manual de LaTeX/Escribiendo texto/Referencias|Referencias]]
# [[Manual de LaTeX/Escribiendo texto/Notas al pie|Notas al pie]]
# [[Manual de LaTeX/Escribiendo texto/Listas|Listas]]
# [[Manual de LaTeX/Escribiendo texto/Citas|Citas]]
# [[Manual de LaTeX/Escribiendo texto/Tablas|Tablas]]
 
[[Manual de LaTeX/Fórmulas matemáticas|Capítulo 4. Fórmulas matemáticas]]
El siguiente es un documento completo que inserta un programa en Pascal:
# [[Manual de LaTeX/Fórmulas matemáticas/Inserción de una fórmula|Inserción de una fórmula]]
# [[Manual de LaTeX/Fórmulas matemáticas/Superíndices y subíndices|Superíndices y subíndices]]
# [[Manual de LaTeX/Fórmulas matemáticas/Construcciones matemáticas|Construcciones matemáticas]]
# [[Manual de LaTeX/Fórmulas matemáticas/Delimitadores|Delimitadores]]
# [[Manual de LaTeX/Fórmulas matemáticas/Símbolos matemáticos|Símbolos matemáticos]]
# [[Manual de LaTeX/Fórmulas matemáticas/Puntuación|Puntuación]]
# [[Manual de LaTeX/Fórmulas matemáticas/Acentuación en modo matemático|Acentuación en modo matemático]]
# [[Manual de LaTeX/Fórmulas matemáticas/Texto entre matemáticas|Texto entre matemáticas]]
# [[Manual de LaTeX/Fórmulas matemáticas/Arreglos matemáticos|Arreglos matemáticos]]
# [[Manual de LaTeX/Fórmulas matemáticas/Entornos para teoremas|Entornos para teoremas]]
 
[[Manual de LaTeX/Inclusión de gráficos|Capítulo 5. Gráficos]]
<source lang="latex">
# [[Manual de LaTeX/Inclusión de gráficos/Objetos flotantes|Objetos flotantes]]
\documentclass{article}
# [[Manual de LaTeX/Inclusión de gráficos/Ubicación de un gráfico|Ubicación de un gráfico]]
\usepackage{listings} % Incluye el paquete listings
# [[/Insertar figuras en un documento|Insertar figuras externas]]
\usepackage[spanish]{babel}
# [[Manual de LaTeX/Inclusión de gráficos/Conversión de formatos gráficos|Conversión de formatos gráficos]]
\usepackage[T1]{fontenc}
# [[Manual de LaTeX/Inclusión de gráficos/Dibujo de gráficos en LaTeX|Dibujo de gráficos en {{LaTeX}}]]
# [[Manual de LaTeX/Inclusión de gráficos/El paquete XY-Pic|El paquete XY-Pic]]
# [[Manual de LaTeX/Inclusión de gráficos/Gráficos con PSTricks|Gráficos con PSTricks]]
# [[Manual de LaTeX/Inclusión de gráficos/Gráficos con MetaPost|Gráficos con {{Verb|METAPOST}}]]
# [[Manual de LaTeX/Inclusión de gráficos/Gráficos con xfig|Gráficos con {{Verb|xfig}}]]
 
[[Manual de LaTeX/Listados de código|Capítulo 6. Listados de código]]
\begin{document}
# [[Manual de LaTeX/Listados de código/Listados con listings|Listados con {{Verb|listings}}]]
\lstset{language=Pascal} % Establece el lenguaje por defecto. Se puede cambiar para cada bloque de código insertado
# [[Manual de LaTeX/Listados de código/Listados con minted|Listados con {{Verb|minted}}]]
 
== Apéndices ==
\begin{lstlisting}[frame=single] % Inicia el bloque de código
# [[/¿Qué necesito para empezar con LaTeX?|¿Qué necesito para empezar con LaTeX?]]
for i:=maxint to 0 do
# [[/¿Cómo se procesa un documento LaTeX?|¿Cómo se procesa un documento LaTeX?]]
begin
# [[/Primeras aproximaciones con ejemplos sencillos|Primeras aproximaciones con ejemplos sencillos]]
{ no hace nada }
# [[/El preámbulo de LaTeX|El preámbulo de LaTeX]]
end;
# [[/Documentos estructurados|Documentos estructurados]]
Write("Insensible a las mayúsculas");
# [[/Instrucciones y entornos|Instrucciones y entornos]]
Write("en las palabras reservadas de Pascal.");
# [[/Tipos de letra|Tipos de letra]]
\end{lstlisting}
# [[/Beamer|Beamer]]
 
== Enlaces sobre LaTeX ==
\end{document}
</source>
 
* [http://www.cervantex.es/ CervanTeX, grupo de usuarios de TeX hispanohablantes]
* [http://www.tex-br.org/index.php/P%C3%A1gina_principal Amigos Brasileiros,el wiki LaTeX brasileiro]
* [http://navarroj.com/latex/ LaTeX Fácil]
 
* [[/Programación/Plain TeX|Plain TeX]]
[[File:Latex pkg listing es.png|Resultado del paquete listings de latex aplicado a un trozo de código en pascal]]
 
== Autores y licencia ==
===Lenguajes soportados===
Los autores son los contribuyentes de Wikilibros. Para saber más sobre ellos revisa el [//es.wikibooks.org/w/index.php?title=Manual_de_LaTeX&action=history historial] de este libro.
 
[[Categoría:Programación|LaTeX]]
El paquete {{LaTeX/Package|listings}} es capaz de resaltar los siguientes lenguajes:
[[Categoría:Manual de LaTeX]]
[[Categoría:Libros organizados|LaTeX]]
 
[[bn:লাটেক]]
ABAP<sup>2,4</sup>, ACSL, Ada<sup>4</sup>, Algol<sup>4</sup>, Ant, Assembler<sup>2,4</sup>, Awk<sup>4</sup>, bash, Basic<sup>2,4</sup>, C#<sup>5</sup>, C++<sup>4</sup>, C<sup>4</sup>, Caml<sup>4</sup>, Clean, Cobol<sup>4</sup>, Comal, csh, Delphi, Eiffel, Elan, erlang, Euphoria, Fortran<sup>4</sup>, GCL, Gnuplot, Haskell, HTML, IDL<sup>4</sup>, inform, Java<sup>4</sup>, JVMIS, ksh, Lisp<sup>4</sup>, Logo, Lua<sup>2</sup>, make<sup>4</sup>, Mathematica<sup>1,4</sup>, Matlab, Mercury, MetaPost, Miranda, Mizar, ML, Modelica<sup>3</sup>, Modula-2, MuPAD, NASTRAN, Oberon-2, Objective C<sup>5</sup> , OCL<sup>4</sup>, Octave, Oz, Pascal<sup>4</sup>, Perl, PHP, PL/I, Plasm, POV, Prolog, Promela, Python, R, Reduce, Rexx, RSL, Ruby, S<sup>4</sup>, SAS, Scilab, sh, SHELXL, Simula<sup>4</sup>, SQL, tcl<sup>4</sup>, TeX<sup>4</sup>, VBScript, Verilog, VHDL<sup>4</sup>, VRML<sup>4</sup>, XML, XSLT.
[[de:LaTeX-Kompendium]]
 
[[en:LaTeX]]
Para algunos de ellos, se permiten diferentes dialectos. Para más información, utiliza la documentación que viene con el paquete, debería estar en tu distribución, bajo el nombre <tt>listings-*.dvi</tt>.
[[fr:LaTeX]]
 
[[he:לאטך]]
 
[[hy:ԼաՏեԽ]]
;Notas
[[ja:TeX/LaTeX入門]]
# Soporta Mathematica solamente si se trata de un fichero en texto plano. No se pueden incluir ficheros *.NB., sin embargo, Mathematica puede exportar ficheros fuente formateados para su uso en LaTeX.
[[nl:LaTeX]]
# En estos lenguajes es obligatorio especificar el dialecto del lenguaje (por ejemplo: {{LaTeX/LaTeX|code=language={[x86masm]Assembler}<!---->}}).
[[pl:LaTeX]]
# Modelica se soporta mediante el paquete {{LaTeX/Package|dtsyntax}} disponible [https://code.google.com/p/dtsyntax/ aquí].
[[pt:Latex]]
# Para estos lenguajes hay múltiples dialectos soportados: C, por ejemplo, puede ser ANSI, Handel, Objective y Sharp. Ver p. 12 del [http://mirrors.ctan.org/macros/latex/contrib/listings/listings.pdf manual de listings] para una introducción a esto.
[[ro:LaTeX]]
# Definido como un dialecto de otro lenguaje.
[[ru:LaTeX]]
 
[[tr:LaTeX]]
===Parámetros de configuración===
[[zh:LaTeX]]
 
Se pueden modificar los parámetros que afectan a cómo se muestra el código. Estos parámetros de configuración se pueden insertar en cualquier parte del documento, antes o después de {{LaTeX/LaTeX|code=\begin{document}<!---->}}). A continuación se muestra un ejemplo con todos los parámetros que se puede utilizar como base para modificarlo según las necesidades. El significado de cada parámetro se explica en la propia línea como un comentario.
 
<source lang="latex">
\documentclass[a4paper,12pt]{article}
\usepackage[spanish]{babel}
\usepackage[T1]{fontenc}
 
\usepackage{listings}
\usepackage{color}
 
\definecolor{miverde}{rgb}{0,0.6,0}
\definecolor{migris}{rgb}{0.5,0.5,0.5}
\definecolor{mimalva}{rgb}{0.58,0,0.82}
 
\lstset{ %
backgroundcolor=\color{white}, % Indica el color de fondo; necesita que se añada \usepackage{color} o \usepackage{xcolor}
basicstyle=\footnotesize, % Fija el tamaño del tipo de letra utilizado para el código
breakatwhitespace=false, % Activarlo para que los saltos automáticos solo se apliquen en los espacios en blanco
breaklines=true, % Activa el salto de línea automático
captionpos=b, % Establece la posición de la leyenda del cuadro de código
commentstyle=\color{miverde}, % Estilo de los comentarios
deletekeywords={...}, % Si se quiere eliminar palabras clave del lenguaje
escapeinside={\%*}{*)}, % Si quieres incorporar LaTeX dentro del propio código
extendedchars=true, % Permite utilizar caracteres extendidos no-ASCII; solo funciona para codificaciones de 8-bits; para UTF-8 no funciona. En xelatex necesita estar a true para que funcione.
frame=single, % Añade un marco al código
keepspaces=true, % Mantiene los espacios en el texto. Es útil para mantener la indentación del código(puede necesitar columns=flexible).
keywordstyle=\color{blue}, % estilo de las palabras clave
language=Pascal, % El lenguaje del código
otherkeywords={*,...}, % Si se quieren añadir otras palabras clave al lenguaje
numbers=left, % Posición de los números de línea (none, left, right).
numbersep=5pt, % Distancia de los números de línea al código
numberstyle=\small\color{migris}, % Estilo para los números de línea
rulecolor=\color{black}, % Si no se activa, el color del marco puede cambiar en los saltos de línea entre textos que sea de otro color, por ejemplo, los comentarios, que están en verde en este ejemplo
showspaces=true, % Si se activa, muestra los espacios con guiones bajos; sustituye a 'showstringspaces'
showstringspaces=false, % subraya solamente los espacios que estén en una cadena de esto
showtabs=true, % muestra las tabulaciones que existan en cadenas de texto con guión bajo
stepnumber=2, % Muestra solamente los números de línea que corresponden a cada salto. En este caso: 1,3,5,...
stringstyle=\color{mimalva}, % Estilo de las cadenas de texto
tabsize=2, % Establece el salto de las tabulaciones a 2 espacios
title=\lstname % muestra el nombre de los ficheros incluidos al utilizar \lstinputlisting; también se puede utilizar en el parámetro caption
}
\begin{document}
 
\begin{lstlisting}[frame=single] % Inicia el bloque de código
for i:=maxint to 0 do
begin
{ comentario
%* \textbf{texto en negrita} *)
no hace nada }
end;
Write('Insensible a las mayúsculas');
Write('en las palabras reservadas de Pascal.');
\end{lstlisting}
\end{document}
</source>
 
;escapeinside
El parámetro {{LaTeX/Parameter|escapeinside}} necesita explicación. La opción {{LaTeX/LaTeX|code=escapeinside={A}{B}<!---->}} define los delimitadores de inicio y fin que se utilizarán para permitir la introducción de código LaTeX entre el código, en este caso, que todo el código entre "A" y "B" será interpretado como código LaTeX utilizando el estilo vigente en el entorno ''listings''. En este ejemplo, se interpretan como código LaTeX a partir de {{LaTeX/LaTeX|code=%*<!---->}}, hasta que se encuentre el cierre con {{LaTeX/LaTeX|code=*)<!---->}}.
 
Hay muchas más opciones, se recomienda revisar la documentación oficial.
 
===Definición de estilos===
Este paquete permite definir estilos. Es decir, perfiles que definen un conjunto de parámetros.
 
Por ejemplo:
 
<source lang="latex">
 
\lstdefinestyle{customc}{
belowcaptionskip=1\baselineskip,
breaklines=true,
frame=L,
xleftmargin=\parindent,
language=C,
showstringspaces=false,
basicstyle=\footnotesize\ttfamily,
keywordstyle=\bfseries\color{green!40!black},
commentstyle=\itshape\color{purple!40!black},
identifierstyle=\color{blue},
stringstyle=\color{orange},
}
 
\lstdefinestyle{customasm}{
belowcaptionskip=1\baselineskip,
frame=L,
xleftmargin=\parindent,
language=[x86masm]Assembler,
basicstyle=\footnotesize\ttfamily,
commentstyle=\itshape\color{purple!40!black},
}
 
\lstset{escapechar=@,style=customc}
</source>
 
En este ejemplo, se definen dos estilos y se establece uno de ellos 'customc' como el estilo por defecto y la @ como el carácter de escape.
 
Se puede utilizar así:
 
<source lang="c">
\begin{lstlisting}
#include <stdio.h>
#define N 10
/* Comentario en un
* bloque*/
 
int main()
{
int i;
 
// Line comment.
puts("¡Hola Mundo!");
for (i = 0; i < N; i++)
{
puts("¡LaTeX también es genial para los programadores!");
}
 
return 0;
}
\end{lstlisting}
 
\lstinputlisting[caption=Scheduler, style=customc]{hello.c}
</source>
 
El trozo de código C se imprimirá como:
 
[[File:Latex listing ES 2.png|Resultado de aplicar un estilo a un trozo de código C]]
 
El código se ha compilado con XeLaTeX para facilitar que las exclamaciones funcionen en el trozo de código C.
 
 
===Inclusión de ficheros automática===
 
Si se tiene un conjunto de ficheros de código fuente para incluir, se puede uno encontrar repitiendo una y otra vez el mismo texto LaTeX
Aquí es donde las macros muestran toda su potencia:
 
<source lang="latex">
\newcommand{\includecode}[2][c]{\lstinputlisting[caption=#2, escapechar=, style=custom#1]{#2}<!---->}
% ...
 
\includecode{sched.c}
\includecode[asm]{sched.s}
% ...
 
\lstlistoflistings
</source>
 
Con este ejemplo, se crea un comando para facilitar al máximo la inclusión de código. Se establece un estilo por defecto para que sea ''customc''. Todos los listados tendrán su nombre el el título: no hay que escribir el nombre del fichero dos veces gracias a la macro.
 
===Problemas de codificación (¡¡¡IMPORTANTE EN ESPAÑOL!!!)===
 
En el ejemplo anterior, para evitar el problema de codificación que surge con LaTeX y el uso de utf8 dentro de listing, se ha compilado los ejemplos con XeLaTeX.
 
El problema es que, por defecto, {{LaTeX/Package|listings}} no soporta codificación multibyte para el código fuente.
 
Para poder manejar UTF-8, resulta necesario decirle a listings cómo interpretar los caracteres especiales que surjan entre el código fuente, mediante la definición de los mismos.
 
Esto se puede hacer de la siguiente forma:
 
<source lang="latex">
\lstset{literate=
{á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
{Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
{à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
{À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
{ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
{Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
{â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
{Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
{œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
{ű}{{\H{u}}}1 {Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1
{ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
{€}{{\EUR}}1 {£}{{\pounds}}1
}
</source>
 
La tabla anterior cubre la mayoría de los caracteres de los idiomas latinos:
 
Para una explicación más detallada del uso de {{LaTeX/LaTeX|code=literate<!---->}} se puede revisar la sección 6.4 en la [http://mirrors.ctan.org/macros/latex/contrib/listings/listings.pdf Documentación de listings].
 
Otra posibilidad es sustituir el paquete {{LaTeX/LaTeX|code=\usepackage{listings}<!---->}} (en el preámbulo) por {{LaTeX/LaTeX|code=\usepackage{listingsutf8}<!---->}}.
 
===Personalización de los títulos===
 
Se pueden tener unos títulos (caption y/o title) muy avanzados gracias al paquete {{LaTeX/Package|caption}}. Veamos un ejemplo de uso con {{LaTeX/Package|listings}}.
 
<source lang="latex">
\usepackage{caption}
\usepackage{listings}
 
\DeclareCaptionFont{white}{ \color{white} }
\DeclareCaptionFormat{listing}{
\colorbox[cmyk]{0.43, 0.35, 0.35,0.01 }{
\parbox{\textwidth}{\hspace{15pt}#1#2#3}
}
}
\captionsetup[lstlisting]{ format=listing, labelfont=white, textfont=white, singlelinecheck=false, margin=0pt, font={bf,footnotesize} }
 
% ...
 
\lstinputlisting[caption=My caption]{sourcefile.lang}
</source>