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.\texttt{...} はフォントを変えるだけなので、_ や % などの特殊文字は引き続きエスケープが必要です。一方、\verb はそれらをそのまま受け付けます。
listings:言語を指定した lstlisting
listings パッケージでは lstlisting が使えます。language=... を指定すると、コードの構文が色分けされます。
language=Python の lstlisting
\begin{lstlisting}[language=Python]
def total(xs):
"""Add up the numbers in xs."""
return sum(xs)
print(total([40, 4])) # 44
\end{lstlisting}\lstinline|code| は、\verb と同じような行内の形です。
minted
minted は言語を引数に取ります。TeX のインストール環境では Python と -shell-escape オプションが必要ですが、Scissor LaTeX ではどちらもなしで使えます。
言語を指定した minted
\begin{minted}{rust}
fn main() {
let answer = 40 + 4;
println!("{}", answer);
}
\end{minted}
Inline: \mintinline{rust}{let x = 44;}読み取られるもの
| コマンド | 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 は飛ばされる
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