本文へ移動

LaTeX のコードリスト

コードを verbatim、lstlisting、minted 環境に入れるか、行内なら \verb|...| を使います。Scissor LaTeX はコードを入力したとおりに等幅フォントで組み、言語を指定すれば構文を色分けします。

verbatim

verbatim の中では何も解釈されません。バックスラッシュ、波かっこ、$、% はそのまま出力され、改行とスペースも保たれます。コードやターミナルの出力を見せるいちばん簡単な方法です。

verbatim のブロック

\begin{verbatim}
for i in range(44):
    print(i)   # $ and \textbf stay as typed
\end{verbatim}

行内のコード:\verb

\verb は、文中に短いコードを表示します。\verb の直後の文字が区切り文字になります。| や + など、コードに含まれない文字を選んでください。

\verb と \texttt による行内のコード

Call \verb|total(xs)| to add the list, or type \verb+x_1 = 44+.
For plain words in a monospaced font, \texttt{main.tex} is enough.
Scissor LaTeX による組版: \verb と \texttt による行内のコード

\texttt{...} はフォントを変えるだけなので、_ や % などの特殊文字は引き続きエスケープが必要です。一方、\verb はそれらをそのまま受け付けます。

listings:言語を指定した lstlisting

listings パッケージでは lstlisting が使えます。language=... を指定すると、コードの構文が色分けされます。

language=Python の lstlisting

LaTeXプリアンブル: \usepackage{listings}エディタで開く (新しいタブで開きます)
\begin{lstlisting}[language=Python]
def total(xs):
    """Add up the numbers in xs."""
    return sum(xs)

print(total([40, 4]))  # 44
\end{lstlisting}
Scissor LaTeX による組版: language=Python の lstlisting

\lstinline|code| は、\verb と同じような行内の形です。

minted

minted は言語を引数に取ります。TeX のインストール環境では Python と -shell-escape オプションが必要ですが、Scissor LaTeX ではどちらもなしで使えます。

言語を指定した minted

LaTeXプリアンブル: \usepackage{minted}エディタで開く (新しいタブで開きます)
\begin{minted}{rust}
fn main() {
    let answer = 40 + 4;
    println!("{}", answer);
}
\end{minted}
Inline: \mintinline{rust}{let x = 44;}
Scissor LaTeX による組版: 言語を指定した minted

読み取られるもの

コマンドScissor LaTeX では備考
verbatim、verbatim*使える
\verb、\verb*使える
lstlisting一部のみlanguage= は読み取られる。ほかのオプション(numbers、caption、frame、basicstyle、firstline など)はすべて無視される。
\lstinline使える行内では色分けされない。
\lstset{...}省かれるここで指定した言語は使われない。各リストに language= を指定すること。
minted一部のみ言語は読み取られる。linenos や frame などのオプションは無視される。
\mintinline{lang}{code}使える行内では色分けされない。
Verbatim、BVerbatim(fancyvrb)一部のみverbatim として表示される。オプションは無視される。
\lstinputlisting{file}、\inputminted{lang}{file}非対応メッセージを出して飛ばされる。コードを文書に貼り付けること。
\lstnewenvironment、\newminted非対応

構文の色分けは、Python、C、C++、Java、JavaScript、TypeScript、Rust、Go、Ruby、R、Julia、MATLAB、SQL、Bash、HTML、CSS、JSON、YAML、TeX、LaTeX など、よく使われる言語で利用できます。言語名の大文字と小文字は区別されないので、Python と python は同じです。認識されない名前では、色分けのない等幅のコードになります。

ファイルからのコード

TeX のインストール環境では、\lstinputlisting と \inputminted が別のファイルからコードを読み込みます。Scissor LaTeX はこれらを飛ばし、問題タブにその旨を表示します。

\lstinputlisting は飛ばされる

LaTeXプリアンブル: \usepackage{listings}エディタで開く (新しいタブで開きます)
The script below is not shown:
\lstinputlisting[language=Python]{scripts/total.py}
Paste the code into an lstlisting environment instead.

「問題」タブ: 1 included file is not part of this conversion

TeX のインストール環境との違い

パッケージのページは listings と minted をご覧ください。完全なマニュアルは CTAN にあります:listings、minted、fancyvrb。

よくある質問

LaTeX でコードブロックを追加するにはどうすればよいですか?

コードを \begin{verbatim} ... \end{verbatim} で囲むか、構文を色分けしたいなら [language=Python] を付けた lstlisting で囲みます。

minted はシェルエスケープなしで使えますか?

Scissor LaTeX では使えます。minted の環境は Python や -shell-escape なしで色分けされます。TeX のインストール環境では、minted には引き続き両方が必要です。

リストの行番号が表示されないのはなぜですか?

Scissor LaTeX は、numbers=left をはじめとする listings のレイアウトのオプションを無視します。読み取られるのは言語だけです。

このページの例はすべて、サイトのビルド時に Scissor LaTeX で組版されています。 最終更新:2026-11-07