점이 있는 목록에서 줄을 건너뛰는 방법은 무엇입니까?

점이 있는 목록에서 줄을 건너뛰는 방법은 무엇입니까?

listings패키지 에 몇 줄을 건너뛰고 몇 개의 점으로 대체하여 다음과 같은 결과를 생성할 수 있는 기능이 있는지 궁금합니다.

1 | error_temp = 오류 - ((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}

여기에 이미지 설명을 입력하세요

관련 정보