¿Cómo omitir líneas en el listado con puntos?

¿Cómo omitir líneas en el listado con puntos?

Me pregunto si el paquete listingstiene una función que pueda omitir algunas líneas y sustituirlas con algunos puntos, para producir algo como lo siguiente

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

... | ...

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

Me gustaría poder especificar algunas líneas y solicitar listingssustituirlas con puntos y también imprimir algunos puntos como número de línea para indicar que se están saltando algunas líneas aquí. Además, cuando finalice el salto, continúe con el número de línea real como si las líneas omitidas no se hubieran omitido.

Aquí está mi ejemplo de trabajo mínimo, que aunque podría no ayudar

\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}

El problema con el código es que no omite números de línea y no puede imprimir puntos como número de línea para las líneas omitidas.

Avíseme si no está claro lo que estoy tratando de hacer, ¡gracias de antemano!

Respuesta1

Con alguna modificación de estorespuesta, se puede utilizar el siguiente código.

\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}

ingrese la descripción de la imagen aquí

APÉNDICE: Números de línea para indicar que se está saltando líneas.

\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}

ingrese la descripción de la imagen aquí

información relacionada