LaTex / LyXへのプログラミングコードの追加


10

たぶん私は分厚いだけなのかもしれませんが、インデント情報をすべて失うことなく(Pythonにとって重要な)自分の(Python)コードをラテックスに単純に貼り付ける賢明な方法を見つけることができません。

誰もが明るいアイデアを持っていますか?構文の強調表示については心配していません。必要なのは、タブキーを戻すだけです。

回答:


13

このミントの私のお気に入りの環境。次のようなソースファイル全体を入力するために使用します。

\inputminted[linenos,fontsize=\scriptsize]{python}{script.py}

また、ファイルを入力せずに使用することもできます。さらに重要なこととして、いったん貼り付けられたときに、どの程度インデントがぐちゃぐちゃになるかを定義します。

\newminted{python}{gobble=4,linenos,fontsize=\scriptsize}
\begin{pythoncode}
    print('I am a Python script')
\end{pythoncode}

そうすれば、LaTeXはまだうまくインデントされますが、逐語的なコードはインデントされません。これにより、構文の強調表示も提供されます。これは、あなたが興味がなかったと言っていました。言語を定義しないでください。


4

逐語的環境を使用する必要があります:http : //web.mit.edu/vogt/www/latex/ltx-79.html

貼り付けた直後に問題が発生する場合... IDEを使用してドキュメントを作成していますか?geditやメモ帳などのプレーンテキストエディタでファイルを開いてみてください。


2

mintedfideliが示唆するように、私はを使用listingsますが、問題の純粋なLatexソリューションであるパッケージに注意することは良いことです。

mintedPythonで記述されたソースハイライターであるPygmentsから派生しています。 minted基づくラテックスブリッジとcoimes、\write18およびパッケージは Pygmentsのための1つを提供します。私が知っているPygmentsと比較してマイナス面はありません。おそらく2つはいつかマージされるでしょう。texmentsminted


1

リストパッケージを使用するには、パッケージを含めて、必要な言語をプリアンブルに読み込む必要があります。

\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!")!


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.