LoginSignup
3
1

More than 5 years have passed since last update.

lstlisting の新しい環境を定義する \lstnewenvironment

Last updated at Posted at 2012-06-23

@k_hanazuki さんが横でやってたのを見てメモメモ。

TeX でソースコードを綺麗に表示するのに便利な listings パッケージ(これについては詳しくは listings.sty: TeX パッケージ などを参照してください)。\begin{lstlisting}... する代わりに、言語毎に \begin{C++}... のような環境を用意したい場合、どうすればいいでしょう?

実は、\newenvironment を使って次のようにしようとすると、上手くいきません:

bad-newenvironment-lstlisting.tex
\documentclass{article}
\usepackage{listings}
\lstset{language=C++}
\newenvironment{C++}{\begin{lstlisting}}{\end{lstlisting}}
\begin{document}

\begin{C++}
#include <iostream>

int main () {
  std::cout << "Hello, World!" << std::endl;
  return 0;
}
\end{C++}

\end{document}

エラーすら出ないのでよく分かりません:

% platex bad-newenvironment-lstlisting.tex
This is pTeXk, Version 3.141592-p3.1.11 (euc) (Web2C 7.5.4)
 %&-line parsing enabled.
(./bad-newenvironment-lstlisting.tex
pLaTeX2e <2006/11/10>+0 (based on LaTeX2e <2009/09/24> patch level 0)
(/usr/share/texmf-texlive/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/usr/share/texmf-texlive/tex/latex/base/size10.clo))
(/usr/share/texmf-texlive/tex/latex/listings/listings.sty
(/usr/share/texmf-texlive/tex/latex/graphics/keyval.sty)
(/usr/share/texmf-texlive/tex/latex/listings/lstmisc.sty)
(/usr/share/texmf-texlive/tex/latex/listings/listings.cfg))
(/usr/share/texmf-texlive/tex/latex/listings/lstlang1.sty)
(/usr/share/texmf-texlive/tex/latex/listings/lstlang1.sty)
(/usr/share/texmf-texlive/tex/latex/listings/lstmisc.sty)
No file bad-newenvironment-lstlisting.aux.
(/usr/share/texmf-texlive/tex/latex/base/omlcmr.fd)
(/usr/share/texmf-texlive/tex/latex/base/omscmr.fd))
*

そこで、こういう場合には \lstnewenvironment を使います。詳しくは The Listings Package (Manual PDF) を参照してください。

lstnewenvironment.tex
\documentclass{article}
\usepackage{listings}
\lstnewenvironment{C++}
  {\lstset{language=C++}}
  {}
\begin{document}


\begin{C++}
#include <iostream>

int main () {
  std::cout << "Hello, World!" << std::endl;
  return 0;
}
\end{C++}

\end{document}

これで問題なくタイプセットできました。めでたしめでたし。

ソースファイルとか: lstlisting の新しい環境を定義する \lstnewenvironment ref: http://qiita.com/items/a971b925fc6526d324c1 — Gist


参考文献

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1