キーボードにない文字を入力する方法の話

Windows

DTP関連の文献では、よく「"This" のような『まぬけ引用符』ではなく “This” のようなきちんとした引用符を使いましょう」という趣旨の記述があるが、このきちんとした引用符の入力方法として、「Altキーを押したままテンキーで0147を入力し、Altキーを離す」という方法が紹介されている。
なお、0147は左二重引用符であり、0148なら右二重引用符、0145なら左一重引用符、0146なら右一重引用符になる。

この0147などの数字はなんなのだろうと長らく思っていたのだが、この度たまたまWindows-1252 - Wikipediaの表を眺めていて「これだ!」となった。
下には

英語版のWindowsでは、Windows-1252の文字はAltキーを押下したままゼロに続けて文字の3桁10進符号をテンキーで入力することにより挿入できる (ゼロを省略する点以外同様の方法で、古いコードページ437の文字も入力できる)。

と書いてある。

が、「英語版の」と断り書きがあるように、日本語版は少し事情が異なるらしい。

例えば0182の「¶」を入力しようとしても「カ」が入力される。
で、半角カナの「カ」が182になるのは、(半角カナで察せられるように)Shift_JISである。

どうも、日本語版Windows 10(私の環境)でのAlt+0+数字による入力は基本的にShift_JISの1バイト部分に依り、Shift_JISで文字が割り当てられていない部分文字コード表 シフトJIS(Shift_JIS) の表の水色部分。128–159 と 224-255)についてはWindows-1252に依るようである。

そして、上の引用部には「Alt+0147」の形式ではなく「Alt+147」の形式ではCP437の文字が入力できるとあるが、これも日本語版WIndows 10では無効になっているらしく、0を入れた場合と同じものが出る。
ということは、引用符を出したいときは単純にタイプ数の少ない「Alt+147」の形式で十分だ。

覚えておくと便利そうな符号点

  • 145–148:上述の通り、引用符。二重引用符がU+201CとU+201D、一重引用符がU+2018とU+2019。
  • 149:ビュレット「•」(U+2022)。箇条書きに使う。中黒「・」(U+30FB)とは別。
  • 150:二分ダーシ(en-dash)「–」(U+2013)。範囲を表すときに使う。
  • 151:ダーシ(em-dash)「—」(U+2014)。英文中で括弧や関係詞のように使うやつ。
  • 233:「é」。Poincaréのé。
  • 246:「ö」。Schrödingerのö。

Linux

前述のWIndowsのAltキー入力の話については、 Alt code - Wikipedia という記事が英語版Wikipediaにある。これによると、LinuxではGUIツールキットやソフトによってUnicodeの直接入力ができるらしい。

上記では3種類の方法が紹介されているが、私が手許の環境*1で試して動いた方法は「Ctrl+Shift+Uを押して離した後、Unicode符号点を16進数で入力してEnterを押す」であった。

例えば、Ctrl+Shift+U→3042→Enter で「あ」が入力できるし、Ctrl+Shift+U→1f607→Enter で「😇」が入力できる。

……これでIMがない環境でもUnicode表さえあれば任意の文字が入力できる。便利!!!

*1:MATEデスクトップ