
私は次の LaTeX コードを使用して、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 ファイルの 2 番目の列に重なっていることです。リスト関数が次の列に重ならず、同じ列の次の行に移動するように、どなたか助けていただけないでしょうか。これは非常に重要なことなので、どんな助けでも大歓迎です。また、リストされたコードを小さいフォント サイズにして、1 ページの列ごとにより多くのコードが収まるようにすることは可能でしょうか。
答え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
私は 2 列レイアウトを使用していませんでした (コード付録では 2 列レイアウトは避けますが、運が良ければそれはあなた次第です)。また、かなり長い行もありました。