Gostaria de saber se o pacote listings
possui 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 listings
para 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}
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}