web-dev-qa-db-ja.com

このLaTeX文書に字下げ付けでコードを挿入する

LaTeX文書にコードを挿入する方法のようなものがあります:

\begin{code}## Heading ##
...
\end{code}

私が本当に必要とする唯一のものは、字下げと固定幅フォントです。構文の強調表示は、必須ではありませんが、Niceにすることができます。

359

listings packageを使用してください。

LaTeXヘッダの簡単な設定(\begin{document}の前):

\usepackage{listings}
\usepackage{color}

\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}

\lstset{frame=tb,
  language=Java,
  aboveskip=3mm,
  belowskip=3mm,
  showstringspaces=false,
  columns=flexible,
  basicstyle={\small\ttfamily},
  numbers=none,
  numberstyle=\tiny\color{gray},
  keywordstyle=\color{blue},
  commentstyle=\color{dkgreen},
  stringstyle=\color{mauve},
  breaklines=true,
  breakatwhitespace=true,
  tabsize=3
}

\lstset{language=Java}を使用して、文書の途中でデフォルトの言語を変更できます。

ドキュメント内の使用例

\begin{lstlisting}
// Hello.Java
import javax.swing.JApplet;
import Java.awt.Graphics;

public class Hello extends JApplet {
    public void paintComponent(Graphics g) {
        g.drawString("Hello, world!", 65, 95);
    }    
}
\end{lstlisting}

これが結果です。

Example image

560
Cloudanger

逐語的環境も使用できます

\begin{verbatim}
your
code
example
\end{verbatim}
131
midtiby

インラインコードを追加する方法は次のとおりです。

インラインコードは{\tt code }または\texttt{ code }で追加できます。インラインコードをフォーマットしたい場合は、独自のコマンドを作成するのが最善です。

\newcommand{\code}[1]{\texttt{#1}}

また、コードブロックは他のファイルからロードすることができます。

\lstinputlisting[breaklines]{source.c}

breaklinesは必須ではありませんが、便利だと思います。これには\usepackage{listings}を指定する必要があることに注意してください。

104
alan

フォーマットを行うためにPygmentsに依存している minted などの特殊化されたパッケージは、listingsパッケージよりも優れたさまざまな利点を提供します。 mintedマニュアルから引用するには、

Pygmentsは、従来のパッケージと比較してはるかに優れた構文強調表示を提供します。たとえば、リストは基本的に文字列、コメント、キーワードのみを強調表示します。一方、Pygmentsは、ソース言語でサポートされる可能性があるトークンの種類をすべて強調するように完全にカスタマイズできます。これには、文字列、数値、さまざまな種類の識別子、およびHTMLタグなどのエキゾチックな構成要素内の特殊なフォーマットシーケンスが含まれる場合があります。

30
Philipp

Minted を使用してください。

これは強力な Pygments ライブラリを使ってLaTeXで表現力豊かな構文の強調表示を容易にするパッケージです。このパッケージは、 fancyvrb を使用して強調表示されたソースコード出力をカスタマイズするためのオプションも提供します。

それは他のどのパッケージよりもはるかに進化しカスタマイズ可能です!

10
TheEnglishMe

Pygments !を使用してください。

4
Tarantula

ここではまだ触れていないので、もう1つのオプションpackage spverbatim を追加することをお勧めします(構文の強調表示はありません)。

\documentclass{article}
\usepackage{spverbatim}

\begin{document}

\begin{spverbatim}
  Your code here
\end{spverbatim}

\end{document}

また、構文の強調表示が不要な場合は、 alltt をパッケージ化してください。

\documentclass{article}
\usepackage{alltt}

\begin{document}

\begin{alltt}
  Your code here
\end{alltt}

\end{document}
4
MattAllegro

MintedOverleaf 、TeX LiveおよびMiKTeXで動作します。

例:

\documentclass{article}
\usepackage{minted}
\begin{document}

\begin{minted}[mathescape, linenos]{python}

# Note: $\pi=\lim_{n\to\infty}\frac{P_n}{d}$
title = "Hello World"

sum = 0
for i in range(10):
 sum += i

\end{minted}

\end{document}

出力:

enter image description here

0
Shital Shah