Ajout de code de programmation dans LaTex / LyX

10

Peut-être que je suis juste épaisse, mais je ne trouve aucun moyen sensé de simplement coller mon code (python) dans du latex sans perdre toutes les informations de retrait (un peu important pour python).

Quelqu'un a des idées brillantes? Je ne m'inquiète pas de la coloration syntaxique; tout ce que je veux, c'est ma touche tab!

Andrew Bolster
la source

Réponses:

13

Mon environnement préféré pour ce neuf . Je l'utilise pour entrer des fichiers source entiers tels que:

\inputminted[linenos,fontsize=\scriptsize]{python}{script.py}

Vous pouvez également l'utiliser sans entrer de fichier, et plus important encore, définir le retrait qu'il gobe une fois collé:

\newminted{python}{gobble=4,linenos,fontsize=\scriptsize}
\begin{pythoncode}
    print('I am a Python script')
\end{pythoncode}

De cette façon, votre LaTeX est toujours bien en retrait, mais votre code textuel ne l'est pas. Cela fournit également une mise en évidence de la syntaxe, dont je sais que vous avez mentionné que vous n'étiez pas intéressé. Ne définissez pas la langue.

fideli
la source
4

Vous voudrez utiliser l'environnement textuel: http://web.mit.edu/vogt/www/latex/ltx-79.html

Si le problème survient immédiatement lorsque vous le collez ... utilisez-vous un IDE pour créer le document? Essayez simplement d'ouvrir le fichier dans un éditeur de texte brut comme gedit ou bloc-notes.

oadams
la source
2

Je vais avec minted, comme fideli suggéré, mais il est bon d'être au courant de l' listingsemballage , qui est une solution de latex pur ot le problème.

mintedest dérivé de Pygments , un surligneur source écrit en Python. mintedcoimes avec un pont Latex, basé sur \write18, et le texmentspackage en fournit un pour Pygments. Il n'y a pas d'inconvénient par mintedrapport aux Pygments que je connais: peut-être que les deux seront fusionnés à un moment donné.

Charles Stewart
la source
1

Pour utiliser le package d'annonces, vous devrez inclure le package et charger les langues nécessaires dans le préambule:

\usepackage{listings}
\lstloadlanguages{Python}

Définissez quelques options dans le document:

\lstset{language=Python,tabsize=2}

... et vous pouvez ensuite donner des extraits en ligne:

\begin{lstlisting}
  print ("Hello, World!")
\end{lstlisting}

... ou lisez-les depuis un fichier:

\lstinputlisting[firstline=10,lastline=20]{Hello.py}

... ou écrivez le code en ligne: \lstinline!print ("Hello, World!")!

RolKau
la source
1

Pour LyX, voir ceci (importe un document enfant en utilisant le format "listage").

Cierge magique
la source