À quoi devrait ressembler une liste de code source en latex pour produire une sortie comme dans les livres connus, par exemple une pour Spring Framework? J'ai essayé avec le package d'annonces en latex, mais je n'ai pas pu produire quelque chose d'aussi beau que celui ci-dessous. Je suis donc principalement intéressé par les instructions de formatage pour produire quelque chose comme l'exemple ci-dessous (à partir du chapitre d'exemple de Manning pour Spring in Action ):
EDIT Avec l'aide en particulier de Tormod Fjeldskår, voici l'extrait complet pour produire le look souhaité:
\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}}
Utilisez-le avec ceci dans votre document:
\lstinputlisting[label=samplecode, caption=A sample]{sourceCode/HelloWorld.java}
Réponses:
Il me semble que ce que vous voulez vraiment, c'est personnaliser l'apparence des légendes. Cela est plus facile à faire en utilisant le
caption
package. Pour obtenir des instructions sur l'utilisation de ce package, consultez le manuel (PDF) . Vous devrez probablement créer votre propre format de légende personnalisé, comme décrit dans le chapitre 4 du manuel.Edit: Testé avec MikTex:
Résultat:
la source
Je suis content du
listings
package:Voici comment je le configure:
Je l'utilise comme ceci:
la source
Et s'il vous plaît, quoi que vous fassiez, configurez le package d'annonces pour utiliser une police à largeur fixe (comme dans votre exemple; vous trouverez l'option dans la documentation). Le paramètre par défaut utilise un jeu de polices proportionnel sur une grille, ce qui est, à mon humble avis, incroyablement laid et illisible, comme on peut le voir dans les autres réponses avec des images. Je suis personnellement très irrité quand je dois lire un type de code dans une police proportionnelle.
Essayez de définir une police à largeur fixe avec ceci:
la source
Je me demande pourquoi personne n'a mentionné le paquet Minted . Il a une bien meilleure mise en évidence de la syntaxe que le package de listes LaTeX. Il utilise des Pygments .
Exemple dans LaTeX:
Ce qui se traduit par:
Vous devez utiliser l'indicateur
-shell-escape
avec la commande pdflatex.Pour plus d'informations: https://www.sharelatex.com/learn/Code_Highlighting_with_minted
la source
listings
).Essayez le
listings
package. Voici un exemple de ce que j'ai utilisé il y a quelque temps pour avoir une liste Java colorée:Vous voudrez peut-être personnaliser cela. Il existe plusieurs références du package d'annonces. Il suffit de les rechercher sur Google.
la source
Jetez un oeil à l'
algorithms
emballage, en particulier l'algorithm
environnement.la source
algorithm
environnement, nonalgorithmic
.algorithm
est un conteneur flottant, qui a l'air plutôt joli. Vous pouvez mettre tout ce que vous voulez à l'intérieur, même lelisting
fil Elsa mentionné.Vous pouvez effectuer plusieurs autres actions, telles que la sélection de nouvelles polices:
la source
Pour le code R que j'utilise
Et ça ressemble exactement à ça
la source