# Auto Multiple Choice

# Auto Multiple Choice

自動採点と評定の可能な選択式試験問題のデザイン
2024-08-05

AMCは、プレーンテキストあるいはLaTeXで記述されたマークシート方式の選択式試験問題を使用して、答案用紙のスキャン画像からのOMR（光学マーク認識）により自動採点と評定のできるユーティリティ群です。この文書はその使用説明書です。（バージョン1.6.0+git20240805161640~r:cff18d02）

AMCのWebサイトはhttps://www.auto-multiple-cho ice.net/にあり、ソースコードはhttps://gitlab .com/jojo_boulix/auto-multiple-choice/にあります。

Alexis

    paamc@passoire.fr

Bienvenue
主な著者
Anirvan
Sarkar
著者・編集者
Hiroto
Kagotani
編集者
Frédéric
Bréal
著者・編集者
2008-2018
Alexis Bienvenüe
Bérard
Jean
フランス語版から英語版への翻訳
Khaznadar
Georges
フランス語版から英語版への翻訳
Kagotani
Hiroto
英語版から日本語版への翻訳

この文書はGNU一般公衆利用許諾書バージョン2またはそれ以降に従って利用することができます。

## ライセンス

Auto Multiple Choiceはフリーソフトウェアです。あなたはこれを、フリーソフトウェア財団によって発行されたGNU一般公衆利用許諾書バージョン2か、（希望によっては）それ以降のバージョンのいずれかの定める条件の下で再頒布または改変することができます。

このプログラムは有用であることを願って頒布されますが、*全くの無保証* です。商業可能性の保証や特定の目的への適合性は、言外に示されたものも含め全く存在しません。詳しくはGNU一般公衆利用許諾書をご覧ください。あなたはこのプログラムと共に、GNU一般公衆利用許諾書の複製物を1部受け取ったはずです。もし受け取っていなければ、http://www.gnu.org/licenses/をご覧ください。

## 必要条件

### オペレーティングシステム

AMCユーティリティはLinux用に開発されています。MAC OS XにもMacPortsを用いてインストールすることができます。

### ソフトウェア

AMCをdebあるいはRPMパッケージを用いて（debian、Ubuntuとその派生、Mandriva、openSUSE、Fedora上で）インストールすれば、AMCに必要なソフトウェアはすべて自動的にインストールされます。

AMCを用いるのに不可欠となる主要なパッケージあるいはソフトウェアは次のとおりです。

- LaTeX

- 画像処理ライブラリImageMagickとOpenCV

- Perl
  （GUI用にGtk2-PerlとGlade::XMLを含む）

#### AMCで用いるソフトウェアの推奨バージョン

AMCで用いるソフトウェアのバージョンが古いと、そのバグにより正常な動作の妨げになるものがあります。

- `Net::CUPS`（debianパッケージ`libnet-cups-perl`）の古いバージョンを用いると、試験問題用紙の印刷のコマンドによって、AMCのGUIが異常終了してしまいます。このバグは`Net::CUPS`のバージョン0.61以降で修正されています。

- ImageMagickの古いバージョンを用いると、採点記入済の答案を受験者ごとにPDFファイルにまとめる機能が、複数ページの答案の場合に動作しません。このバグはImageMagickのバージョン6.5.5以降で修正されています。

### LaTeX

AMCのバージョン1.1からは、試験問題をLaTeX言語で記述することは必須ではなくなりました（プレーンテキストでの代替文法についてはを参照）。しかし、LaTeXは試験問題を記述するためのネイティブなAMC言語であり、比べものにならない自由度で試験問題をデザインすることができます。LaTeX形式に抵抗のある人でも、用意されたテンプレートで自分の選択式試験問題をすぐに書き始められます。

## 利用メモ

### 数値的な限界

（0.156以降の）現在までのバージョンでは、試験あたりの受験者数は4,095人まで、試験あたりの（受験者ごとの）ページ数は63ページまでに限定されています（これらのデフォルト値は変更可能です。参照）。

設問ごとの選択肢数は199個までに限定されています（このデフォルト値は変更できません）。

LaTeX自体の限界でコンパイルができないことがあり、例えば、「No room for a new \toks」というエラーが出ます。この場合、`\usepackage{etex}`コマンドにより`etex`パッケージを試してみてください。

### バージョン

問題が出ることは多くはありませんが、あるプロジェクトを実施している間（試験問題用紙を印刷してから採点して成績をつけ終わるまでの期間）はプログラムのバージョンを変更しないことをお勧めします。何らかのプロジェクトを実施している最中に適用してしまうと、AMCの正常な動作に干渉してしまうような修正がいくつかあります。

- バージョン0.155以前のAMCでコンパイル・印刷を行った後、バージョン0.156以降でそのプロジェクトを扱う場合、LaTeXファイルの`automultiplechoice`パッケージを読み込んでいる部分で、次のように`versionA`オプションを付けてください。

      \usepackage[box,completemulti,versionA]{automultiplechoice}

- バージョン0.262以降、チェックボックスの描画が若干大きくなりました。このせいで試験問題用紙のレイアウトが変わってしまう可能性があります。

- バージョン0.267以降、A4版の試験問題用紙を作成したい場合は、LaTeXファイルで次のように明示的に指定する必要があります。

      \documentclass[a4paper]{article}

- バージョン0.394以降、`graphicx`パッケージが必要な場合は明示的にロードする必要があります（それより前のバージョンでは、AMCによってロードされていました）。

- LaTeXの`\AMCcode`コマンドはバージョン0.5.18で書き直されました。これによってより堅牢になり設定を柔軟に変更しやすくなりましたが、旧バージョン用に書かれたLaTeXのソースで同じレイアウトを得るためには修正する必要があります。

- バージョン1.1.0より、AMCの全データは多数のXMLファイルではなくSQLiteデータベースに格納されます。プロジェクトを最初に開いたときに、古いXMLファイルが新しい形式に変換されます。

### インストール

debian、Ubuntuあるいはその派生OSでは、debian公式リポジトリとubuntu AMCリポジトリを用いることができます。Mandriva、openSUSE、Fedoraでは、ビルド済のRPMパッケージを用いることができます。インストール手順はAMCウェブサイトで説明されています。

ソースコードのアーカイブは、プロジェクトのダウンロードエリアでダウンロードでき、その場合は端末上で次のコマンドを使ってください。

    tar xvzf auto-multiple-choice_xxxx_dist.tar.gz
    cd auto-multiple-choice-xxx
    make
    sudo make install

### 起動

インストールが完了したら、Gnomeの一般メニュー（あるいは、KDEなどの対応するメニュー）からアプリケーション教育 Auto Multiple Choiceを選ぶことにより、GUIを起動することができます。また、`auto-multiple-choice`コマンドを使用することもできます。

## AMC-TXT構文

LaTeX語にまだ慣れておらず、勉強する時間もない方のために、AMCにはAMC-TXTという特別な形式の簡単なテキストファイルを処理するフィルターが含まれています。この節では、AMC-TXTファイルの構文を詳しく解説します。LaTeXを用いて試験問題を精密に制御する場合は、この節はスキップしてください。

単純な例から始めましょう:

    # AMC-TXTソースファイル
    Title: はじめてのAMC試験問題
    Lang: JA

    Presentation: 以下の設問に最も適切な解答を
    選択してください。

    * カメルーンの首都はどれですか？
    + ヤウンデ
    - ドゥアラ
    - クリビ

    ** 以下の数のうち、正の数はどれですか？
    - -2
    + 2
    + 10

試験問題を含んだファイルは、UTF-8でエンコードされたプレーンテキストファイルでなければなりません。UTF-8はいくつかのテキストエディタ（`gedit`など）のデフォルトエンコーディングです。テキストをボールドにしたり、画像が埋め込めたりするような、OpenOffice/LibreOfficeやそれに類するエディタを使用しないでください。これらはテキスト以外に多量のデータを保存し、AMCはそれを読むことができません。

デフォルトとして用いられるフォントはlibertineで、これは多数の言語の文字を含んだオープンソースフォントです。このフォントをインストールするか、そうでなければ他のフォントを選ぶ必要があります（下記オプション参照）。debian/ubuntuパッケージでAMCをインストールすれば、このフォントは推奨パッケージとしていっしょにインストールされます。

AMC-TXTの構造はすでにおわかりのとおりです。最初に全体的なオプションがあり、そして設問が続きます。

### コメント

AMC-TXTソースファイル内の`#`文字で始まる行にはコメントを書くことができます。AMCはこれらの行を無視します。

### 全体オプション

以下のオプションを（任意の順序で）使用することができます:

Lang:

  試験問題が記述されている言語を指定するのに用います。現時点では、DE（ドイツ語）、ES（スペイン語）、FR（フランス語）、IT（イタリア語）、NL（オランダ語）、NO（ノルウェー語）、PT（ポルトガル語）、JA（日本語、参照）、AR（アラビア語、参照）のみがサポートされています。オプションを指定しないと、英語が選択されます。他の言語用にローカライズ文字列を定義することもできます（`L-xxx`形式のオプション参照）。

PaperSize:

  用紙サイズを設定します。設定可能な値は、`A3`、`A4`、`A5`、`A6`、`B3`、`B4`、`B5`、`B6`、`letter`、`legal`、`ANSIA`、`ANSIB`、`ANSIC`、`ANSID`、`ANSIE`です。

Title:

  試験タイトル。試験問題用紙の上部に印刷されます。

Presentation:

  試験の注意事項を記述する文章（時間、規則など）です。

ShuffleQuestions:

  1なら（デフォルト）、設問がシャフルされ、用紙ごとに順序が変わります。0なら、ファイルに記述された通りの順序で設問が並びます。

RandomSeed:

  シャフル用の乱数生成器のシードはこのオプションで変更することができます。設定されている値（1から4194303の範囲で選択できます）が変更されると、シャフル結果が変わります。当然ですが、問題用紙を印刷したあとはこの値を変更してはなりません。

  この値はxyファイルに（`\rngstate{1}{1527384}`のように）記録されます。デフォルト値は1527384です。

Code:

  正の整数値nを指定すると、n桁分の受験番号をマークする欄が試験問題用紙に追加されます。

CodeDigitsDirection:

  受験番号欄の方向を（`virtical`または`horizontal`で）設定します。設定しない場合は桁数により（桁数が少なければ水平、多ければ垂直に）自動選択されます。

Columns:

  正の整数値nを指定すると、問題用紙をnカラムで生成します。

CompleteMulti:

  1なら（デフォルト）、複数選択問題（正解数が0以上の任意個）において、「該当なし」の選択肢を追加します。これをしないと、「受験者がこの設問に解答しなかった」のと「受験者がこの設問に正解がないと考えた」のが区別できません。この選択肢をつけたくない場合は0に設定してください。

L-None:

  「該当なし」（上記オプション参照）に代わる文字列を設定します。

QuestionBlocks:

  1なら（デフォルト）、各設問は複数のカラムやページにまたがらないように透明な枠で囲まれます。0なら、必要に応じて設問が分割され、読み易さは多少犠牲になりますがページ数が節約できます。

L-Question:

  必要なら、試験問題内での「問」に代わる文字列を設定します。

L-Name:

  受験者の氏名記入欄に表示する「氏名」に代わる文字列を設定します。

L-Student:

  `Code`オプションが使用された場合に、受験者に、受験番号と氏名を記入するよう指示する短い文章です。

TitleWidth:

  `Code:`を使用しない場合のタイトル領域の幅。デフォルト値は`.47\linewidth`です。

NameFieldWidth:

  氏名フィールドの幅。LaTeXの通常の長さ単位が使用できます。デフォルト値は、`Code:`を使用する場合は`5.8cm`で、使用しない場合は`.47\linewidth`です。

NameFieldLines:

  氏名フィールドボックスの行数。デフォルト値は、`Code:`を使用する場合は`2`で、使用しない場合は`1`です。

NameFieldLinespace:

  氏名フィールドボックスの行間。デフォルト値は`.5em`です。

Pages:

  各問題用紙の最小ページ数を指定します。問題がこのページ数より少ない場合は白紙ページが追加されます。別紙答案用紙を使用している場合は、`q+a` （例 `4+2`）のように書くことができ、qは問題用紙自身の最小ページ数、q+aは答案用紙も含めた最小ページ数になります。

ManualDuplex:

  1にすると（これはデフォルト値ではありません）、各試験問題用紙のページ数が偶数になり、PDFの試験問題用紙を手動で印刷する際、両面印刷モードで一度に行うことができます。

SingleSided:

  1にすると（これはデフォルト値ではありません）、設問のページ数が奇数の場合でも、設問と別紙答案用紙の間に空ページが追加されません。このモードは試験問題用紙を片面印刷するときや、設問と答案用紙を分ける必要がないときに有用です。

BoxColor:

  受験者がマークするボックスの色です。これによりボックスは指定した色（例えばredや、薄いグレーもありえます）で印刷され、データ取込み時の誤検出を軽減します。色は、有効な`xcolor`（詳細はLaTeXの`xcolor`ドキュメント参照）で、red、magenta、pink、lightgray、cyanや、`#RRGGBB`の形式で`#FFBEC8`（淡い赤）のように指定します。

DefaultScoringS:

  単一選択問題（唯一の選択肢のみが正解になる設問）でのデフォルト採点基準です。詳細はを参照してください。デフォルト値は、正解に1点、それ以外に0点です。

DefaultScoringM:

  複数選択問題（正解の選択肢が0個、1個あるいは複数個ありうる設問）でのデフォルト採点基準です。詳細はを参照してください。デフォルト値は`haut=2`で、完答に2点、1箇所の誤り（マークすべきでないボックスをマークしたり、マークすべきボックスをマークしなかったり）ごとに1点減点します（ただし負にはしない）。

LaTeX:

  文章中にLaTeXコマンドを使用したい場合は、このオプションを1にしてください。これにより例えば、`$\sqrt{a+b}$`のような数式を挿入できます。0なら（デフォルト）、記述した文章がそのまま印刷されます。

LaTeX-Preambule:

  LaTeXプリアンブルに追加したいコマンド（例えば`\usepackage`コマンドなど）を設定します。

LaTeX-BeginDocument:

  LaTeXの`document`環境の先頭に挿入したいコマンド（例えばマクロ定義など）を設定します。

Disable:

  無効にする機能のリストをコンマで区切って指定します。現在実装されている機能は`verbatim`（参照）、`images`（参照）、`embf`（参照）、`local_latex`（参照）です。

PackageOptions:

  LaTeXのautomultiplechoiceパッケージに渡す追加オプションを与えます（参照）。

#### 別紙答案用紙

試験問題に別紙答案用紙を用いる場合は、次のオプションを指定してください:

SeparateAnswerSheet:

  1なら、別紙答案用紙が追加されます。

AnswerSheetTitle:

  別紙答案用紙のタイトルです。

AnswerSheetPresentation:

  別紙答案用紙の注意書きです。例えば、解答をこの用紙に記入しなければ無効であることを受験者に伝えます。

AnswerSheetColumns:

  別紙答案用紙のカラム数です。

AutoMarks:

  1にすると、`automarks`オプション（参照）を使用します。

### 設問

単一選択問題（唯一の選択肢のみが正解となる設問）は、行を`*`で始め、複数選択問題（任意個の正解がある設問）は`**`で始めます。そのうしろに設問文を続け、以降の行に`+`で始まる正しい選択肢と、`-`で始まる誤った選択肢を書きます。

#### 設問オプション

設問にはいくつかオプションが設定できます。それらは次の例のように、`*`か`**`のあとに角括弧で囲み、カンマで区切って並べます:

    *[ordered,horiz,id=sum] 1足す1は
    いくつですか？
    - 0
    - 1
    + 2

設問に使用できるオプションは以下のとおりです:

horiz

  選択肢を横に並べていきます。

columns=n

  選択肢をnカラムに配置します。

ordered

  選択肢をシャフルせず、記述ファイル内と同じ順序を保ちます。

id=xxxx

  設問に名前をつけ、出力した採点表の得点がどの設問のものかわかりやすくします。この名前にはアクセントなどを含まずLaTeXの特殊文字（`_`、`^`、`%`など）でない単純な文字しか使用できません。

  旧版との互換性のため`id`のかわりに`name`も使用できますが、`id`を使用してください。

indicative

  この設問の採点結果を、受験者の最終得点に加えません。

next

  `ShuffleQuestions`オプションで設問をシャフルする場合でも、直前の設問の次にこの設問を配置します。

first

  この設問を常にグループの先頭に配置します（を参照してください）。

last

  この設問を常にグループの末尾に配置します（を参照してください）。

#### 採点基準

特定の設問や選択肢の開始文字（`*`、`**`、`+`、`-`）とオプションの後に、波括弧で囲んで採点基準を設定することができます。例えば次の例のようになりますが、採点基準の詳細については、を参照してください。

    *{b=2,m=-1} フランスの首都はどれですか？
    + パリ
    - リール
    - マルセイユ
    - ワガドゥグー
    -{-2} ニューヨーク

    **[ordered,horiz,id=positive]{haut=1} 以下の数のうち、正の数はどれですか？
    - -2
    + 2
    + 10

#### 記述式設問

次の例のように`<`と`>`で囲むことにより、記述式の設問（参照）を定義することができます:

    *<lines=4> 月について述べよ。
    -[O]{0} 誤り
    -[P]{1} 部分点
    +[V]{2} 正解

以下のグローバルオプションを使用することも検討すべきです:

L-OpenText:

  別紙答案用紙に記入するよう指示するテキスト（関連する場合のみ）。

L-OpenReserved:

  採点用ボックスに記入しないようボックス脇に表示するテキスト。

### 複数行

文章はどこで切って次の行に続けても（それが空行であっても）、それがオプションや次の設問文や選択肢の開始と混同さえされなければかまいません。例として次の設問を見てください:

    * 2
      + 2はいくつですか？
    - 0
    + 4
    - 10

これは正しいAMC-TXTの設問ですが、これは意図したとおりには扱われません。それは、2行目が、1行目の続きと認識されず、この設問の最初の選択肢の形式になっているためです！

同様の問題は次のAMC-TXTの設問でも発生します。ここでは、「`Gershwin:`」が全体オプションの定義とみなされてしまいます。

    * みなさんは、George
      Gershwin: （作曲家）を知っています。
      彼が生まれたのは何年ですか？
    + 1898年
    - 1892年
    - 1902年

正しい書き方は次のようになります:

    * みなさんは、George Gershwin:
      （作曲家）を知っています。
      彼が生まれたのは何年ですか？
    + 1898年
    - 1892年
    - 1902年

空行があると改行が挿入されます:

    Presentation: タイトル

    試験の説明。

    ** 難問です。

    空には星が何個ありますか？
    - 1個
    - 2個
    - 何千万個も

### タイトル

タイトルをつけるには、`[==`と`==]`で囲みます。

### 逐語的コンテント

逐語的なブロック（プログラムのコードのような）を得るには、それを`[verbatim]`と`[/verbatim]`で囲みます:

    * 次のプログラムは何を出力しますか？
    [verbatim]
    main( )
    {
        printf("hello, world\n");
    }
    [/verbatim]

    + [| hello, world |]
    - [| hello |]
    - [| world |]

### 太字、斜体、タイプライター、アンダーライン

太字のテキストを出力するには、それを`[*`と`*]`で囲みます。斜体のテキストを出力するには、それを`[_`と`_]`で囲みます。タイプライターのテキストを出力するには、それを`[|`と`|]`で囲みます。アンダーラインのテキストを出力するには、それを`[/`と`/]`で囲みます。

    * [_フランス_]の[*首都*]はどこですか？
    + パリ
    - リール
    - マルセイユ

### 画像

次の構文を用いて文書に画像を追加することができます:

    ![height=2cm]images/bird.png!

これにより、プロジェクトディレクトリにある画像`images/bird.png`が、2cmの高さで追加されます。角括弧内で使用できるオプションはLaTeXコマンド`\includegraphics`のオプションと同じです （例えば`width=3cm`や`keepaspectratio`）。横幅の3/4の幅で画像をセンタリングしたい場合は、次のようにします。

    !{center}[width=.75\linewidth]images/map.pdf!

### LaTeXコードの断片

