2-Spalten-Layout mit Python-Code darin – Überlappungsproblem

2-Spalten-Layout mit Python-Code darin – Überlappungsproblem

Ich verwende den folgenden Latex-Code, um meinen Anhang zu schreiben, dem ich Python-Code hinzufügen muss.

\section{Appendix}
\begin{landscape}
\begin{multicols}{2}
\subsection{Source Code}
\definecolor{keywords}{RGB}{255,0,90}
\definecolor{comments}{RGB}{0,0,113}
\definecolor{red}{RGB}{160,0,0}
\definecolor{green}{RGB}{0,150,0}

 \lstset{language=Python, 
    basicstyle=\ttfamily\small, 
    keywordstyle=\color{keywords},
    commentstyle=\color{comments},
    stringstyle=\color{red},
    showstringspaces=false,
    identifierstyle=\color{green},
    procnamekeys={def,class}}
    %taking python file and adding code here
    \lstinputlisting{code/Logic_K.py}
\end{multicols}
\end{landscape}

Dieser Code erzeugt genau das, was ich brauche, also habe ich eine Querformatseite mit 2 Spalten und der Code ist richtig formatiert. Das Problem ist, dass einige der langen Zeilen in der Python-Datei mit der zweiten Spalte in der Latex-Datei überlappen. Könnte mir hier jemand helfen, sodass die Auflistungsfunktion nicht mit der nächsten Spalte überlappt, sondern zur nächsten Zeile in derselben Spalte geht? Ich wäre für jede Hilfe sehr dankbar, da sie sehr wichtig ist. Wäre es außerdem möglich, den aufgelisteten Code mit einer kleineren Schriftgröße zu erstellen, sodass mehr Code in jede Spalte auf einer einzelnen Seite passt?

Antwort1

Sie müssen sagen, listingswas Sie wollen, ändern Sie daher Ihre lssetin

 \lstset{language=Python, 
    basicstyle=\ttfamily\small, 
    keywordstyle=\color{keywords},
    commentstyle=\color{comments},
    stringstyle=\color{red},
    showstringspaces=false,
    identifierstyle=\color{green},
    procnamekeys={def,class},
    breaklines=true,
    postbreak=\raisebox{0ex}[0ex][0ex]{your symbol for line break}}

breaklinesermöglicht listingsden Zeilenumbruch und der andere Parameter druckt ein Symbol in der neuen Zeile, wenn ein Zeilenumbruch auftritt (verwenden Sie Ihr eigenes Symbol, obwohl \hookrightarrowdiese häufig verwendet werden).

BEARBEITEN

Um das Problem mit der Schriftgröße zu lösen, ersetzen Sie die Zeile commentstyledurch die folgende:

commentstyle=\fontsize{5}{6}\selectfont\color{comments}

Antwort2

Dies ist hauptsächlich eine Antwort auf Ihren letzten Punkt. Ich habe für meine Abschlussarbeit ohnehin das moderne Latein verwendet, also

  basicstyle=\footnotesize\ttfamily\fontseries{lc}\selectfont,

in meinem \lstsetkönnte ich "Latin Modern Typewriter Light Condensed" verwenden (Hier's eine schöne Abhandlung über Latin Modern). Dies war die schmalste Monospace-Schriftart, die ich finden konnte (frei erhältlich), und sie sieht eigentlich ganz nett aus. Meine Zeilennummerierung verwendete \tiny. Ich habe kein Zeilenfortsetzungssymbol verwendet, nurbreakindent=0.5em

Ich hatte kein zweispaltiges Layout (und würde es für Code-Anhänge vermeiden, aber das bleibt Ihnen überlassen, wenn Sie Glück haben). Ich hatte auch einige ziemlich lange Zeilen.

verwandte Informationen