たぶん私はただ太っているだけですが、すべてのインデント情報(Pythonにとって重要なもの)を失うことなく、(python)コードをラテックスに単純に貼り付けるための賢明な方法を見つけることができません。
誰かが何か明るいアイデアを持っていますか?構文の強調表示については心配していません。私が欲しいのはタブキーを戻すことだけです!
このための私のお気に入りの環境 minted 。私はそれを使用して、次のようなソースファイル全体を入力します。
\inputminted[linenos,fontsize=\scriptsize]{python}{script.py}
ファイルを入力せずに使用することもできます。さらに重要なのは、貼り付けた後のインデントgobblesの量を定義することです。
\newminted{python}{gobble=4,linenos,fontsize=\scriptsize}
\begin{pythoncode}
print('I am a Python script')
\end{pythoncode}
そうすれば、LaTeXはまだうまくインデントされていますが、逐語的なコードはそうではありません。これにより、シンタックスハイライトも提供されます。これは、興味がないとおっしゃっていたことです。言語を定義しないでください。
逐語的な環境を使用することをお勧めします: http://web.mit.edu/vogt/www/latex/ltx-79.html
貼り付けた直後に問題が発生する場合は、IDEを使用してドキュメントを作成していますか?geditやメモ帳などのプレーンテキストエディタでファイルを開いてみてください。
Fideliが示唆しているように、私はminted
を使用しますが、問題の純粋なラテックスソリューションである listings
パッケージ に注意することをお勧めします。
minted
は、Pythonで記述されたソース蛍光ペンである Pygments から派生しています。 minted
は、\write18
に基づいてラテックスブリッジと連携し、 texments
パッケージ はPygmentsに1つ提供します。私が知っているPygmentsと比較して、minted
にマイナス面はありません。おそらく2つはある時点でマージされるでしょう。
リストパッケージを使用するには、パッケージを含め、必要な言語を前文にロードする必要があります。
_\usepackage{listings}
\lstloadlanguages{Python}
_
ドキュメント内にいくつかのオプションを設定します。
_\lstset{language=Python,tabsize=2}
_
...次に、スニペットをインラインで指定できます。
_\begin{lstlisting}
print ("Hello, World!")
\end{lstlisting}
_
...またはファイルからそれらを読み取ります:
_\lstinputlisting[firstline=10,lastline=20]{Hello.py}
_
...またはコードをインラインで記述します:\lstinline!print ("Hello, World!")!
LyXについては、 this (「リスト」形式を使用して子ドキュメントをインポートします)を参照してください。