文書内に小さなLaTeXコード片を置くには、次のように二重の角括弧内にそれを入れます:

    [[\multiSymbole{}]]の記号のある設問の正解は1個とは限りません。0個の場合や複数の場合があります。

### 設問グループ

次の構文により、複数の設問をグループに入れ、シャフルしても離ればなれにならないようにできます:

    *( マーチン・ルーサー・キングに関する問題

    * 生年はいつですか？
    - 1901年
    + 1929年
    - 1968年

    * 没年はいつですか？
    - 1945年
    - 1515年
    + 1968年
    - 1999年

    * どこで生まれましたか？
    + アトランタ
    - メンフィス
    - ニューヨーク

    *) マーチン・ルーサー・キングに関する問題はここまで

次のように、グループにオプションを指定することができます:

    *([shuffle=false,columns=2] マーチン・ルーサー・キングに関する問題

以下のオプションが使用できます:

shuffle=xxx

  グループ内の設問をシャフルするかどうかを、trueかfalseで示します。デフォルト値はグローバルな`ShuffleQuestions`オプションから得ます。

columns=n

  グループの設問のカラム数。

group=nom

  グループに名前をつけます（内部的な事情）。

numquestions=n

  このオプションによりグループの先頭のn個の設問だけが使用されます。設問がシャフルされている場合は、グループからn個の設問をランダムに選べるようになります。

  `first`と`last`のオプションのついた設問には影響しません（必ず挿入されます）。さらに、`next`オプションで結びついた設問どうしは一つの設問としてカウントされます。

needspace=dimen

  グループを開始するのに必要な高さを（4cm のように単位を付けて）指定します。現在のページの残りの垂直スペースがこれより少なければ、グループを次のページから開始します。

### アラビア語

アラビア語で試験問題を作成するのは少し特殊です。もちろん次のオプションを用います。

    Lang: AR

さらに、以下の全体オプションを使用することができます:

ArabicFont:

  アラビア語テキストに用いるフォントです。デフォルト値はArabEyesプロジェクト（debian/ubuntuではttf-arabeyesパッケージにあります）のフォントRasheeqです。

非アラビア文字を挿入するには、`LaTeX`オプションをオンにして、挿入したい文字をLaTeXコマンド`\textLR`の引数として`\textLR{xelatex command}`のように指定してください。

### 日本語

日本語の試験問題は次のオプションを用いて生成することができます。

    Lang: JA

AMCは、生成されるLaTeXソースにいくらか調整を行い、日本語テキストが処理できるようにします。

この場合、AMCはAMC-TXTソースファイルから作られたLaTeXファイルを処理するのに`platex`コマンドを用います。これには、最近のバージョンの`platex`が必要です。いくつかの旧版linuxディストリビューションに含まれているtexlive 2009に付属の`platex`は、AMCに対応していません。

### 他のファイルのインクルード

次のようにして他のファイルをインクルードできます:

    IncludeFile: file-to-include.txt

異なるプロジェクトから同じファイルをインクルードするときは十分に注意してください！仮にプロジェクトAとBから`/home/alexis/questions-a.txt`をインクルードしているとしましょう。プロジェクトAは完了し、現在プロジェクトBが進行中です。`/home/alexis/questions-a.txt`にある設問の採点基準を更新し、さらに他の設問を追加します。もし、プロジェクトAの採点をこの新しい採点基準で更新する必要が生じたとき、プロジェクトAで使用した設問のほかに新たな設問があることからAMC内で不整合が生じ、Aの採点はすべておかしくなってしまいます。

## LaTeXソースファイル

この節では、LaTeXソースファイルから試験問題をデザインできるようにするためのLaTeXコマンドを説明します。別の形式をソースファイルにする場合は、この節はスキップしてください。選択式試験問題は、`automultiplechoice`パッケージを用いてLaTeXファイルで記述できます。LaTeXファイルは、`latex`コマンドでコンパイルして生成されたdviファイルを表示することで、いつでも確認することができます。

選択式試験問題用のLaTeXファイルをどのように作ればいいかを簡潔に示すいくつかの例から始めます。それぞれのLaTeXファイルはテンプレートとして用意されているので、これらのテンプレートの一つを用いて選択式試験問題プロジェクトを作ることができます。

### 簡単な例

    \documentclass[a4paper]{article}

    \usepackage[utf8x]{inputenc}
    \usepackage[T1]{fontenc}

    \usepackage[box,completemulti,lang=JA]{automultiplechoice}
    \begin{document}

    \onecopy{10}{

    %%% 試験問題用紙ヘッダー開始:

    \noindent{\bf QCM  \hfill TEST}

    \vspace*{.5cm}
    \begin{minipage}{.4\linewidth}
    \centering\large\bf テスト\\ 試験日 2008年1月1日\end{minipage}
    \namefield{\fbox{
                    \begin{minipage}{.5\linewidth}
                      氏名:

                      \vspace*{.5cm}\dotfill
                      \vspace*{1mm}
                    \end{minipage}
             }}

    \begin{center}
    試験時間 : 10 分。

      資料の持込みと電子計算機の使用は禁じます。

      \multiSymbole{}の記号のある設問の正解は1個とは限りません。
      0個の場合や複数の場合があります。

      それ以外の設問には正解が1個だけあります。

      \emph{非常に悪い解答}にはマイナス点がつくことがあります。
    \end{center}
    \vspace{1ex}

    %%% ヘッダー終了

    \begin{question}{総理大臣}
      次のうち、日本の総理大臣になったことがある人を一人選びなさい。
      \begin{choices}
        \correctchoice{大隈重信}
        \wrongchoice{湯川秀樹}
        \wrongchoice{聖徳太子}
        \wrongchoice{徳川家康}
      \end{choices}
    \end{question}

    \begin{questionmult}{都道府県}
      次のうち、日本の都道府県はどれか、すべて選びなさい。
      \begin{choices}
        \correctchoice{石川}
        \wrongchoice{山田}
        \correctchoice{宮崎}
      \end{choices}
    \end{questionmult}

    % \AMCaddpagesto{3}

    }

    \end{document}

この例題の解説:

`inputenc`および`fontenc`パッケージにより、試験問題の文章にUTF-8エンコーディングを用いることができます。もちろん、使用したいエンコーディングに合わせて変更することもできます。（訳注: 日本語の試験問題において、後述する最近の`platex`を使用する場合は、なくてもUTF-8で動作します。）

ここで使われている`automultiplechoice`パッケージのオプションは、設問が2ページにまたがるのを防ぎ（`box`）、複数選択問題にどの選択肢も該当しないことを示すもう一つの選択肢を自動追加します（`completemulti`）。

`onecopy`コマンドは（異なる）試験問題を必要数（ここでは10）実体化します。LaTeXの環境を用いた代替の構文についてはを参照してください。

この行以降は、試験問題用紙のヘッダーを記述します。

`namefield`コマンドは受験者が氏名を記入する欄を指定します。

`question`および`choices`環境は、単一の正解のある選択式問題を作成します。固有の識別名（ここでは総理大臣）を指定する必要があります。

`questionmult`および`choices`環境は、任意個数の正解のある選択式問題を作成します。受験者は、正解と思われるすべてのボックスにマークするか、（6行目のパッケージ読込みでの`completemulti`オプションで自動的に追加された）最後のボックスにマークすることになります。

各試験問題のページ数を3ページに固定するには、この行をアンコメントしてください。（参照）

（9行目で始まった）`onecopy`コマンドの終わりを表します。

### 設問グループとシャフルの例

この例では、設問の順序は試験問題の実体ごとに変えたいけれど、同じ分野の設問どうしはいっしょにまとめておきたい場合を考えます。この目的のためには、設問グループを二つ作成し、各グループ内で設問をランダムにシャフルします。

    \documentclass[a4paper]{article}

    \usepackage[box,completemulti,lang=JA]{automultiplechoice}
    \begin{document}

    %%% グループの準備

    \setdefaultgroupmode{withoutreplacement}

    \element{地理}{
      \begin{question}{パリ}
        パリはどの大陸にありますか？
        \begin{choices}
          \correctchoice{ヨーロッパ}
          \wrongchoice{アフリカ}
          \wrongchoice{アジア}
          \wrongchoice{火星}
        \end{choices}
      \end{question}
    }

    \element{地理}{
      \begin{question}{カメルーン}
        カメルーンの首都はどれですか？
        \begin{choices}
          \correctchoice{ヤウンデ}
          \wrongchoice{ドゥアラ}
          \wrongchoice{アブダビ}
        \end{choices}
      \end{question}
    }

    \element{歴史}{
      \begin{question}{応仁}
        応仁の乱はいつ始まりましたか？
        \begin{choiceshoriz}
          \correctchoice{1467年}
          \wrongchoice{1967年}
          \wrongchoice{1419年}
        \end{choiceshoriz}
      \end{question}
    }

    \element{歴史}{
      \begin{questionmult}{Nantes}
        \emph{ナントの勅令}について正しいのはどれですか？
        \begin{choices}
          \correctchoice{1598年に発布された}
          \correctchoice{ルイ14世により破棄された}
          \wrongchoice{ヘンリ2世により発布された}
        \end{choices}
      \end{questionmult}
    }

    %%% copies

    \onecopy{10}{

    %%% 試験問題用紙ヘッダー開始:

    \noindent{\bf QCM  \hfill TEST}

    \vspace*{.5cm}
    \begin{minipage}{.4\linewidth}
      \centering\large\bf 歴史と地理\\ 試験日 2008年1月1日
    \end{minipage}
    \namefield{\fbox{\begin{minipage}{.5\linewidth}
    氏名:

    \vspace*{.5cm}\dotfill
    \vspace*{1mm}
    \end{minipage}}}

    %%% ヘッダー終了

    \begin{center}
      \hrule\vspace{2mm}
      \bf\Large 地理
      \vspace{1mm}\hrule
    \end{center}

    \insertgroup{地理}

    \begin{center}
      \hrule\vspace{2mm}
      \bf\Large 歴史
      \vspace{2mm}\hrule
    \end{center}

    \insertgroup{歴史}

    }

    \end{document}

### 別紙答案用紙を用いた例

この例では、マーク用のボックスをすべて別紙に集めて配置したい場合を考えます。こうすれば、不正行為はさらに難しくなり、また重要なのは、受験者一人につき用紙を1枚だけスキャンすればいいので、スキャンを手動で行う場合の手間が軽減されます。この例は設問数が少なく1枚に収まるため、このような配置はこの特定の場合ではあまり有用ではないかもしれません。このレイアウトを多数の設問向けに修正するのはおまかせします！

    \documentclass[a4paper]{article}

    \usepackage[box,completemulti,separateanswersheet,lang=JA]{automultiplechoice}
    \begin{document}

    \AMCrandomseed{1237893}

    \def\AMCformQuestion#1{{\sc 問 #1:}}

    \setdefaultgroupmode{withoutreplacement}

    \element{general}{
      \begin{question}{総理大臣}
        次のうち、日本の総理大臣になったことがある人を一人選びなさい。
        \begin{choices}
          \correctchoice{大隈重信}
          \wrongchoice{湯川秀樹}
          \wrongchoice{聖徳太子}
          \wrongchoice{徳川家康}
        \end{choices}
      \end{question}
    }

    \element{general}{
      \begin{questionmult}{都道府県}
        次のうち、日本の都道府県はどれか、すべて選びなさい。
        \begin{choices}
          \correctchoice{石川}
          \wrongchoice{山田}
          \correctchoice{宮崎}
        \end{choices}
      \end{questionmult}
    }

    \element{general}{
      \begin{question}{EU}
        欧州連合には2009年1月現在、何ヶ国が加盟していますか？
        \begin{choiceshoriz}[o]
          \wrongchoice{15}
          \wrongchoice{21}
          \wrongchoice{25}
          \correctchoice{27}
          \wrongchoice{31}
        \end{choiceshoriz}
      \end{question}
    }

    \onecopy{5}{

    %%% 試験問題用紙ヘッダー開始:

    \noindent{\bf QCM  \hfill TEST}

    \vspace*{.5cm}
    \begin{minipage}{.4\linewidth}
      \centering\large\bf テスト\\ 試験日 2008年1月1日
    \end{minipage}

    \begin{center}\em
    試験時間 : 10 分。

      資料の持込みと電子計算機の使用は禁じます。

      \multiSymbole{}の記号のある設問の正解は1個とは限りません。
      0個の場合や複数の場合があります。

      それ以外の設問には正解が1個だけあります。

      \emph{非常に悪い解答}にはマイナス点がつくことがあります。

    \end{center}
    \vspace{1ex}

    %%% ヘッダー終了

    \insertgroup{general}

    \AMCcleardoublepage

    % \AMCaddpagesto{3}

    \AMCformBegin

    %%% 答案用紙ヘッダー開始

    {\large\bf Answer sheet:}
    \hfill \namefield{\fbox{
        \begin{minipage}{.5\linewidth}
          氏名:

          \vspace*{.5cm}\dotfill
          \vspace*{1mm}
        \end{minipage}
      }}

    \begin{center}
      \bf\em 解答はこの用紙にのみ行わなければなりません:
      他の用紙に行った解答は無視されます。
    \end{center}

    %%% 答案用紙ヘッダー終了

    \AMCform

    % \AMCaddpagesto{5}

    }

    \end{document}

以下の解説により、上の例がより明確になるでしょう:

`separateanswersheet`オプションにより、所望の配置ができるようになります。

別紙答案用紙上での設問番号の表示方法をこのように変更することができます（この行はなくてもかまいません）。

この改ページはマーク用ボックスを集めた答案専用の用紙の前に置きます。両面印刷を行う場合は、このページが次の用紙に印刷されるように`\AMCcleardoublepage`を使用してください。片面印刷の場合は、単純に`\clearpage`でもかまいません。

各試験問題の問題ページ数を3ページに固定するには、この行をアンコメントしてください。（参照）（このままではコメントアウトされているので、何も起きません）

このコマンドは答案用紙部の開始を示します。答案用紙側にしか現れない設問（例えば`\AMCcodeGrid`で生成される擬似的な設問）を適切に扱うために必要です。

受験者の氏名は答案用紙側に記入しないと意味がありません！

`AMCform`コマンドにより、マーク用ボックスがすべて出力されます。

各試験問題のページ数（問題ページと答案ページの合計）を5ページに固定するには、この行をアンコメントしてください。（参照）

別紙答案用紙を用いる場合、アルファベット（あるいは`digits`オプションを使用する場合は数字。参照）がマーク用ボックス内に印刷されます。マーク有無を正確に検出するために、受験者にはボックスをしっかり塗りつぶすように（単純にチェックマークだけでは不十分）指示する必要があります。また、マーク判定閾値（マークのあるボックス内での黒ピクセルの割合で定義）を0.5付近に調整する必要があります。

### LaTeXコマンドの説明

#### パッケージオプション

`automultiplechoice`パッケージを使用するには、

    \usepackage[...]{automultiplechoice}

という行を用い、`...`部分はカンマで区切ったオプションのリストを指定します。指定できるオプションは以下のとおりです:

- `lang=XX`: 試験問題の言語をXXに設定します。現時点では、DE（ドイツ語）、ES（スペイン語）、FR（フランス語）、IT（イタリア語）、JA（日本語）、NL（オランダ語）、NO（ノルウェー語）、PT（ポルトガル語）のみ指定可能です。`automultiplechoice`が`completemulti`オプションで挿入する「該当なし」のような数種類の文字列も翻訳されます。

- `pdfform`: 記入可能なPDFファイルを生成します。

  AMCには作成したPDFの自動送信機能はありません。

- `box`: 各設問をボックスに入れ、改ページで分割されないようにします。

  状況により、設問ごとに`\AMCnobloc`を用いてこのオプションをキャンセルすることもできます。

      {\AMCnobloc%
        \begin{question}{EU}
          欧州連合には2009年1月現在、何ヶ国が加盟していますか？
          \begin{choiceshoriz}[o]
            \wrongchoice{15}
            \wrongchoice{21}
            \wrongchoice{25}
            \correctchoice{27}
            \wrongchoice{31}
          \end{choiceshoriz}
        \end{question}
      }%

- `asbox`: 別紙答案用紙内で`box`と同様に働きます。

- `completemulti`: 「該当なし」の選択肢を複数選択問題の最後に自動的に付け足します。これにより、複数選択問題において、解答がされない場合とどの選択肢も該当しないという解答とが区別できるようになります。この動作は、個別の設問において、`questionmult`環境の内部で `\AMCcompleteMulti`あるいは`\AMCnoCompleteMulti`コマンドを用いることで、強制あるいはキャンセルすることができます。

- `noshuffle`: 各設問の選択肢を自動シャフルしないようにします。

- `noshufflegroups`: 試験問題の設問グループを自動シャフルしないようにします。（参照）

- `answers`: 試験問題用紙ではなく、模範解答を生成します。

- `indivanswers`: 各試験問題用の模範解答を生成します。

- `separateanswersheet`: マーク用ボックスをすべてまとめて試験問題用紙の最後に配置するようにします（通常このオプションは、受験者一人あたり用紙を1枚だけスキャンしたいときに使用します。使用例はを参照してください）。

- `digits`: `separateanswersheet`オプションを用いる場合に、`digits`オプションにより選択肢を（デフォルトの）アルファベットではなく数字で識別します。

- `outsidebox`: `separateanswersheet`を用いる場合に、このオプションによりアルファベット（あるいは数字）を答案用紙のボックスの外側に印刷します。

- `init`: 時刻を用いて乱数生成を初期化します。 このオプションはテスト用です。実際の試験では使用しないでください!

- `insidebox`: `separateanswersheet`を用いない場合に、このオプションによりアルファベット（あるいは数字）を受験者がマークするボックス内に印刷します。

- `catalog`: 将来の試験で組み合わせて使えるように設問のカタログを作成します。設問は番号ではなく識別名で区別されます。このレイアウトには`\onecopy`を使用する必要はありません。

- `postcorrect`: スキャン画像の解析を終えてから（採点時）、出題者が作成した答案用紙を正解として指定したい場合にこのオプションを用います。詳細はを参照してください。

- `fullgroups`: `\insertgroup`と`\copygroup`のオプションパラメータの使用を取り消します。したがって、グループ全体が挿入およびコピーされます。（参照）

- `storebox`: ボックスの形状（デフォルトは長方形。参照）を長円や円に変更した場合に、automultiplechoiceが`\savebox`ではなく、`\storebox`を使用してボックスの形状を保存するようにします。

- `automarks`: `separateanswersheet`（別紙答案用紙）モードにおいて、試験問題のページに四隅のマーカーを印刷したくない場合に使用してください。マーカーは別紙答案用紙にのみ印刷されます。この場合に試験問題ページ上のページ番号の書式を変更するには、`\AMCsubjectPageTag`コマンドを次のように再定義してください:

      \renewcommand\AMCsubjectPageTag{%
        \fbox{\texttt{\the\AMCid@etud:\thepage}}%
      }

  `automarks`オプションは、AMCが試験問題ページ上のデータを処理できなくなりますので、これを読み取る必要がない場合にのみ使用してください。

- `nopage`: 余白、四隅のマーカー、識別ボックスが必要ない場合、つまり（練習問題などのため）文書をAMCで使用する予定がない場合に使用してください。

#### 試験問題数の記述

試験問題用紙の内容を記述したLaTeXソースコードは`\onecopy`コマンドの呼出しに含まれている必要があります。これの最初の引数は生成する実体の部数、2番目が実体を生成するコードです。

    \onecopy{50}{ ... }

代替の構文として`examcopy`環境も使用可能で、部数はそのオプションで指定します（デフォルトは5）。

    \begin{examcopy}[50]
    ...
    \end{examcopy}

examcopyを使用するには`environ`パッケージをインストールする必要があります。このパッケージは、Ubuntuディストリビューション9.10（Karmic Koala）までで用いられているTeX Live 2007ディストリビューションでは使用できません。

問題用紙番号が奇数か偶数かにより設問内容を変えたい場合には、`\exemplairepair`コマンドを使用してください。（訳注: 隣の問題と確実に差異を設けるために使用できます。`\exemplairepair`奇数番号用`\else`偶数番号用`\fi`のように使用します。`examcopy`環境内では直接には記述できません。）

`\AMCStudentNumber` コマンドにより問題用紙番号が表示されます。

#### 設問と選択肢

単一選択問題（正解が1個）では、次のようなモデルを用います:

    \begin{question}{識別名}
      ここに問題文...
      \begin{choices}
        \correctchoice{正しい選択肢}
        \wrongchoice{誤った選択肢}
        \wrongchoice{別の誤った選択肢}
      \end{choices}
    \end{question}

各設問には異なる識別名を用いなければなりません。識別名には、数字、アルファベットと、単純な文字が使えます（アンダースコア、波括弧、角括弧などLaTeXで特殊な意味をもつ文字は使えません）。設問識別名は角括弧で数字を囲んだ形式で終わらないようにしてください。この形式は受験番号記入欄用に予約されています。

各設問の選択肢の数は199個までです。

設問を入れ子にしてはいけません。採点表のエクスポートが正しく行われなくなります（参照）。

特定の設問について選択肢をシャフルせず順序を保つには、`choices`環境の`o`オプションを使用します。3行目を次のようにしてください:

    \begin{choices}[o]

選択肢を2カラムに配置するには、`multicol`パッケージを使用できます。

    \usepackage{multicol}

を用いてプリアンブル部（`automultiplechoice`への参照の直後など）でロードし、以下に示すようにmulticols環境の中にchoices環境を入れてください:

    \begin{multicols}{2}
      \begin{choices}
        \correctchoice{正しい選択肢}
        \wrongchoice{誤った選択肢}
        \wrongchoice{別の誤った選択肢}
      \end{choices}
    \end{multicols}

選択肢がもっと短い場合、`choices`環境のかわりに`choiceshoriz`を用いることで、選択肢を横に並べていくことができます。

（正解が任意個あるような）複数選択問題には、`question`環境のかわりに`questionmult`を使用します。

どの選択肢を選んだかが成績に無関係な設問には、次の例のように`\QuestionIndicative`コマンドが使用できます。

    \begin{question}{難易度}\QuestionIndicative
      \scoring{auto=0,v=-1,e=-2}
      この授業は易しいですか難しいですか？0（非常に難しい）から5（非常に易しい）の範囲で選んでください。
      \begin{choiceshoriz}[o]
        \correctchoice{0}
        \correctchoice{1}
        \correctchoice{2}
        \correctchoice{3}
        \correctchoice{4}
        \correctchoice{5}
      \end{choiceshoriz}
    \end{question}

##### Last choice

`\lastchoices`コマンドを使用すると、一部の選択肢をシャフルせず常に末尾に置くことができます。

    \begin{question}{color}
      なに色ですか？
      \begin{choiceshoriz}
        \wrongchoice{赤}
        \wrongchoice{青}
        \wrongchoice{黄}
        \lastchoices
        \correctchoice{透明}
        \wrongchoice{わからない}
      \end{choiceshoriz}
    \end{question}

    \begin{questionmult}{number}
      いくつですか？
      \begin{choiceshoriz}
        \wrongchoice{なし}
        \correctchoice{1}
        \wrongchoice{2}
        \wrongchoice{3}
        \lastchoices
        \correctchoice{あまり多くない}
        \wrongchoice{たくさん}
      \end{choiceshoriz}
    \end{questionmult}

##### 設問番号

次の設問の番号は`\AMCnumero`コマンドで変更できます。各試験問題の実体化前に

    \AMCnumero{1}

が呼び出されますが、どこで使用してもかまいません。

特定の設問の番号を非表示にして、番号の増加を抑制するには、次の例のように`\AMCquestionNumberfalse`を使用します:

    {
      \AMCquestionNumberfalse
      \def\AMCbeginQuestion#1#2{}
      \begin{question}
        ...
      \end{question}
    }

#### 設問の模範解答解説

設問に対する解答に解説を加えるには、`\explain`コマンドを使うことができます。解説はオプションであり、模範解答と設問カタログファイルにのみ表示されます。

個別模範解答には表示されません。

単純な例を示します:

    \begin{question}{解説}
      次の中で標高が一番高いのはどれですか？
      \begin{choices}
          \correctchoice{サガルマータ}
          \wrongchoice{K2}
          \wrongchoice{モンブラン}
          \wrongchoice{アコンカグア}
      \end{choices}
      \explain{サガルマータは文字どおり「世界の頂上」という意味で、世界一の標高をもつエベレスト山の地元名です。}
    \end{question}

`explain`コマンドは`question`系の環境内でのみ使用できます。これには`question`、`questionmult`、`questionmultx`環境があります。

デフォルトではこのコマンドは解説の前に解説: と表示します。この動作は`\AMCtext`コマンドで変更できます（参照）。

このデフォルト動作を特定の設問でのみ変更したい場合は、`\AMCtext`コマンドを次の例のように`\explain`の前に使用してください:

    \begin{question}{標高}
      次の中で標高が一番高いのはどれですか？
      \begin{choices}
          \correctchoice{サガルマータ}
          \wrongchoice{K2}
          \wrongchoice{モンブラン}
          \wrongchoice{アコンカグア}
      \end{choices}
      \explain{サガルマータは文字どおり「世界の頂上」という意味で、世界一の標高をもつエベレスト山の地元名です。}
    \end{question}

    \begin{question}{仲間はずれ}
      次の中から仲間はずれを選びなさい。
      \begin{choices}
          \correctchoice{キリマンジャロ}
          \wrongchoice{ヒマラヤ}
          \wrongchoice{アルプス}
          \wrongchoice{アンデス}
      \end{choices}
      \AMCtext{explain}{\textit{\textbf{理由: }}}
      \explain{キリマンジャロは山ですが、残りは山脈です。}
    \end{question}

    \begin{questionmult}{ヒマラヤ}
      次の中でヒマラヤにあるのはどれですか？すべて選びなさい。
      \begin{choices}
          \correctchoice{エベレスト山}
          \correctchoice{K2}
          \wrongchoice{モンブラン}
          \wrongchoice{アコンカグア}
      \end{choices}
      \explain{アコンカグアはアンデス山脈にあり、モンブランはアルプスにあります。}
    \end{questionmult}

このようにすると、最初と三つめの設問では解説の前に解説: と表示しますが、二つ目の設問の解説の前には理由: と表示されます。

#### 選択肢を複数カラムに配置

（スペースを節約するために）選択肢を複数のカラムに置くには、LaTeXの`multicol`パッケージを用いて、`multicols`環境内に`choices`環境を入れることができます。

選択肢がカラムの1行におさまらない場合、その一部が次のカラムに分割されてしまうことがあり、これは受験者を混乱させるかもしれません。この現象を避けるには、`\AMCBoxedAnswers`コマンドを使用して、各選択肢をボックスに入れてしまうことができます。使用例を示します:

    \begin{question}{2カラム}
      鳥とは何ですか？
      \begin{multicols}{2}\AMCBoxedAnswers
        \begin{choices}
          \correctchoice{翼をもった動物で、卵を産みます。あらゆる種類の色をもった鳥がいます。}
          \wrongchoice{木製の大きな家具で、多くの場合、家庭用の衣類を保管するのに使われます。}
          \wrongchoice{蒸気で動く機械で、高速に缶を密封することができます。}
        \end{choices}
      \end{multicols}
    \end{question}

複数カラム等のブロック内の選択肢間の垂直間隔はパラメータ化されており、寸法`AMCinterBrep`により変更することができます:

    \AMCinterBrep=.5ex

#### 選択肢間のスペース

通常の選択肢間の垂直間隔もパラメータ化されており、寸法`AMCinterIrep`により変更することができます:

    \AMCinterIrep=.75ex

#### 得点表記領域の定義

得点表記領域に`tikz`パッケージを用いてオプションを付加することができます（参照）。

    \usepackage{tikz}

##### `separateanswersheet`オプションを使用しない場合

以下のコマンドを`\begin{document}`コマンドから`\onecopy`コマンドまでの間に入力してください:

    \AMCsetScoreZone{width=1.5em,height=1.5ex,depth=.5ex,position=margins}

`width`, `height`, `depth`の各変数は得点表記領域の寸法を表します。

`position`の値は、none, question, margin, marginsのいずれかです。

##### `separateanswersheet`オプションを使用する場合

以下のコマンドを`\begin{document}`コマンドから`\onecopy`コマンドまでの間に入力してください:

    \AMCsetScoreZoneAnswerSheet{width=1.5em,height=1.5ex,depth=.5ex,position=question}

`width`, `height`, `depth`の各変数は得点表記記入領域の寸法を表します。

`position`の値は、none, question, margin, marginsのいずれかです。

`margins` オプションはAMC-TXTでは動作しません。

これらのコマンドを、試験問題の印刷後に入力してはいけません。

#### 設問のグループ

設問をグループに入れることにより、グループ内の設問をシャフルして試験問題の実体ごとに順序を変えることができます。それぞれの設問グループは通常文字によるグループ名をもたなければなりません。

設問を一つ一つグループに入れるには、次の例のようにします。

    \element{マイグループ}{
      \begin{question}{簡単}
        では、1足す1はいくつですか？
        \begin{choiceshoriz}
          \correctchoice{2}
          \wrongchoice{0}
          \wrongchoice{3}
        \end{choiceshoriz}
      \end{question}
    }

`element`を用いたグループの構築は1回しか行ってはいけません。そのため、これらは、試験問題の実体ごとに内容を繰り返す`onecopy`コマンドの前に置かなければなりません。

最後に、グループの内容は`insertgroup`コマンドを用いて、

    \insertgroup{mygroup}

のようにして試験問題用紙に出力されます。

グループの出力方法は`setgroupmode`コマンド（グループの作成後、`onecopy`の前に1度だけ実行）で設定するグループモードによって制御されます:

    \setgroupmode{mygroup}{XXX}

`XXX`は以下のいずれかです:

fixed

  このモードでは、出力のたびに、グループの要素を先頭から取ります。

cyclic

  そのグループで前回使用した要素の次から要素を取り、必要ならリサイクルします。

withreplacement

  グループを使用する前にシャフルする以外は`fixed`と同様です。

withoutreplacement

  `cyclic`と同様ですが、リサイクルでグループの先頭に戻るときにシャフルします。

次に作成するグループ（グループは最初の`element`で作成されます）のデフォルトのグループモードは、次のコマンドで設定できます:

    \setdefaultgroupmode{XXX}

モードをまったく指定していない場合は、`fixed`モードが使用されます。

グループを構築すると、`shufflegroup`コマンドを次のように用いてグループ内の設問をシャフルすることができます:

    \shufflegroup{マイグループ}

しかし、`shufflegroup`コマンドは、グループモードを適切に使用することでいつでも置き換えられます。

AMC 1.2.2014.111201より前のバージョンでレイアウトした試験問題を再利用し、デフォルト（`fixed`）以外のモードを選択する場合は、`\shufflegroup`コマンドを忘れずに削除してください。

設問グループは、次のようなコマンドによって、より細かく操作することができます:

- `\insertgroup[n]{マイグループ}`は、（オプションのパラメータnを使用することにより）グループ内の最初のn要素だけ出力します。

- `\insertgroupfrom[n]{グループ名}{i}`は`\insertgroup[n]{groupname}`と同じですが、i番目（先頭は0番目）の要素から開始します。

- `\cleargroup{マイグループ}`は、グループの中身を空にします。

- `\copygroup{グループA}{グループB}`は、グループAの全要素をグループBの最後にコピーします。オプション引数nを用いると、最初のn要素だけコピーされます: `\copygroup[n]{グループA}{グループB}`

これらのコマンドを用いれば、例えば次のコードにより、GAグループからランダムに4個、GBグループからランダムに5個、GOグループから全設問を取り出して、それらをシャフルするということができます（`onecopy`コマンドの引数内部で使用します。また、`GA`, `GB`, `all`のグループモードは`withoutreplacement`または`withreplacement`とします）:

    \cleargroup{all}
    \copygroup[4]{GA}{all}
    \copygroup[5]{GB}{all}
    \copygroup{GO}{all}
    \insertgroup{all}

- `\copygroupfrom[n]{groupA}{groupB}{i}`は`\copygroup[n]{groupA}{groupB}`と同じですが、i番目（先頭は0番目）の要素から開始します。

#### 用紙サイズと余白

LaTeXの`automultiplechoice`パッケージは`geometry`を用いて余白とページレイアウトを設定しています。その設定を上書きするには、`\begin{document}`の直前で`\geometry`コマンドを用いてください。詳細はgeometryパッケージのドキュメントを参照してください。AMCが設定する初期値は次のとおりです:

    \geometry{hmargin=3cm,headheight=2cm,headsep=.3cm,footskip=1cm,top=3.5cm,bottom=2.5cm}

スペースを広げるために余白を縮めるときは、以下に注意してください:

- 四隅のマーカーは完全に印刷されていなければなりません（プリンタの印刷可能範囲により欠けてしまう可能性があります）。

- 四隅のマーカーはスキャン画像上で完全に見えなければなりません（マーカーが用紙の端ぎりぎりのとき、用紙がずれたり傾いたりすると、画像からはみ出してしまいます）。

`\geometry`コマンドの引数リストの一つのオプションとして用紙サイズを設定することもできます。可能な値は、`a4paper`、`a5paper`、`a6paper`、`b4paper`、`b5paper`、`ansibpaper`、`ansicpaper`、`ansidpaper`、`letterpaper`、`executivepaper`、`legalpaper`などです。

用紙サイズが小さいときは、（`+1/1/53+`のような）目視用の用紙IDの位置を変更したい場合があるかもしれません。これは次のような形式で、`\AMCidsPosition`コマンドを用いることでできます:

    \AMCidsPosition{pos=p,width=w,height=h}

ここで、pは`none`、`top`、`side`のいずれかで、w、hはIDを含む（見えない）ボックスの寸法です。デフォルト値は次の値です:

    \AMCidsPosition{pos=side,width=4cm,height=3ex}

最後に、A5用紙のための設定例を示します:

    \geometry{a5paper,hmargin=1.6cm,top=2.5cm}
    \AMCidsPosition{pos=top}

`pgfpages`パッケージや、他のレイアウト用パッケージをロードしないでください。

#### マーク用ボックスの外見スタイル

`\AMCboxStyle`コマンド（旧称の`\AMCboxDimensions`も使用可能です）により、マーク用ボックスの寸法を変えることができます。

デフォルト値:

    \AMCboxStyle{shape=square,size=2.5ex,down=.4ex,rule=.5pt,outsidesep=.1em,color=black}

- `shape`はボックスの形状です。squareとすれば四角形になり、ovalとすれば円または長円になります。ovalを使用するにはLaTeXのtikzパッケージをロードする必要があることに注意してください。

- `width`はボックスの幅です。

- `height`はボックスの高さです。

- `size`はボックスのサイズ（`width`と`height`）です。

- `rule`はボックスの枠の太さです。

- `down`はボックスをどれだけ下に下げるかを制御します。

- `outsidesep`は、`outsidebox`オプションを選択したときに、ボックスとその外に印刷する文字との間隔です（参照）。

- `cross=true`正答を表すボックス（模範解答用紙で表示されます）を、黒の塗りつぶしではなくクロス記号で示します。

- `crossrule=1.5pt`クロス記号の太さです。

- `color=col`はボックスを描画する色を指定します。colは`xcolor`パッケージで認識できる表記でなければなりません。例えばredのような名前も使用できます。また次のように好みの色を定義することもできます。

      \definecolor{mylightgreen}{rgb}{0.67,0.88,0.5}
      \AMCboxStyle{color=mylightgreen}

小さめのボックスを作るには、例えば次のようなコマンドを使ってください:

    \AMCboxStyle{size=1.7ex,down=.2ex}

パッケージの`separateanswersheet`オプションを使用しているときは、ボックスのラベルをカスタマイズすることもできます。デフォルトの動作は大文字アルファベットによるラベルですが、`digits`オプションを用いると数字になります。独自のラベルを用いるには、`\AMCchoiceLabel`コマンドを再定義する必要があります。このコマンドは、選択肢を数えるカウンタ名を引数にとります。例えば以下のコードにより、ボックスのラベルにアルファベットの小文字を用いるようになります:

    \def\AMCchoiceLabel#1{\alph{#1}}

別の例として、`arabxetex`パッケージを使用している場合、以下のコードが便利かもしれません:

    \def\AMCchoiceLabel#1{\textLR{\Alph{#1}}}

ボックス内ラベルのスタイルも、次の例のように`\AMCchoiceLabelFormat`コマンドを再定義して変更することができます（ラベルを太字にしたいとします）:

    \def\AMCchoiceLabelFormat#1{\textbf{#1}}

ボックス外ラベルのスタイルも、次の例のように`\AMCoutsideLabelFormat`コマンドを再定義して変更することができます（ラベルを太字にしたいとします）:

    \def\AMCoutsideLabelFormat#1{\textbf{#1}}

正答のボックスにマークを表示するかどうかのスイッチは`\AMC@correc`です。\begin{document}の後に、これをtrueに設定するコマンドを定義できます。

    \makeatletter
    \def\AMCforcecorrect{\AMC@correctrue}
    \makeatother

そして、特定の設問で使用します（効果がその設問のみに限定されるよう、波括弧で囲みます）:

    {\AMCforcecorrect\begin{questionmult}{test}\QuestionIndicative
       .....
     \end{questionmult}
    }

AMCがこの設問の得点を計算しないよう（採点基準を0点とするか`\QuestionIndicative`を用いて）設定するべきです。

#### 設問の外見スタイル

LaTeXの`AMCbeginQuestion`コマンドを再定義することにより、各設問の外見を変更することができます。デフォルトの定義は次のとおりです:

    \def\AMCbeginQuestion#1#2{\par\noindent{\bf Question #1} #2\hspace*{1em}}

このコマンドに与えられる最初のパラメータは表示する設問の番号です。2番目は複数選択問題の場合に`\multiSymbole`を含み、それ以外の場合は空です。`\multiSymbole`コマンドは複数選択問題を他と区別できるようにするためのものであり、これも変更することができます。デフォルトではトランプのクラブ記号です。

    \def\multiSymbole{$\clubsuit$}

指名試験問題用紙（参照）を使用する場合は、プリアンブルで次のように新しいコマンドを設定し、

    \def\Iswitch{\def\AMCbeginQuestion##1##2{}\AMCquestionNumberfalse}

必要な箇所で使用します（効果の範囲を限定するため、波括弧内に記述することを忘れないでください）:

    {\Iswitch
     \begin{question}{Number}
       大きいものを選びなさい。
       \begin{choiceshoriz}[o]
         \wrongchoice{200}\wrongchoice{2}\wrongchoice{20}\wrongchoice{200}\correctchoice{600}
       \end{choiceshoriz}
     \end{question}
    }

選択肢の外見も、`choices`や`choiceshoriz`のかわりに`choicescustom`を用いれば、次の三つのLaTeXマクロを再定義して同様に変更できます:

    \def\AMCbeginAnswer{}
    \def\AMCendAnswer{}
    \def\AMCanswer#1#2{#1 #2}

`\onecopy`コマンド内では、`#`は2重にしてください。

    \def\AMCanswer##1##2{##1  ##2}
    \def\AMCbeginQuestion##1##2{}

以下の寸法を再定義すれば間隔を変更することもできます（これはデフォルト値です）:

    \AMCinterIrep=0pt
    \AMCinterBrep=.5ex
    \AMCinterIquest=0pt
    \AMCinterBquest=3ex
    \AMCpostOquest=7mm
    \setlength{\AMChorizAnswerSep}{3em plus 4em}
    \setlength{\AMChorizBoxSep}{1em}

これらの寸法は、標準モード用（`I`）とボックスモード用（`B`）（`\AMCBoxedAnswers`の使用時や`box`パッケージオプション使用時）での設問間（`quest`）と選択肢間（`rep`）の垂直スペース、および記述式設問後のスペースです。最後の二つの長さは `choicescustom` 環境内で使用されます。

#### レイアウト

##### マージン

マージンはほとんどのプリンタで正しく印刷できるように選んであります。変更するには、LaTeXの`geometry`パッケージにある`geometry`コマンドを使用することができます。例えば、トップマージンを減らすには、デフォルトの3.5cmの代わりに、`\begin{document}`の直前で`\geometry{top=3cm}`とします。

##### ページ番号

AMCは各試験問題のページ番号を自動的に取り扱います。各試験問題の末尾や問題用紙と答案用紙の区切りなどに`\AMCaddpagesto{integer}`コマンドを置くと、いくつか空ページが挿入され、その次のページ番号が各試験問題で同一になります。

#### 別紙答案用紙方式

`separateanswersheet`オプション（参照）で生成される別紙答案用紙のレイアウトを変更することも可能です。

1. マーク用ボックスの水平間隔を変更したり、設問間の垂直間隔を変更したりするだけならば、以下の寸法を再定義するだけです:

       \AMCformHSpace=.3em
       \AMCformVSpace=1.2ex

2. 表示設定をもっと細かく変更したい場合は、各設問と選択肢の開始に使われるコマンドを再定義することができます:

       \def\AMCformBeforeQuestion{\vspace{\AMCformVSpace}\par}
       \def\AMCformQuestion#1{{\bf 問 #1:} }
       \def\AMCformAnswer#1{\hspace{\AMCformHSpace} #1}

これらの定義は、LaTeXファイルの`\begin{document}`の直後に挿入しなければなりません。

#### 受験番号取得

受験番号の取得はLaTeXの`\AMCcodeGridInt[options]{key}{n}`コマンドを使用して、受験者に答案用紙上に自分の受験番号を記入してもらうことで、容易に行うことができます。このコマンドの二つの引数は、設問キー（識別名）と、受験番号に用いる桁数nです。例えば次のようなヘッダーを用いることができます:

    {\setlength{\parindent}{0pt}\hspace*{\fill}\AMCcodeGridInt{受験番号}{8}\hspace*{\fill}
    \begin{minipage}[b]{6.5cm}
    $\longleftarrow{}$\hspace{0pt plus 1cm} 受験番号を以下にマークし、その下に氏名を記入してください。

    \vspace{3ex}

    \hfill\namefield{\fbox{
        \begin{minipage}{.9\linewidth}
          氏名:

          \vspace*{.5cm}\dotfill

          \vspace*{.5cm}\dotfill
          \vspace*{1mm}
        \end{minipage}
      }}\hfill\vspace{5ex}\end{minipage}\hspace*{\fill}

    }

`separateanswersheet`オプションを用いている場合は、 `\AMCcodeGridInt`コマンドは`\AMCformBegin`コマンドの後に置く必要があります。

記入欄は、長さ `\AMCcodeHspace`、`\AMCcodeVspace` を変更することにより調整することができます。それぞれ、ボックス間の水平および垂直の間隔です。デフォルト値は次のように設定されています:

    \AMCcodeHspace=.5em
    \AMCcodeVspace=.5em

`\AMCcodeGrid[options]{key}{description}` コマンドは、より複雑な構造の受験番号を扱いたいときに使用できます。description はカンマ区切りの候補文字集合のリストです。一例として、AからEの英字1文字の後に3桁の数字で構成されるような受験番号は、`\AMCcodeGrid{client}{ABCDE,0123456789,0123456789,0123456789}` により扱うことができます。

`\AMCcodeGrid` と `\AMCcodeGridInt` の二つのコマンドは、以下のオプション（options 引数にカンマ区切りで指定）を認識します:

vertical=bool

  で bool を `true` か `false` にすると、指定した方向を使用します（デフォルトは `true` です）。

v

  は `vertical=true` の別名です。

h

  は `vertical=false` の別名です。

top

  は、各カラムの上端を垂直方向に揃えます。

#### 記述式設問

試験問題に記述式設問を加えたい場合があるかもしれません。一つの方法は、そういった設問のマーク用ボックスを採点者用に予約しておくことです。試験実施後、記入された答案を読んで、採点者が評価に該当するボックスにマークをつけます。そして答案をスキャンしてAMCで採点すれば、その点数を得点に組み入れることができます。

    \begin{question}{記述}
      \emph{インフレーション}の定義を述べよ。
      \AMCOpen{lines=5}{\wrongchoice[W]{誤}\scoring{0}\wrongchoice[P]{部}\scoring{1}\correctchoice[C]{正}\scoring{2}}
    \end{question}

この例では、採点用にボックスが3個作成されます。最初の（誤りの「誤」のラベルのついた）ボックスをマークすると、受験者は0点を獲得します。2番目の（部分点の「部」のラベルのついた）ボックスをマークすると、受験者は1点を獲得します。3番目の（正解の「正」のラベルのついた）ボックスをマークすると、受験者は2点を獲得します。

`\AMCOpen`の最初の引数はカンマで区切ったオプションです。使用できるオプションは次のとおりです:

lineup=bool

  `true`なら、解答欄と採点用ボックスを同じ行に並べます。`false`（デフォルト）なら、解答欄を枠で囲み、採点用ボックスの下に配置します。

lineuptext=text

  `lineup=true`のとき、このテキストと解答欄を同じ行に並べます。

lines=num

  解答の行数を設定します。デフォルト値は`1`です。

lineheight=dim

  各行の高さを設定します。デフォルト値は`1cm`です。

dots=bool

  `true`（デフォルト）なら、各行に点線を引きます。

contentcommand=cmdname

  解答領域の内容をカスタマイズするにはこのオプションを使用してください。内容を生成するための`\cmdname`コマンドを定義する必要があります。

hspace=dim

  採点用ボックスの間隔を設定します。

backgroundcol=color

  採点領域の背景色を設定します。

foregroundcol=color

  採点用ボックスの枠の色を設定します。

scan=bool

  `false`なら、採点用ボックスをスキャンしません（これは、この設問に限り手動でマーク認識することにして、受験者がボックスに何を記入しても無視したい場合に便利です）。デフォルトは`true`です。

annotate=bool

  `false`（デフォルト）なら、答案に採点記入する際、ボックスに記号をつけません（素点のみ記入されます）。

question=text

  採点者が設問を識別しやすくするための短いテキストを設定します。このテキストは、別紙答案用紙を用いる場合のみ、採点用ボックスの前に記載されます。

  questionのみ指定すると、デフォルトで設問の識別名が表示されます。

answer=text

  模範解答用紙の解答欄に記入される短いテキストを設定します。

onecopyコマンドの外で`\savebox`コマンドを使用すると、改行を含む長いテキストを表示できます。

           \newsavebox{\correcbox}
            \savebox{\correcbox}{\parbox{5cm}{\color{red}{ここで改行\\あるいは\\ここで...}}}

ボックスの中身を呼び出すには次のようにします:

            \AMCOpen{lines=4,lineheight=0.15cm, answer= \usebox{\correcbox}}{問題}

width=dim

  `lineup=false`のときの、解答欄を囲む枠の幅を設定します。デフォルト値は`.95\linewidth`です。

framerule=dim

  解答欄を囲む枠の線幅を設定します。

framerulecol=color

  解答欄を囲む枠の色を設定します。

boxmargin=dim

  採点用ボックスの周囲の余白を設定します。

boxframerule=dim

  採点用ボックスの周囲枠の線幅を設定します。

boxframerulecol=color

  採点用ボックスの周囲枠の色を設定します。

これらのパラメータの（試験全体での）デフォルト値は、次のようにして`\AMCopenOpts`コマンドで設定できます

    \AMCopenOpts{boxframerule=2pt,boxframerulecol=red}

さらに、`\AMCotextReserved`コマンドを次のように再定義すると、受験者にマークしないように指示するテキストを採点領域に書くことができます:

    \def\AMCotextReserved{\emph{この欄には記入しないこと}}

別紙答案用紙を用いている場合は、各設問に付け加えるテキストを次のように定義できます:

    \def\AMCotextGoto{\par{\bf\emph{解答は別紙答案用紙に記入してください。}}}

ボックス数が多く一定幅で改行させたい場合は、次のヒント（`\parbox`）が使えます。

    \AMCOpen{lines=6}{
              \hbox{\parbox{8.5cm}{
                               \correctchoice[1]{1}\scoring{b=1}
                               \correctchoice[2]{2}\scoring{b=2}
                               \correctchoice[3]{3}\scoring{b=3}
                               \correctchoice[4]{4}\scoring{b=4}
                               \correctchoice[5]{5}\scoring{b=5}
                               \correctchoice[6]{6}\scoring{b=6}
                               \correctchoice[7]{7}\scoring{b=7}
                               \correctchoice[8]{8}\scoring{b=8}
                               \correctchoice[9]{9}\scoring{b=9}
                               \correctchoice[10]{10}\scoring{b=10}
                               \wrongchoice[F]{F}\scoring{b=0}
                        }}
                }

#### 1文字選択肢

選択肢の記述に長い文章は必要でなく1文字で十分の場合があります。別紙答案用紙を用いる場合、問題用紙と答案用紙の両方にボックスを表示するのはとても面倒です。そのような場合、`choices`環境のかわりに`\AMCBoxOnly`コマンドを使用してください:

    \begin{question}{arm}
      図中の\textbf{腕}を示す文字はどれですか？
      \AMCBoxOnly{ordered=true}{\wrongchoice[A]{}\correctchoice[B]{}%
        \wrongchoice[C]{}\wrongchoice[D]{}}
    \end{question}

`\AMCBoxOnly`の最初の引数はカンマで区切ったオプションです。使用できるオプションは次のとおりです:

help=text

  別紙答案用紙のボックスの前にリマインダーのテキストを表示します。

ordered=bool

  `true`（デフォルト値は`false`）なら、選択肢はシャフルされません。

#### シャフルパラメータの選択

シャフルの生成に用いる乱数生成器のシードは、以下のコマンドで変更することができます（documentの最初の方で、少なくとも`onecopy`コマンドの外で使わなければなりません）:

    \AMCrandomseed{1527384}

割り当てた値（1から4194303までの中から選びます）が変更されると、シャフルが変わります。もちろん、試験問題用紙を印刷した後は、この値を変更してはいけません。

値はxyファイルに（`\rngstate{1}{1515}`のように）記録されます。デフォルト値は1515です。

#### セクション分けと別紙答案用紙

別紙答案用紙上にもセクション分けが見えるようにするには、`\section`と`\subsection`の代わりに、`\AMCsection`と`\AMCsubsection`を使用してください。（番号なしセクション用に`\AMCsection*`と`\AMCsubsection*`も定義されています）

#### 試験問題内での参照

LaTeXのコマンド`\label`、`\ref`、`\pageref`コマンドを設問や選択肢で用いると、試験問題の実体化ごとに同じ引数で呼び出され、毎回参照する番号が変わるので、問題が発生します。これを解決するには、それぞれ`\AMClabel`、`\AMCref`、`\AMCpageref`を用いてください。これらは、`\label`、`\ref`、`\pageref`を呼び出す前に、引数に実体の番号を付加します。

バージョン1.2.2015.102901以降では`\AMCqlabel`ではなく`\AMClabel`を使ってください。旧コマンドは以前のtexファイルとの互換性のために残しています。

また、各実体化の最初に、カウンタを0にリセットする必要があります。一例として、別の用紙にまとめて配置された図への参照を行いたいとき、次のように書けます:

    \element{動物}{
      \begin{figure}[p]
        \centering
        \includegraphics[width=.6\linewidth]{tiger}
        \caption{とある動物}
        \AMClabel{虎}
      \end{figure}

      \begin{question}{tiger}
        図\AMCref{虎}（\AMCpageref{tiger}ページ）の動物は何ですか？
        \begin{choices}
          \correctchoice{トラ}
          \wrongchoice{キリン}
          \wrongchoice{ゾウ}
          \wrongchoice{ネコ}
        \end{choices}
      \end{question}
    }

そして重要なのは、`\onecopy`コマンドの直後に

    \setcounter{figure}{0}

を挿入して、図の番号がどの実体でも1から始まるようにすることです。これを行わないと、実体ごとに番号が増加してしまい、意図した動作ではなくなってしまいます。

##### cleverefパッケージの使用

このパッケージは、設問番号、設問ページ番号、ラベルのページ番号を昇順にソートします（ドキュメントhttp://mirrors.ctan.org/macros/latex/contrib/cleveref/cleveref.pdf）。

このパッケージは、`automuliplechoice`パッケージの後にロードしなければなりません。

このパッケージを使用するために新しいコマンド`\AMCstudentlabel`を導入しました。

    \cref{\AMCstudentlabel{led},\AMCstudentlabel{lamp},\AMCstudentlabel{moter}}

led, lamp, moterは、設問を参照するために \AMClabel{led}, \AMClabel{lamp}, \AMClabel{moter} で作成されたラベルです。これらの設問の番号はコンパイル時に自動的にソートされます。

#### AMCが挿入するテキストのカスタマイズ

以下のカスタマイズには`\AMCtext`を使用してください:

- `\AMCtext{none}{sentence}`は、`completemulti`オプションを使用する場合の「該当なし。」（日本語でのデフォルトテキスト）を、指定したsentenceに置換します。

- `\AMCtext{corrected}{title}`は、模範解答用紙に表示される「模範解答」（日本語でのデフォルトテキスト）を、指定したtitleに置換します。

- `\AMCtext{catalog}{title}`は、`catalog`オプションで生成される設問カタログに表示される「設問カタログ」（日本語でのデフォルトテキスト）を、指定したtitleに置換します。

- `\AMCtext{explain}{title}`は、`explain`コマンドのために生成される解説の前に表示する「解説」（日本語でのデフォルトテキスト）を、指定したtitleに置換します。

  このコマンドのデフォルトオプションは次のとおりです:

      \AMCtext{explain}{\textit{\textbf{解説: }}}

- 同様に、以下のようなコマンドも検討できます（2番目の引数は日本語でのデフォルトテキストです）:

      \AMCtext{draft}{ドラフト}
      \AMCtext{message}{試験の実施には、auto-multiple-choiceでコンパイルされた文書を印刷してください。}

- `\AMCsetFoot{text}`はフッタに表示するテキストを設定します。例えば、ページ番号を表示するには、`\AMCsetFoot{\thepage}`のように使用します。

#### バイナリコード

AMCは各試験問題とページの番号をバイナリコードを使って識別します。

- 1行目 : （デフォルトで）12桁 : 試験問題番号の最大値 = 2^12-1 = 4,095

- 2行目 : （デフォルトで）最初の6桁 : 1試験問題あたりの最大ページ数 = 2^6-1 = 63

- 2行目 : （デフォルトで）次の6桁 : チェックコード

試験問題やページの数を増やすには、`\AMC@NCBetud`, `\AMC@NCBpage`, `\AMC@NCBcheck`のデフォルト値を変更してください。

プリアンブルに以下のコマンドを記述します（これらはデフォルト値）。

    \makeatletter
    \def\AMC@NCBetud{12}
    \def\AMC@NCBpage{6}
    \def\AMC@NCBcheck{6}
    \makeatother

### AMC用のオプション

ソースファイルのヘッダ（`%`で始まる先頭行）に、AMCに渡すオプションをいくつか付加することができます:

`%%AMC:preprocess_command=commandname`

  ソースファイルを処理するLaTeXを呼ぶ前に、commandnameコマンドを実行させます。このコマンドはプロジェクトディレクトリ内で実行され、ソースファイルのコピーの名前が引数として渡されます。これは単なるコピーなので、commandnameがファイルの内容を変更しても問題ありません。

`%%AMC:latex_engine=engine`

  ユーザ設定されたLaTeXエンジンにかかわらず、このファイルのコンパイルに用いるエンジンを指定します。

### 乱数を用いた数学設問

#### fpパッケージの使用

`automultiplechoice`の前に

    \usepackage{fp}

として`fp`パッケージを使用すると、乱数データを用いた練習問題を作ることができます。`fp`パッケージのドキュメントはhttp://mirrors.ctan.org/macros/latex/contrib/fp/READMEにあります。以下では単純な例から見てみます。

    \begin{question}{加算}
      \FPeval\VQa{trunc(1+random*8,0)}
      \FPeval\VQb{trunc(4+random*5,0)}
      \FPeval\VQsomme{clip(VQa+VQb)}
      \FPeval\VQnonA{clip(VQa+VQb-1)}
      \FPeval\VQnonB{clip(VQa*VQb)}
      \FPeval\VQnonC{clip(VQa-VQb)}

      \VQa{} と \VQb{} の和はいくつですか？
      \begin{choiceshoriz}
        \correctchoice{\VQsomme}
        \wrongchoice{\VQnonA}
        \wrongchoice{\VQnonB}
        \wrongchoice{\VQnonC}
      \end{choiceshoriz}
    \end{question}

`\FPeval`コマンドは計算を実行するのに使います:

`random`は[0,1]の実数を返すので、このコマンドによりVQaには1から8までの乱数の整数値が設定されます。次の行では、VQbに4から8までの乱数の整数値が設定されます。

正しい値をVQsomme変数に入れています。

誤った値をVQnonA、VQnonB、VQnonCに入れています。

変数名のVQは他のLaTeXコマンドと干渉しないように選んであります。

乱数シードは次のように設定できます:

    \FPseed=integer

integerは固定値でなければなりません。日付や時刻から計算してはいけません。

##### 区間の選択

`automultiplechoice`パッケージは、さらに、この種の設問の作成が容易になるように`\AMCIntervals`コマンドを定義しています。以下に例を示します:

    \begin{question}{inf-expo-indep}
      \FPeval\VQa{trunc(2 + random * 4,0)}
      \FPeval\VQb{trunc(6 + random * 5,0)}
      \FPeval\VQr{VQa/(VQa+VQb)}

      $X$と$Y$を互いに独立な指数分布に従う乱数変数とし、それぞれのパラメータを\VQa{}と\VQb{}とします。確率 $\mathbb{P}[X<Y]$ は、次のどの区間に属しますか？

      \begin{multicols}{5}
        \begin{choices}[o]
          \AMCIntervals{\VQr}{0}{1}{0.1}
        \end{choices}
      \end{multicols}
    \end{question}

（訳注: \mathbbを使用するにはamsfontsパッケージが必要です。）

この行は、各区間 [0,0.1[ [0.1,0.2[ ... [0.9,1[ に対応した10個の選択肢を挿入し、正解の選択肢は VQr を含んだ区間であることを指示します。`\AMCIntervals`の引数は次のとおりです:

1. 正解の値

2. 最初の区間の左端の値

3. 最後の区間の右端の値

4. 各区間の長さ

区間の書式は、ローカルな（例えば、よくあるのは [a,b[ ではなく [a,b) と書くなどの）慣行に合わせて、`\AMCIntervalFormat`コマンドを再定義して変更できます。オリジナルは

    \def\AMCIntervalFormat#1#2{[#1,\,#2[}

と定義されています。

##### 数値での解答

`\AMCnumericChoices`コマンドを用いれば、次の例のように、受験者に数値での解答をマークで記入させることもできます:

    \begin{questionmultx}{sqrt}
      \FPeval\VQa{trunc(5+random*15,0)}
      \FPeval\VQs{VQa^0.5}
      $\sqrt{\VQa}$ を計算して、小数点以下2桁で丸めよ。

      \AMCnumericChoices{\VQs}{digits=3,decimals=2,sign=true,
                     borderwidth=0pt,backgroundcol=lightgray,approx=5}
    \end{questionmultx}

`questionmultx`環境に注意してください。この設問は複数のボックスをマークする必要があるので複数選択問題にしなければなりませんが、複数の正解があると言うことはできません。なので複数選択問題の記号を表示しません。

`\AMCnumericChoices`コマンドの2番目の引数で用いられるオプションは次のとおりです（boolは`true`か`false`で、colorは`xcolor`で認識できる色でなければなりません）:

digits=num

  は、必要な桁数（デフォルトは3）を指定します。

decimals=num

  は、小数点以下の桁数（デフォルトは0）を指定します。

base=num

  は、数字の基数（進法）（デフォルトは10）を指定します。

significant=bool

  `true`なら、`\AMCnumericChoices`の最初の引数のうち上位桁のみ解答させます。例えば、`\AMCnumericChoices{56945.23}{digits=2,significant=true}`の正解は 57 となります。

exponent=num

  指数をnum桁とした、科学的記数法モードにします。

nozero=bool

  全桁から選択肢0を除去します。`\AMCnumericChoices`を用いて小さい正の値（<10）を記入するのに便利かもしれません。

sign=bool

  は、符号の有無（デフォルトはtrue）を指定します。

exposign=bool

  指数の符号を同様に指定します。

strict=bool

  `true`なら、符号とすべての桁のボックスがマークされなければなりません。`false`なら、マークしていない桁は0として扱います。デフォルトは`false`です。

vertical=bool

  `true`なら、1桁分のボックスを縦に配置します。`false`（デフォルト）なら、1桁分のボックスを横に配置します。

expovertical=bool

  `true`なら、仮数を指数の上に配置します。`false`なら、仮数を指数の横に配置します。

reverse=bool

  `true`なら、`vertical`モードにおいて、大きい数字を上に配置します（デフォルトは`true`）。

vhead=bool

  `true`なら、`vertical`モードにおいて、各桁の上部に`\AMCntextVHead`コマンドを使用して作成されるヘッダーを置きます。`\AMCntextVHead`はデフォルトで次のように定義されています。

      \def\AMCntextVHead#1{\emph{b#1}}

  このデフォルト値は、2進数の桁に番号をつけるのに便利です。

  デフォルト値は`false`です。

hspace=space

  は、ボックス間の水平間隔（デフォルトは`.5em`）を設定します。

vspace=space

  は、ボックス間の垂直間隔（デフォルトは`1ex`）を設定します。

borderwidth=space

  は、全ボックスを囲む枠線の太さ（デフォルトは`1mm`）を設定します。

bordercol=color

  は、枠線の色（デフォルトは`lightgray`）を設定します。

backgroundcol=color

  は、背景色（デフォルトは`white`）を設定します。

Tsign=text

  は、符号をマークするボックスの上に表示するテキスト（デフォルトは空で、`\def\AMCntextSign{text}`で再定義も可能）を設定します。

Tpoint=text

  は、小数点のテキストを設定します。デフォルトは`\raisebox{1ex}{\bf .}`で、`\def\AMCdecimalPoint{text}`で再定義も可能です。

Texponent=text

  は、仮数と指数を分けるテキストを設定します。デフォルトは`$\times10$\textasciicircum`で、`\def\AMCexponent{text}`でも再定義できます。

scoring=bool

  `true`なら、AMCにこの設問の採点基準を指定します。デフォルトは`true`です。

scoreexact=num

  は、正解に対する素点（デフォルトは2）を指定します。

exact=num

  は、正解として認めて`scoreexact`の得点を与える誤差（正解の整数値（小数点を除いた値）との差）（デフォルトは0）を設定します。

scoreapprox=num

  は、近似解に対する素点（デフォルトは1）を指定します。

approx=num

  は、近似解として認めて`scoreapprox`の得点を与える誤差（正解の整数値（小数点を取り除いた値）との差）（デフォルトは0）を設定します。

  AMCは`approx`との差分をとり比較する前に、すべての数字を（単純に小数点を取り除いて）整数に変換します。一例として、`decimals=2`のとき、正答が3.14で答案が3.2の場合、整数の差分は 320-314=6 となるので、`approx`が6以上のときに限って、受験者は`scoreapprox`を得ます。

scorewrong=num

  は、誤答に対する素点（デフォルトは0）を指定します。

`\AMCnumericOpts`コマンドを使えば、これらのパラメータに対して、（試験全体用の）デフォルト値を別の値に設定することができます:

    \AMCnumericOpts{scoreexact=3,borderwidth=2pt}

さらに、`separateanswersheet`オプションにより別紙答案用紙を使用する場合、`\AMCntextGoto`コマンドを再定義することにより、問題用紙側の`\AMCnumericChoices`を使用する各設問の最後に付加するテキストを設定することができます:

    \def\AMCntextGoto{\par{\bf\emph{解答は別紙答案用紙に記入してください。}}}

#### pgf/tikzパッケージの使用

このパッケージは、`automuliplechoice`パッケージの後にロードしなければなりません。

LaTeXの`pgf/tikz`パッケージ（http://www.ctan.org/tex-archive/graphics/pgf/baseを参照）は数学用関数などを提供するもので、

    \usepackage{tikz}

でロードされます。

latexを走らせて試験問題をコンパイルするたびに常に同じ結果が得られるよう、最初に乱数シードを設定しなければなりません:

    \pgfmathsetseed{2056}

##### 単純な計算

これは単純な計算を用いた例です

    \begin{question}{inverse}
      \pgfmathrandominteger{\x}{1}{50}

      $x=\x$ の逆数はいくつですか？

      \begin{choices}
        \correctchoice{\pgfmathparse{1/\x}\pgfmathresult }
        \wrongchoice{\pgfmathparse{1/(\x +1))}\pgfmathresult}
        \wrongchoice{\pgfmathparse{cos(\x)} \pgfmathresult}
        \wrongchoice{\pgfmathparse{\x^(-0.5)}\pgfmathresult}
      \end{choices}
    \end{question}

`\pgfmathparse`コマンドが計算を行い、`\pgfmathresult`が結果を出力します。

出力の書式は、次の例（小数点以下3桁、小数点としてカンマを使用）に示すように、`\pgfmathprintnumber`を用いて調整することができます。

    \begin{question}{inverse3}
      \pgfmathrandominteger{\x}{1}{50}
      \pgfkeys{/pgf/number format/.cd,fixed,fixed zerofill,precision=3,use comma}
      $x=\pgfmathprintnumber{\x}$ の逆数はいくつですか？

      \begin{choices}
        \correctchoice{\pgfmathparse{1/\x}\pgfmathprintnumber{\pgfmathresult}}
        \wrongchoice{\pgfmathparse{1/(\x +1))} \pgfmathprintnumber{\pgfmathresult}}
        \wrongchoice{\pgfmathparse{cos(\x)} \pgfmathprintnumber{\pgfmathresult}}
        \wrongchoice{\pgfmathparse{\x^(-0.5)} \pgfmathprintnumber{\pgfmathresult}}
      \end{choices}
    \end{question}

`\AMCIntervals`コマンドと`\AMCnumericChoices`コマンドを使用することもできます（および参照）。

##### グラフ

tikzパッケージはグラフを（ランダムなものもそうでないものも）作成することもできます。

    \begin{questionmult}{graph}
      以下にグラフが示された三つの関数を考えます:
      \pgfmathrandominteger{\a}{2}{4}
      \begin{center}
        \begin{tikzpicture}[domain=0:4]
          \draw[very thin,color=gray] (-0.1,-4.1) grid (3.9,3.9);
          \draw[->] (-0.2,0) -- (4.2,0) node[right] {$x$};
          \draw[->] (0,-4.2) -- (0,4.2) node[above] {$f(x)$};
          \draw[color=red] plot (\x,{(1+\a/4)*\x-\a}) node[right] {$f_{1} (x)$};
          \draw[color=blue] plot (\x,{\a*sin(\x r)}) node[right] {$f_{2}(x)$};
          \draw[color=orange] plot (\x,{\a*cos(\x r)}) node[right] {$f_{3}(x)$};
        \end{tikzpicture}
      \end{center}
      以下のうち正しいものはどれですか？
      \begin{choices}
        \pgfmathrandominteger{\x0}{2}{4}
        \correctchoice{$f_{2}(\x0)$=\pgfmathparse{\a*sin(\x0 r)} \pgfmathprintnumber{\pgfmathresult}.}
        \correctchoice{$f_{3}(\x0)$=\pgfmathparse{\a*cos(\x0 r)} \pgfmathprintnumber{\pgfmathresult}.}
        \wrongchoice{関数 $f_{1}(x)$ は線形関数である。}
      \end{choices}
    \end{questionmult}

きれいなグラフを作成するには、`pgfplots`も有用です。

pgfmathでは精度が有限なので、算術オーバーフローを考慮に入れる必要があるかもしれません。`tikz`と`pgfplots`は、バックエンドに`gnuplot`を用いることで、この問題を克服しています。これには、`gnuplot`をシステムにインストールし、LaTeXの`--shell-escape`オプションを用いる必要があります。このためには、AMCの設定ウィンドウで、プロジェクト用のLaTeXエンジンとして`pdflatex --shell-escape`を設定してください。

#### LuaLaTeXの使用

`lualatex`コマンドを用いれば、LaTeX文書内でLUA言語を使用できます。これを用いる場合は、文書はUTF-8でエンコードされている必要があり、`inputenc`パッケージはロードできません。これに関する情報はhttp://www.luatex.org/documentation.htmlを参照してください。

LUAのコマンドは、`\directlua`の引数として与えます。最も便利なLUA関数は`tex.print`で、結果をLaTeXに戻して出力します。

これも同じように、乱数を用いる場合は、コンパイルごとに同じ結果が得られるように常に乱数シードを固定してください:

    \directlua{math.randomseed (2048)}

これはとても単純なソースファイルです:

    \documentclass[a4paper]{article}
    %\usepackage[utf8x]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[box,completemulti,lang=JA]{automultiplechoice}
    \begin{document}

    \onecopy{10}{

    %%% head

    \noindent{\bf QCM  \hfill TEST}

    \vspace*{.5cm}
    \begin{minipage}{.4\linewidth}
      \centering\large\bf LuaLaTeXサンプル試験
    \end{minipage}
    \namefield{\fbox{\begin{minipage}{.5\linewidth}
    Name :

    \vspace*{.5cm}\dotfill
    \vspace*{1mm}
    \end{minipage}}}

    %%%

    \directlua{math.randomseed (2048)}
    \directlua{a=math.random()}

    \begin{question}{平方根}
      \directlua{tex.print(a)}の平方根はいくつですか？

      \begin{choices}
        \correctchoice{\directlua{tex.print(math.sqrt(a))}}
        \wrongchoice{\directlua{tex.print(math.sqrt(2*a))}}
        \wrongchoice{\directlua{tex.print(math.sqrt(a*1.001))}}
      \end{choices}
    \end{question}
    }

    \end{document}

出力の書式調整はluaの関数で行うか、`siunitx`で行うことができます。

`\AMCIntervals`コマンドと`\AMCnumericChoices`コマンドを使用することもできます（および参照）。

#### PSTricksの使用

このパッケージは`automultiplechoice`のafterにロードしてください。

`PSTricks`を使用するには、AMCを次のように設定する必要があります: 編集 設定 メイン デフォルトLaTeXエンジン latex+dvipdf

## GUIの使用方法

ここでは、選択式試験問題の作成から受験者の得点の編集まで、GUIによる使用例を解説します。

### プロジェクトの新規作成

GUIを開きましょう。通常は、Gnomeの一般メニュー（あるいは、KDEなどの対応するメニュー）からアプリケーション教育 Auto Multiple Choiceを選んで開きます。`auto-multiple-choice`コマンドを直接使うこともできます。

プロジェクト 新規 を選んで、プロジェクトを作成しましょう。ウィンドウが開いて、既存のプロジェクトがあればその一覧が表示され、これから作成するプロジェクトの名前（単純な文字で。今回のテスト用に「test」でもOKです）をプロジェクト名欄に記入することができます。そして、新規プロジェクトボタンを押します。

ここで、選択式試験問題用のAMC-TXTファイルあるいはLaTeXソースファイルを選ばなければなりません。オプションがいくつか示されます:

- テンプレート: これを選択すると、AMCに付属するいくつかのテンプレートの中から一つを選び、後から試験問題をカスタマイズしていくことができます。

- ファイル: これを選択すると、この試験用に既に準備されたLaTeXファイルを選ぶことができます。誰か他の人が既に準備してくれたか、AMCの外で好みのエディタを使ってあなたが準備したものかもしれません。

- 空: これを選択すると、空のLaTeXファイルが作成されます。ゼロから試験問題を作成しなければいけません。

- アーカイブ: 試験問題の記述（LaTeXソースファイル、画像ファイル、パラメータファイルなど）を含んだzipあるいはtgzのアーカイブがある場合は、これを選択してください。このアーカイブは外部のソフトウェアによって作成することができます。既存のAMCプロジェクトのバックアップかもしれません。

ここでは、テンプレートを選択します。次のウィンドウがテンプレートを示します。例えば、[JA] ドキュメントグループから、単純な例を選びます。これで、ソースファイル編集ボタンによりデフォルトのエディタが起動し、編集してレイアウトや設問を変更できるようになります。

### 試験問題の作成

試験問題の作成は二つのステップからなります。最初にLaTeXソースファイルから、参照用の文書を作成しなければなりません。これは文書更新をクリックすることにより行われ、以下の文書が生成されます

- 試験問題: このファイルはそのまま印刷して受験者に配布することができます（下記参照）。

- 模範解答: 試験問題に間違いがないかどうかチェックすることができます。受験者に配布することもできます。

これらの文書が作成されると、対応するボタンをクリックして表示（そして必要なら印刷）することができます。

以上で、試験問題作成の最後のステップを始められます。レイアウトの解析です。これは、レイアウト検出ボタンをクリックすることにより起動されます。この解析処理は、試験問題の各ページにおいて、受験者の答案用紙で解析しなければならない全要素の正確な位置を検出します。

レイアウトが正しく検出されているか検証するには、レイアウト確認ボタンを使います。結果をさっと見て、試験問題の各ボックス上に赤いチェックボックスが正しく乗っているかを調べます。

### 印刷と試験実施

2種類のワークフローが検討可能です:

- 最も堅牢なモードでは、受験者全員分の試験問題用紙を別々の試験問題番号で作成し、全部印刷します。各ページはその番号と上部にあるボックスで完全に識別でき、同じ答案用紙を特に注意せず何度もマーク認識させてかまいません。

- 2番目のモードでは、少数の試験問題だけ（あるいは希望なら1部のみ）を印刷し、受験者全員分はコピーで作成することができます。設問のシャフル効果は若干低下します。誤って、同じページを何度かマーク認識させてしまうと、AMCはそれを検知できないので望まない重複を作成してしまいます。

2番目のコピーを用いたワークフローを使うには、受験者が記入するページは1枚だけでなければなりません（場合によっては別紙答案方式が役に立ちます）。でなければ、AMCでこの先を続けることはできません！AMCは、同じ受験者が記入した二つのページを結びつけることができないのです。

試験問題の作成が完了すれば、試験問題を印刷して受験者に配布することができます... 単純な場合には、（作業文書の問題ボタンをクリックしたあと）ビューアから直接印刷できます。用紙を別々に（それぞれ複数ページからなり、それらをステープルできるようなプリンタを使う場合など）印刷する場合、レイアウト検出後に試験問題印刷ボタンを使うといいでしょう。

試験問題を印刷し配布したら、それらと完全に同一にしておく必要があるので作業文書を修正してはいけません。

### 試験

受験者に合格してもらいましょう。

試験問題を印刷して配布したら、作業文書を変更してはいけません。配布物と同一でなければならないためです。

受験者には、黒または青のペンか、BまたはHBの鉛筆を使用させるべきです。

ボックスをチェックするか塗りつぶすかは、状況に合わせて受験者に指示することができます。

#### ボックスにチェック

選択したボックスにチェックをつけるよう指示する場合、チェックを修正するときに消しゴムや修正液を使用することができます。しかし、（例えば修正範囲が広すぎたりしても）ボックスそのものを書き直そうとしてはいけません。これをしようとすると、ボックスの内側に線がはみ出してしまい、チェックされていると認識されてしまうことがあります。

チェックしたボックスを訂正するために、ボックスを完全に塗りつぶさせることもできます。この方式を選択する場合、マーク判定上限閾値（設定メニュー, プロジェクトタブ）を1より小さい（小さすぎない）値に設定する必要があります。黒ピクセル比率がマーク判定閾値とマーク判定上限閾値の間にあれば、ボックスはチェックされていると認識されます。黒ピクセル比率がマーク判定上限閾値より大きければ、ボックスはチェックされていないと認識されます。

#### ボックスを塗りつぶし

文字や数字をボックス内に印字してある場合、AMCには文字のあるボックスとチックされているボックスの区別がつかないため、受験者にボックスを塗りつぶすよう指示する必要があります。

塗りつぶしを修正するには消しゴムや修正液を使用することができますが、それ以外の方法はありません。マーク判定上限閾値は1に設定しなければなりません。

### 答案のスキャン

ここでは、受験者の答案の入力方法を説明します。これは、自動あるいは手動で行うことができます。

GUIのマーク認識タブに行きます。

#### 自動入力

受験者が記入したマークを自動認識するには、事前に答案をデジタル化しておかなければなりません。私の場合は、その作業を（私の操作なしに束にした全ページに対して）自動でやってくれるコピー機/スキャナを使い、300dpi、OCRモード（文字認識向き、グレースケールでないモノクロモードのことで、文字認識をしてくれるわけではありません）の設定で行って、各ページが一つのTIFFファイルとしてスキャン画像が得られます。（訳注: 訳者の場合、300dpi、グレースケールを使用しています。）

スキャン画像を解析するには、それらを一つあるいは複数の画像ファイル（TIFF、JPG、PNG等）として持つ必要があります。ベクターグラフィックス形式（PDF、PS、EPS）でもかまいません。この場合はスキャン画像は解析前にPNGに変換されます（訳注: 多数のページを含むファイルを変換すると、ImageMagickが /var/tmp を多量に消費するので、ファイルを適度に分けた方がいいでしょう）。

スキャン画像を使って最初に自動マーク認識を行う際は、個別答案用紙かコピー答案用紙のどちらの方法を使うかAMCに通知します（参照）。

そして、「試験実施後のマーク認識」セクションの自動ボタンで開いたダイアログから、スキャン画像ファイルをすべて選択したのち、このダイアログのOKボタンで開始します。AMCは光学マーク認識を開始して、四隅のマーカー位置を検出し、ボックスの位置を決定して、各ボックスの黒ピクセルの量を検出します。

各ページの解析結果は診断セクションのリストに表示されます:

- `最終更新`の値はページが最後に更新された日付を表します。デフォルトでは表示されません。カラムボタンを押して表示してください。

- 用紙ゆがみの値はマーカー（各用紙の四隅の黒い点）位置の認識の妥当性を表します。これが大きすぎるときは、認識結果をチェックする必要があります（ページリストの行の上で右クリックして、四隅マーカー確認を選ぶと、スキャンしたページと検出したボックスが表示されます）。

- 白黒閾値近接度の値は、ボックスの黒ピクセル比率と閾値との近さを表します。これが大きすぎる（8から最大値10まで）場合、ボックスのマーク有無判定が正しいかどうかチェックする必要があります（ページリストの行の上で右クリックしてボックス拡大を選ぶと、用紙上の全ボックスが表示され、判定結果が正しいか確認し、必要ならボックス画像のドラッグアンドドロップで修正できます）。

- The value スキャン画像ファイルの値はページ画像のファイル名を表します。デフォルトでは表示されません。カラムボタンを押して表示してください。

#### 手動入力

スキャナの使用が困難な場合や、いくつかの用紙で自動入力が期待どおりに動作しなかった場合に、手動で入力を行うことができます。このためには、試験実施後のマーク認識のセクションにある手動ボタンによりウィンドウを開きます。このウィンドウでは、目的のページのマークされたボックスを自分で（クリックして）入力することができます。

手動入力を行うと、そのページの自動入力の結果は、以前のものだけでなく以降も含めて上書きされます。

### 採点

GUIの採点タブでは、採点セクションでスキャン画像から受験者の得点を計算するとともに、受験者が記入したコードを読み取ります（参照）。

#### 採点処理

得点の計算は採点ボタンで起動しますが、以下の選択をしておく必要があります:

- 採点基準を更新のボックスにチェックすると、採点基準は最初にLaTeXソースファイルから取り出されます。これにより、採点処理において、いろいろな採点基準を試してみることができます。また同時に、どの解答が正解でどれが誤りかも更新されます。したがって、試験実施後でも、問題作成時の正解の誤りを修正することができます。LaTeXファイルで採点基準を設定する方法はの節で説明されます（何も指示しなければデフォルトの採点基準が使用されます）。

採点ボタンをクリックすると、採点が実行されます（採点基準の更新もする場合は少し時間がかかります）。

#### 採点基準

採点基準はLaTeXソースファイル内で`scoring`コマンドによって指定します。これは`question`環境か`questionmult`環境で全選択肢の採点基準を設定するのに用いますが、`choices`環境においても、各選択肢個別の増減を指定するのに用いることができます。LaTeXのscoringコマンドの引数は、カンマで区切られた`parameter=value`のような形式から成っています。使用できるパラメータは次のとおりです（各パラメータがどんな文脈で使用できるかも示しています）:

parameter | simple | multiple | value
Q | A | Q | A
e | ● |  | ● |  | 解答に矛盾があるときに与える素点。単一選択問題で複数のボックスにマークされていたり、複数選択問題で「該当なし」と他のボックスに同時にマークされている場合です。
v | ● |  | ● |  | 解答されていない（どのボックスもマークされていない）ときに与える素点。
d |  |  | ● |  | オフセット。eやvのパラメータにかかわらず、素点に加算される値。
p |  |  | ● |  | 素点の下限。この設問の素点を計算してこの下限を下回ってしまった場合、素点をこの下限値に設定します。
b | ● |  | ● | ● | 正解に与える素点。
m | ● |  | ● | ● | 誤りに与える素点。
|  | ● |  |  | パラメータはなく（構文: `\scoring{2}`）、この選択肢にマークした場合に与える素点を示します。
auto | ● |  |  |  | このパラメータを用いると、i番目の選択肢の値がauto+i-1になります。このオプションは主に`\QuestionIndicative`で用います（参照）。
mz | ● |  | ● |  | このパラメータは満点かゼロか方式の採点基準に用いられます。選択がすべて正しければ素点はmzになり、そうでなければ0点です。
haut |  |  | ● |  | このパラメータにnという値を指定すると、満点がnになり、誤り一つにつき1点減点されます。
MAX | ● |  | ● |  | この設問の満点を指定します（5点の設問には、MAX=5と書きます）。完答した場合の点数が目的の満点と異なる場合にのみ用います。
formula | ● |  | ● |  | `b`や`m`の値を考慮せず、変数を用いた式（参照）などによって、設問に与えられた素点を指定します。
set.XXX | ● | ● | ● | ● | XXXという変数に特定の値を指定し、`formula`で使用できるようにします。選択肢に指定すると、そのボックスがマークされたときだけ値が設定されます。特殊な場合として、`INVALID`という変数にnullでない値を設定すると、解答に矛盾があることを示すことができ、`e`変数で指定した値が素点になります。
setglobal.XXX | ● | ● | ● | ● | （設問IDの辞書順で）以降のすべての設問に対して、XXXという変数の値を指定します。
default.XXX | ● |  | ● |  | 選択肢によってXXXという変数に値が設定されなかった場合のXXXの値を指定します。
requires.XXX | ● |  | ● |  | 解答に矛盾があって設問の得点が`e`の値に設定される場合を除いて、XXX変数が定義されなければならないことを通知します。

haut=x は d=x-N, p=0 と書けます。

変数のデフォルト値は、`default`パラメータを使用して設問の採点基準として設定する必要があります。

    \begin{questionmult}{03}\scoring{default.COMP=10,default.PROP=11,formula=(COMP==PROP ? 1 : 0),MAX=1}
      空気中の主要な気体を一つ選び、その割合を示しなさい。
      \begin{multicols}{4}
        \begin{choices}
          \wrongchoice{水蒸気}
          \wrongchoice{ガス}
          \correctchoice{窒素}\scoring{set.COMP=1}
          \correctchoice{酸素}\scoring{set.COMP=2}
          \wrongchoice{二酸化炭素}
          \correctchoice{20\%}\scoring{set.PROP=2}
          \wrongchoice{40\%}
          \wrongchoice{60\%}
          \correctchoice{80\%}\scoring{set.PROP=1}
        \end{choices}
      \end{multicols}
    \end{questionmult}

4点まで得られる設問に`MAX = 3`と設定すると、満点の受験者の得点が3点に切り捨てられます。

単一選択問題でのデフォルトの採点基準は`e=0,v=0,b=1,m=0`で、正解には1点、そうでなければ0点を与えます。複数選択問題でのデフォルトの採点基準は`e=0,v=0,b=1,m=0,p=-100,d=0`で、マーク有無の正しい（マークすべきボックスをマークして、マークすべきでないボックスをマークしなかった）選択肢ごとに1点を与えます。

`set.XXX`で宣言された変数の値をbやmに設定することができます。

LaTeXの`\scoring`コマンドは、設問定義の外側で用いて、試験全体のパラメータを変更することもできます。

- `SUF=`xは、満点を得るのに十分な素点を定めます。例えば満点を10点とし、`SUF=8`と設定すると、完答での素点合計にかかわらず、素点合計が6点の受験者は得点として6/8*10=7.5点を得ます。

- `allowempty=x`は、 x個の設問に解答する必要がないことを示します。素点を加算する際、解答のない設問x個分はキャンセルされます。

これらのパラメータを組み合わせれば、以下の例のように、様々な種類の採点基準を定義することができます:

    \documentclass{article}

    \usepackage[utf8x]{inputenc}
    \usepackage[T1]{fontenc}

    \usepackage[box,completemulti,lang=JA]{automultiplechoice}

    \begin{document}

    \element{qqs}{
    \begin{question}{good choice}
      この設問に何点欲しいですか？
      \begin{choices}
        \correctchoice{満点: 10}\scoring{10}
        \wrongchoice{5点だけ欲しい}\scoring{5}
        \wrongchoice{2点でよい}\scoring{2}
        \wrongchoice{いらない}\scoring{0}
      \end{choices}
    \end{question}
    }

    \element{qqs}{
    \begin{questionmult}{added}
      次のボックスをマークしてポイントをゲット:
      \begin{choices}
        \correctchoice{2点}\scoring{b=2}
        \wrongchoice{マイナス1点!}\scoring{b=0,m=-1}
        \correctchoice{3点}\scoring{b=3}
        \correctchoice{1点}
        \correctchoice{0.5点}\scoring{b=0.5}
      \end{choices}
    \end{questionmult}
    }

    \element{qqs}{
    \begin{questionmult}{3 or zero}\scoring{mz=3}
      完答なら3点、そうでなければ0点。
      \begin{choices}
        \wrongchoice{誤り}
        \wrongchoice{誤り}
        \correctchoice{正しい}
        \correctchoice{正しい}
      \end{choices}
    \end{questionmult}
    }

    \element{qqs}{
    \begin{questionmult}{all for 2}\scoring{haut=2}
      完答なら2点、ミス1件ごとに-1点...
      \begin{choices}
        \correctchoice{正解}
        \correctchoice{これも可}
        \correctchoice{そのとおり!}
        \wrongchoice{ダメ!}
        \wrongchoice{マークするな!}
      \end{choices}
    \end{questionmult}
    }

    \element{qqs}{
    \begin{question}{attention}\scoring{b=2}
      ひどい誤りにはマイナス点（-2点）がつきますが、正解なら2点が得られます。
      \begin{choices}
        \correctchoice{正しい!}
        \wrongchoice{正しくない}
        \wrongchoice{正しくない}
        \wrongchoice{正しくない}
        \wrongchoice{ひどい誤り!}\scoring{-2}
      \end{choices}
    \end{question}
    }

    \element{qqs}{
    \begin{questionmult}{as you like}
      必要な点数を選んでください:
      \begin{choices}
        \correctchoice{ここなら2点得られます}\scoring{b=2}
        \wrongchoice{マークすると3点あげます}\scoring{b=0,m=3}
        \correctchoice{マークすると1点得ますが、マークしないと1点失います}\scoring{m=-1}
      \end{choices}
    \end{questionmult}
    }

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    \onecopy{20}{

    \noindent{\bf QCM  \hfill 採点基準テスト}

    \vspace*{.5cm}
    \begin{minipage}{.4\linewidth}
    \centering\large\bf Test\\ Jan. 2008\end{minipage}
    \namefield{\fbox{\begin{minipage}{.5\linewidth}
    Name:

    \vspace*{.5cm}\dotfill
    \vspace*{1mm}
    \end{minipage}}}

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    \shufflegroup{qqs}

    \insertgroup{qqs}

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    }

    \end{document}

#### 全体採点基準

一つの採点基準をいくつかの設問にまとめて適用したい場合、次の例のようにそれをLaTeXのコマンドに定義することができます:

    \def\barQmult{haut=3,p=-1}

    \begin{questionmult}\scoring{\barQmult}
      [...]
    \end{questionmult}

もう一つの方法はLaTeXの`\scoringDefaultS`コマンドと`\scoringDefaultM`コマンドを使うことです。これは文書の先頭で（`\onecopy`の外側で）用い、それぞれ単一選択問題と複数選択問題のデフォルトの採点基準を指定することができます:

    \scoringDefaultM{haut=3,p=-1}

`\scoringDefautM`あるいは`\scoringDefautS`で`formula`を用いる場合は、独自の採点基準を設定する設問では`formula`をキャンセルしなければなりません。

    \begin{questionmult}\scoring{b=1,m=-0.5,formula=}
      [...]
    \end{questionmult}

場合によっては、用意した選択肢の個数に依存して全体採点基準が定義できれば、より便利かもしれません。これを行うには、`N`という値を用いるだけでできます。例えば、満点を4点とし、ランダムにマークした場合の平均点を1点としたい場合、`d=4,b=0,m=-(4-1)*2/N`という基準が使えます（すべての選択肢を誤った場合は-2点となります）。これらの式に使用できる演算は、通常の四則演算（`+` `-` `*` `/`）、条件付演算（ ? : ）、括弧と、任意のperlの演算子です。

条件演算子は次のように書きます:

    ( test ? if true: if false)

条件式には次のような演算子が使用できます: `>`（より大きい）, `>=`（より大きいまたは等しい）, `<`（より小さい）, `<=`（より小さいまたは等しい）, `==`（等しい）, `!=`（等しくない）, `||`（または）, `&&`（かつ）。

他にも次の変数が使用できます:

- `N`は選択肢の個数です。`completemulti`オプションによる追加分は数えません。

- `NB`はマークすべき選択肢の個数です。

- `NBC`は正しくマークした選択肢の個数です。

- `NM`はマークすべきでない選択肢の個数です。

- `NMC`は誤ってマークした選択肢の個数です。

- `IS`は、単一選択問題なら1でそうでなければ0です。

- `IMULT`は、複数選択問題なら1でそうでなければ0です。

#### 採点基準を用いた得点計算

ここでは受験者の得点の計算方法を説明します。各受験者について:

1. 各設問に順番に採点基準を適用し、設問別素点を求めます。

2. （採点対象外設問を除いて）すべての設問の素点を足し、その受験者の素点合計を求めます。

3. （編集設定ウィンドウのプロジェクトタブで）正の満点がパラメータとして設定されている場合、受験者の素点合計を素点合計の満点（完答での素点合計）で割り、満点 - 下駄の差を掛けて下駄を加えることにより、受験者の得点を求めます。これにより、受験者が全問正解していれば満点を、まったく正解できなければ下駄の得点を得ることになります。満点を100点、下駄を0点に設定した場合、受験者の得点は正解のパーセンテージとみなすことができます。

4. 得点は、 編集 設定 プロジェクト にある以下の設定を用いて丸められます:

   - 最小単位: 整数値が必要なら1に設定します。1/4単位で丸めるときは0.25に設定するなどできます。丸めを行わないときは0に設定してください。

   - 丸めタイプ: 切捨て, 丸め, 切上げ

#### 採点誤りの修正

試験の後でも、採点基準を変更することができます。しかし、文書をけして更新してはいけません。テキストエディタでソースファイルを開き、変更して保存する方がよいでしょう。

しても構わないこと:

- 正答を誤答に変更する。

- 誤答を正答に変更する。

- 設問ごとのあるいはデフォルトの採点基準を修正する。

してはいけないこと:

- 単一選択問題を複数選択問題に変更する。

- 複数選択問題を単一選択問題に変更する。

- 設問や選択肢を追加する。

- 設問や選択肢を削除する。

- 設問や選択肢の順序を変更する。

設問を取り消したいときは、`\scoring{b=0,m=0,e=0,v=0}`という採点基準を使うか、`\QuestionIndicative`を使ってください。

### 受験者の識別

このステージは必須ではありません。ここでは、各答案の受験者を識別します。受験者の氏名は自動的には読み込まれませんが、現実的な策が2通りあります:

1. 受験番号を一桁ごとにボックスにマークする方式で、受験者自身に答案用紙に記入してもらうことが可能です。答案用紙にこの方式を用いるためのLaTeXのコマンドが用意されています（参照）。試験の実施後、受験番号と受験者名を対応づけるリストを用いて、自動的に答案の識別が行われます。

2. 受験番号を記入させない場合や、自動識別が（記入ミスなどで）完全にはうまくいかなかった場合には、GUIの補助により手動で答案の受験者を識別することができます。

まず、GUIの採点タブに行きます。

#### 受験者名簿

事前に受験者名簿を準備しておかなければなりません。この名簿は、いくつもの試験で再利用することができます。このリストは`#`で始まるコメント行をオプションとしてもつ、次の例のようなCSVファイルです:

    # STUDENTS / 1ST YEAR
    surname:name:id:email
    Bienvenue:Alexis:001:paamc@passoire.fr
    Boulix:Jojo:002:jojo.boulix@rien.xx
    Noël:Père:003:pere.noel@pole-nord.xx

ファイルの冒頭にある`#`で始まる行はコメントです。コメントでない最初の行は（`:`で区切った）カラム名を格納します。その行以降は、受験者1名につき1行で、対応する情報を記入します。必ず`name`あるいは`surname`という名前のカラムに受験者名を格納しないと、下で説明する手動識別でボタン表示ができなくなります。

セパレータの`:`は、カンマ、セミコロン、タブのいずれかに置き換えることができます。しかし、名簿ファイルのすべての箇所で同じセパレータを使わなければなりません。どの文字をセパレータとして（この4種から）選ぶかは、コメントでない最初の行の中でどの文字が最も多く出現するかで決定されます。

CSVファイルであれば適合するはずです。

同一の採点結果を複数の宛先に送付する場合はCSVを注意して作成してください。

- セミコロン、コロン、タブでフィールドを区切り、カンマでメールアドレスを区切る。

- カンマでフィールドを区切り、引用符内のカンマでメールアドレスを区切る。

    name,forenama,email
    Boulix,Jojo,"jojo@boulix.fr,parents@boulix.com"

準備した受験者名簿は受験者識別セクションのファイル登録ボタンにより選択します。そして受験者名簿の中でユニークなカラム（一般には、受験番号を格納するカラム）を一つ選ばなければなりません。最後に、自動識別の準備として、（使用した場合には）LaTeXの`\AMCcode`コマンドで使用した関連するコード名を選びます。

#### 受験者識別

##### 自動識別

受験者識別セクションの自動ボタンを押すと、受験者が記入したコードの対応づけが開始します。その結果は、後から（半）手動識別により確認したり改善したりできます。

自動識別を行うためには、LaTeXソースファイル中に`AMCcode`コマンド（参照）が少なくとも一つ必要です。また、受験者名簿には、`AMCcode`が生成したボックスに記入されるはずの参照（一般には受験番号）を格納したカラムが必要です。

##### 手動識別

受験者の氏名を読み取るためのウィンドウを開くには、受験者識別セクションの手動ボタンをクリックします。このウィンドウは、上部に受験者が記入した氏名の画像が順番に表示され、下部に名簿にある受験者ごとにボタンが並び、さらに右側には答案用紙の一覧で区別できるようになっています。各ページについて、上部に提示された氏名に対応したボタンをクリックします（デフォルトでは識別できなかった答案だけが表示されますが、「識別済も表示」ボックスにチェックすれば変更できます）。すべてのページを読み取れたら、氏名の画像のかわりに青い背景が表示されるので、最後に保存ボタンをクリックして受験者識別を終了するだけです。

### 採点表のエクスポート

このステージでは、エクスポートボタンを使って、採点表をさまざまな形式（現在のところ、CSVとOpenOffice）で取り出せます。エクスポートすると、それに引き続いて、（可能なら）エクスポートされたファイルが適切なソフトウェアで開かれます。

#### ODS（OpenOffice、LibreOffice）へのエクスポート

エクスポートされたファイルでは、以下の色が使われています:

灰色

  は、適用外に使われます。これは例えば、欠席者の得点や、その受験者には表示されなかった設問の素点です。

黄色

  は、受験者が無記入のままにした設問に使われます。

赤色

  は、選択が矛盾だった設問に使われます。単一選択問題に複数のマークをした場合や、該当なしボックスとそれ以外のボックスをマークした場合です。

紫色

  は、採点対象外の設問に使われます。

### 採点記入

採点記入ボタンを押すと、答案への採点記入が始まります。各スキャン画像に、次のように記入されます（これらはデフォルトの記入書式で、設定で変更できます）:

- 受験者が誤ってマークしたボックスには、赤い円が記入されます。

- マークすべきボックスにマークされていない場合は、赤いチェック印が記入されます。

- マークすべきボックスにマークされている場合は、青いチェック印が記入されます。

- 各設問について、取得した素点と満点が記入されます。

- 答案全体の得点が答案の最初のページに記入されます。

答案の最初のページに記入されるテキストは設定で変更可能です（ 編集 設定 採点記入 ヘッダー 、または、 編集 設定 プロジェクト 答案の採点記入 ヘッダーテキスト ）。設定されたテキストに対して、次のように置換が行われます（これらの値の意味についてはをご覧ください）:

`%S`

  は受験者の素点合計に置換されます。

`%M`

  は素点合計の満点に置換されます。

`%s`

  は受験者の得点に置換されます。

`%m`

  は満点に置換されます。

`%(ID)`

  は受験者名に置換されます。

`%(COL)`

  は受験者名簿内のCOLの値に置換されます。

この処理は各ページに行われ、PDF形式の採点記入済の答案用紙が得られます。受験者の答案を格納するPDFファイル名は、ファイル名テンプレートフィールドで指示したテンプレートによって決められます。テンプレートでは、「(col)」は受験者名簿内のCOLの値に置換されます（参照）。このフィールドを空にすると、試験問題番号と受験者名からなるデフォルト値が使用されます。

#### `separateanswersheet`（別紙答案用紙）使用時のオプション

- `答案ページのみ`: 答案用紙に採点が記入されます。

- `設問ページを問題用紙からコピー`: 答案用紙に採点が記入され、試験問題用紙の設問ページがPDFに含まれます。

- `設問ページを採点済用紙からコピー`: 答案用紙に採点が記入され、スキャンした採点済用紙の設問ページがPDFに含まれます。

#### 得点表記位置

得点表記位置をメニューで選ぶことができます 編集 設定 プロジェクト 得点表記位置

選択肢

- (なし)

- 片方のマージン

- いずれかのマージン

- ボックス付近

- ソースファイルで指定（参照）

### デフォルト値の設定

編集 設定 スキャン

`スキャン画像の変換`

- ベクトル形式解像度（DPI）: 250

- 黒&白ピクセル判別閾値: 0.60

- スキャン画像から赤色を除去: オフ

- 変換を強制: オフ

`検出パラメータ`

- 四隅マーカーの最大拡大率: 0.20

- 四隅マーカーの最大縮小率: 0.20

- デフォルトのマーク判定閾値: 0.15

- デフォルトのマーク判定上限閾値: 1

- 判定領域比率: 0.80

- 認識できた四隅マーカーが3個でも処理: オフ

## 標準外の使用方法

### 問題用紙コピー方式

で説明したように、複数の受験者に同一の答案用紙をコピーして配るのは常に可能とは限りません。しかし、別紙答案用紙方式で、設問と選択肢がシャフルされていなければ、問題用紙はコピーで用意して、答案用紙だけ全員分個別に印刷することができます。ここではその方法を詳しく説明します。

- `separateanswersheet`オプションを使用します（参照）。

- `onecopy`コマンドを呼ぶ前か、`examcopy`環境の外側に試験問題を記述します。

- `onecopy`/`examcopy`の内側で`\AMCformS`コマンドを用いて、マーク用のボックスを各答案用紙に出力します。

最小限の例を示します:

    \documentclass[a4paper]{article}
    \usepackage[separateanswersheet,lang=JA]{automultiplechoice}
    \begin{document}

    \noindent{\bf 試験問題}

    \begin{question}{和}
      1足す1はいくつですか？
      \begin{choices}
        \wrongchoice{1}
        \correctchoice{2}
        \wrongchoice{3}
      \end{choices}
    \end{question}

    \begin{question}{k2}
      K2の標高はいくらですか？
      \begin{choices}
        \wrongchoice{約8000m}
        \correctchoice{約8600m}
        \wrongchoice{約9000m}
      \end{choices}
    \end{question}

    \AMCcleardoublepage

    \onecopy{5}{

    \AMCformBegin

    {\large\bf 答案用紙:}
    \hfill \namefield{\fbox{
        \begin{minipage}{.5\linewidth}
          氏名:

          \vspace*{.5cm}\dotfill
          \vspace*{1mm}
        \end{minipage}
      }}

    \AMCformS

    }

    \end{document}

このLaTeXファイルから、印刷してから受験者全員分をコピーする（試験問題番号0の）試験問題用紙1部と、（各受験者に1部の）複数の答案用紙が得られます。

### 採点時正解提示

単一の汎用答案用紙を毎回の試験で使いたい場合を想定します。答案用紙には単純にマーク用ボックスだけを（例えば40問、各設問に5個）印刷し、問題は別のどこかに書いて受験者に提示します。ここでのポイントは、正しい選択肢はLaTeXファイルに明示されておらず、そのためAMCはそれがどれかわかりません。この解決方法は、出題者に答案用紙を渡して正しい選択肢をマークしてもらうことです。そうすれば、スキャンをしてAMCでマーク認識をしたあと、AMCにどれが出題者の記入した答案用紙かを教えるだけです。

このアイデアを実施するには、次のルールに従ってください:

- `postcorrect`、`insidebox`、`noshuffle`オプションを使用します（参照）。

- 選択肢には`\wrongchoice`のみを使ってください（`\correctchoice`は一切使わないでください）。

最小限の例を示します:

    \documentclass[a4paper]{article}
    \usepackage{multicol}
    \usepackage[insidebox,noshuffle,postcorrect,lang=JA]{automultiplechoice}

    \begin{document}

    \onecopy{5}{

    \noindent
    \begin{tabular}{|l|l|l|}
    \hline
    受験番号 & クラス & 科目\\
    \hline
     \vspace{-0.25cm}
     & &\\
    \AMCcode{StudentNum}{10}&
    \AMCcode{class}{2}&
    \AMCcode{subject}{3}
    \\
    \hline
    \end{tabular}
    \hfill\namefield{\fbox{
        \begin{minipage}{.25\linewidth}
          氏名:

          \vspace*{.5cm}\dotfill

          \vspace*{.5cm}\dotfill
          \vspace*{1mm}
        \end{minipage}
      }}\hfill

    \vspace{.5cm}
    \noindent\hrulefill

    \begin{multicols}{2}\columnseprule=.4pt

    \begin{question}{01}
    \begin{choicescustom}
    \wrongchoice{}%
    \wrongchoice{}%
    \wrongchoice{}%
    \wrongchoice{}%
    \wrongchoice{}%
    \end{choicescustom}
    \end{question}

    \begin{question}{02}
    \begin{choicescustom}
    \wrongchoice{}%
    \wrongchoice{}%
    \wrongchoice{}%
    \wrongchoice{}%
    \wrongchoice{}%
    \end{choicescustom}
    \end{question}

    % これを必要な設問数の分だけ続ける...

    \end{multicols}

    }

    \end{document}

そしてこのLaTeXファイルをAMCで処理し、用紙を印刷し、試験実施後に（模範解答の用紙も含めて）スキャンして、AMCの自動マーク認識を開始させます。採点タブで採点基準を更新にチェックを入れて採点ボタンをクリックすると、出題者が記入した模範解答用紙の番号を入力するよう求められます。そのあとは通常どおりに続けることができます。

アルファベット（あるいは数字）をボックスの外に印刷することもできます。`insidebox`オプションを`outsidebox`に置き換え、次のように設問を記述してください:

    \begin{question}{01}
      \begin{choicescustom}
        \wrongchoice{A }%
        \wrongchoice{B }%
        \wrongchoice{C }%
        \wrongchoice{D }%
        \wrongchoice{E }%
      \end{choicescustom}
    \end{question}

この方式を（受験番号以外の）設問の選択肢のみに使用するには、`\begin{document}`の後に次のように記述します。

    \makeatletter
    \def\setoutsidebox{\AMC@outside@boxtrue}
    \makeatother

そして用紙内でローカルに（波括弧の内側で）このコマンドを使用します:

    {\setoutsidebox\AMCform}

### 指名試験問題用紙

状況によっては、受験者名簿をもとに各受験者を個別に指名した試験問題用紙を準備すると有用かもしれません。これをどのように行うか見てみます。

- 受験者名簿はCSVリストでなければなりません。以下では、students.csvファイルが、プロジェクトディレクトリにあり、UTF8でエンコードされ、中身が次のようになっているものとします:

      surname,name,id
      Boulix,Jojo,001
      Golin,André,002
      Moniuszko,Stanisław,003

  受験者の氏名に`_`（アンダースコア）を使用しないでください。コンパイル時にエラーが発生します。

- LaTeXソースファイルで、次のようにcsvsimpleパッケージをロードします:

      \usepackage{csvsimple}

- LaTeXソースファイルで、試験問題を生成するコマンドを定義します。このコマンドは、各受験者ごとに一回、`\csvreader`が呼び出します（ここでは、設問が`general`というグループに入っているものとします）:

      \newcommand{\subject}{
        \onecopy{1}{

          \noindent{\bf AutoMultipleChoice  \hfill TEST}

          \vspace*{.5cm}

          \begin{center}\em
            Pre-filled test.
          \end{center}

          \hfill \namefield{\fbox{
              \begin{minipage}{.5\linewidth}
                Name:

                \Large\bf \name{} \surname{}

                \vspace*{1mm}
              \end{minipage}
            }}

          \noindent\hrulefill

          \vspace{1ex}

          \shufflegroup{general}
          \insertgroup{general}

          \AMCassociation{\id}
        }
      }

      \csvreader[head to column names]{students.csv}{}{\subject}
      %\csvreader[head to column names,separator=semicolon]{liste.csv}{}{\subject}

  `\csvreader`の`head to column names`オプションは、`\subject`内で使えるように（CSVのヘッダーから）`\surname`、`\name`、`\id`コマンドを定義します。`\AMCassociation`の呼出しにより、AMCは現在の試験問題用紙を`\id`というidをもつ受験者のものとして識別します。

  受験者ごとにメールアドレスが一つだけあるCSVファイルの場合にこのコマンドを使用してください。

  受験者ごとにメールアドレスが複数あるCSVファイルの場合にこのコマンドを使用してください。

- 印刷、スキャン、マーク認識、採点が終わった後、答案用紙の受験者を識別する際、「答案内の受験者識別用コード名」フィールドに「印刷時識別済」、「名簿内の受験者識別用カラム名」フィールドに「id」を選択してください。

## コマンドマニュアル

GUIのみを使用する場合は（たいていはそうですが）、この節はスキップしてかまいません。しかし、GUIで実行される各動作は、以下に解説する構文に従って様々なコマンドを用いることによっても実行することができます。

auto-multiple-choice
1
Auto Multiple Choice
1.6.0+git20240805161640

### auto-multiple-choice

選択式試験問題の自動処理

              auto-multiple-choice

              action

              arguments

              auto-multiple-choice

              project

#### 解説

`auto-multiple-choice`コマンドは、引数を`AMC-action.pl`コマンドに渡して起動します。

動作を指定しない2番目の形式では、GUIである`auto-multiple-choice gui`が（プロジェクト名が指定されていればそれとともに）呼び出されます。

#### 関連項目

AMCの各動作: auto-multiple-choice-prepare 1 , auto-multiple-choice-imprime 1 , auto-multiple-choice-analyse 1 , auto-multiple-choice-note 1 , auto-multiple-choice-association-auto 1 , auto-multiple-choice-export 1 , auto-multiple-choice-annotate 1 , auto-multiple-choice-regroupe 1

auto-multiple-choice-prepare
1
Auto Multiple Choice
1.6.0+git20240805161640

### auto-multiple-choice-prepare

LaTeXソースファイルから作業文書を作成する

              auto-multiple-choice

              prepare

              --mode s

              --prefix project-dir

              mcq-source-file

              auto-multiple-choice

              prepare

              --mode b

              --data project-data-dir

              mcq-source-file

#### 解説

`auto-multiple-choice prepare`コマンドは、選択式試験問題を記述したソースファイルから作業文書を生成します。抽出される情報は`--mode`引数の値によります。どちらのモードでもソースファイル名は引数として指定しなければなりません。

- `--mode s`を用いると、`auto-multiple-choice prepare`は、試験問題ファイル（印刷して受験者に配布する試験問題用紙）、模範解答ファイル（正解をマークした答案用紙1部）、位置情報ファイル（ページ上のボックスの位置に関する情報を含んだファイル）を作成します。以下の引数が使用可能です:

  `--out-sujet subject.pdf`

    作成する試験問題ファイル名を設定します。

  `--out-corrige corrected.pdf`

    作成する模範解答ファイル名を設定します。

  `--out-calage calage.xy`

    作成する位置情報ファイル名を設定します。

  `--prefix directory`

    上の三つのオプションで使用されていないものがあるときは、このディレクトリが必要になります。そしてそれらのデフォルト値は`directory/sujet.pdf`、`directory/corrige.pdf`、`directory/calage.xy`となります。

- `--mode b`を用いると、`auto-multiple-choice prepare`は、ソースファイルから採点基準を抽出します。このモードでは、`--data`オプション（下記参照）を使用しなければなりません。

以下のオプション引数はどのモードでも使用できます:

`--with latex-engine`

  使用するLaTeXエンジン（コマンド）を指定します。latex-engineは例えば`pdflatex`や`xelatex`となります。

`--filter filter`

  選択式試験問題のソースファイルをLaTeXファイルに変換するフィルター名を設定します。組込みのフィルターは`latex`（何も変換しない）と`plain`（AMC-TXTソース）です。

`--filtered-source mcq-latex-file`

  指定したフィルターを用いてソースファイルから作成するLaTeXファイル名を指定します。省略した場合、mcq-source-fileに`_filtered.tex`を付け足して得られたファイル名が使用されます。

`--n-copies n`

  生成する試験問題の部数を設定し、LaTeXソースファイル（`\onecopy`の最初の引数）で指定した部数を上書きします。

`--debug file.log`

  デバッグ情報を記録するファイルを指定します。

`--epoch EPOCH`

  日付（1970年1月1日以降の秒数）を指定して、PDFを何度生成しても同一結果になるようにします。

`--data project-data-dir`

  SQLiteデータファイルを格納するディレクトリを設定します。

auto-multiple-choice-meptex
1
Auto Multiple Choice
1.6.0+git20240805161640

### auto-multiple-choice-meptex

作業文書からレイアウト情報を取得しレイアウトデータベースに格納する

              auto-multiple-choice

              meptex

              --src calage.xy

              --data directory

#### 解説

`auto-multiple-choice meptex`コマンドは作業文書calage.xyからレイアウト情報（全ページのボックス、マーカー、氏名領域の正確な位置）を取り出し、データディレクトリdirectoryのレイアウトデータベース（SQLiteファイル）に格納します。

auto-multiple-choice-imprime
1
Auto Multiple Choice
1.6.0+git20240805161640

### auto-multiple-choice-imprime

AMC試験問題用紙を受験者に配布できるように印刷する

              auto-multiple-choice

              imprime

              --sujet subject.pdf

              --fich-nums numbers-file.txt

              --data data-dir

              --methode method

              where-to-print-arguments

#### Description

`auto-multiple-choice imprime`コマンドは選択した試験問題用紙を印刷します。

##### 印刷内容の指定

以下の引数により、印刷対象を指定します:

`--sujet subject.pdf`

  （ auto-multiple-choice-prepare 1 で作成された）試験問題ファイルを設定します。

`--fich-nums numbers-file.txt`

  印刷する試験問題番号が（各行に一つ）書かれたファイルを指定します。この引数が指定されなければ、すべての試験問題が印刷されます。

`--data data-dir`

  データファイルがあるディレクトリを指定します（ auto-multiple-choice-meptex 1 などを参照してください）。データディレクトリのレイアウトデータベースは一つの試験問題が何ページ目から何ページ目まであるかを知るのに使われます。

`--split`

  別紙答案用紙を別に印刷します。

`--answer-first`

  別紙答案用紙が最初に来るようにソートします。

##### 印刷方法の指定

いくつかの印刷方法が定義されています:

- `--methode CUPS`を用いると、 `auto-multiple-choice imprime`はCUPSプリンタに印刷します。試験問題ごとに自動ステープルなどができるように1部につきプリントジョブを1件送ります。この方法では、以下のオプションを使用してください:

  `--imprimante printer`

    印刷するCUPSプリンタ名を設定します。

  `--options cups-options`

    CUPSオプションを`opt1=value1,opt2=value2,...`の形式で指定します。

- `--methode file`を用いると、`auto-multiple-choice imprime`は試験問題用紙をファイルに（1部につき1個）出力します。

  `--output filename`

    出力するファイル名を設定します。`%e`というシーケンスがあれば4桁の試験問題番号に置換されます。filenameが`%e`を含んでいない場合、`-%e.pdf`という文字列が付け足されます。

- `--methode command`を用いると、`auto-multiple-choice imprime`は試験問題1部ごとに指定したコマンドを使用します。

  `--print-command command`

    印刷に使用するコマンドを指定します。commandの文字列は（引用符を使用していても）空白文字の場所で区切られます。`%f`というシーケンスは（印刷する試験問題を含んだ）PDFファイル名に置換され、`%e`は試験問題番号に置換されます。

##### その他のオプション

他に次のオプションが使用可能です:

--extract-with command

  試験問題PDFからページを抽出するためのコマンドを指定します。現在、`pdftk`、`gs`または`qpdf`が指定可能です。デフォルトは`pdftk`ですが、インストールされていなければ`qpdf`、`gs`の順に使用されます。

auto-multiple-choice-getimages
1
Auto Multiple Choice
1.6.0+git20240805161640

### auto-multiple-choice-getimages

自動マーク認識用に auto-multiple-choice-analyse 1 に送るためのスキャン画像を用意する。

              auto-multiple-choice

              getimages

              --copy-to project-scans-dir

              --vector-density density

              --list list-file

                scan-files

#### 解説

`auto-multiple-choice getimages`コマンドは auto-multiple-choice-analyse 1 に送る前にスキャン画像を用意します:

- 複数画像からなるファイルはページごとのファイルに分割されます。

- ベクター画像（PDF、EPSなど）はビットマップ画像に変換されます。

入力画像は、auto-multiple-choice getimagesへの引数としても、スキャンファイルのパスをすべて含むファイル名としても指定することができます。

`--list list-file`

  スキャンファイルのパスを（1行に一つ）含むファイルの名前を指定します。処理後にこのファイル内容は消去され、同じパスを`auto-multiple-choice analyse`の`--list-fichiers`オプションに渡せるように、スキャンファイルのパスが書き込まれます。

`--copy-to project-scans-dir`

  スキャンファイルを指定したディレクトリにすべてコピーします。

`--vector-density density`

  ベクター画像をビットマップ画像に変換する際の解像度を設定します。デフォルトは300です。

auto-multiple-choice-analyse
1
Auto Multiple Choice
1.6.0+git20240805161640

### auto-multiple-choice-analyse

AMC選択式試験問題のスキャン画像から自動マーク認識する

              auto-multiple-choice

              analyse

              --projet project-dir

              --seuil-coche threshold

              --tol-marque tol

                --list-fichiers files-list.txt

                scan-files

#### 解説

`auto-multiple-choice analyse`コマンドは、AMC選択式試験問題の答案用紙のスキャン画像から自動マーク認識を実行します。`auto-multiple-choice analyse`を呼び出す前に、 auto-multiple-choice-prepare 1 を呼び出して、作業文書（`--mode s`）とMEPファイル（`--mode m`）を作成し、 auto-multiple-choice-meptex 1 を用いてレイアウトを処理しておかなければなりません。

`--data data-dir`

  データファイルがあるディレクトリを指定します（ auto-multiple-choice-meptex 1 などを参照してください）。デフォルトは`project-dir/data`です。

`--cr project-cr-dir`

  マーク認識に使用する画像を作成するディレクトリを指定します（ボックスの拡大画像は`zooms`サブディレクトリに、氏名記入欄の画像は`name-*.jpg`ファイルに、レイアウト結果の画像は`page-*.jpg`ファイルに格納されます）。

`--projet project-dir`

  `--cr`が使用されていない場合、このオプションを使用すると、project-cr-dirが`project-dir/cr`に設定されます。

処理するスキャンファイルの名前の指定方法には2通りあります:

- ファイル名を引数により指定する。

- ファイル名をプレーンファイルに（各行に1ファイル名の形式で）列挙して、`--list-fichiers files-list.txt`でこのファイルを指定する。

マーク認識用のパラメータは以下のオプションを用いて設定できます:

`--prop proportion`

  各ボックスのマーク有無を判定する領域の比率を設定します。デフォルト値は0.8です。

`--bw-threshold threshold`

  このパラメータはグレースケールのスキャン画像を白黒に変換する際に使用されます。値を大きくするとより多くのピクセルが黒とみなされ、値を小さくするとより多くのピクセルが白とみなされます。閾値は0と1の間でなければなりません。デフォルト値は0.6です。

`--ignore-red`

  このオプションを用いると、カラースキャン画像の赤チャネルのみ使用されます。これにより、スキャン画像上の赤色で記入されたものはすべて無視されます。ボックスが赤で印刷されている場合に有用です。

`--tol-marque tol`

  スキャン画像の四隅にあるマーカーを検出する際の許容度を定義します。マーカーの検出には、目標サイズtarget（印刷とスキャンが完璧であった場合のマーカーの正確なサイズ）に近いサイズの、黒い連結領域を探します。tolが単純な実数の場合、サイズが近いと判断されるのは(1-tol)*targetから(1+tol)*targetまでの範囲です。tolがtinf,tsupの形式（tinfとtsupは実数）の場合は(1-tinf)*targetから(1+tsup)*targetまでの範囲です。標準値は0.2です。

`--multiple`

  このオプションは、試験問題をコピーした（つまり複数の受験者が同じ試験問題に解答しうる）場合に使用します。この場合、同じ試験問題番号をもつ答案用紙が区別できるように、答案用紙に複製番号が割り当てられます。

`--pre-allocate copy_id`

  このオプションは`--multiple`と共に使用されます。スキャンごとの複製番号がcopy_idから開始し、引数で指定したスキャン画像と同じ順序で割り当てられます。

--try-three | --no-try-three

  四隅のマーカーのうち三つしか認識できない場合も処理をするかどうかを示します。

`--debug file.log`

  デバッグ情報を記録するファイルを指定します。

auto-multiple-choice-note
1
Auto Multiple Choice
1.6.0+git20240805161640

### auto-multiple-choice-note

AMC選択式試験問題の採点をする

              auto-multiple-choice

              note

              --data project-data-dir

              --seuil threshold

              --grain granularity

              --arrondi rounding

              --notemin min

              --notemax max

                --no-plafond

                --plafond

#### 解説

`auto-multiple-choice note`コマンドは auto-multiple-choice-prepare 1 によってLaTeXソースファイルから取り出した採点基準と auto-multiple-choice-analyse 1 によって作成されたマーク認識データとから、各答案の得点を計算します。

`--data project-data-dir`

  データファイルがあるディレクトリを指定します（ auto-multiple-choice-meptex 1 などを参照してください）。

`--seuil threshold`

  ボックスがマークされているかどうかを判定するための黒ピクセル比率の閾値を指定します。ボックスがマークされているかどうか判定する際、`auto-multiple-choice note`は黒ピクセル比率（全ピクセル数に対する黒ピクセル数の割合）をthreshold（閾値）と比較します。黒ピクセル比率がthresholdよりも大きい場合、このボックスはマークされていると宣言されます。標準的な値は通常レイアウトで0.15、別紙答案用紙レイアウト（ボックス内に文字が記入されており、受験者にはボックスを完全に塗りつぶすよう指示する）で0.5程度です。

`--seuil-up upper_threshold`

  これ以上黒ピクセル比率が上がるとボックスがマークされていないと判定する上限の閾値を指定します。この値を（例えば）0.6に設定すると、受験者はボックスを完全に塗りつぶすことで、マークをキャンセルすることができます。つまり、黒ピクセル比率がthresholdとupper_thresholdの間にあればボックスはマークされているとみなされ、（完全に塗りつぶして）upper_thresholdを越えればマークされていないとみなされます。デフォルト値は1.0で、したがってこの機能は無効になっています。

`--grain granularity --arrondi rounding`

  得点がgranularityの倍数になるように丸めます。roundingが`i`なら、（ floor 3 がするように）切り捨てます。roundingが`n`なら、近い方に丸めます。roundingが`s`なら、（ ceil 3 がするように）切り上げます。例えば、`--grain 0.25 --arrondi s`というオプションを指定したとき、6.285という得点は6.5に丸められます。

`--notemin min`

  このオプションを用いると、min未満の得点はすべてminに置換されます。

`--notemax max`

  全問正解の答案に与える満点を指定します。これを用いなければ、得点は素点のままです。

`--plafond`

  このオプションを用いると、maxを越える得点はすべてmaxに置換されます。

`--debug file.log`

  デバッグ情報を記録するファイルを指定します。

`--postcorrect-student s --postcorrect-copy c`

  受験番号と試験問題番号で指定された答案を用いて採点時正解提示を指示します。採点時正解提示モードでは、LaTeXソースファイルからではなく、この答案で指定された解答から正解を取り出します。

auto-multiple-choice-association-auto
1
Auto Multiple Choice
1.6.0+git20240805161640

### auto-multiple-choice-association-auto

AMC選択式試験問題の受験者と答案を自動識別する

              auto-multiple-choice

              association-auto

              --data project-data-dir

              --notes-id id

              --liste students-list.csv

              --encodage-liste list-encoding

              --liste-key key

#### 解説

`auto-multiple-choice association-auto`コマンドは、答案用紙の受験者を識別します（受験者が受験番号を正しく記入し、マーク認識に誤りがない場合）。詳細はユーザードキュメントのを参照してください。

`--data project-data-dir`

  データファイルがあるディレクトリを指定します（ auto-multiple-choice-meptex 1 などを参照してください）。

`--notes-id id`

  受験番号マーク欄の（LaTeXソースファイルで`\AMCcode`に指定された）識別名を指定します。

`--pre-association`

  使用された場合、`--notes-id`オプションを無視し、印刷時識別データ（LaTeXソースファイルの`\AMCassociation`コマンド）から自動識別を行います。

`--liste students-list.csv`

  受験者名簿ファイル名を指定します。

`--encodage-liste list-encoding`

  受験者名簿ファイルのエンコーディング（デフォルトはutf-8）を指定します。

`--liste-key key`

  受験者名簿内の受験番号のカラム名を指定します。

`--debug file.log`

  デバッグ情報を記録するファイルを指定します。

auto-multiple-choice-association
1
Auto Multiple Choice
1.6.0+git20240805161640

### auto-multiple-choice-association

AMC選択式試験問題の受験者と答案用紙を手動識別する。

              auto-multiple-choice

              association

              --data project-data-dir

              --list

              auto-multiple-choice

              association

              --data project-data-dir

              --set

              --student student-sheet-number

              --copy copy-number

              --id student-id

#### 解説

`auto-multiple-choice association`コマンドは、答案用紙の受験者識別データを扱います。

`--data project-data-dir`

  データファイルがあるディレクトリを指定します（ auto-multiple-choice-prepare 1 などを参照してください）。

`--list`オプションは、受験者識別データをすべて出力します。

`--set`オプションは、手動識別を更新します。

auto-multiple-choice-export
1
Auto Multiple Choice
1.6.0+git20240805161640

### auto-multiple-choice-export

AMC選択式試験問題の採点結果をエクスポートする

              auto-multiple-choice

              export

              --data project-data-dir

              --module module

              --fich-noms students-list.csv

              --noms-encodage list-encoding

              --o output-file

#### 解説

`auto-multiple-choice export`コマンドは、AMC選択式試験から採点結果をエクスポートします。

`--data project-data-dir`

  データファイルがあるディレクトリを指定します（ auto-multiple-choice-meptex 1 などを参照してください）。

`--module module`

  エクスポート用のモジュールを選択します。AMCの標準ディストリビューションに付属しているモジュールは下記を参照してください。

`--fich-noms students-list.csv`

  受験者名簿ファイル名を設定します。

`--noms-encodage list-encoding`

  students-list.csvのエンコーディング（デフォルトはutf-8）を選択します。

`--o output-file`

  出力ファイル名を指定します。

`--option-out options`

  選択したモジュールのオプションを`key=value`の形式で指定します（各モジュールで使用できるオプションは下記を参照してください）。複数のオプションを指定する場合は、`--option`を複数回使用してください。

`--sort sort-type`

  受験者名をsort-typeに従って並べ替えます。sort-typeが`l`なら、並べ替えに受験者名簿の行番号を用います。sort-typeが`m`なら、並べ替えに得点（得点が等しければ受験者名）を用います。sort-typeが`i`なら、並べ替えに受験番号を用います。sort-typeが`n`なら、並べ替えに受験者名（等しければ名簿の行番号）を用います。

`--useall all`

  allが`0`か空なら、スキャンした答案のある受験者のみが出力されます。allが`1`なら、受験者名簿にある全受験者が出力されます。

#### モジュール

##### OpenDocument

`--module ods`とすると、OpenDocument（OpenOfficeやLibreOfficeなどで用いられる形式）が生成されます。以下のオプションが認識されます:

nom

  シートの先頭に表示される試験の名称を指定します。

code

  タブ名に使用される試験の略称を指定します。

columns

  受験者ごとに追加するカラムのリストを設定します。デフォルト値は`student.key,student.name`です。

stats

  trueなら、設問の統計表が追加されます。

statsindic

  trueなら、採点対象外設問の統計表が追加されます。

##### CSV

`--module CSV`とすると、CSVファイルが生成されます。以下のオプションが認識されます:

columns

  受験者ごとに追加するカラムのリストを設定します。デフォルト値は`student.copy,student.key,student.name`です。

decimal

  小数点（デフォルトはピリオド）を設定します。

encodage

  出力に用いるエンコーディング（デフォルトはutf-8）を設定します。

separateur

  カラム間の区切文字（デフォルトはカンマ）を設定します。

entoure

  文字列を囲む文字（デフォルトは二重引用符）を指定します。

ticked

  空でなければ、`CHECKED:`で始まる名前のカラムが追加され、各答案でどのボックスがマークされているか表示されます。これは、採点をもっと柔軟に行いたい場合に、外部プログラムがマークされたボックスの情報を得るのに使うことができます。ボックス3と4がマークされている場合、`01`という値を指定すれば0;0;1;1;0となり、`AB`という値を指定すればCDとなります。

##### List

`--module List`とすると、受験者ごとの得点の一覧がPDFファイルで生成されます。以下のオプションが認識されます:

pagesize

  ページサイズです。デフォルト値は`a4`です。

nom

  ページの先頭に表示する試験の名称を指定します。

ncols

  カラム数です。デフォルト値は2です。

decimal

  小数点（デフォルトはピリオド）を設定します。

auto-multiple-choice-annotate
1
Auto Multiple Choice
1.6.0+git20240805161640

### auto-multiple-choice-annotate

AMC選択式試験問題の答案に採点結果を記入する

              auto-multiple-choice

              annotate

              --project project-dir

              --names-file students.csv

              annotation options

#### 解説

`auto-multiple-choice annotate`コマンドは、答案に各設問の採点と全体の採点を記入し、PDFファイル（受験者別の複数ファイルか全体の単一ファイル）を出力します。

##### 全般オプション

`--project project-dir`

  プロジェクト名かディレクトリを設定します。

`--data project-data-dir`

  データファイルがあるディレクトリ（デフォルト値は`project-dir/data`）を指定します。

`--pdf-dir pdf-dir`

  プロジェクトのpdfディレクトリ（デフォルト値は`project-dir/cr/corrections/pdf`）を設定します。

`--names-file students-list.csv`

  受験者名簿ファイル名を設定します。

`--names-encoding encoding`

  students-list.csvのエンコーディング（デフォルトはutf-8）を選択します。

`--association-key key`

  受験者識別に使用するカラム（受験者名簿ファイル内のカラム名）を設定します。識別時に実際に使用した値がデータベースに格納され、これがデフォルト値となるので、このオプションは使用すべきでありません。

`--subject subject.pdf`

  試験問題ファイル（デフォルト値は`project-dir/DOC-sujet.pdf`）のパスを設定します。

`--compose mode`

  マークするボックスのないページ（例えば答案用紙より前にある問題のみのページなど）を問題用紙からもってくる場合にこのオプションを使用します。modeが1のときは、問題用紙からページを取得し、受験者の答案と同じようにマークを記入し、同じ採点記号を答案用紙に記入します。modeが2のときは、採点済の答案用紙からページを取得し、（重複するので）採点記号は記入しません。

`--corrected corrected.pdf`

  PDFの模範解答のパス（デフォルトは`project-dir/DOC-corrected.pdf`。ファイルが存在しなければ、`--n-copies`, `--with`, `--filter`, `--filtered-source`の各オプションの値を用いて作成されます）を設定します。

`--darkness-threshold t`

  黒ピクセル比率の閾値を設定します。採点時に実際に使用した値がデータベースに格納され、これがデフォルト値となるので、このオプションは使用すべきでありません。

`--darkness-threshold-up upper_t`

  黒ピクセル比率の上限の閾値を設定します。採点時に実際に使用した値がデータベースに格納され、これがデフォルト値となるので、このオプションは使用すべきでありません。

`--csv-build-name name-model`

  受験者名簿ファイルから受験者名を構成するためのモデルを設定します。デフォルト値は`(nom|surname) (prenom|name)`で、この場合、氏名は`nom`カラム（なければ`surname`カラム）の内容の後に`prenom`カラム（なければ`name`カラム）の内容を続けたものになり、したがって、フランス語か英語の単純なCSVファイルでたいていうまくいきます。

`--id-file ids.txt`

  採点を記入する答案用紙のID一覧ファイル（個別答案用紙モードなら受験番号、コピー答案用紙モードなら`student:copy`を各行に一つ）を指定します。ファイルが指定されない場合は、すべての答案用紙に採点が記入されます。

`--debug file.log`

  デバッグ情報を記録するファイルを指定します。

##### PDF出力オプション

`--single-output`

  採点済答案を単一のPDFファイルにまとめるにはこのオプションを使用してください。デフォルトの動作は受験者一人につき一つのPDFファイルを作成します。

`--sort s`

  以下のソートキーを設定します（`--single-output`を使用する場合のみ有効）:

  l

    受験者名簿ファイル順。

  m

    成績順。

  i

    試験問題ID順。

  n

    氏名順。

`--filename-model model`

  採点記入済PDF用のファイル名モデルを設定します。このモデルでは特定のシーケンスが以下のように置換されます:

  `(N)`

    は受験者名（`--csv-build-name`参照）に置換されます。

  `(ID)`

    は受験番号に置換されます。

  `(COL)`

    は受験者名簿内のCOLカラムの値に置換されます。

  デフォルト値は`(N)-(ID).pdf`です。

##### ソースファイルオプション

以下のオプションは`--corrected`で指定したファイルが存在せず、そのファイルを再構築するときに使用されます。

`--src mcq-source-file --n-copies n --with latex-engine --filter filter-name --filtered-source fs.tex`

  auto-multiple-choice-prepare 1 を参照してください。

##### スキャン画像埋込み用オプション

スキャン画像が存在する場合、採点記入済PDFファイルに埋め込まれます。以下のオプションは埋め込むスキャン画像の品質を制御し、ファイルサイズを縮小できるようにします。

`--embedded-max-size maxsize`

  スキャン画像の最大サイズをピクセル単位で（`widthxheight`の形式で）設定します。デフォルト値は空で、この場合は上限はありません。指定したサイズより大きいスキャン画像は採点記入済ファイルに埋め込む前に縮小されます。

`--embedded-format format`

  埋込み形式をjpegかpngで設定します。

`--embedded-jpeg-quality quality`

  JPEGで埋め込む場合のJPEG品質を（1から100で）設定します。

##### 採点記入オプション

以下のオプションはどのような採点が記入されるかを制御します。

`--font-size fs`

  フォントサイズをポイント値で設定します。

`--text-color color`

  文字の色を設定します。デフォルト値はredです。

`--verdict header`

  各受験者の答案用紙の先頭ページに表示するテキストヘッダを設定します。このテキストは複数行のヘッダ用に改行文字を含むことができます。以下の特定のシーケンスが置換されます:

  `%S`

    は受験者の素点合計に置換されます。

  `%M`

    は素点合計の満点に置換されます。

  `%s`

    は受験者の得点に置換されます。

  `%m`

    は満点に置換されます。

  `%(ID)`

    は受験者名に置換されます。

  `%(COL)`

    は受験者名簿内のCOLカラムの値に置換されます。

`--position pos`

  各設問の採点記入位置を設定します:

  marge

    左マージンに記入

  marges

    （左右いずれかの）近い方のマージンに記入

  case

    マーク用ボックスの近くに記入

  none

    採点を記入しない

--verdict-question perl-expression

  各設問の隣に印刷されるテキストをperlで評価される式として設定します（単純なテキストが必要なら`"`で囲んでください）。いくつかのシーケンスは評価の前に置換されます:

  `%S`

    はこの設問の素点に置換されます。

  `%M`

    はこの設問の満点に置換されます。

  `%s`

    は`%S`と同じですが、nc桁（`--ch-sign`オプション参照）に丸められます。

  `%m`

    は`%M`と同じですが、nc桁（`--ch-sign`オプション参照）に丸められます。

  このオプションのデフォルト値は`"%s/%m"`です。条件式を（`( TEST ? IF-YES : IF-NO )`というperlの構文を用いて）書くこともできます。満点なら合格、そうでなければ不合格と書くには、次のようにします。

      --verdict-question "(%S==%M ? \"合格\" : \"不合格\")"

--verdict-question-cancelled perl-expression

  `--verdict-question`と同じですが、キャンセルした設問（`allowempty`採点基準を参照）に適用されます。デフォルト値は`"X"`です。

`--indicatives`

  採点対象外の設問にも採点を記入するにはこのオプションを使用します。（これらの設問の素点は全体の素点を計算する際にはカウントされません。正誤の状態はこれらの設問にたいてい無関係なので、対応するボックスへの正誤マークは記入しません）

`--line-width width`

  採点時に記入する記号の線幅（ピクセル数）を設定します。デフォルト値は2です。

`--symbols symbols-definition`

  はボックスにどのように記号をつけるかを定義します。symbols-definitionは、`H-A:shape:color`の形式をカンマで区切ったリストで 、Hは`0`か`1`でボックスがマークすべきでないかすべきかを表し、Aは`0`か`1`でボックスがマークされていないかされているかを表し、shapeは`none`、`circle`、`mark`、`box`のどれか一つであり 、colorは色（名前または#RGBで、詳細はImageMagickかGraphicsMagickのドキュメントを参照）を表します。デフォルト値は`0-0:none,0-1:circle:red,1-0:mark:red,1-1:mark:blue`です。

##### 長さ

以下の長さには単位を指定することができます（`in`, `ft`, `pt`, `cm`, `mm`）。

`--dist-to-box d`

  `--position case`を使用する場合に、記入位置のボックスからの距離を設定します。デフォルトは`1cm`です。

`--dist-margin d`

  マージンのサイズを設定します。デフォルトは`5mm`です。

`--dist-margin-global d`

  ヘッダーのマージンサイズを設定します。デフォルトは`3mm`です。

auto-multiple-choice-mailing
1
Auto Multiple Choice
1.6.0+git20240805161640

### auto-multiple-choice-mailing

採点記入済答案のPDFを受験者にメールする

              auto-multiple-choice

              mailing

              --xmlargs args.xml

              --project project-dir

              --students-list students-list.csv

              --list-encoding encoding

              --email-column col

              --sender sender-email

              --subject subject

              --text email-body

              --text-content-type
              content-type

              --debug file.log

              transport arguments

#### 解説

`auto-multiple-choice mailing`コマンドは、採点記入済答案のPDFを受験者にメールで送付します。メールアドレスは受験者名簿ファイルから取り出されます。

`--project project-dir`

  プロジェクトディレクトリを指定します。

`--students-list students-list.csv`

  受験者名簿ファイル名を設定します。

`--list-encoding encoding`

  students-list.csvのエンコーディング（デフォルトはutf-8）を選択します。

`--email-column col`

  受験者名簿ファイル内で、受験者のメールアドレスに該当するカラム名を設定します。

`--sender sender-email`

  差出人アドレスを設定します。

`--cc cc-email-address`

  Ccアドレスを設定します。

`--bcc bcc-email-address`

  Bccアドレスを設定します。

`--subject subject`

  送付するメールの件名を設定します。

`--text email-body`

  送付するメールの本文を設定します。

`--text-content-type content-type`

  メール本文のcontent-typeを設定します。content-typeは、`text/plain`か`text/html`です。

`--attach filename`

  送付する各メールにファイルfilenameを添付します。このオプションを複数回使用すれば、複数のファイルを添付できます。

`--transport transport`

  転送方法を設定します。有効なtransportは、`sendmail`か`SMTP`のいずれかです。

`--debug file.log`

  デバッグ情報を記録するファイルを指定します。

`--delay time`

  各送信間にtime秒の遅延を設定します。

#### 転送方法別の引数

transport引数の値により、以下の引数が追加されます:

##### sendmail転送

`--sendmail-path path`

  `sendmail`コマンドのパス（デフォルトは`/usr/sbin/sendmail`）を設定します。

##### SMTP転送

`--smtp-host host`

  SMTPホスト名（デフォルトは`smtp`）を設定します。

`--smtp-port port`

  使用するポート（デフォルト値は25）を設定します。

`--smtp-ssl mode`

  SMTP接続のセキュリティモードを設定します。modeオプションは`ssl`、`starttls`、`0`（暗号なし）のいずれかです。

`--smtp-user user`

  SMTP認証のためのユーザ名を設定します。

`--smtp-passwd-file file`

  SMTP認証のためのパスワードを（1行目に）含んだファイルのパスを指定します。

#### XMLファイルによる引数

エンコーディング問題を避けるため、XMLファイルに引数を置いて、`--xmlargs file.xml`をコマンドの最初の引数とすることができます。そのようなファイルの例を示します:

    <?xml version="1.0" encoding="UTF-8"?>
    <arguments>
      <arg>--sender</arg><arg>Bienvenue &lt;paamc@passoire.fr&gt;</arg>
      <arg>--text</arg><arg>Voilà votre copie corrigée</arg>
      <arg>--subject</arg><arg>QCM</arg>
    </arguments>

## その他

### AMCでGMAILを使用するための設定

Gmailアカウントにログインし、「安全性の低いアプリの許可」を有効にします。（訳注: Googleの「アカウント情報」から「ログインとセキュリティ」を開くと、最下部にあります。）

#### Linuxユーザ（Ubuntu、Xubuntu、Lubuntu等）

端末で以下を入力します:

    sudo apt-get install msmtp

    sudo gedit /etc/msmtprc

msmtprcファイルに以下の内容を追加して保存します。

    account gmail
    host smtp.gmail.com
    tls on
    tls_certcheck off
    port 587
    auth login
    from your_user_name@gmail.com
    user your_user_name@gmail.com
    password your_password

AMCを設定します: 編集 設定 メール メール配信方法 でsendmailを選択し、sendmailのパスを

    /usr/bin/msmtp

に設定します。

#### Macintoshユーザ

端末で以下を入力します:

    sudo port install msmtp

    sudo pico ~/.msmtprc

msmtprcファイルに以下の内容を追加して保存します。

    account gmail
    host smtp.gmail.com
    tls on
    tls_certcheck off
    port 587
    auth login
    from your_user_name@gmail.com
    user your_user_name@gmail.com
    password your_password

AMCを設定します: 編集 設定 メール メール配信方法 でsendmailを選択し、sendmailのパスを

    /opt/local/bin/msmtp

に設定します。