お世話になります。
listingsで載せたコードをコピーする際、行番号も選択されてしまうことが気になっており、対処法を模索していました。
今のところStack Exchangeであった最後の回答を参考にしています。
本来行番号を出力するところでは出力せず、グローバルマクロ \typesetPendingLineNumbers
に追加しておき、lstlistingの終わりで作成したフックで出力します。
ここで、改ページを伴う場合においても、行番号をうまく表示させたいと考えて以下のコマンドを追記しました。
\AddToHookNext{shipout/before}{%
\setbox\ShipoutBox=\vbox{ \box\ShipoutBox%
\begin{tikzpicture}[remember picture, overlay]%
\typesetPendingLineNumbers
\end{tikzpicture}}%
\gdef\typesetPendingLineNumbers{}%
}
改ページするとき、今まで蓄えていた行番号を出力し、グローバルマクロ \typesetPendingLineNumbers
をリセットするつもりで書きました。
しかしこの変更を加えると、次ページに表示されるべき行番号が一部分だけ前ページに表示されるようになってしまいました。この様子を以下の画像で示します。
マクロ作成についてはあまり経験がなく、追記したコードに何かしら問題があるのかもしれないと考えています。
なお、私の環境はWindows PCで、TeX Live 2023を使用して以下のコマンドでビルドしています。latexmk -pdfdvi .\main.tex
以上の現象の原因および対処方法について、ご教示いただけますと幸いです。
よろしくお願いいたします。