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 |
編(\book :memoir 文書クラス等で \part と同じレベルの見出しとして定義される) |
part |
部(\part ) |
chapter |
章(\chapter ) |
section |
節(\section ) |
paragraph |
段落(\paragraph ) |
appendix |
付録(\appendix ) |
page |
ページ |
line |
行(memoir 文書クラスの poemline と listings パッケージの lstnumber に対応) |
figure |
図(figure 環境) |
table |
表(table 環境) |
item |
番号付きリストの項目(enumerate 環境) |
equation |
数式 |
footnote |
脚注 |
endnote |
後注 |
note |
footnote ・endnote 以外の注 |
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 を出したいと考えています。