いつもお世話になっております。
lstlisting環境の間に脚注が入ると,余計な行が頁下部に残ってしまいます。
TeXファイルとPDFも一緒にあげておきます。
脚注上部に残っている行を出さない方法を教えてください。
lstlisting環境内でコマンドを使えるように設定していますが(pagebreakを使用),コマンドの効果は出ています。
いつも質問ばかりで恐れ入りますが,教えてください。
よろしくお願いいたします。
和田 勇様
ご返信ありがとうございます。
結果を報告させていただきます。
コンパイルのかからないファイルをあげてしまい,申し訳ありませんでした。
いろいろ調べてみて,原因がわかりました。
\footnoteruleの再定義内での\noindentの使用がいけなかったようです。
以下がおかしくなる時の定義内容です
\renewcommand{\footnoterule}{%
\noindent\hrule height 0.25pt depth 0pt width 45mm%%
脚注で罫線の長さを変更したくて,\footnoteruleを再定義し\huleの前に\noindentを入れていました。
\noindentを外すとPDFのような余計な1行がでなくなりました。
また,\hspace{0pt}でもおかしくなりました。
\noindentや\hspace{0pt}が使えない理由をご存じですか。
調べていただき,ありがとうございました。
また,お手数をおかけし,申し訳ありませんでした。
今後とも,よろしくお願いいたします。
ご返信ありがとうございます。
結果を報告させていただきます。
コンパイルのかからないファイルをあげてしまい,申し訳ありませんでした。
いろいろ調べてみて,原因がわかりました。
\footnoteruleの再定義内での\noindentの使用がいけなかったようです。
以下がおかしくなる時の定義内容です
\renewcommand{\footnoterule}{%
\noindent\hrule height 0.25pt depth 0pt width 45mm%%
脚注で罫線の長さを変更したくて,\footnoteruleを再定義し\huleの前に\noindentを入れていました。
\noindentを外すとPDFのような余計な1行がでなくなりました。
また,\hspace{0pt}でもおかしくなりました。
\noindentや\hspace{0pt}が使えない理由をご存じですか。
調べていただき,ありがとうございました。
また,お手数をおかけし,申し訳ありませんでした。
今後とも,よろしくお願いいたします。
> \renewcommand{\footnoterule}{%
>\noindent\hrule height 0.25pt depth 0pt width 45mm%%
> }
これをそのまま組み込んでも最初は特に問題はなかったのですが、
別便でアップロードするソースでテスト中に小林さんのケースより
さらに悪い症状が発生してしまいました。添付画像を参考にしてください。
悪くなってしまった点
1)空行が挿入されてしまった
2)19行しかないものが 20行になってしまった
3)行番号が「14」空行「16」改ページ「15] 「17」と変
現状は footnoterule の再定義を行わないようにする方向で記述されていると
理解していますので、これ以上の追求は行わない予定です。
>\noindent\hrule height 0.25pt depth 0pt width 45mm%%
> }
これをそのまま組み込んでも最初は特に問題はなかったのですが、
別便でアップロードするソースでテスト中に小林さんのケースより
さらに悪い症状が発生してしまいました。添付画像を参考にしてください。
悪くなってしまった点
1)空行が挿入されてしまった
2)19行しかないものが 20行になってしまった
3)行番号が「14」空行「16」改ページ「15] 「17」と変
現状は footnoterule の再定義を行わないようにする方向で記述されていると
理解していますので、これ以上の追求は行わない予定です。
lstlisting は段落開始時(\everypar
)で左側の行番号や枠線を出力する処理をしているみたいです。
\noindent
や \hspace
は段落を開始するので、lstlisting 中に改ページが発生し、そのページで実行される \footnoterule
にこれらが含まれていると脚注の罫線のところで行番号や枠線を出力する処理が実行されてしまう。ということではないかと思います。
和田さんのコードで行番号が 14, 16, 15, 17 となっているのは、15 行目が出力された時点で本文の高さが \textheight
を超え改ページ処理が行われ、14 行目と 15 行目の間で改ページされ、1 ページ目の脚注の罫線出力時に \noindent
で余分な行番号 16 が出力され、2ページ目の処理が始まり 16 行目の行番号が 17 で出力される。といったことが起きているのではないかと思います。
調査してゆくと、2004 年ごろの platex を利用されていることがわかり、
その環境を用意するのが困難なので作業を中止することにします。
(最近の TeXLive でも件の問題は発生することは承知していますが。)
*経緯*
提供していただいた情報だと最初の投稿の pdf を作成した時の
.tex ではないようですね。修正を繰り返して元に戻れないのだと
思いますので、これに関しては容認することにします。
なお、いろいろな情報を追加請求した理由は、最初の投稿の .pdf を
見ると jbook でタイプセットするよう ..tex に記述されていますが、
なんらかのカスタマイズの影響も合わせて調べるためでした。
1 ページ目と2ページ目の左マージンが同じ
脚注の「1)」の前の空白がカスタマイズしているように見える
沢山のスタイルファイルが同梱されていましたが、jlisting.sty 以外は
通常 texlive に同梱されているのにな .. なんかカスタマイズしてるのかな
と思って .log をみると随分と古い latex 環境を利用されていることが判明。
--- "小林/sample.log" 2023-06-02 11:13:32.000000000 +0900
+++ "和田/sample.log" 2023-06-02 23:22:48.213315798 +0900
@@ -1,251 +1,316 @@
-This is pTeX, Version 3.141592-p3.1.4 (sjis) (Web2C 7.5.3) (format=platex 2004.9.23) 2 JUN 2023 11:13
+This is e-pTeX, Version 3.141592653-p4.1.0-230214-2.6 (utf8.euc) (TeX Live 2023) (preloaded format=platex 2023.5.21) 2 JUN 2023 23:22
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
**sample
(./sample.tex
-pLaTeX2e <2004/08/10>+0 (based on LaTeX2e <2003/12/01> patch level 0)
-(d:/ptex314/share/texmf/ptex/platex/base/jbook.cls
-Document Class: jbook 2002/04/09 v1.4 Standard pLaTeX class
-\c@@paper
その環境を用意するのが困難なので作業を中止することにします。
(最近の TeXLive でも件の問題は発生することは承知していますが。)
*経緯*
提供していただいた情報だと最初の投稿の pdf を作成した時の
.tex ではないようですね。修正を繰り返して元に戻れないのだと
思いますので、これに関しては容認することにします。
なお、いろいろな情報を追加請求した理由は、最初の投稿の .pdf を
見ると jbook でタイプセットするよう ..tex に記述されていますが、
なんらかのカスタマイズの影響も合わせて調べるためでした。
1 ページ目と2ページ目の左マージンが同じ
脚注の「1)」の前の空白がカスタマイズしているように見える
沢山のスタイルファイルが同梱されていましたが、jlisting.sty 以外は
通常 texlive に同梱されているのにな .. なんかカスタマイズしてるのかな
と思って .log をみると随分と古い latex 環境を利用されていることが判明。
--- "小林/sample.log" 2023-06-02 11:13:32.000000000 +0900
+++ "和田/sample.log" 2023-06-02 23:22:48.213315798 +0900
@@ -1,251 +1,316 @@
-This is pTeX, Version 3.141592-p3.1.4 (sjis) (Web2C 7.5.3) (format=platex 2004.9.23) 2 JUN 2023 11:13
+This is e-pTeX, Version 3.141592653-p4.1.0-230214-2.6 (utf8.euc) (TeX Live 2023) (preloaded format=platex 2023.5.21) 2 JUN 2023 23:22
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
**sample
(./sample.tex
-pLaTeX2e <2004/08/10>+0 (based on LaTeX2e <2003/12/01> patch level 0)
-(d:/ptex314/share/texmf/ptex/platex/base/jbook.cls
-Document Class: jbook 2002/04/09 v1.4 Standard pLaTeX class
-\c@@paper