LaTeXドキュメントにコードを挿入するにはどうすればよいですか?次のようなものはありますか:
\begin{code}## Heading ##
...
\end{code}
私が本当に必要なのは、インデントと固定幅フォントだけです。必須ではありませんが、構文の強調表示は便利です。
LaTeXドキュメントにコードを挿入するにはどうすればよいですか?次のようなものはありますか:
\begin{code}## Heading ##
...
\end{code}
私が本当に必要なのは、インデントと固定幅フォントだけです。必須ではありませんが、構文の強調表示は便利です。
回答:
listings
パッケージを使用します。
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}
結果は次のとおりです。
figure
、効果が得られるでしょう。
逐語的環境を使用することもできます
\begin{verbatim}
your
code
example
\end{verbatim}
インラインコードを追加する方法は次のとおりです。
{\tt code }
またはでインラインコードを追加でき\texttt{ code }
ます。インラインコードをフォーマットする場合は、独自のコマンドを作成することをお勧めします
\newcommand{\code}[1]{\texttt{#1}}
また、コードブロックは他のファイルから
\lstinputlisting[breaklines]{source.c}
breaklines
必須ではありませんが、便利だと思います。この\usepackage{
リストのリスト を指定する必要があることに注意してください}
。
更新:リストパッケージには、\lstinline
コマンドも含まれています。このコマンドには、\lstlisting
および\lstinputlisting
コマンドと同じ構文強調表示機能があります(構成の詳細については、Cloudangerの回答を参照してください)。他のいくつかの回答で述べたように、\mintinline
コマンドを提供するmintedパッケージもあります。のように\lstinline
、\mintinline
通常のミントコードブロックと同じ構文の強調表示を提供します。
\documentclass{article}
\usepackage{minted}
\begin{document}
This is a sentence with \mintinline{python}{def inlineCode(a="ipsum)}
\end{document}
のような特殊なパッケージminted
は、Pygmentsを使用してフォーマットを行うため、listings
パッケージに比べてさまざまな利点があります。minted
マニュアルから引用すると、
Pygmentsは、従来のパッケージと比較してはるかに優れた構文強調表示を提供します。たとえば、リストは基本的に文字列、コメント、キーワードのみを強調表示します。一方、Pygmentsは完全にカスタマイズして、ソース言語がサポートする可能性のあるトークンの種類を強調表示できます。これには、文字列、数値、さまざまな種類の識別子、およびHTMLタグなどのエキゾチックコンストラクト内の特別なフォーマットシーケンスが含まれる場合があります。
-shell-escape
ディレクティブでlatexを呼び出す要件は、せいぜい、既存のビルドシステムに対するマイナーな変更であり、最悪の場合、一部のユーザーのセキュリティ設定と互換性がありません。
ここではまだ触れられていないので、パッケージを1つ追加することをお勧めします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}