VScode住人の探検記

Visual Studio Codeでなんでもこなすのがポリシー。LaTeX(2020/7/19~), C(2021/1/25~), C#(2/4~), HTML&CSS(2/14~), Python(2/16~), JavaScript(2/28~), jQuery(3/18~), Sass(Scss)(3/20~),シェルスクリプト(3/21~), jCanvas(5/21~), WordPress(5/23~), PHP(5/31~)

赤シートで隠れる暗記問題集を作る【LaTeXのnewcommand】

LaTeXを始めてちょうど1ヶ月、初めてオリジナルコマンドを創作した。(とはいえプログラミング知識ゼロ人間が作れるものなどたかが知れており、めちゃくちゃショボい)

その名も『\annki』、\annki{ }で囲めばその部分が赤シートで消える仕様になるというものである。

出力はこんな感じ
(少なくとも私が所有しているプリンターで印刷すると)黒字でない部分はすべて赤シートでほぼ消える。

f:id:nix_campane:20200825033112j:plain

この色味は何度も何度も試行錯誤した末にたどり着いたものだ。
自宅のプリンターは格安ゆえに曲者で、とにかく画質が粗い。そのせいで、カラー文字はいかにも『複数の色のインクを混ぜ合わせてつくりました』と言わんばかりに多彩な色の斑点で構成されていることが見て分かる。赤シートで隠れる色に設定したとしても、それに混ざっている赤シートで隠れない色の斑点が文字を浮かび上がらせてしまうのである。
斑点によって文字が認識できてしまうのなら、文字の周りの部分にも斑点が散らばっていればどこが文字なのかが分からなくなるはずという発想から、文字だけでなく背景にも色をつける方針に切り替えた。とはいえ、背景の色のチョイスもなかなか難しい。文字の色と対照的な色を使ってしまえば、むしろ文字の色が際立って赤シート越しに浮かび上がって見えてしまう。文字の色と似ている色を使ってしまえば、赤シートを外したときに文字が背景と同化して解読が難しくなる。
日本語 - 色の名前と色見本
↑このサイトを見ながら、文字色と同系色で、かつ文字を隠さないような微妙に文字色と異なる色を片っ端から試していったところ、画像のような組合せがベストだと発見した。

(…まあ過程はどうでもいいので)完成したannkiコマンドのソースコードを置いておく。
以下のテキストをコピーして、

  • プリアンブルにペーストする

もしくは

  • TeXにペースト→annkiという名前をつけ、拡張子をtexではなくstyに変更して保存→そのstyファイルを他のTeX関連パッケージと同じフォルダに置く→ファイルの場所を表すバーをクリック、cmdと入力、Enterでコマンドプロンプトが起動される→コマンドプロンプトにmktexlsrと入力、Enter→TeXに戻ってプリアンブルに\usepackage{annki}と入力

すれば、\annkiコマンドが使えるようになる。

\usepackage{color}
\definecolor{plyamabuki}{RGB}{255,163,19}%文字色の定義
\definecolor{usuiro}{RGB}{253,232,233}%背景色の定義
\newcommand{\annki}[1]{\colorbox{usuiro}{\textcolor{plyamabuki}{#1}}}%コマンドの定義