Como pular linhas no lstlisting com pontos?

Como pular linhas no lstlisting com pontos?

Gostaria de saber se o pacote listingspossui um recurso que pode pular algumas linhas e substituí-las por alguns pontos, para produzir algo como o seguinte

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

... | ...

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

Gostaria de poder especificar algumas linhas e pedir listingspara substituí-las por pontos e também imprimir alguns pontos como número de linha para indicar que está pulando algumas linhas aqui. Além disso, quando o salto terminar, retome o número da linha real como se as linhas ignoradas não tivessem sido ignoradas.

Aqui está meu exemplo mínimo de trabalho, que pode não ajudar

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

O problema com o código é que ele não pula os números das linhas e não pode imprimir pontos como números das linhas ignoradas.

Por favor, deixe-me saber se não estiver claro o que estou tentando fazer, desde já agradeço!

Responder1

Com alguma modificação desteresponder, o código a seguir pode ser usado.

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

insira a descrição da imagem aqui

TERMO ADITIVO: Números de linha para indicar que está pulando linhas.

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

insira a descrição da imagem aqui

informação relacionada