縦組みupLaTeX+jlreqで、頭注あるいは脚注を使いたいが方法がよくわかりません

Re: 縦組みupLaTeX+jlreqで、頭注あるいは脚注を使いたいが方法がよくわかりません

- mr2h の投稿
返信数: 8
早速の回答をいただき、感謝します。
縦書きですので \sidenote を使うのですね。\footnoteが縦書きだと傍注になるように。
お陰様で、思い描いていたイメージどおりの結果が得られました。
毎度のことですが誠に有り難うございました。
それにしても、思い通りに組版することは、むずかしいものですね。

和田さんの環境ですと、proらしくCLIなのですね。
私はGUI派で、texworks愛用者ですので、ご教示いただいた内容を再現するのに、ちょっとばかり暇がかかり、その分返事するのに時間がかかりました。

GUIに拘る理由は、tex fies の収納directory の階層が深いため、current directory に到達するのに面倒な為です。home directory直下に置けばどうということもないのでしょうね。

それはさておき、ちょっと困った現象に遭遇しました。教えていただいた方法で『頭注』を試していましたところ、長い頭注があり、枠からはみだしてしまいました

『序』のページです。長い頭注の適当な箇所で次ページへつなぎたいのです。対処方法をお尋ねします。
mr2h への返信

Re: 縦組みupLaTeX+jlreqで、頭注あるいは脚注を使いたいが方法がよくわかりません

- 和田 勇 の投稿

「 海潮音.tex」の冒頭にシェバング風の記述などを書き込んだ理由

  1. 私以外の人が検証する際に必要な情報だと思ったからです。
  • シェバング風な記述は、「 ptex2pdf -l -u -ot '--shell-escape' 海潮音」だけでも良かったようですね。反省しています。
  1. TeXLive 非標準のパッケージを使う際には、入手先 URL を記述しておいた方が良いと思います。

  2. 「 海潮音.tex」は lua を使って「フリーな「漢字字形共有サイト」である グリフウィキ を利用する」ための lua スクリプトの用意などが必要なので、そのような記述もしておいた方が良いと思います。

長い頭注があり、枠からはみだしてしまう

最初の頭注の案を反映させる時、最初は脚注部分おフォントサイズが大きかったり、 長さも10 文字分だったこともあり、 この現象が発生することは想像できていました。

これは、jlreq.cls を読んで解決策を考えてとのご要望だと思いますが、 今の所、私の力では妙案は思いつきません。

ですが再現これだけ長い注釈であれば、\sidenote \footnote \endnote などの活用するのは NG かな?

和田 勇 への返信

Re: 縦組みupLaTeX+jlreqで、頭注あるいは脚注を使いたいが方法がよくわかりません

- mr2h の投稿
枠からはみだしてしまう問題、さすがの和田さんでも難しい問題なのかしら。であれば長い頭注は諦めて、枠の中に収まる範囲に絞ってみるほか手はないですね。
mr2h への返信

Re: 縦組みupLaTeX+jlreqで、頭注あるいは脚注を使いたいが方法がよくわかりません

- しっぽ 愛好家 の投稿

添付のサンプルのようなことをお考えですか?

出力ルーチンに手を入れる必要があるので,多少難しいです.

# なお,添付のサンプルは私の作業環境(TeX Live 2018)に基づいています.

しっぽ 愛好家 への返信

Re: 縦組みupLaTeX+jlreqで、頭注あるいは脚注を使いたいが方法がよくわかりません

- mr2h の投稿
ご回答有り難うございます。tarticleでplatexを動作させた場合の頭注の事例と解しました。なかなか難しいcodeですね。ビルドし動作を確認いたしました。しかし私は八三歳の高齢者で、基礎知識が乏しく折角のご提案を応用することが難しいのです。
原稿tex fileは、およそ二〇〇ページの書籍原稿として、この『頭注」ないし『脚注」問題を別とすれば、すでに自家製本の書籍原稿として、私なりに一応完成したものなのです。縦書きuplatex、jlreq.sty(tate, bookオプションつき}で書いたものです。
頭注の枠からはみ出す問題は、解決は難問なのでしょうね。
mr2h への返信

Re: 縦組みupLaTeX+jlreqで、頭注あるいは脚注を使いたいが方法がよくわかりません

- ut の投稿
> tarticleでplatexを動作させた場合の頭注の事例と解しました。
> ………
> 縦書きuplatex、jlreq.sty(tate, bookオプションつき}で書いたものです。

とのことですが、私の手元の古い jlreq.cls [jlreq 2020/05/01] で
やってみましたら、一応、こんな感じにはなりました。

#「とりあえずちょっと試してみました」というだけで、私は jlreq
# にも、縦組みにも詳しいわけではありませんので、この件について
# 何かお尋ねいただいたとしましても、私には何もお答えできること
# はありません…。
#
# 無責任な言いっ放しで誠に申し訳ありませんが、あとはお詳しい
# 皆さまにお任せいたします。

