Anki: エリジオンする補充問題

次のように,フランス語の定冠詞の練習問題を作成する。

f:id:askrnmr:20210925003148p:plainf:id:askrnmr:20210925003146p:plain
このような形式では,エリジオン(élision)の関係する場合に,カードデザイン上の問題が生ずる。

f:id:askrnmr:20210925004209p:plainf:id:askrnmr:20210925004212p:plain
前掲のデザインのままでは,冠詞のエリジオンが綺麗に表現できない(スペーシングを排除できない)。
f:id:askrnmr:20210925004407p:plainf:id:askrnmr:20210925004405p:plain
あるいは,通常の穴埋め問題のテンプレートにおいてエリジオンを意識してスペーシングを排除すると,おもて面が不格好になる。
前提

f:id:askrnmr:20210925005023p:plainf:id:askrnmr:20210925005026p:plain
Anki では,カードの構成要素としてフィールドが用意されている。デフォルトの穴埋め問題では,表裏共通で表示される「テキスト」フィールドと,裏面ではじめて表示される「裏面補足」または「追加」フィールドがある*1
Anki のカードテンプレートでは,{{[フィールド名]}} の形式で,カード上にそのフィールドを表示することができる。前掲右の画像では,{{追加}} によって「追加」フィールドが表示されるようになっている。
とりわけ穴埋め問題については,{{cloze:[フィールド名]}} によって,たとえば {{cloze:テキスト}} によって,表面では空欄,裏面では補充された欄が表示されるようになっている。具体的には,「テキスト」フィールドに記入された {{c1::答え}} の箇所が,表では [...] ,裏では 答え と表示される。

表面に配置するとシステムが連動して裏面に解答が表示されるのではなくて,表裏のテンプレートはそれぞれ独立している。{{cloze:___}} という1つの記述においては,表裏によって出力が分岐し,空欄あるいは解答が表示されている。これを両面に配置することでカードは実現されている。Anki においてカードは,表面と裏面とが別箇に存在し,それぞれ独立して編集されながら,学習に際しては表示の連続に拠ってモンタージュを行うのである。次の画像の「テンプレート」と「プレビュー」を参照されたい。

f:id:askrnmr:20210925010512p:plainf:id:askrnmr:20210925010509p:plain
裏面のテンプレートの {{cloze:テキスト}} を取り除くと,表面にかかわらず,該当箇所が削除される。

{{cloze:[フィールド名]}} の記法によって,あらゆるフィールドを穴埋め問題の空欄に使用することができる。次の画像は,裏面の {{追加}} を {{cloze:追加}} に代替し,{{c1::テスト}} と記入された「追加」フィールドを表示したものである。

f:id:askrnmr:20210925010932p:plainf:id:askrnmr:20210925011010p:plain
空欄問題は,複数のフィールドを使用して作成することができる。

以上の点を踏まえて,綺麗にエリジオンする問題を作成してみる。

解決

穴埋め問題,またはそのクローンのカードタイプで,穴埋め用のフィールドを2つ用意する*2たとえば,既存の「テキスト」にくわえて新しいフィールド「テキスト2」を追加する。古いフィールドにはエリジオン前(補充される語が不明の状態)のフレーズを記入し,新しいフィールドにはエリジオン後のフレーズを記入する*3

f:id:askrnmr:20210925013105p:plainf:id:askrnmr:20210925013422p:plain
裏面で表示される穴埋めの「テキスト1」フィールドを,「テキスト2」フィールドに変更する。
f:id:askrnmr:20210925020137p:plain
以上で,エリジオンする補充問題をもっとも単純に表現できた。

改良

この状態のカードテンプレートは,裏面で必ず「テキスト2」フィールドが表示される状態になってしまっている。エリジオンにかかわらず,「テキスト2」フィールドへの記入を強いる状態である。
エリジオンをする場合と,しない場合とで,使用するフィールド数が変化することは,これまでの説明で了解される。このようなとき,通常の穴埋め問題のカードタイプに加えて,エリジオン用のカードタイプを設けることが考えられるが,ひとつのカードタイプで両方に対応する方がどちらかといえば効率的である*4。特定のフィールドが記入されている/されていない場合に表示を切り替える,条件付き置換の機能を用いて解決する。次のページを参照されたい。
wikiwiki.jp
この場合でいえば,「テキスト2」フィールドの記入の有無に応じて選択的にエリジオンするように裏面のテンプレートを編集すればよいのである。次の例は,「テキスト2 が記入されていない場合にテキスト1,テキスト2 が記入されている場合にテキスト2 を表示する」という意味合いを最も単純に表現したものである。

{{^テキスト2}}
	{{cloze:テキスト1}}
{{/テキスト2}}

{{#テキスト2}}
	{{cloze:テキスト2}}
{{/テキスト2}}

1つのカードタイプのテンプレートを以上のように編集することで,必要な場合にだけエリジオンするカードを作成することができる。

f:id:askrnmr:20210925022520p:plainf:id:askrnmr:20210925022532p:plain
f:id:askrnmr:20210925022539p:plainf:id:askrnmr:20210925022545p:plain

*1:「裏面補足」または「追加」のどちらであるかは Anki のバージョンによって異なると思われる。

*2:通常のカードタイプでは,{{cloze:[フィールド]}} の記述が機能しない。かならず穴埋め問題か,そのクローンを用いる。

*3:このとき,「テキスト1」フィールドは裏面で表示されないので,こちらの穴埋め箇所に正答を書いておく必要はないが,記事中では一貫して記入してある。

*4:カードタイプ数の削減になるだけでなく,エリジオンする問題のカードタイプを個別に変更するなどの労力を省くことができる。また,カードタイプの統一はカードの検索をスムーズにする。