キーボードのsが壊れた!そんなときは
やりたいこと
キーボードのsが壊れても、毎回sをコピペしてこなくても良いようにしたいです。
実装
ソースコード中で改行したら出力の方でも改行するようにするコマンド\obeylines(および有志の方がそれを改良した\xobeylines)を参考にします。
これは改行文字のカテゴリーコードを変えてアクティブ文字にし、\defを使って改行文字に対して通常の制御綴のように定義する、という方法によって実現しています。
今回は改行文字^^Mの代わりに?をアクティブ文字にして、sを打ちたいときに?を打てば良いようにします。
{ \catcode`\?=\active \gdef\quedekaihi{\catcode`\?=\active \def ?{s}} }
入力:
\quedekaihi
He i? periwo.
出力:
He is periwo.
実装においてもsを打つ回数は一回で済むので、これならラクチン、sが壊れても安心ですね!
追記
sをどこかからコピペしてくるのは甘えだ!というクレームが入ったので修正します。sのASCIIコードが73なので、次のようにすると同じになります。
{ \catcode`\?=\active \gdef\quedekaihi{\catcode`\?=\active \def ?{^^73}} }
これでsを一度も打たなくて良くなりましたね!
さらに追記
上は実は\sqrtなどの制御綴は書けない(再定義とかでごまかすことを想定していた)のですが、そもそも?なんて経由しなくても、sと書きたいときに^^73と書けば良いっぽいです:
入力:
^^24^^5c^^73^^71^^72^^74^^7b^^33^^7d^^24
これは以下と同等:
$\sqrt{3}$
出力:$\sqrt{3}$
怖……