キーボードの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}$

怖……

続編

これのさらなる応用です。ぜひご覧ください。
shukutoiya.hateblo.jp

ぺりをだねぇ