見出し画像

【備忘録】PDF化されたペーパークイズをAnkiに導入する手順

注意

 SNSや各種Webサイトで無料で公開されているようなペーパークイズには当然著作権が存在するので、それらのPDFファイルやExcelファイルの二次配布は決して行わないこと(仲間内であっても🆖)。また、Ankiの「共有デッキ」機能を用いたペーパークイズを入れたデッキの共有も決して行わないこと。

※とにかく個人利用の範囲に留めてください


手順

使用ツール

  • サクラエディタ(その他正規表現が使用できるテキストエディタでも可)

  • Excel(Googleスプレッドシートでも可)

  • PDF読み込みソフト(今回はFoxit PDF Reader を使用)

また、全体通してWindows を使用する前提で書いています。


手順のアウトライン

  1. ペーパークイズ(問題・解答)のPDFをダウンロード

  2. 問題をサクラエディタで(100問ペーパーであれば)100行のテキストにする

  3. Excelで問題と解答をくっつける

  4. タブ区切りテキストとして保存し、文字コードをUTF-8に変更、Ankiにインポートする


1.ペーパークイズ(問題・解答)のPDFをダウンロード

これはそのままです。問題・解答ともにPDF形式でダウンロードしてPDF読み込みソフトで開きます。


2.問題をサクラエディタで(100問ペーパーであれば)100行のテキストにする

メイン作業です。
枠線のない、旧abcのようなペーパーを想定しています。
新abcのような枠線のあるペーパーだとこの作業は省略できます。

  1. PDF読み込みソフトで問題文全体をまとめてコピーする。

  2. サクラエディタに貼り付ける。

  3. 画面上部の「検索」>「置換」を開き「正規表現」にチェックを入れる。

  4. 「\n\r」→「」で全て置換して、改行を削除する。

  5. 「([0-9]|[0-9][0-9]|[0-9][0-9][0-9])\. 」→「\n\r」で全て置換し、問題番号を改行に置換する。

上は問題番号が「1. 」のような形式で書かれていることを想定しています。
小数点など問題文中に「.」がでてきた場合は、そこが問題番号だと扱われて削除・改行されてしまうことがあるので注意が必要です。

【正規表現の補足】
note 上で「\」と表示される記号は、サクラエディタ上では「¥」の半角文字で表示されます。以下使用した正規表現;
\n\r:改行
[0-9]:数字1文字
\:退避修飾(今回の場合「\.」とすることで「.」が正規表現として扱われない)
(A|B|C):AまたはBまたはC

これでサクラエディタでの編集は以上です。


3.Excelで問題と解答をくっつける

2.で問題文を100行に出来たらExcelに貼り付けましょう。
縦100行で1セルに1問入っていれば成功です。
これで問題側の処理は以上です。

次に解答なのですが、これは枠線のある20行5列の解答を想定しています。

  1. PDF読み込みソフトで枠で囲まれた解答部分を、問題番号含めてコピーしてExcelに貼り付ける(1セルに1解答入り、問題番号と合わせて20行10列になっていれば成功)。

  2. 問題番号の入っている5列を削除して答えだけの20行5列の形にする。

  3. TOCOL関数を用いて、20行5列の答えを100行1列にする。

  4. 答えをコピーして問題の隣に値を貼り付ける。

  5. 余計な部分を削除して、問題とその答えだけが100行並ぶようにする。

問題文にも枠線がある場合は、似た要領でエクセル上へのコピペでセルごとに問題が分かれてくれると思います。
このとき空白の行ができてしまう場合は、ある1列を全選択して
「ホーム」>「選択と検索」>「条件を選択してジャンプ」>「空白セル」
でその列状の全空白セルを選択して、右クリックから
「削除」>「行全体」
としてもらえれば、すべての空白の行を削除することが出来ます。

これでExcelでの編集は以上です。


4.タブ区切りテキストとして保存し、文字コードをUTF-8に変更、Ankiにインポートする

  1. Excelをタブ区切りテキストとして名前をつけて保存する。

  2. 出力されたtxtファイルをデフォルトのメモ帳で開き、文字コードを「UTF-8」に変更して名前をつけて保存する(同名のファイルにして上書きしても良い)。

  3. Anki上にドラッグアンドドロップしてインポートする。

わからない場合は「Excel Anki 入れ方」のような感じで検索してもらえれば、より丁寧な説明が出てくると思います。

これで全工程終了です。
お疲れ様でした。