我正在使用以下乳胶代码来编写附录,我需要在其中添加 Python 代码。
\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}
此代码完全满足我的需要,因此我拥有了具有 2 列的横向页面,并且代码格式正确。问题是 python 文件中的一些长行与 latex 文件的第二列重叠。有人能帮我解决一下,以便列表函数不会与下一列重叠,而是转到同一列的下一行吗?我将不胜感激任何帮助,因为这非常重要。此外,是否可以将列出的代码的字体大小缩小,以便更多代码可以适合单个页面上的每一列?
答案1
你必须说出listings
你想要什么,因此改变你lsset
的
\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
将允许listings
进行换行,并且如果发生换行,另一个参数将在新行上打印一个符号(使用您自己的符号,尽管\hookrightarrow
很常用)。
编辑
commentstyle
要解决字体大小问题,请用以下行替换:
commentstyle=\fontsize{5}{6}\selectfont\color{comments}
答案2
这主要是为了回答你的最后一点。无论如何,我在论文中使用了拉丁现代语,因此通过
basicstyle=\footnotesize\ttfamily\fontseries{lc}\selectfont,
在我的系统中,\lstset
我可以使用“拉丁现代打字机轻型浓缩版”(这里'拉丁现代的精彩写作)。这是我能找到的最窄的等宽字体(免费提供),实际上看起来相当不错。我的行号使用了\tiny
。我没有使用行延续符号,只是breakindent=0.5em
我没有使用双列布局(代码附录中会避免使用双列布局,但这取决于你是否幸运)。我还使用了一些相当长的行。