abenori / jlreq

Other
125 stars 18 forks source link

いくつかの不具合 #64

Open abenori opened 4 years ago

abenori commented 4 years ago

メールでいただいたものを転載.

  1. 脚注が二行に渡る時、カッコと数字の間のスペースが伸びる。一行の脚注と同じ幅なのが自然に思えます。(サンプル中の、2、3、12)

  2. 合印から脚注へのリンクが機能しない場合があります。合印をクリックするとpdf末ページに飛びます。(サンプルだと、手元の環境ではいずれも機能していない)

  3. reference_mark=interlinear と設定すると 合印から脚注へのリンクが、合印ではなく本文側にでます。

  4. column_spanning=true を指定するとエラーが発生し処理が止まります。無視するると、段抜きできたpdfが得られたようではあります。

  5. 別行見出しに \\(改行)を入れると、ページスタイルで参照(_section など)した時に、 \\ の位置に余分な空白が入る。

\documentclass[
  a4paper,lualatex,12pt,
  tate,twocolumn,
  hanging_punctuation,
  open_bracket_pos=nibu_tentsuki,
]{jlreq}
\jlreqsetup{
%   reference_mark=interlinear, % リンクがずれる
}

\usepackage[unicode=true]{hyperref}

\usepackage[sourcehan-jp,
    delux,
    jfm_yoko=jlreq,
    jfm_tate=jlreqv,
    expert,
    jis2004,
]{luatexja-preset}
\ModifyHeading{section}{
% column_spanning=true, % 入れるとエラー
}
\begin{document}
\section{セロ弾きのゴーシュ}
うちは手の演奏コップたちを助けを弾い実ますまし。それからどっかり気の毒ましうという子ございん。変たですんたはましすると扉の勝手みちのところにはとうとういいかげんたまして、何まで狸へありれことましでし。
\footnote{1}
\footnote{脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚}
\footnote{脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注}
\footnote{4}
\footnote{5}
\footnote{6}
\footnote{7}
\footnote{8}
\footnote{9}
\footnote{10}
\footnote{11}
\footnote{脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚注脚}
\footnote{13}
\footnote{14}
\footnote{15}
\footnote{16}
\footnote{17}
\footnote{18}
\footnote{19}
\footnote{20}

ゴーシュはゴーシュをすこしにあわててジャズをパチパチパチッのように出るて野ねずみへ押してこつこつ拍子へ弾きばいまし。

じっとまるでろにギウギウをしますた。きみたったに羽から見て次をすうたます。外を叫びですな。「ゴーシュを直します。ホール、やつが向う。

い。」みんなは今夜のなかのちょっといまのうちがなるまします。間は療をご気分を戻って眼をかぎをちがうてしきりに今度ありれるうちをとったた。とうとう失敗だまって、あげて来るてまわったて手でそしてゴーシュをしきりに時はまっましう。「わくやろ。

曲がした。ひいぞ。

ぼくはそれがラプソディに落ちがだけ手伝っ外国はみじかいのたてなあ。」誰は普通そうを弾きてかいタクト兎が立っとまし控室のゴーシュをだまって引きあげたりすていです。扉もやめて窓をふるえだだ。これはごくごく諸君はよかっへんまして先生もすこしいいのました。

「今度のこんどの小太鼓に。ばっ。」おれはしばらく叫びたござい。ゴーシュはガラスにわかっといままし。

また今夜もまるで叩くましです。
\end{document}
abenori commented 4 years ago

2についてです.2d4eef4 でコードを入れました.単にこれを使うだけだとリンクそのものが消えるだけですが,末尾をプリアンブルに入れておけば正しくリンクされると思います.縦書き時の脚注は偶数ページにしか出なかったり下段にしか出なかったりするので,場合によっては\footnotemark\footnotetextに分割して処理されます.これをhyperrefはサポートしていないので,hyperrefマニュアルの11.6にあるようなコードを書く必要があります.しかし個別パッケージに対する処理を書きたくない(パッケージ更新に追随できる自身がないので)ので,それはユーザの方でやってもらう必要があります.その差分を書くのを少し楽にしてみた,というのが更新です.

\makeatletter
\renewcommand{\footnote}{\jlreq@footnote{\footnote}{\myfootnotemark}{\myfootnotetext}}
\newcounter{mycounter}
\newcommand{\myfootnotemark}[1][]{%
  \setcounter{mycounter}{\value{footnote}}%
  \setcounter{footnote}{\numexpr #1 - 1\relax}%
  \footnotemark
  \let\mysavedHref\Hy@footnote@currentHref
  \setcounter{footnote}{\value{mycounter}}%
}
\newcommand{\myfootnotetext}[2][]{%
  \edef\jlreq@result{%
    \unexpanded{\setcounter{mycounter}{\value{footnote}}}%
    \unexpanded{\setcounter{footnote}{#1}}%
    \unexpanded{\def\Hy@footnote@currentHref}{\expandonce{\mysavedHref}}%
    \unexpanded{\footnotetext{#2}}%
    \unexpanded{\setcounter{footnote}{\value{mycounter}}}%
  }%
}
\makeatother
abenori commented 3 years ago

3はちょっといったん諦めます.5は他のクラスファイルでも同じに見えるのでとりあえずそのまま.