Hinzufügen von Programmcode zu LaTex / LyX

10

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

Hat jemand gute Ideen? Ich mache mir keine Sorgen um die Syntaxhervorhebung. Alles was ich will ist mein Tab zurück!

Andrew Bolster
quelle

Antworten:

13

Meine Lieblingsumgebung für diese Prägung . Ich benutze es, um ganze Quelldateien einzugeben wie:

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

Sie können es auch verwenden, ohne eine Datei einzugeben, und vor allem festlegen, wie viel Einzug es nach dem Einfügen verschlingt :

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

Auf diese Weise wird Ihr LaTeX immer noch gut eingerückt, Ihr wörtlicher Code jedoch nicht. Dies bietet auch eine Syntaxhervorhebung, von der ich weiß, dass Sie erwähnt haben, dass Sie nicht interessiert sind. Definieren Sie einfach nicht die Sprache.

Fideli
quelle
4

Sie möchten die wörtliche 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? Öffnen Sie die Datei einfach in einem einfachen Texteditor wie gedit oder notepad.

oadams
quelle
2

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 ot das Problem ist.

mintedwird von Pylements abgeleitet , einem in Python geschriebenen Quell- Textmarker . mintedpasst zu einer Latexbrücke, basierend auf \write18, und das texmentsPaket bietet eine für Pylements. Es gibt keinen Nachteil im mintedVergleich zu Pylements, von denen ich weiß: Vielleicht werden die beiden irgendwann zusammengeführt.

Charles Stewart
quelle
1

Um das Listings-Paket zu verwenden, müssen Sie das Paket aufnehmen und die erforderlichen Sprachen in die Präambel laden:

\usepackage{listings}
\lstloadlanguages{Python}

Legen Sie einige Optionen im Dokument fest:

\lstset{language=Python,tabsize=2}

... und dann können Sie entweder Snippets inline geben:

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

... oder lesen Sie sie aus einer Datei:

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

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

RolKau
quelle
1

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

Wunderkerze
quelle