AH Formatter での引用符の扱いについて、簡単に紹介します。
引用符とは、U+0022 ” や、U+201C “ U+201D ” などの文字です。
Unicode では文字をクラス分けしていて、引用符は QU というクラスに分類されています。
引用符は、”Hello” のように対で使われるため、開きと閉じが存在します。U+0022 は、開きと閉じで同じ文字が使われるので、その区別がありませんが、“Hello” のように、U+201C と U+201D を使った場合は、明らかに U+201C が開きで U+201D が閉じです。
Unicode では、行分割の規則も定めていて、QU の前後では分割不可などとなっています。しかし、開きと閉じがわかっている場合に、この規則を適用してしまうのはうまくありません。Unicode では、「言語の情報があれば、QU の引用符が開きか閉じか判定して、OP または CL として扱うとよい」と言っています。OP は開き括弧で、CL は閉じ括弧です。
これはどういうことでしょう。なぜ U+201C を始めから OP に分類しないのでしょう。
答えは、U+201C は言語によって閉じ側になり得るからです。
U+201C や U+201D などのように、向きのある引用符は、主にヨーロッパの言語によって扱いを変える必要があるのです。
EU は、公文書規則を公開していて、そこの各国語の 6.4. Word-processor punctuation marks and spacing(英語の場合)に引用符等の規則がまとめられています。
Wikipedia にも引用符に関する項目があります。
日本語。
英語。
これらを、二重引用符とギュメ(U+00AA、U+00BB)についてざっと整理すると、次のようになります。
言語 | EU | Wikipedia | |||
---|---|---|---|---|---|
af | Afrikaans | „ ” | |||
be | Belarusian | „ “ | « » | ||
bg | Bulgarian | „ “ | „ “ | ||
cs | Czech | „ “ | „ “ | » « | |
da | Danish | » « | „ “ | » « | |
de | German | „ “ | „ “ | » « | |
el | Greek | “ ” | « » | “ „ | « » |
en | English | “ ” | “ ” | ||
es | Spanish | “ ” | « » | “ ” | « » |
et | Estonian | „ ” | „ “ | « » | |
fi | Finnish | ” ” | ” ” | » » | |
fr | French | “ ” | « » | “ ” | « » |
ga | Irish | “ ” | “ ” | ||
hr | Croatian | » « | |||
hu | Hungarian | „ ” | » « | „ ” | » « |
is | Icelandic | „ “ | |||
it | Italian | “ ” | « » | “ ” | « » |
lt | Lithuanian | „ “ | „ “ | « » | |
lv | Latvian | “ ” | „ “ | « » | |
mt | Maltese | “ ” | |||
nl | Dutch | „ ” | „ ” | ||
no | Norwegian | “ ” | « » | ||
pl | Polish | „ ” | » « | „ ” |
« » or » « |
pt | Portugese | “ ” | « » | “ ” | « » |
ro | Romanian |
„ ” or “ ” |
« » | „ “ | « » |
ru | Russian | „ “ | « » | ||
sk | Slovak | „ “ | „ “ | » « | |
sl | Slovenian | „ “ | „ “ | » « | |
sq | Albanian | “ „ | « » | ||
sr | Serbian | „ “ | » « | ||
sv | Swedish | ” ” | ” ” | » » | |
tr | Turkish | “ „ | « » | ||
uk | Ukrainian | „ “ | « » |
AH Formatter は、向きのある引用符については言語情報から適切な向きを判断し、括弧類と同じに扱って組版を行ないます。
U+0022 のように、向きのない引用符に対して、AH Formatter は次のようにしてなるべく開きと閉じの区別を付けて組版を行ないます。
- 文字列頭の向きのない引用符は、OP とみなす。
- 文字列末の向きのない引用符は、CL とみなす。
- 文字列中の向きのない引用符は、直後が空白でなく直前が空白なら OP とみなす。
- 文字列中の向きのない引用符は、直前が空白でなく直後が空白なら CL とみなす。