¿Cómo debería ser una lista de código fuente de látex para producir una salida como en libros conocidos, por ejemplo, uno para Spring Framework? He intentado con el paquete de listados de látex, pero no pude producir algo que se viera tan bien como el siguiente. Así que estoy sumamente interesado en las instrucciones de formateo para producir algo como la muestra a continuación (del capítulo de muestra de Manning para Spring in Action ):
EDITAR Con la ayuda especialmente de Tormod Fjeldskår, aquí está el fragmento completo para producir el aspecto deseado:
\usepackage{listings}
\usepackage{courier}
\lstset{
basicstyle=\footnotesize\ttfamily, % Default font
% numbers=left, % Location of line numbers
numberstyle=\tiny, % Style of line numbers
% stepnumber=2, % Margin between line numbers
numbersep=5pt, % Margin between line numbers and text
tabsize=2, % Size of tabs
extendedchars=true,
breaklines=true, % Lines will be wrapped
keywordstyle=\color{red},
frame=b,
% keywordstyle=[1]\textbf,
% keywordstyle=[2]\textbf,
% keywordstyle=[3]\textbf,
% keywordstyle=[4]\textbf, \sqrt{\sqrt{}}
stringstyle=\color{white}\ttfamily, % Color of strings
showspaces=false,
showtabs=false,
xleftmargin=17pt,
framexleftmargin=17pt,
framexrightmargin=5pt,
framexbottommargin=4pt,
% backgroundcolor=\color{lightgray},
showstringspaces=false
}
\lstloadlanguages{ % Check documentation for further languages ...
% [Visual]Basic,
% Pascal,
% C,
% C++,
% XML,
% HTML,
Java
}
% \DeclareCaptionFont{blue}{\color{blue}}
% \captionsetup[lstlisting]{singlelinecheck=false, labelfont={blue}, textfont={blue}}
\usepackage{caption}
\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}}
Úselo con esto en su documento:
\lstinputlisting[label=samplecode, caption=A sample]{sourceCode/HelloWorld.java}
Respuestas:
Me parece que lo que realmente quieres es personalizar el aspecto de los subtítulos. Esto se hace más fácilmente usando el
caption
paquete. Para obtener instrucciones sobre cómo usar este paquete, consulte el manual (PDF) . Probablemente necesite crear su propio formato de subtítulos personalizado, como se describe en el capítulo 4 del manual.Editar: Probado con MikTex:
Resultado:
fuente
Estoy contento con el
listings
paquete:Así es como lo configuro:
Lo uso así:
fuente
Y por favor, haga lo que haga, configure el paquete de listados para usar una fuente de ancho fijo (como en su ejemplo; encontrará la opción en la documentación). La configuración predeterminada utiliza el tipo de letra proporcional en una cuadrícula, que es, en mi humilde opinión, increíblemente feo e ilegible, como se puede ver en las otras respuestas con imágenes. Personalmente, estoy muy irritado cuando debo leer algunos tipos de códigos en una fuente proporcional.
Intente configurar la fuente de ancho fijo con esto:
fuente
Me pregunto por qué nadie mencionó el paquete Minted . Tiene mucho mejor resaltado de sintaxis que el paquete de listado LaTeX. Utiliza pigmentos .
Ejemplo en LaTeX:
Lo que resulta en:
-shell-escape
Debe usar la bandera con el comando pdflatex.Para más información: https://www.sharelatex.com/learn/Code_Highlighting_with_minted
fuente
listings
).Prueba el
listings
paquete. Aquí hay un ejemplo de lo que usé hace algún tiempo para tener una lista de Java en color:Es posible que desee personalizar eso. Hay varias referencias del paquete de listados. Solo googlealos.
fuente
Eche un vistazo al
algorithms
paquete, especialmente alalgorithm
medio ambiente.fuente
algorithm
medio ambiente, noalgorithmic
.algorithm
es un contenedor flotante, que se ve muy bien. Puedes poner lo que quieras dentro, incluso ellisting
hilo mencionado.Hay varias otras cosas que puede hacer, como seleccionar nuevas fuentes:
fuente
Para el código R yo uso
Y se ve exactamente así
fuente