Fügen Sie den Programmcode in ein Lyx-Dokument ein

71

Was ist der beste Weg, um Python / C ++ - Code in ein Lyx-Dokument einzufügen? Der Code besteht aus kleinen Beispielen mit weniger als 20 Zeilen.

Mein Lyx-Dokument verwendet die Buchdokumentklasse.

Orjanp

Orjanp
quelle
Hier ist eine verwandte Antwort für die Hervorhebung der Javascript-Syntax: stackoverflow.com/questions/10420757/…
Akronym

Antworten:

64

Es sollte eine Option Einfügen -> Programmliste geben . Das verwendet Listings Latex-Paket, also sollten Sie das installiert haben. Die Unterstützung scheint in Lyx 1.5 hinzugefügt worden zu sein , und aus dem Screenshot geht hervor, dass es Ihnen viele Anpassungsoptionen gibt.

Alok Singhal
quelle
7
Was ich getan habe war das. Zuerst habe ich eine <box>, dann eine <Programmliste> und am Ende eine <Caption> eingefügt. Durch ein Kästchen kann ich einen sichtbaren Rahmen um den Code haben.
Orjanp
11
Gibt es eine Möglichkeit, Syntaxhervorhebungen und Zeilennummern zu erhalten?
Arun
4
Um eine Beschriftung hinzuzufügen, platzieren Sie den Cursor in der Liste und klicken Sie auf "Einfügen -> Beschriftung". Standardmäßig wird die Beschriftung über der Liste angezeigt. Um die Beschriftung nach unten zu verschieben, öffnen Sie den Dialog mit den Listeneinstellungen ("Bearbeiten -> Listeneinstellungen") und wechseln Sie zur Registerkarte "Erweitert". Fügen Sie dann den Parameter "captionpos = b" hinzu.
Tsauerwein
1
Ein weiterer Tipp: Wenn Sie die Nummerierung von "Listing 1.1 / 1.2 / ..." in "Listing 1/2 / ..." ändern möchten, fügen Sie Ihrer Dokumentpräambel "\ lstset {numberbychapter = false}" hinzu. Siehe auch Kontinuierliche v. Kapitel- / Abschnittsnummerierung von Abbildungen, Tabellen und anderen Dokumentelementen .
Tsauerwein
6
@Arun Unter "Bearbeiten -> Listeneinstellungen" können Sie eine Programmiersprache (Python, C, ...)
auswählen
70

Ich ziehe es vor, die Einträge als untergeordnetes Dokument einzufügen, damit der Code direkt aus einer Datei abgerufen wird, die Sie weiter bearbeiten und auf dem neuesten Stand halten können (Sie vermeiden das Duplizieren von Informationen, und die Wartung ist viel einfacher). Um dies in Lyx zu tun:
Einfügen-> Datei-> Untergeordnetes Dokument Ändern Sie
dann im angezeigten Fenster den Typ in Programmliste und konfigurieren Sie ihn nach Bedarf. Sie können beispielsweise den Parameter language = Python eingeben (Sie können eingeben a ? um alle Parameter anzuzeigen).
Eine Reihe von Parametern, die ich normalerweise verwende, ist:

breaklines=true //--> breaks lines to margin
captionpos=b  //--> caption at the bottom of the listing (default is "t")
frame=tb  //--> frame at the top and at the bottom of the listing
language=Python  //--> syntax highlighting for python
Vincenzo Pii
quelle
1
Gibt es überhaupt eine Farbhervorhebung? und Einzug und Schriftgröße reduzieren?
Waspinator
@waspinator weiß nicht, ob dies hilft: tex.stackexchange.com/questions/28554/…
Vincenzo Pii
1
Wie kann ich es mit lyx in der Mitte der Seite zentrieren?
Kiltek
5

Die Funktion Einfügen-> Programmliste funktioniert hervorragend. Ich möchte nur hinzufügen, dass, wenn Sie auf einem Mac arbeiten und versuchen, mit Code + V oder Rechtsklick + Einfügen direkt einen Codeblock in die Programmliste einzufügen, das Leerzeichen nicht erhalten bleibt und Sie es manuell tun müssen Fügen Sie das Leerzeichen ein, indem Sie Tabulatoren, Rückgaben usw. eingeben.

Eine sehr einfache Möglichkeit, dies zu umgehen, ist das Einfügen mit Umschalt + Befehl + V. Dadurch bleibt das gesamte Leerzeichen Ihres ursprünglichen Quellcodes erhalten.

xdavidliu
quelle
Wie kann ich es in der Mitte der Seite zentrieren? Und kann die Hintergrundfarbe ändern? wie grau.
rld