LaTeX文書にコードを挿入する方法のようなものがあります:
\begin{code}## Heading ##
...
\end{code}
私が本当に必要とする唯一のものは、字下げと固定幅フォントです。構文の強調表示は、必須ではありませんが、Niceにすることができます。
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}
これが結果です。
逐語的環境も使用できます
\begin{verbatim}
your
code
example
\end{verbatim}
インラインコードを追加する方法は次のとおりです。
インラインコードは{\tt code }
または\texttt{ code }
で追加できます。インラインコードをフォーマットしたい場合は、独自のコマンドを作成するのが最善です。
\newcommand{\code}[1]{\texttt{#1}}
また、コードブロックは他のファイルからロードすることができます。
\lstinputlisting[breaklines]{source.c}
breaklines
は必須ではありませんが、便利だと思います。これには\usepackage{
listings}
を指定する必要があることに注意してください。
フォーマットを行うためにPygmentsに依存している minted
などの特殊化されたパッケージは、listings
パッケージよりも優れたさまざまな利点を提供します。 minted
マニュアルから引用するには、
Pygmentsは、従来のパッケージと比較してはるかに優れた構文強調表示を提供します。たとえば、リストは基本的に文字列、コメント、キーワードのみを強調表示します。一方、Pygmentsは、ソース言語でサポートされる可能性があるトークンの種類をすべて強調するように完全にカスタマイズできます。これには、文字列、数値、さまざまな種類の識別子、およびHTMLタグなどのエキゾチックな構成要素内の特殊なフォーマットシーケンスが含まれる場合があります。
Pygments !を使用してください。
ここではまだ触れていないので、もう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}