zref-clever の日本語対応について意見を募りたい

zref-clever の日本語対応について意見を募りたい

- ya ra の投稿
返信数: 5

zref-clever はいくつかの言語に対応するようになっており、v.0.4.8 現在、以下の 8 つの言語に対応しています。

  • 英語
  • イタリア語
  • オランダ語
  • スペイン語
  • ドイツ語
  • フランス語
  • ポルトガル語
  • ロシア語

今回、これに加えて日本語を対応させたいと考えています。

組織やジャーナル、想定される利用状況等によって慣習は異なると思いますが、どの場面であっても奇妙ではないフォーマルな日本語対応を目指したいと考えています。

zref-clever に関する概要は「zref-clever で簡単に相互参照しよう #LaTeX - Qiita」を参照してください。

素案

先に示した Qiita の記事 で示されている日本語対応の例をちょっとだけ変更したものを素案とします。

概ねこの素案で良いと思っていますが、他にご意見を聞きたいと考えています。

\zcDeclareLanguage[allcaps]{japanese}
\zcLanguageSetup{japanese}{
  namesep   = {\nobreak} ,
  pairsep   = {と} ,
  listsep   = {、} ,
  lastsep   = {、および} ,
  tpairsep  = {および} ,
  tlistsep  = {、} ,
  tlastsep  = {、および} ,
  notesep   = {:} ,
  rangesep  = {から} ,
  type = book ,
    Name-sg = 第 ,
    Name-pl = 第 ,
    refbounds = {,,,編} ,
  type = part ,
    Name-sg = 第 ,
    Name-pl = 第 ,
    refbounds = {,,,部} ,
  type = chapter ,
    Name-sg = 第 ,
    Name-pl = 第 ,
    refbounds = {,,,章} ,
  type = section ,
    Name-sg = 第 ,
    Name-pl = 第 ,
    refbounds = {,,,節} ,
  type = paragraph ,
    Name-sg = 第 ,
    Name-pl = 第 ,
    refbounds = {,,,段落} ,
  type = appendix ,
    Name-sg = 付録 ,
    Name-pl = 付録 ,
  type = page ,
    Name-sg = p. ,
    Name-pl = pp. ,
    namesep = ~ ,
    rangesep = \textendash ,
    rangetopair = false ,
  type = line ,
    Name-sg = l. ,
    Name-pl = l. ,
    namesep = ~ ,
    rangesep = \textendash ,
    rangetopair = false ,
  type = figure ,
    Name-sg = 図 ,
    Name-pl = 図 ,
  type = table ,
    Name-sg = 表 ,
    Name-pl = 表 ,
  type = item ,
    Name-sg = 項目 ,
    Name-pl = 項目 ,
  type = footnote ,
    Name-sg = 脚注 ,
    Name-pl = 脚注 ,
  type = endnote ,
    Name-sg = 後注 ,
    Name-pl = 後注 ,
  type = note ,
    Name-sg = 注記 ,
    Name-pl = 注記 ,
  type = equation ,
    Name-sg = 式 ,
    Name-pl = 式 ,
    refbounds-first-sg = {,(,),} ,
    refbounds = {(,,,)} ,
  type = theorem ,
    Name-sg = 定理 ,
    Name-pl = 定理 ,
  type = lemma ,
    Name-sg = 補題 ,
    Name-pl = 補題 ,
  type = corollary ,
    Name-sg = 系 ,
    Name-pl = 系 ,
  type = proposition ,
    Name-sg = 命題 ,
    Name-pl = 命題 ,
  type = definition ,
    Name-sg = 定義 ,
    Name-pl = 定義 ,
  type = proof ,
    Name-sg = 証明 ,
    Name-pl = 証明 ,
  type = result ,
    Name-sg = 結果 ,
    Name-pl = 結果 ,
  type = remark ,
    Name-sg = 注意 ,
    Name-pl = 注意 ,
  type = example ,
    Name-sg = 例 ,
    Name-pl = 例 ,
  type = algorithm ,
    Name-sg = アルゴリズム ,
    Name-pl = アルゴリズム ,
  type = listing ,
    Name-sg = コード ,
    Name-pl = コード ,
  type = exercise ,
    Name-sg = 演習 ,
    Name-pl = 演習 ,
  type = solution ,
    Name-sg = 解法 ,
    Name-pl = 解法 ,
}

前提事項

zref-clever には大きく 2 つの部分で日本語対応が必要になります。

接続助詞:

