LaTeXでソースコードをテキストとして記述する

LaTeXでソースコードをテキストとして記述する

listingsLaTeX のソース コードをテキストとして使用できるパッケージはありますか?コードがスペースを取りすぎるため、パッケージは使用しないほうがよいでしょう。スペースが保持されないため、コピー/貼り付けが面倒です。

答え1

実験を始めるためのパッケージとツールに関するヒントをいくつか提供できます。私は過去にいくつかのツールを試しました。

  • 私はTeX のverbatimおよびverbatim*環境が好きです。これは、コードの小さな部分をすぐにタイプセットする簡単でわかりやすい方法です。ただし、行を折り返すことはできません。

  • fancyvrb以前このパッケージを使用していましたが、http://ctan.org/pkg/fancyvrbこれは、ソース コードの行番号への相互参照が (そもそも) 可能であることに気付いた最初のパッケージでした。ドキュメントの 14 ページと 15 ページを参照してください。

  • 私はこのlistingsパッケージをかなり頻繁に使用しています。http://ctan.org/pkg/listingsかなり複雑なパッケージですが、外部ファイルをフォーマットするオプション(コマンド\lstinputlisting)が特に役立っています。また、行を折り返したり、そのような行に開始記号と終了記号を追加したりすることもできます。VBA言語(Visual Basic for Applications)用の独自のフィルターを作成したことを覚えています。それを試すのは楽しかったです。UTF-8でコード化された文字を扱うための新しいパッケージがあります。listingsutf8パッケージを参照してください。http://ctan.org/pkg/listingsutf8私はその問題を解決するためにエスケープシーケンスを使用していましたlistings。ソースコードでCJKV(中国語、日本語、韓国語、ベトナム語)をタイプセットしていました。例えば、さようなら(さよなら!日本語ではさようなら!私はかつて、PFポストカードの準備についてプレゼンテーションをしていました。

  • コードを扱う場合R、最近では優れたツールが存在します。knitrhttp://yihui.name/knitr/) と、かなり古いツールSweave(http://www.stat.uni-muenchen.de/~leisch/Sweave/)。

  • コードを扱っている場合はSage、スタイルを試してみてくださいSageTeXhttp://ctan.org/pkg/sagetexこれはチェコ共和国のブルノ出身の Robert Mařík 氏によってプログラムされたものです。私は彼と一度直接会ったことがあります。:-)

  • 私もこのHighlightプログラムを使っています(アンドレ・シモン)。1 つのソース コードに複数の言語を混在させて強調表示するオプションがあります (LaTeX+Lua、HTML+CSS など)。これは、ファイル内のネストされた言語の書式設定と認識と呼ばれ、LuaTeX が誕生したときにその機能を要求しましたが、実現できたことを誇りに思っています。両方のプログラム (これと Pygments) は、他の言語のエクスポート オプションとして LaTeX 形式を提供します。スタイルは、ドキュメントの残りの部分とは別のファイルに抽出できます。

  • Pygments言及する価値があるのは、(と呼ばれる非常に強力なツールですhttp://pygments.org/)。私はこれをコマンドラインから直接使用しています(または Python 内のライブラリとして使用しています)。また、TeX の世界には、変換を容易にするパッケージが(少なくとも) 2 つあります。TeXmentshttp://ctan.org/pkg/texments) そしてMintedhttp://ctan.org/pkg/minted)。Pythonといえば、 というパッケージもありますPythonTeXhttp://ctan.org/pkg/pythontex。 試してみる!

  • 私は最近このpandocツールについて知りました。http://johnmacfarlane.net/pandoc/フォーマット間のコンバーターですが、試してみる価値はあります。すべての主要オペレーティングシステム用の独立した実行ファイルに加えて、オンラインバージョンもあります。http://johnmacfarlane.net/pandoc/try/LaTeX 形式は、コンバーターの入力側と出力側のオプションです。このツールは未来から来たようです!

ソースコードのタイプセット頑張ってください!

答え2

これは、TeX を学習している生徒に宿題のソース コードを渡すときに私が使用する慣用句です。生徒はこれを学習して、数学の文章を書くときに編集することができます。

\documentclass{article}
\usepackage{verbatim}

\begin{document}

Homework exercises here \ldots 

\newpage

Here is the \LaTeX{} source for this document. You can cut it from the
pdf and use it to start your answers. I used the \verb!\jobname! macro
for the source file name, so you can call your file by any name you like.

\verbatiminput{\jobname}

\end{document}

答え3

これは、verbatimbox縮小されたサイズでボックス内に配置するために使用します。 を使用すると、ボックスをさらに縮小できます。\scaleboxボックスはページ境界を越えて分割されませんが、パッケージには、ページを越えて分割されるマクロの一部の「nobox」バージョンも用意されています。ただし、ボックス機能は、図や表にそのまま含めたり、行の右側に移動したり、中央に配置したりするのに適しています。

この MWE では、わかりやすくするために、すべての逐語的ボックスの周囲に手動で囲みを追加しました\fboxが、それらは逐語的ボックスの一部ではありません。

\documentclass{article}
\usepackage{verbatimbox}
\usepackage{graphicx}
\parskip 1ex
\parindent 0in
\begin{document}
With verbatimbox, you can tell the macro to make the code ``footnotesize.''\par
\begin{verbbox}[\footnotesize]
Here is my input code text
Line two of my $%& code text
Done now.
\end{verbbox}
\fbox{\theverbbox}\par
If it is from a file, I can do that, too, this time \verb|\scriptsize|:\par
\verbfilebox[\scriptsize]{junk.tex}
\fbox{\theverbbox}\par
Alternately, you could shrink it further with a \verb|\scalebox|:\par
\fbox{\scalebox{.5}{\theverbbox}}\par
If you have need to break across pages, the package offers ``nobox'' versions
of some of its macros.
\end{document}

ここに画像の説明を入力してください

また、numberedblock次のような方法で小さなコード ブロックをフォーマットできるパッケージです (注: 画像はパッケージのドキュメントから取得)。

ここに画像の説明を入力してください

答え4

verbatimの問題点は、長いコード行を分割しないことです。そのため、spverbatim代わりにパッケージを使用します。

サンプル出力

\documentclass{article}

\usepackage{spverbatim}

\begin{document}

\begin{spverbatim}
code
code with a very long line that does not fit on the page and so needs to be broken or wrapped
code
\end{spverbatim}

\end{document}

関連情報