いま、プログラム言語についてのマニュアルを作っている者です。
lstlistingでプログラムコードを記述していますが、
\begin{lstlisting}
...プログラムコード...
\end{lstlisting}
だとうまく行くのですが、これに[language=Python]の言語をオプションで指定すると、日本語のところでエラーになります。日本語がなければ、エラーにはなりませんが、期待されたような強調構文になりません。
これは、私がLuaLaTeXでコンパイルする時に遭遇するエラーで、
pLaTeXでコンパイルすると、日本語もうまく通りますし、構文も強調されます。
他のパッケージの関係で、LuaLaTeXを使いたいのですが、LuaLaTeXを使いながら、
lstlistingでオプションに[language=Python]を指定して、しかも日本語が正しく表示されるようにするには、何か回避策がありますでしょうか?
どうぞよろしくお願い致します。
エラーになるソースをアップしていただいた方が、レスポンスは速いと思います。
サンプルソースを作成してみましたので、試行された結果を教えてください。
\documentclass{jlreq}
%\usepackage{listings, jlisting}% lltjp-listings 以外の時のテストのため
%\usepackage{color}
%\usepackage{luatexja-preset } %
\usepackage{lltjp-listings}
\begin{document}
\begin{lstlisting}[caption = キャプション1 , label = program1, language=Python]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import codecs
import re
import sys
from openpyxl import Workbook, load_workbook
def main() :
fp = sys.argv[1]
wb = load_workbook(filename=fp, read_only=True, keep_vba=True)
for sheet in wb :
# print(sheet.title)
rownbr = 0
for row in sheet.values :
rownbr += 1
print("日本")
if __name__ == "__main__" :
main()
\end{lstlisting}
\end{document}
和田さま
サンプルコードまで作って試していただき、ありがとうございます。
和田さんのサンプルコードを実行しましたら、私の環境でもうまく行きました。
いろいろ調べましたら、\lstsetでオプションを設定しているところで、
commentstyle={\smallitshape}
がどうやらエラーの原因になっているらしく、それをコメントアウトしたら、
languageの設定がうまく行くようになりました。
\lstset{
basicstyle={\ttfamily},
identifierstyle={\small},
% commentstyle={\smallitshape},
keywordstyle={\small\bfseries},
ndkeywordstyle={\small},
stringstyle={\small\ttfamily},
frame={tb},
breaklines=true,
upquote=true,
columns=[l]{fullflexible},
numbers=none, %% left
xrightmargin=0ex,
xleftmargin=3ex,
numberstyle={\scriptsize},
stepnumber=1,
numbersep=1ex,
lineskip=-0.5ex
}
どうもありがとうございました。
サンプルコードまで作って試していただき、ありがとうございます。
和田さんのサンプルコードを実行しましたら、私の環境でもうまく行きました。
いろいろ調べましたら、\lstsetでオプションを設定しているところで、
commentstyle={\smallitshape}
がどうやらエラーの原因になっているらしく、それをコメントアウトしたら、
languageの設定がうまく行くようになりました。
\lstset{
basicstyle={\ttfamily},
identifierstyle={\small},
% commentstyle={\smallitshape},
keywordstyle={\small\bfseries},
ndkeywordstyle={\small},
stringstyle={\small\ttfamily},
frame={tb},
breaklines=true,
upquote=true,
columns=[l]{fullflexible},
numbers=none, %% left
xrightmargin=0ex,
xleftmargin=3ex,
numberstyle={\scriptsize},
stepnumber=1,
numbersep=1ex,
lineskip=-0.5ex
}
どうもありがとうございました。