\documentclass[
  dvipdfmx,uplatex,tate,book,paper=a5,
  sidenote_length=13zw,head_space=15zw,headfoot_sidemargin=-2zw,
  open_bracket_pos=zenkaku_tentsuki,hanging_punctuation
]{jlreq}
\reversemarginpar

% ----- https://okumuralab.org/tex/mod/forum/discuss.php?d=3964#p24656 -----
\makeatletter
\newbox\@mpar@carry@over
\global\setbox\@mpar@carry@over\box\voidb@x
\newbox\@migrated@marginpar
\global\setbox\@migrated@marginpar\vbox{}
\def\@addmarginpar{%
  \let\@addmarginpar@warning\relax
  \@next\@marbox\@currlist
      {\@cons\@freelist\@marbox \@cons\@freelist\@currbox}%
      \@latexbug
  \@tempcnta\@ne
  \@addmarginpar@side@check
  \ifnum\@tempcnta <\z@  \global\setbox\@marbox\box\@currbox \fi
  \ifvoid\@mpar@carry@over
      \@tempdima\@mparbottom
      \advance\@tempdima -\@pageht
      \advance\@tempdima\ht\@marbox
      \ifdim\@tempdima >\z@
        \def\@addmarginpar@warning{%
            \@latex@warning@no@line{Marginpar on page \thepage\space moved}}%
      \else
        \@tempdima\z@
      \fi
      \global\@mparbottom\@pageht
      \global\advance\@mparbottom\@tempdima
      \ifdim\@mparbottom>\textheight
        \def\@addmarginpar@warning{%
            \@latex@warning@no@line{Marginpar on page \thepage\space migrated to the next page}}%
        \global\setbox\@mpar@carry@over\box\@marbox
      \else
        \global\advance\@mparbottom\dp\@marbox
        \@tempdimb\ht\@marbox
        \ifdim\@mparbottom>\textheight
            \dimen@\ht\@marbox
            \advance\dimen@\dp\@marbox
            \advance\dimen@\textheight
            \advance\dimen@-\@mparbottom
            \begingroup \vbadness\@M \vfuzz\maxdimen
            \splittopskip\z@ \splitmaxdepth\maxdimen
            \setbox\z@\vsplit \@marbox to \dimen@
            \global\setbox\@mpar@carry@over\vtop{\unvbox\@marbox}%
            \setbox\tw@\copy\@mpar@carry@over
            \setbox\tw@\vsplit\tw@ to\z@
            \setbox\tw@\vbox{\unvbox\tw@ \global\setbox\@ne\lastbox}%
            \global\ht\@mpar@carry@over\ht\@ne
            \global\setbox\@marbox\vtop{\unvbox\z@}%
            \endgroup
            \def\@addmarginpar@warning{%
              \@latex@warning@no@line{Marginpar on page \thepage\space is split}}%
        \else
            \global\advance\@mparbottom\marginparpush
        \fi
      \fi
      \@addmarginpar@warning
      \ifvoid\@marbox\else
        \advance\@tempdima -\@tempdimb
        \global\setbox\@marbox\vbox{\vskip \@tempdima \box\@marbox}%
        \global\ht\@marbox\z@
        \global\dp\@marbox\z@
        \kern -\@pagedp
        \nointerlineskip
        \hb@xt@\columnwidth{\ifnum \@tempcnta >\z@
              \hskip\columnwidth \hskip\marginparsep
            \else
              \hskip -\marginparsep \hskip -\marginparwidth
            \fi
            \box\@marbox \hss}%
          \nointerlineskip
          \hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}%
      \fi
  \else
      \@latex@warning@no@line{Marginpar on page \thepage\space migrated to the next page}%
      \global\setbox\@mpar@carry@over\vtop{%
        \box\@mpar@carry@over
        \vskip\marginparpush
        \box\@marbox}%
  \fi}
\def\@addmarginpar@side@check{%
  \if@twocolumn
      \if@firstcolumn \@tempcnta\m@ne \fi
  \else
      \if@mparswitch
        \ifodd\c@page \else\@tempcnta\m@ne \fi
      \fi
      \if@reversemargin \@tempcnta -\@tempcnta \fi
  \fi}
\def\@opcol{%
  \global\setbox\@outputbox\vbox{%
      \box\@migrated@marginpar
      \nointerlineskip
      \box\@outputbox}%
  \ifvoid\@mpar@carry@over
      \global\@mparbottom\z@
  \else
      \dimen@\dp\@mpar@carry@over
      \advance\dimen@\topskip
      \advance\dimen@\marginparpush
      \global\@mparbottom\dimen@
  \fi
  \@addmarginpar@side@check
  \ifvoid\@mpar@carry@over
      \global\setbox\@migrated@marginpar\vbox{}%
  \else
      \global\setbox\@migrated@marginpar\vbox to\z@{%
        \vskip\topskip
        \vskip-\ht\@mpar@carry@over
        \hb@xt@\columnwidth{\ifnum \@tempcnta >\z@
              \hskip\columnwidth \hskip\marginparsep
            \else
              \hskip -\marginparsep \hskip -\marginparwidth
            \fi
            \box\@mpar@carry@over
            \hss}%
        \vss}%
  \fi
  \if@twocolumn \@outputdblcol
  \else        \@outputpage
  \fi
  \global\@textfloatsheight\z@
  \@floatplacement}
