2017年5月19日金曜日

ハイフンの重箱の隅

どうもです。ハイフンについて重箱の隅をつついてからペロペロしておこうと思います。

受注した案件のスタイルガイドに、次のような指示があった場合、皆さんどのように処理しますか。

「減算記号にはハイフンを使ってください」
「減算記号には半角ダッシュを使用してください」

言語を仕事にしている会社が書いてよい文章ではないですね。いろいろと問題のある記述ではありますが、まぁほとんどの場合、スタイルガイドの意図は「ハイフンマイナス」という記号です。つまり、キーボートで直接入力できるハイフンマイナス (Hyphen-Minus、\u002D) のことです。


「-」ハイフンマイナス (Hyphen-Minus) \u002D
キーボードの英数モードで直接入力できる ASCII 文字で、ハイフンとマイナスの両方に使用されてきました。事実上の "標準ハイフン" および "標準マイナス" です (少なくとも私の分野では)。

これだけなら、「ハイフン = ハイフンマイナス」と脳内変換すればいいのですが、厄介なことに、「ハイフン」という名称の記号もあります


「‐」ハイフン (Hyphen) \u2010
なんでこんな名称にしたのでしょう...。MS IME では、「ハイフン[全]」表示を選択して入力できます。

名前こそハイフンですが、ASCII には含まれていません。そのため、使用できない場面が多々あります。制限の多い組み込み機器の UI なんかには使用できないんじゃないかな。まぁ、IT 系で「ハイフン」と書かれている場合は、通常、ハイフンマイナスのことです。

ですが、英文の DTP を海外に発注し、DTPer に「減算記号はすべて Hyphen に変更」と指示して、\u2010 を使用されても文句は言えません (実際は起こらないと思いますが)。

まぁ、「ハイフン」という言葉を \u2010 のつもりで記載しているスタイルガイドはないと思いますが、他の演算記号が全角になっているなど、すごく怪しい場合は問い合わせた方が安心です。


ハイフンの種類

次のように、似ている記号がたくさんあります (赤がハイフンマイナス)。
-‑⁃
\u2010\u002D\u2011\u2043


正規表現

ハイフンマイナスの亜種 (というか類似記号) は、以前紹介した次の表現で検出できます。再び説明しておくと、基本ラテン語ブロックと、標準的な日本語関連ブロックから外れた文字を検出する正規表現です。半角カタカナ、全角数字、全角記号、特殊記号、日英以外の文字が検出されます。

基本ラテン文字に存在する記号の全角バージョンは、基本的に特殊文字として扱われます。例外にする場合は、赤字の部分に追加してください。日本語固有のかぎ括弧類は標準の範囲に含まれています。

.NET
[^\p{IsBasicLatin}\p{IsCJKUnifiedIdeographs}\p{IsHiragana}\p{IsKatakana}\p{IsCJKSymbolsandPunctuation}™®]

Perl
[^\x{0000}-\x{007F}\x{4E00}-\x{9FFF}\x{3040}-\x{30FF}\x{3000}-\x{303F}~™®]

ハイフンマイナス以外の類似記号がすべて検出されます。ダッシュは種類を問わず、すべて検出されます。日本語には形が類似している「ー」(長音) や「一」(いち) が存在し、また読みやすさに貢献する場面を見たことがないので、私は基本的にダッシュを使用しません。許容する人は赤字の部分に追加する必要があります。

それなりのボリュームの訳文やメモリに使ってみれば、標準以外のハイフンの混在が意外に多いことに気づくでしょう。

ちなみに私は、どのような案件に対しても、この正規表現または改変版を必ず使用しています。


この記事で言いたかったこと

「世の中の記号をすべて正式名で呼べ」と主張しているわけではありません。日常生活やブログで、ハイフンマイナスをハイフンと呼んでも、正直、どーでもいいんです。

ただし、翻訳という生産物を作成するためのワークフロー内では許されないと思います。

冒頭に記載した「半角ダッシュ」ですが、正直なんのことやら。en Dash も em Dash も表示は半角です。Hypehn-minus の社内俗称なのか、各種ダッシュ (‒、–、—、―) のいずれかを指しているのか、さっぱりわかりません...。

類似記号の多いハイフンやマイナスなどの指示を記述する場合は、翻訳者に誤解を与えないよう配慮する必要があります。つまり、実際の文字を記載するか、コード ポイントを併記する必要があります。