Programmcode in LaTex / LyX einfügen

15916
Andrew Bolster

Vielleicht bin ich einfach nur dick, aber ich kann keinen vernünftigen Weg finden, meinen (Python-) Code einfach in Latex einzufügen, ohne alle Einzugsinformationen zu verlieren (irgendwie wichtig für Python).

Hat jemand eine gute Idee? Ich mache mir keine Sorgen über das Hervorheben der Syntax. Alles was ich will ist meine Tabulatortaste zurück!

10

5 Antworten auf die Frage

13
fideli

Meine Lieblingsumgebung für dieses Stück . Ich benutze es, um ganze Quelldateien einzugeben, wie zum Beispiel:

\inputminted[linenos,fontsize=\scriptsize] 

Sie können sie auch ohne Eingabe einer Datei verwenden und, noch wichtiger, definieren, wie viel Einzug nach dem Einfügen verschlungen wird :

\newminted \begin print('I am a Python script') \end 

Auf diese Weise ist Ihr LaTeX immer noch gut eingerückt, Ihr wortwörtlicher Code jedoch nicht. Dies bietet auch Syntax-Highlighting, von dem Sie wissen, dass Sie nicht interessiert waren. Definieren Sie einfach nicht die Sprache.

4
oadams

Sie möchten die verbatim-Umgebung verwenden: http://web.mit.edu/vogt/www/latex/ltx-79.html

Wenn das Problem sofort beim Einfügen auftritt ... verwenden Sie eine IDE, um das Dokument zu erstellen? Versuchen Sie, die Datei in einem einfachen Texteditor wie gedit oder notepad zu öffnen.

2
Charles Stewart

Ich würde gehen mit minted, wie Fideli vorgeschlagen, aber es ist gut, sich bewusst zu sein, das listingsPaket, das eine reine Latex - Lösung ist das Problem ot.

mintedwird von Pygments abgeleitet, einem in Python geschriebenen Quellmarker . mintedcoimes mit einer Latexbrücke, basierend auf \write18, und das texmentsPaket enthält eine für Pygments. Es gibt keinen Nachteil im mintedVergleich zu Pygments, von denen ich weiß: Vielleicht werden die beiden irgendwann zusammengeführt.

1
RolKau

Um das Listings-Paket verwenden zu können, müssen Sie das Paket einfügen und die erforderlichen Sprachen in die Präambel laden:

\usepackage \lstloadlanguages 

Legen Sie einige Optionen im Dokument fest:

\lstset 

... und dann können Sie entweder Inline-Schnipsel geben:

\begin print ("Hello, World!") \end 

... oder lesen Sie sie aus einer Datei:

\lstinputlisting[firstline=10,lastline=20] 

... oder schreiben Sie den Code inline: \lstinline!print ("Hello, World!")!

1
Sparkler

Informationen zu LyX finden Sie hier (importiert ein untergeordnetes Dokument im Format "Listing").