
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, listings
was Sie wollen, ändern Sie daher Ihre lsset
in
\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}}
breaklines
ermöglicht listings
den Zeilenumbruch und der andere Parameter druckt ein Symbol in der neuen Zeile, wenn ein Zeilenumbruch auftritt (verwenden Sie Ihr eigenes Symbol, obwohl \hookrightarrow
diese häufig verwendet werden).
BEARBEITEN
Um das Problem mit der Schriftgröße zu lösen, ersetzen Sie die Zeile commentstyle
durch 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 \lstset
kö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.