\makeatother

\def\Text{これは、意味のないサンプルテキストです。
  これは、意味のないサンプルテキストです。
  これは、意味のないサンプルテキストです。
  これは、意味のないサンプルテキストです。
  これは、意味のないサンプルテキストです。}
 
\def\longtext{\Text\Text\Text\Text\Text\par}
% ----- https://okumuralab.org/tex/mod/forum/discuss.php?d=3964#p24656 -----

\begin{document}

\Text\Text\Text\Text
これは、意味のないサンプルテキストです□
\sidenote{Symbolの譯語。ギリシア語のシュンポロンが語源で、もと
割符の意味であったのが記号・符牒の意味になり、さらに抽象的な事物
を示すための形象または心象の意味となった。十字架がキリスト教の、
鳩が平和の、白百合が純潔の、それぞれ象徴であるというがごときである。
この意味での「象徴」は古くから用いられていた。}。

これは、意味のないサンプルテキストです。
これは、意味のないサンプルテキストです。
これは、意味のないサンプルテキストです。
これは、意味のないサンプルテキストです。
\Text

\longtext

\Text
これは、意味のないサンプルテキストです□
\sidenote{「雨雲」と解する説もあるが(辰野隆『え・びやん』所収
「雨の日」)、おそらく「天雲」の意であろう。}。
これは、意味のないサンプルテキストです。
これは、意味のないサンプルテキストです。
これは、意味のないサンプルテキストです。
これは、意味のないサンプルテキストです。
これは、意味のないサンプルテキストです。
これは、意味のないサンプルテキストです。
これは、意味のないサンプルテキストです□
\sidenote{上田敏は何に拠ったものか明らかでないが、前田林外選訂
『日本民謡全集(明40・3)』には、下総国玉造村の「香取神社祭獅子
舞ひ歌」として、「大てらの香のけぶりはほそくともそらにのぼりて
あまくもとなる」と載っている。}。
\Text

\end{document}

添付 img_3964.jpg
ut への返信

Re: 縦組みupLaTeX+jlreqで、頭注あるいは脚注を使いたいが方法がよくわかりません

- 和田 勇 の投稿

ut さんのパッチを適用して TL2025 で試してみました。

ログファイルには、以下のように ut さんの意図されたと思われる 警告メッセージが記録jはされているのですが

        663:LaTeX Warning: Marginpar on page 3 moved.
        682:LaTeX Warning: Marginpar on page 4 moved.
        712:LaTeX Warning: Marginpar on page 6 moved.
        715:LaTeX Warning: Marginpar on page 6 moved.
        731:LaTeX Warning: Marginpar on page 6 moved.
        809:LaTeX Warning: Marginpar on page 6 is split.

頭注部分での一部文字送り?が変わっているのと、行間が若干広くなって しまい、長い注釈の場合さらにはみ出ているようです。

mr2h さんの提供された .pdf と比較した diff-pdf の結果を添付します。

「赤」の部分は mr2h さんの、「シアン」の部分は ut さんのパッチを適用したものです。

和田 勇 への返信

Re: 縦組みupLaTeX+jlreqで、頭注あるいは脚注を使いたいが方法がよくわかりません

- ut の投稿
「何もお答えできることはありません」と申し上げた手前、今回は
追記の類いはしないつもりだったのですが、

> ut さんのパッチを適用して TL2025 で試してみました。
>
> ログファイルには、以下のように ut さんの意図されたと思われる
> 警告メッセージが記録jはされているのですが

等々というのはさすがにマズいです。

和田さんがおっしゃところの「パッチ」を、私自身は一行も書いて
いないのですから。

コードはすべて、しっぽ愛好家 さんがお書き下さったものです。

せっかくこんなすごいコードをご提示下さいましたのに、それを
mr2h さんは tarticle と platex じゃないと動かないと誤解なさ
ってらしたようなので、jlreq と uplatex でちょっと試してみま
した。

あと、和田さんがご案内のあべのりさんの github の Issues の
ページには、tochu.sty の使用例も載っていますので、jlreq で
tochu.sty が使えないというのもやはり誤解なんじゃないかな、
という気もします(自分では試してはいませんけれど)。

ut への返信

Re: 縦組みupLaTeX+jlreqで、頭注あるいは脚注を使いたいが方法がよくわかりません

- mr2h の投稿
utさん、和田さん、有り難うございます。私は技術的なことはサッパリなので議論に参加することはとっくに諦めています。
しかし1ユーザーとして、何とか頭注を縦書きで実現したい「思い」だけはありますので、「はみ出し問題」を回避するために、やむなく頭注の数および記述内容を大幅に削減したところ、本意ではありませんが、形だけは格好をつけました。まだ途中ですが。添付をごらんください。