Wie überspringe ich Zeilen in Listen mit Punkten?

Wie überspringe ich Zeilen in Listen mit Punkten?

Ich frage mich, ob das Paket listingseine Funktion hat, mit der einige Zeilen übersprungen und durch einige Punkte ersetzt werden können, um etwa das Folgende zu erzeugen

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

... | ...

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

Ich möchte in der Lage sein, einige Zeilen anzugeben und listingssie durch Punkte zu ersetzen und auch einige Punkte als Zeilennummer zu drucken, um anzuzeigen, dass hier einige Zeilen übersprungen werden. Wenn das Überspringen beendet ist, soll außerdem mit der tatsächlichen Zeilennummer fortgefahren werden, als ob die übersprungenen Zeilen nicht übersprungen worden wären.

Hier ist mein minimales Arbeitsbeispiel, das allerdings nicht unbedingt weiterhilft.

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

Das Problem mit dem Code besteht darin, dass er keine Zeilennummern überspringt und keine Punkte als Zeilennummern für übersprungene Zeilen drucken kann.

Bitte lassen Sie es mich wissen, wenn nicht klar ist, was ich versuche. Vielen Dank im Voraus!

Antwort1

Mit einigen Modifikationen dieserAntwort, folgender Code kann verwendet werden.

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

Bildbeschreibung hier eingeben

NACHTRAG: Zeilennummern zeigen an, dass Zeilen übersprungen werden.

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

Bildbeschreibung hier eingeben

verwandte Informationen