みちのいに!!

自分のメモと、他にもハマる人がいそうなことを書く

LaTeX Listings.styのlinerange

\documentclass[11pt,a4paper,uplatex]{jsarticle}
\usepackage{listings,jlisting}
\begin{document}

    \lstinputlisting[language=C,linerange={1-10,49-66,}]{./source/C/sample.c}

\end{document}
これなに?

Listingsパッケージを使うとソースコードを簡単に表示できる。

\begin{lstlisting}[caption=sample,language=C]
for(int i = 0;i < 10;i++){
    hogehoge(i);
}
\end{lstlisting}

といったように直接ソースコードを記述することもできるし、

    \lstinputlisting[language=C,linerange={1-10,49-66,}]{./source/C/sample.c}

と、外部ファイルから取り込みもできる。

死因

外部ファイルから取り込むときに、表示する行を指定できる。(LaTeXで出力される行番号は追従しないので注意)

10行目から表示

firstline=10

20行目まで表示(なんかできなかった)

lastline=20

10行目から20行目まで表示(なんかできなかった)

linerange={10-20,}

10行目から20行目と50行目から60行目を表示(できた)

linerange={10-20,50-60}

10行目から20行目を表示(苦肉の策)

linerange={10-20,99999-999999}


なんでできないんだろう
ちなみに後から最後の99999-999999を消してコンパイルし直すと通ったりするからますますよく分からん。