4 なかなか解決しない Mac での MATLAB における backslash 入力

「久しぶりに円記号キーについて (古い問題の解決?)」 に書いたのだけれど、悩ましい問題があって、 解決したと思っていたら、またその症状が出ている。

復習から。

バックスラッシュと円記号     今は聖徳太子みたいな MS-DOS や、 古めの Windows では、 バックスラッシュって円記号(¥)のことらしい、 といういい加減な理解でもなんとかなった、というか。 ASCII では、バックスラッシュ \ に、 0x5c (16進表記で 5c ということ、10進法では $ 5\times 16+12=92$) というコードを割り振ってあったが、 JIS では、円記号 () に 0x5c というコードを割り振った。 なるべく ASCII と同じにしたいけれど、日本人には円記号が必要なので、 あまり使用頻度が高くなさそうなバックスラッシュが身代わりに選ばれたのだろう、 と推察している (事情を確かめる気も起こらない)。

初めて知ったとき、 一瞬、通貨記号 $ の代わりにしたらよかったのでは?と思ったけれど、 そうしたら大混乱したでしょうね。 $1=360 とか書けなくなるし、まずいよね。

バックスラッシュは、 コンピューターでは、C言語のプログラムの中で特殊文字を表すため (\n は改行だとか)、 TEX のコマンドを表すため (\section{} とか)、 そして MS-DOS や Windows におけるパス名で ディレクトリィの階層を区切るための文字として使われる。 C言語のプログラミングのテキストを見ると、 ソースプログラム中に \n があって、 一方で実行画面のスナップショットに ¥n があったり、 自然と頭の中に \ $ =$ という等式が定着する。

一方、(昔は知らないのだけど、最近の) Mac では \ ははっきり区別されている。

もともと西ヨーロッパで使われる文字コードの規格 ISO-8859-1 (通称 Latin-1) では、 円記号に 0xa5 というコードを割り振っていた。 そのためか、Unicode では、 円記号の Unicode コードポイントは U+00A5 と定められた。 そして、UTF-8 では円記号のバイト表現は C2 A5 である (C2 A5 とエンコードされる、とか言うのか)。 (ネットに U+C2A5 という表記があるけれど、この表記の仕方は間違いらしい。)

区別されること自体は誤解が生じにくくて良いことだと思う。

問題はここから先である。

Mac のJISキーボードの円記号のキー     Mac の JIS キーボードで、円記号のキー \fbox{\footnotesize$\begin{array}[tb]{cc}
& \vert \\
\yen & \\
& \texttt{\_}
\end{array}$} をタイプしたとき、 デフォールトでは円記号 が入力され、 バックスラッシュを入力したい場合は、 \fbox{option} キーを押しながら、円記号キーをタイプする必要がある。 C言語のプログラミングや TEX で物書きをする場合など、 バックスラッシュを頻繁に入力する必要があるので、 \fbox{option} キーを押すのは避けたい。

そのため、 円記号キーを押せばバックスラッシュが入力できるようにする設定が用意されている。 最近の macOS だと、 [システム設定][キーボード][入力ソース]に 「""で入力する文字」で、 円記号 と \(バックスラッシュ) のどちらかが選択できる (デフォールトは円記号の方)。 それを使ってバックスラッシュの方が入力されるようにしておけば、 逆に \fbox{option}+ \fbox{\footnotesize$\begin{array}[tb]{cc}
& \vert \\
\yen & \\
& \texttt{\_}
\end{array}$} で円記号が入力できる。

(「JISキーボード」と名付けるからには、キーボードには円記号がないと、 ということなのかな。そのキーをタイプしたら円記号が出るべきだ。 一方で円記号よりもバックスラッシュの方がたくさん使われるはずなので、 切り替えのオプションを用意した。 Mac (Apple) の側の考えはそういうことなのだろう。これは納得できる。)


バックスラッシュを円記号より多用する人 (C使い、TEX 使い)は、 そっちを選択すればハッピー。

のはずだった。MATLABさえなければ。

MATLABの問題     なんと MATLAB は、バージョンによっては、 システム設定でバックスラッシュを入力するように設定すると、 単に \fbox{\footnotesize$\begin{array}[tb]{cc}
& \vert \\
\yen & \\
& \texttt{\_}
\end{array}$}をタイプしても、 \fbox{option}キーを押しながら \fbox{\footnotesize$\begin{array}[tb]{cc}
& \vert \\
\yen & \\
& \texttt{\_}
\end{array}$}をタイプしても、どちらでも円記号が入力される。 そうすると、バックスラッシュが入力する方法がなくなってしまって困る (コピペでしのいだりしたことがある -- おかしい)。

MATLAB 2015a の頃にそういう困ったことになっていて、 2010b, 2017b, 2018b とかでは起こらなかった。 2015a の頃特有の悪夢と思っていたのだけれど、 つい最近久しぶりに MATLAB を使うことになって、 2022a で発症することに気づいた。「またかよ」。

仕方ないので、円記号を入力する方の設定にする。 こうすると

正直ストレスがある。 まあ MATLAB でバックスラッシュが必要になることはあまりないので、 我慢できなくはない。 でも直して欲しい。



桂田 祐史