TeX works に python のコードを lstlisting で挟んで貼るとコメント文が移動してしまいます

TeX works に python のコードを lstlisting で挟んで貼るとコメント文が移動してしまいます

- 大塚 良太 の投稿
返信数: 4
こんにちは。TeX works を使い始めて日が浅い学部生です。
Windows 10 にインストールした TeX Live 2021 でレポートを作成しています。
奥村先生の『LaTeX2ε 美文字作成入門』は所持しております。

python の日本語のコメント文を含むコードを,以下の記事のコードをコピペして,
\begin{lstlisting} と \end{lstlisting} とで挟んで実行すると,
エラーは起きないものの,コードが正しく表示されない(コメント文が別の場所に移動する)という現象が起きてしまいます。

https://qiita.com/ta_b0_/items/2619d5927492edbb5b03

友人の Overleaf 環境下では問題なくpdfにできるというのですが
どのようにしたら解決しますか。

大学のレポートということもあり,「.tex」ファイルをそのまま貼ることはできませんがよろしくお願い致します。
内容を省いた TeX のコマンドを貼らせて頂きます。

\documentclass[a4paper,dvipdfmx]{jsarticle}
\usepackage[dvipdfmx]{graphicx}
\usepackage{tikz}
\usepackage{here}
\usetikzlibrary{intersections, calc, arrows.meta}
\usepackage{listings,jvlisting}
\title{}
\author{}
\begin{document}
\maketitle
\section{目的}

\section{方法}
\subsection{}
\subsection{}
\noindent(1) \\
(2)\\
(3)\\
(4)

\begin{figure}[H]
\centering
\begin{tikzpicture}
\end{tikzpicture}
\caption{}
\end{figure}

\section{}

\section{}

\subsection{}

\begin{figure}[H]
\centering
\includegraphics[width=10cm]{}
\caption{}
\end{figure}

\subsection{}

\begin{figure}[H]
\centering
\includegraphics[width=10cm]{}
\caption{}
\end{figure}

\begin{figure}[H]
\centering
\includegraphics[width=10cm]{}
\caption{}
\end{figure}

\begin{figure}[H]
\centering
\includegraphics[width=10cm]{}
\caption{}
\end{figure}

\begin{figure}[H]
\centering
\includegraphics[width=10cm]{}
\caption{}
\end{figure}

\begin{figure}[H]
\centering
\includegraphics[width=10cm]{}
\caption{}
\end{figure}

\section{考察}

\section{ソースコード}
\subsection{例示されたプログラム}
\begin{lstlisting}
# -*- coding: utf-8 -*-
ここにコメント文を含む python のコード

\subsection{改良したプログラム}
# -*- coding: utf-8 -*-
ここにコメント文を含む python のコード

\end{document}
大塚 良太 への返信

Re: TeX works に python のコードを lstlisting で挟んで貼るとコメント文が移動してしまいます

- 和田 勇 の投稿
添付されたソースだけでは、「\lstset」がないなど ....お困りの内容が把握できません。

lstlisting に関する部分だけにし、私の稚拙な python script の抜粋したもので処理できるようにしたものを雛形に提供します。

pdf ファイルをお絵描きエディタなどに取り込んで、どの辺がおかしいか、加筆したものを画像としてアップロードしていただけませんか?

あるいは、提供した .tex に「おかしくなるようなコメント」になるよう修正したものを .log .pdf を同梱した形でアップロードしてください。
和田 勇 への返信

Re: TeX works に python のコードを lstlisting で挟んで貼るとコメント文が移動してしまいます

- 大塚 良太 の投稿
和田様

\lstset{
language = Python,% プログラム言語
}
を入れることで,python の日本語のコメント文が移動してしまう問題は解決しましたが,添付した zip ファイルの通り,「73日後」(python のスクショ)が「日後73」(TeXのスクショ)というようになってしまいます。
よろしくお願いします。
大塚 良太 への返信

Re: TeX works に python のコードを lstlisting で挟んで貼るとコメント文が移動してしまいます

- 和田 勇 の投稿
以下のURL の情報で解決できると思います。

  http://www.yamamo10.jp/yamamoto/comp/latex/make_doc/source/source.html

  検索のキーワードは、ズバリ以下の通りです。
 「latex listing python の日本語のコメント文が移動」

  ただし、ちょっとみた限りだと、ダウンロードした jlisting.sty.bz2 の解凍は
ご利用の環境では困難かもしれませんので、utf-8 にしたものを添付しておきます。

とりあえず、お使いになるのであれば、コンパイルするソースと同じところにおいてください。
いろいろなところでお使いの場合は、TEXMFHOME か TEXMFLOCAL という latex が
参照するディレクトリに配置する必要があるので、そのようなご要望があれば後ほど
置き場所案を提案したいと思います。その際は、利用されている OS  を教えてください

それから、肝心のソースですが、差分情報は以下に示す通りなので、参考にしてください。

        --- 2023-01-02-X/2023-01-02.tex
        +++ 2023-01-02/2023-01-02.tex
        @@ -1,6 +1,6 @@
        %#! ptex2pdf -l
        \documentclass[dvipdfmx]{jsarticle}
        -\usepackage{listings,jvlisting}
        +\usepackage{listings,jlisting,jvlisting}
        \begin{document}
        \section{例示されたプログラム}
        \lstset{
        @@ -23,7 +23,7 @@
                  print(sheet.title)
                  for row in sheet.values :
                        addrs = []
        -              skip = 1 # 行末の未記入セルをスキップ
        +              skip = 1 # 行末の未記入セルをスキップ 73日後
                        for value in reversed(row) : # 行末から
                        ... 省略 ...
                      print(addrs)
和田 勇 への返信

Re: TeX works に python のコードを lstlisting で挟んで貼るとコメント文が移動してしまいます

- 大塚 良太 の投稿
和田様

指示していただいた通りに実行することで,pythonのコメント文の数字と日本語が反転する問題を解決できました。ありがとうございました。