pairsep 同じカウンタを 2 つ参照する場合の接続助詞
listsep 同じカウンタを 3 つ以上参照する場合の最後以外の接続助詞
lastsep 同じカウンタを 3 つ以上参照する場合の最後の接続助詞
rangesep カウンタを範囲で参照する場合の接続助詞
tpairsep 異なるカウンタを 2 つ参照する場合の接続助詞
tlistsep 異なるカウンタを 3 つ参照する場合の最後以外の接続助詞
tlastsep 異なるカウンタを 3 つ参照する場合の最後の接続助詞
namesep 参照名とカウンタの間
notesep note オプションで追加した参照のノートとの間

カウンタの参照名:

book 編(\bookmemoir 文書クラス等で \part と同じレベルの見出しとして定義される)
part 部(\part
chapter 章(\chapter
section 節(\section
paragraph 段落(\paragraph
appendix 付録(\appendix
page ページ
line 行(memoir 文書クラスの poemlinelistings パッケージの lstnumber に対応)
figure 図(figure 環境)
table 表(table 環境)
item 番号付きリストの項目(enumerate 環境)
equation 数式
footnote 脚注
endnote 後注
note footnoteendnote 以外の注
algorithm アルゴリズム(algorithms パッケージなどのキャプション番号)
listing コード(listings パッケージのキャプション番号)
theorem 定理
corollary
definition 定義
example
exercise 演習
lemma 補題
proof 証明
proposition 命題
remark 注意
result 結果
solution 解法

今回、これらの既定となる日本語構成を考えますが、ユーザーがこれらの個別変更も可能です。 そのため、ある程度多くの人の合意の得られる形になっていれば良いと考えています。

特に知りたいこと

今回、私が本ディスカッションで特に知りたいことは以下の点です。

  • 複数のカウンタを参照した際の接続助詞
  • いくつかのカウンタの参照の仕方
  • 改行を避けた方が良い箇所

複数のカウンタを参照した際の接続助詞

zref-clever では、複数のカウンタを参照する場合、カウンタの間に自動的に接続助詞を挿入します。

cleveref における日本語構成の接続助詞を見ると、以下のようにすることが妥当だと考えられます。

  pairsep   = {と} ,
  listsep   = {、} ,
  lastsep   = {、および} ,
  tpairsep  = {および} ,
  tlistsep  = {、} ,
  tlastsep  = {、および} ,
  rangesep  = {から} ,

また、読点を のどちらにするべきかも疑問の余地があります。どちらの方が好ましいでしょうか。

いくつかのカウンタの参照の仕方

日本語で以下のカウンタを参照する場合の参照の仕方が知りたいです。(添付ファイルと添付画像も参考にしてください)

  • page

    “p.”・“pp.” とするか、“ページ” とするか。

    • 「pp. 1 と 3」、「pp. 1--3」、「pp. 1、3 および 5」
    • 「1 と 3 ページ」、「1--3 ページ」、「1、3 および 5 ページ」

    また、“ページ” とする場合、複数ページの参照のときカウンタそれぞれに “ページ” と当てるべきか。

    • 「1 と 3 ページ」、「1--3 ページ」、「1、3 および 5 ページ」
    • 「1 ページと 3 ページ」、「1 ページから 3 ページ」、「1 ページ、3 ページおよび 5 ページ」
  • line

    “l.” とするか、“行” とするか、“行目” とするか。

    • 「l. 1」、「l. 1--3」、「l. 1、3 および 5」
    • 「行 1」、「行 1--3」、「行 1、3 および 5」
    • 「1 行目」、「1--3 行目」、「1、3 および 5 行目」

    また、page と同じように、複数行を参照するときにそれぞれのカウンタに参照名を当てるべきか。

    • 「1 行目」、「1--3 行目」、「1、3 および 5 行目」
    • 「1 行目」、「1 行目から 3 行目」、「1 行目、3 行目および 5 行目」
  • paragraph

    \paragraph に番号が与えられることは少ないと思いますが、これを参照する場合はどのような参照名にするべきか。

    上の例では「第 1 段落」等となるようにしています。

    \sub(sub)section は「第 1.1 節」のように扱うようになっているため、\paragraph に “項” や “目” を当てることが出来ますが、\paragraph の参照名にこれらを当てるのは不自然かも……

改行を避けた方が良い箇所

素案では参照名とカウンタの間の namesep\nobreak としているのみです。これ以外にも改行を避けるように構成するべき箇所はあるでしょうか。


この他、おかしいと感じたところがあれば教えてください。

この質問の回答に期限は無いのですが、年末くらいにリポジトリに PR を出したいと考えています。


添付 ref-line-image-1.png
添付 ref-page-image-1.png
ya ra への返信

Re: zref-clever の日本語対応について意見を募りたい

- ya ra の投稿

zref-clever の日本語対応についてのご意見、お待ちしております。 本ディスカッションを開いて一週間くらい経ちますが、いまだ肯定も否定もご意見がいただけないため少し寂しい次第です。


ここでは、本ディスカッションに関して重要な事項があったので追記します。

zref-vario

zref-vario は zref-clever と varioref を連携させるためのパッケージです。

このパッケージは zref-clever のページ参照を利用するため、これらの兼ね合いを考慮するべきでした。 (本ディスカッションを開く前の時点で zref-vario の存在に気付いていませんでした。)

そのため、zref-clever の PR とともに zref-vario の日本語対応も PR していきます。


zref-vario の日本語対応は以下に示すもので問題ないと考えていますが、zref-clever の日本語対応がここに波及するようになっているため、本ディスカッションに重要と考えています。 このような状況も踏まえて、zref-clever の日本語対応に関してご意見を戴けるとありがたいです。

zref-vario の日本語対応

zref-vario を varioref の日本語対応 を参考に対応させると以下に様になります。(結果は添付画像と添付ファイルにて)

\usepackage{zref-vario}
\zvLanguageSetup{japanese}
{
  reftextfaceafter  = {\zvhyperlink{\reftextvario{見開き}{次}ページ}} ,
  reftextfacebefore = {\zvhyperlink{\reftextvario{見開き}{前}ページ}} ,
  reftextafter      = {\zvhyperlink{\reftextvario{直後の}{次}ページ}} ,
  reftextbefore     = {\zvhyperlink{\reftextvario{直前の}{前}ページ}} ,
  reftextcurrent    = {\zvhyperlink{\reftextvario{この}{現}ページ}} ,
  reftextfaraway    = {\zcpageref{#1}} ,
  reftextpagerange  = {\zcpageref[range]{#1,#2}} ,
  reftextlabelrange = {\zcref[range]{#1,#2}} ,
  vrefformat        = {\zcref{#2}(\zvpageref[#1]{#2})} ,
  vrefrangeformat   = {\zcref[range]{#2,#3}(\vpagerefrange[{#1}]{#2}{#3})} ,
  fullrefformat     = {\zcref{#1}(\reftextfaraway{#1})} ,
}

※ 対応は varioref と同じものになっていますが、結果は異なるものになっています。

添付 zref-vario-ja.png
ya ra への返信

Re: zref-clever の日本語対応について意見を募りたい

- ya ra の投稿
残念ながらご意見を戴くことはできませんでしたが、ここで一区切り付けて明日あたりに PR を提出することとします 📮
このままで良いよという意見も特段無かったので、このディスカッションを開いたときに提示している例からいくつか変更を加えています。
ya ra への返信

Re: zref-clever の日本語対応について意見を募りたい

- m c の投稿
> 読点を 、 と , のどちらにするべきかも疑問の余地があります
これは著者の好みもあるでしょうし,学会等の指定が入る場合もありますから,決め打ちではなくコマンドかオプションで選択できるようになっているのが良いと思います.

学会関係ではカウンタの参照名も独自に設定されていることも多いですから,厄介だと思います.
利用者が学会スタイルファイルに合わせてカスタマイズできるのがいいと思います.
m c への返信

Re: zref-clever の日本語対応について意見を募りたい

- ya ra の投稿

ご意見ありがとうございます!

zref-clever による言語構成ではある種決め打ちのような形でしか構成できないのが現状です。そのため、いずれかの参照方法を指定する必要があります。 もちろん、日本語構成があっても、\zcsetup\zcRefTypeSetup を用いることで個別に構成を変更することができます。変更の必要があればこれらを利用すれば良いと思います。

現状の zref-clever は "言語" による区別をしているため、学会等のスタイルに合わせた調整方法を提供していません。また、今回 PR を行おうと考えているのは "日本語" 構成のサポートなので、広く通用するような表現であれば問題ないと考えています。

追々、学会に合わせた構成を zref-clever に取り込むように PR するのも良いかもしれません(あまりに煩雑で私では対応できないと思うので、これは誰かに任せます)(日本語のように参照方法が変態的に異なるような言語は他にあるのかしら……)

ya ra への返信

Re: zref-clever の日本語対応について意見を募りたい

- ya ra の投稿

PR 提出後で良いと考えていましたが、先に変更点を挙げておきます。

  • 準拠先を JIS にしました (JIS X 0807)
    • 読点は
    • page 参照は “p. ” と “pp. ”
    • line 参照は “line” と “lines”
  • book 参照は “第 N 巻”
    • Localization guideline より、book の意味を表すものは「失楽園」の巻数を参考にしていたため(memoir が詩の文書クラスだったために、“編” で良いと思っていた)
  • example 参照は 例題