ドットを使用してリスト内の行をスキップするにはどうすればよいですか?

ドットを使用してリスト内の行をスキップするにはどうすればよいですか?

listingsパッケージに、いくつかの行をスキップしてドットに置き換えて、次のようなものを作成できる機能があるかどうか疑問に思っています。

1 | error_temp = error - ((numpy.linalg.norm(b, 'fro')) ** 2.0)

... | ...

5 | 誤差 -= (numpy.linalg.norm(b[j, :])) ** 2.0

いくつかの行を指定して、listingsそれらをドットに置き換えるように要求し、ここでいくつかの行をスキップしていることを示すために、行番号としていくつかのドットを印刷できるようにしたいと思います。また、スキップが終了したら、スキップされた行がスキップされなかったかのように、実際の行番号に再開します。

これは私の最小限の動作例ですが、役に立たないかもしれません

\documentclass{article}
\usepackage{listings}
\lstset{breaklines = true, frame = trBL, tabsize = 4, basicstyle = \small \ttfamily, keywordstyle = \color{blue}, stringstyle = \color{red}, rulecolor = \color{black}, numbers = left, numberstyle = \tiny}

\begin{document}

\begin{lstlisting}[language = Python, escapeinside = {(*@}{@*)}]
error_temp = error - ((numpy.linalg.norm(b, 'fro')) ** 2.0)
(*@ \cdots @*)
error -= (numpy.linalg.norm(b[j, :])) ** 2.0
\end{lstlisting}

\end{document}

このコードの問題は、行番号をスキップできず、スキップした行の行番号としてドットを印刷できないことです。

私が何をしようとしているのかが明確でない場合はお知らせください。よろしくお願いします。

答え1

これを少し修正すると答え次のコードが使用される可能性があります。

\documentclass{article}
\usepackage{listings,xcolor}
\lstset{breaklines = true, frame = trBL, tabsize = 4, basicstyle = \small \ttfamily, keywordstyle = \color{blue}, stringstyle = \color{red}, rulecolor = \color{black}, numbers = left, numberstyle = \tiny}

\let\origthelstnumber\thelstnumber
\makeatletter
\newcommand*\Suppressnumber{%
  \lst@AddToHook{OnNewLine}{%
    \let\thelstnumber\relax%
  }%
}

\newcommand*\Reactivatenumber{%
  \lst@AddToHook{OnNewLine}{%
   \let\thelstnumber\origthelstnumber%
  }%
}
\makeatother

\begin{document}

\begin{lstlisting}[language = Python,escapeinside=||]
error_temp = error - ((numpy.linalg.norm(b, 'fro')) ** 2.0)|\Suppressnumber|
 ... 
 ...
 ...|\Reactivatenumber|
error -= (numpy.linalg.norm(b[j, :])) ** 2.0
\end{lstlisting}

\end{document}

ここに画像の説明を入力してください

補遺: 行をスキップしていることを示す行番号。

\documentclass{article}
\usepackage{listings,xcolor}
\lstset{breaklines = true, frame = trBL, tabsize = 4, basicstyle = \small \ttfamily, keywordstyle = \color{blue}, stringstyle = \color{red}, rulecolor = \color{black}, numbers = left, numberstyle = \tiny}

\let\origthelstnumber\thelstnumber
\makeatletter
\newcommand*\Suppressnumber{%
  \lst@AddToHook{OnNewLine}{%
    \let\thelstnumber\relax%
  }%
}

\newcommand*\Reactivatenumber{%
  \lst@AddToHook{OnNewLine}{%
   \let\thelstnumber\origthelstnumber%
  }%
}
\makeatother

\begin{document}

\begin{lstlisting}[language = Python,escapeinside=||]
error_temp = error - ((numpy.linalg.norm(b, 'fro')) ** 2.0)|\Suppressnumber|
 |\thelstnumber|
 |\thelstnumber|
 |\thelstnumber||\Reactivatenumber|
error -= (numpy.linalg.norm(b[j, :])) ** 2.0
error -= (numpy.linalg.norm(b[j, :])) ** 2.0
\end{lstlisting}

\end{document}

ここに画像の説明を入力してください

関連情報