Je dois mettre en évidence le code source en LaTeX. Le package listings
semble être le meilleur choix pour la plupart des cas d'utilisation et pour moi aussi, jusqu'à maintenant.
Cependant, maintenant j'ai besoin de plus de flexibilité. En général, ce que je cherche est un véritable lexer. En particulier, j'ai besoin (pour une définition de langage personnalisée) de définir (et mettre en évidence !) des styles de numérotation personnalisés. listings
ne permet pas de mettre en évidence les nombres dans le code. Cependant, j'ai besoin de produire quelque chose comme ceci :
listings
ne peut pas non plus gérer des délimiteurs arbitraires pour les chaînes. Considérez le code Ruby valide suivant :
s = %q!this is a string.!
Ici, !
peut être remplacé par presque n'importe quel délimiteur.
(Le fait que listings
ne puisse pas gérer l'Unicode est également assez frustrant, mais c'est un autre problème.)
Idéalement, je cherche une extension de listings
qui me permet de fournir des règles de lexing plus complexes. Mais en l'absence de cela, je recherche également des alternatives viables.
D'autres fils ont suggéré d'utiliser Pygments qui peut produire une sortie LaTeX. Il y a même un package - texments
- pour faciliter la transition.
Cependant, cela manque cruellement de fonctionnalités. En particulier, je m'intéresse à la numérotation des lignes de style listings
, aux références de lignes de code source et à la possibilité d'intégrer du LaTeX dans le code source (options texcl
et mathescape
dans listings
).
Par exemple, voici un code source mis en forme avec listings
qui montre certaines des choses qu'un remplacement devrait également fournir :
[“Addition de côté” modifiée à partir de Bit Twiddling Hacks]
0 votes
Si vous n'avez pas d'objection à utiliser des outils externes tels que pygments, pourquoi ne pas simplement écrire un makefile pour votre document ?
8 votes
Ne serait-il pas judicieux de migrer vers tex.stackexchange.com ?
2 votes
@Matthias Pas sûr. Quand je l'ai posté, il n'y avait pas de tex.se mais maintenant cela semble assez utile ici - la question a eu un immense écho, alors que sur TeX.SE personne n'a encore posé une question similaire. De plus, elle se rapporte en fait spécifiquement à la programmation et aux outils de programmation donc je suppose que les programmeurs sont les personnes qui en bénéficient.
1 votes
Pour ceux qui ont oublié LaTeX pour le document qu'ils écrivent actuellement : Notez qu'avec Office Word ou LibreOffice Writer, il vous suffit de copier/coller votre code depuis par exemple Eclipse et vos couleurs seront conservées !!
3 votes
@MemoryLeaks Je ne suis pas sûr que ce conseil soit terriblement utile : les logiciels de bureautique ne sont pas un substitut valable à LaTeX (qui n'est pas un logiciel de bureautique, mais un système de publication assistée par ordinateur, ce qui signifie en gros qu'il offre une typographie nettement supérieure, en plus de tous ses autres avantages par rapport aux logiciels de bureautique).
0 votes
@KonradRudolph, mon commentaire n'est en aucun cas une comparaison des deux, ou destiné à un débat aussi populaire. J'avais une tâche à distribuer contenant du code python, j'ai passé beaucoup de temps à essayer de le mettre en LaTeX avec une mise en évidence des couleurs, après environ 30 minutes de travail là-dessus, j'ai essayé de coller mon code dans LibreOffice Writer et tout était parfait en 5 secondes. Je trouve cela très utile pour gagner du temps à quelqu'un dans une situation similaire à la mienne. N'oubliez pas qu'il s'agit d'un commentaire et non d'une réponse.