1 | <?xml version="1.0" encoding="UTF-8"?>
|
2 | <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
3 | "/usr/share/xml/docbook/schema/dtd/4.5/docbookx.dtd">
|
4 | <article lang="en">
|
5 | <title>Auto Multiple Choice</title>
|
6 |
|
7 | <articleinfo>
|
8 | <title>Auto Multiple Choice</title>
|
9 |
|
10 | <subtitle>Design of MCQ tests with automated correction and
|
11 | grading</subtitle>
|
12 |
|
13 | <abstract>
|
14 | <para>AMC is a set of utilities allowing the use of MCQ written in plain
|
15 | text or LaTeX, and their automated correction and grading from scans of
|
16 | the answer sheets using Optical Mark Recognition (OMR). This document
|
17 | describes its use (for the version
|
18 | @/PACKAGE_V_DEB/@~@/PACKAGE_V_VC/@).</para>
|
19 |
|
20 | <para>The AMC project is hosted by <ulink
|
21 | url="http://gna.org/">Gna !</ulink> : you can find the AMC web-site
|
22 | there <ulink
|
23 | url="http://home.gna.org/auto-qcm/">http://home.gna.org/auto-qcm/</ulink>,
|
24 | and the web-page where the project is hosted there <ulink
|
25 | url="https://bitbucket.org/auto-multiple-choice/auto-multiple-choice">https://bitbucket.org/auto-multiple-choice/auto-multiple-choice</ulink>.</para>
|
26 | </abstract>
|
27 |
|
28 | <author>
|
29 | <firstname>Alexis</firstname>
|
30 |
|
31 | <affiliation>
|
32 | <address><email>paamc@passoire.fr</email></address>
|
33 | </affiliation>
|
34 |
|
35 | <surname>Bienvenüe</surname>
|
36 |
|
37 | <contrib>Main author</contrib>
|
38 | </author>
|
39 |
|
40 | <author>
|
41 | <firstname>Anirvan</firstname>
|
42 |
|
43 | <surname>Sarkar</surname>
|
44 |
|
45 | <contrib>Author and Editor</contrib>
|
46 | </author>
|
47 |
|
48 | <editor>
|
49 | <firstname>Hiroto</firstname>
|
50 |
|
51 | <surname>Kagotani</surname>
|
52 |
|
53 | <contrib>Editor</contrib>
|
54 | </editor>
|
55 |
|
56 | <copyright>
|
57 | <year>2008-2013</year>
|
58 |
|
59 | <holder>Alexis Bienvenüe</holder>
|
60 | </copyright>
|
61 |
|
62 | <othercredit class="translator">
|
63 | <surname>Bérard</surname>
|
64 |
|
65 | <firstname>Jean</firstname>
|
66 |
|
67 | <contrib>Translation from French</contrib>
|
68 | </othercredit>
|
69 |
|
70 | <othercredit class="translator">
|
71 | <surname>Khaznadar</surname>
|
72 |
|
73 | <firstname>Georges</firstname>
|
74 |
|
75 | <contrib>Translation from French</contrib>
|
76 | </othercredit>
|
77 |
|
78 | <legalnotice>
|
79 | <para>This document can be used according to the terms of the GNU
|
80 | General Public License, version 2 or later.</para>
|
81 | </legalnotice>
|
82 | </articleinfo>
|
83 |
|
84 | <sect1>
|
85 | <title>License</title>
|
86 |
|
87 | <para>Auto Multiple Choice is free software: you can redistribute it
|
88 | and/or modify it under the terms of the GNU General Public License as
|
89 | published by the Free Software Foundation, either version 2 of the
|
90 | License, or (at your option) any later version.</para>
|
91 |
|
92 | <para>This program is distributed in the hope that it will be useful, but
|
93 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
94 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
95 | for more details. You should have received a copy of the GNU General
|
96 | Public License along with this program. If not, see <ulink
|
97 | url="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</ulink>.</para>
|
98 | </sect1>
|
99 |
|
100 | <sect1 id="prerequis">
|
101 | <title>Prerequisites</title>
|
102 |
|
103 | <sect2>
|
104 | <title>Operating system</title>
|
105 |
|
106 | <para>The AMC utilities have been written for Linux. They might be
|
107 | adapted to MAC OS X or Windows without too many difficulties, but I
|
108 | won't do that in the near future. Please contact me if you are
|
109 | interested to do it : I can help you a little, and I will include
|
110 | changes in AMC if necessary.</para>
|
111 | </sect2>
|
112 |
|
113 | <sect2>
|
114 | <title>Software</title>
|
115 |
|
116 | <note>
|
117 | <para>If you install AMC with deb or RPM package (on debian, Ubuntu
|
118 | and derivatives, Mandriva, openSUSE, Fedora), every software used by
|
119 | AMC will be automatically installed.</para>
|
120 | </note>
|
121 |
|
122 | <para>The main packages/software that are required for the use of AMC
|
123 | are the following:</para>
|
124 |
|
125 | <itemizedlist>
|
126 | <listitem>
|
127 | <para>LaTeX</para>
|
128 | </listitem>
|
129 |
|
130 | <listitem>
|
131 | <para>ImageMagick</para>
|
132 | </listitem>
|
133 |
|
134 | <listitem>
|
135 | <para>Perl, together with Gtk2-Perl and Glade::XML for the graphical
|
136 | user interface</para>
|
137 | </listitem>
|
138 | </itemizedlist>
|
139 |
|
140 | <sect3>
|
141 | <title>Recommended versions for software used by AMC</title>
|
142 |
|
143 | <para>A few bugs in old versions of software used by AMC are
|
144 | particularly detrimental to its operating normally:</para>
|
145 |
|
146 | <itemizedlist>
|
147 | <listitem>
|
148 | <para>With old versions of <package>Net::CUPS</package> (debian
|
149 | package <package>libnet-cups-perl</package>), the command for
|
150 | printing the test sheets leads to a premature exit from the AMC
|
151 | graphical user interface. This bug is fixed in versions 0.61 and
|
152 | later of <package>Net::CUPS</package>.</para>
|
153 | </listitem>
|
154 |
|
155 | <listitem>
|
156 | <para>With old versions of ImageMagick, the merging of corrected
|
157 | answer sheets into a single PDF file per student does not work
|
158 | when answer sheets comprise more than one page. This bug is fixed
|
159 | in versions 6.5.5 ad later of ImageMagick.</para>
|
160 | </listitem>
|
161 | </itemizedlist>
|
162 | </sect3>
|
163 | </sect2>
|
164 |
|
165 | <sect2>
|
166 | <title>LaTeX</title>
|
167 |
|
168 | <para>From version 1.1 of AMC, it is not mandatory anymore to write your
|
169 | questionnaires using LaTeX language (see <xref linkend="AMC-TXT"/> for a
|
170 | plain text alternative syntax). However, LaTeX is still the native AMC
|
171 | language for questionnaires descriptions, and allows the user to design
|
172 | his questionnaires with tremendous freedom. The templates that are
|
173 | provided should allow those who are not deterred by LaTeX format to
|
174 | quickly start writing their own MCQs.</para>
|
175 | </sect2>
|
176 | </sect1>
|
177 |
|
178 | <sect1 id="usagenotes">
|
179 | <title>Usage notes</title>
|
180 |
|
181 | <sect2>
|
182 | <title>Numerical limitations</title>
|
183 |
|
184 | <para>In the present version (starting with version 0.156), the maximum
|
185 | number of students per test is limited to 4 095, and the maximum number
|
186 | of pages per test is limited to 63 ( Modifiable default values, see
|
187 | <xref endterm="binary.code.title" linkend="binary.code"/>).</para>
|
188 |
|
189 | <para>The maximum number of answers for a given question is limited to
|
190 | 199 (Unmodifiable default value).</para>
|
191 |
|
192 | <para>LaTeX's own limitations may make compilation impossible, producing
|
193 | e.g. a « <errortext>No room for a new \toks</errortext> » error. In that
|
194 | case, try again using the package <package>etex</package>, thanks to the
|
195 | <code>\usepackage{etex}</code> command.</para>
|
196 | </sect2>
|
197 |
|
198 | <sect2>
|
199 | <title>Versions</title>
|
200 |
|
201 | <para>Even though it should not have too many consequences, it is
|
202 | recommended not to change the program version while working with a given
|
203 | project (between the time when the test sheets are printed and the time
|
204 | when tests are corrected and graded). There are a few modifications
|
205 | which may interfere with AMC operating normally if you apply them while
|
206 | working with a given project:</para>
|
207 |
|
208 | <itemizedlist>
|
209 | <listitem>
|
210 | <para>If you have compiled and printed with a version of AMC earlier
|
211 | than 0.155, and then handle the project with version 0.156 or later,
|
212 | add the option <option>versionA</option> in the reference to the
|
213 | package <package>automultiplechoice</package> in the LaTeX file.
|
214 | Example:</para>
|
215 |
|
216 | <programlisting>\usepackage[box,completemulti,versionA]{automultiplechoice}</programlisting>
|
217 | </listitem>
|
218 |
|
219 | <listitem>
|
220 | <para>From version 0.262 on, the drawing of the checkboxes changed
|
221 | to be slightly larger, which may alter the layout of the test
|
222 | sheets.</para>
|
223 | </listitem>
|
224 |
|
225 | <listitem>
|
226 | <para>From version 0.267, if you want to produce A4 format test
|
227 | sheets, you have to state it explicitly in the LaTeX file:</para>
|
228 |
|
229 | <programlisting>\documentclass[a4paper]{article} </programlisting>
|
230 | </listitem>
|
231 |
|
232 | <listitem>
|
233 | <para>From version 0.394, if your LaTeX code needs package
|
234 | <package>graphicx</package>, you have to load it explicitly (earlier
|
235 | versions of AMC loaded it).</para>
|
236 | </listitem>
|
237 |
|
238 | <listitem>
|
239 | <para>The LaTeX command <command>\AMCcode</command> was rewritten in
|
240 | version 0.518. It is now more robust and configurable, but you will
|
241 | have to adapt the LaTeX sources you wrote for older versions to keep
|
242 | the same layout.</para>
|
243 | </listitem>
|
244 |
|
245 | <listitem>
|
246 | <para>From version 1.1.0, all AMC data is stored in SQLite databases
|
247 | instead of lots of XML files. The first time you open a project, old
|
248 | XML files will be converted to the new format.</para>
|
249 | </listitem>
|
250 | </itemizedlist>
|
251 | </sect2>
|
252 |
|
253 | <sect2>
|
254 | <title>Installation</title>
|
255 |
|
256 | <para>With debian, Ubuntu, or a derived operating system, you can use
|
257 | the debian official repository and ubuntu AMC repositories. On Mandriva,
|
258 | openSUSE or Fedora, you can use prebuilt RPM packages. The installation
|
259 | procedure is described on the <ulink
|
260 | url="http://home.gna.org/auto-qcm/download">AMC web-site</ulink>.</para>
|
261 |
|
262 | <para>You can also download the source code archive on the project
|
263 | <ulink url="http://download.gna.org/auto-qcm/">download space</ulink>,
|
264 | then use the following commands in a terminal:</para>
|
265 |
|
266 | <screen>tar xvzf auto-multiple-choice_xxxx_precomp.tar.gz
|
267 | cd auto-multiple-choice-xxx
|
268 | make
|
269 | sudo make install</screen>
|
270 | </sect2>
|
271 |
|
272 | <sect2>
|
273 | <title>Access</title>
|
274 |
|
275 | <para>Once the installation is made, the graphical user interface can be
|
276 | launched by choosing <menuchoice>
|
277 | <guimenu>Applications</guimenu>
|
278 |
|
279 | <guisubmenu>Education</guisubmenu>
|
280 |
|
281 | <guimenuitem>Auto Multiple Choice</guimenuitem>
|
282 | </menuchoice> in the Gnome general menu (or its KDE or other analog),
|
283 | but one can also use the <userinput>auto-multiple-choice</userinput>
|
284 | command.</para>
|
285 | </sect2>
|
286 | </sect1>
|
287 |
|
288 | <sect1 id="AMC-TXT">
|
289 | <title>AMC-TXT syntax</title>
|
290 |
|
291 | <para>For users who are not ready to learn LaTeX (if not already familiar
|
292 | with this language), AMC includes a filter to process simple plain text
|
293 | files in a particular format, named AMC-TXT. This section is devoted to
|
294 | detail the syntax of AMC-TXT files. If you prefer use LaTeX to gain a
|
295 | fine-control over your questionnaires, skip to next section.</para>
|
296 |
|
297 | <para>Let us begin with a simple example:</para>
|
298 |
|
299 | |
300 | DESC: A very simple example (from the documentation) using the AMC-TXT format. This is a very simple plain text format to write your questionnaires without any LaTeX knowledge.-->
|
301 |
|
302 | <programlisting id="modeles-simple-txt.txt"># AMC-TXT source file
|
303 | Title: My first AMC questionnaire
|
304 |
|
305 | Presentation: Please answer the following questions
|
306 | the best you can.
|
307 |
|
308 | * What is the capital city of Cameroon?
|
309 | + Yaounde
|
310 | - Douala
|
311 | - Kribi
|
312 |
|
313 | ** From the following numbers, which are positive?
|
314 | - -2
|
315 | + 2
|
316 | + 10</programlisting>
|
317 |
|
318 | <important>
|
319 | <para>The file that contains your questionnaire must be a plain text
|
320 | file, UTF-8 encoded. This is the default encoding of several text
|
321 | editors, like <command>gedit</command>. Don't use a text editor that can
|
322 | format your text with bold, images, and so on, like
|
323 | OpenOffice/LibreOffice, or equivalent: these save your text with a lot
|
324 | of other data, and AMC won't be able to read it.</para>
|
325 | </important>
|
326 |
|
327 | <note>
|
328 | <para>The default font that will be used is <ulink
|
329 | url="http://www.linuxlibertine.org/">libertine</ulink>, an open source
|
330 | font that contains characters for a lot of languages. You have to
|
331 | install this font or choose another one (see options below). If you
|
332 | install AMC with a debian/ubuntu package, this font will be install
|
333 | together as a recommended package.</para>
|
334 | </note>
|
335 |
|
336 | <para>You already understand AMC-TXT structure: some general options
|
337 | first, and then questions.</para>
|
338 |
|
339 | <sect2>
|
340 | <title>Comments</title>
|
341 |
|
342 | <para>You can write some comments inside your AMC-TXT source file in
|
343 | lines <emphasis>beginning</emphasis> with a `<code>#</code>'. These
|
344 | lines won't be considered by AMC.</para>
|
345 | </sect2>
|
346 |
|
347 | <sect2>
|
348 | <title>General options</title>
|
349 |
|
350 | <para>Here are the options you can use (in any order):</para>
|
351 |
|
352 | <variablelist>
|
353 | <varlistentry>
|
354 | <term>Lang:</term>
|
355 |
|
356 | <listitem>
|
357 | <para>use it to specify a language the questionnaire is written
|
358 | in. At present, only DE (German), ES (Spanish), FR (French), IT
|
359 | (Italian), NL (Dutch), NO (Norwegian), PT (portuguese), JA
|
360 | (Japanese, see <xref linkend="txt-japanese"/>) and AR (Arabic, see
|
361 | <xref linkend="txt-arabic"/>) are supported. Without this option,
|
362 | English will be selected. You can also define the localized string
|
363 | used for another language (see the <option>L-xxx</option>
|
364 | options).</para>
|
365 | </listitem>
|
366 | </varlistentry>
|
367 |
|
368 | <varlistentry>
|
369 | <term>PaperSize:</term>
|
370 |
|
371 | <listitem>
|
372 | <para>Sets the paper size. Possible values are <code>A3</code>,
|
373 | <code>A4</code>, <code>A5</code>, <code>A6</code>,
|
374 | <code>B3</code>, <code>B4</code>, <code>B5</code>,
|
375 | <code>B6</code>, <code>letter</code>, <code>legal</code>,
|
376 | <code>ANSIA</code>, <code>ANSIB</code>, <code>ANSIC</code>,
|
377 | <code>ANSID</code>, <code>ANSIE</code>.</para>
|
378 | </listitem>
|
379 | </varlistentry>
|
380 |
|
381 | <varlistentry>
|
382 | <term>Title:</term>
|
383 |
|
384 | <listitem>
|
385 | <para>The exam title, written on top of the sheet.</para>
|
386 | </listitem>
|
387 | </varlistentry>
|
388 |
|
389 | <varlistentry>
|
390 | <term>Presentation:</term>
|
391 |
|
392 | <listitem>
|
393 | <para>A text that presents the exam (length, rules...).</para>
|
394 | </listitem>
|
395 | </varlistentry>
|
396 |
|
397 | <varlistentry>
|
398 | <term>ShuffleQuestions:</term>
|
399 |
|
400 | <listitem>
|
401 | <para>If 1 (default), questions will be shuffled so that their
|
402 | order is different from one sheet to the other. If 0, the
|
403 | questions will always show with the same order as in your
|
404 | file.</para>
|
405 | </listitem>
|
406 | </varlistentry>
|
407 |
|
408 | <varlistentry>
|
409 | <term>Code:</term>
|
410 |
|
411 | <listitem>
|
412 | <para>Give a positive integer value <replaceable>n</replaceable>
|
413 | to add boxes so that students will be able to code their student
|
414 | number on their sheets, with <replaceable>n</replaceable>
|
415 | digits.</para>
|
416 | </listitem>
|
417 | </varlistentry>
|
418 |
|
419 | <varlistentry>
|
420 | <term>CodeDigitsDirection:</term>
|
421 |
|
422 | <listitem>
|
423 | <para>Sets the direction for code's digits boxes (either
|
424 | <code>vertical</code> or <code>horizontal</code>). If unset, AMC
|
425 | will choose the direction from the number of digits (horizontal
|
426 | for small number of digits, and vertical for high number of
|
427 | digits).</para>
|
428 | </listitem>
|
429 | </varlistentry>
|
430 |
|
431 | <varlistentry>
|
432 | <term>Columns:</term>
|
433 |
|
434 | <listitem>
|
435 | <para>Give a positive integer value <replaceable>n</replaceable>
|
436 | to get a subject with <replaceable>n</replaceable> columns.</para>
|
437 | </listitem>
|
438 | </varlistentry>
|
439 |
|
440 | <varlistentry>
|
441 | <term>CompleteMulti:</term>
|
442 |
|
443 | <listitem>
|
444 | <para>If 1 (default), for multiple questions (those for which
|
445 | zero, one or several answers are correct), an answer "None of
|
446 | these answers are correct" will be added. Without it, it should be
|
447 | impossible to make a difference between "the student didn't answer
|
448 | for this question" and "the student thinks no answer is correct
|
449 | for this question". If you don't want this answer to be added, set
|
450 | this option to 0.</para>
|
451 | </listitem>
|
452 | </varlistentry>
|
453 |
|
454 | <varlistentry>
|
455 | <term>L-None:</term>
|
456 |
|
457 | <listitem>
|
458 | <para>Give a string to replace <emphasis>None of these answers are
|
459 | correct</emphasis> (see previous option).</para>
|
460 | </listitem>
|
461 | </varlistentry>
|
462 |
|
463 | <varlistentry>
|
464 | <term>QuestionBlocks:</term>
|
465 |
|
466 | <listitem>
|
467 | <para>If 1 (default), all questions will be enclosed in a
|
468 | invisible frame that prevents it to be split across several
|
469 | columns or pages. If 0, questions are allowed to be split if
|
470 | necessary: that can save pages at the cost of readability.</para>
|
471 | </listitem>
|
472 | </varlistentry>
|
473 |
|
474 | <varlistentry>
|
475 | <term>L-Question:</term>
|
476 |
|
477 | <listitem>
|
478 | <para>Give a translation of <emphasis>Question</emphasis> in your
|
479 | questionnaire, if you need.</para>
|
480 | </listitem>
|
481 | </varlistentry>
|
482 |
|
483 | <varlistentry>
|
484 | <term>L-Name:</term>
|
485 |
|
486 | <listitem>
|
487 | <para>Give a translation of <emphasis>Name and surname</emphasis>,
|
488 | a text written in the box where students are to write their
|
489 | identity.</para>
|
490 | </listitem>
|
491 | </varlistentry>
|
492 |
|
493 | <varlistentry>
|
494 | <term>L-Student:</term>
|
495 |
|
496 | <listitem>
|
497 | <para>Small text that asks students to code their student numbers
|
498 | and write their name, when <option>Code</option> option is
|
499 | used.</para>
|
500 | </listitem>
|
501 | </varlistentry>
|
502 |
|
503 | <varlistentry>
|
504 | <term>TitleWidth:</term>
|
505 |
|
506 | <listitem>
|
507 | <para>Width of the title zone, when <option>Code:</option> is not
|
508 | used. Default value is <code>.47\linewidth</code>.</para>
|
509 | </listitem>
|
510 | </varlistentry>
|
511 |
|
512 | <varlistentry>
|
513 | <term>NameFieldWidth:</term>
|
514 |
|
515 | <listitem>
|
516 | <para>Width of the name field part. Usual LaTeX dimensions can be
|
517 | used. The default value is <code>5.8cm</code> when
|
518 | <option>Code:</option> is used, and <code>.47\linewidth</code>
|
519 | without <option>Code:</option>.</para>
|
520 | </listitem>
|
521 | </varlistentry>
|
522 |
|
523 | <varlistentry>
|
524 | <term>NameFieldLines:</term>
|
525 |
|
526 | <listitem>
|
527 | <para>Number of lines in the name field box. Default is
|
528 | <code>2</code> when <option>Code:</option> is used, and
|
529 | <code>1</code> otherwise.</para>
|
530 | </listitem>
|
531 | </varlistentry>
|
532 |
|
533 | <varlistentry>
|
534 | <term>NameFieldLinespace:</term>
|
535 |
|
536 | <listitem>
|
537 | <para>Line space in the name field box. Defaut value is
|
538 | <code>.5em</code>.</para>
|
539 | </listitem>
|
540 | </varlistentry>
|
541 |
|
542 | <varlistentry>
|
543 | <term>ManualDuplex:</term>
|
544 |
|
545 | <listitem>
|
546 | <para>If 1 (this is not the default value), each subject will
|
547 | consist of an even number of pages, so that the user can manually
|
548 | print the PDF subject for all students in one go in duplex
|
549 | mode.</para>
|
550 | </listitem>
|
551 | </varlistentry>
|
552 |
|
553 | <varlistentry>
|
554 | <term>SingleSided:</term>
|
555 |
|
556 | <listitem>
|
557 | <para>If 1 (this is not the default value), no blank page will be
|
558 | added between the question and the separate answer sheet, even if
|
559 | the question has an odd number of pages. This mode can be useful
|
560 | when the subjects are printed single-sided, or when it is not
|
561 | necessary to separate question and answer sheet.</para>
|
562 | </listitem>
|
563 | </varlistentry>
|
564 |
|
565 | <varlistentry>
|
566 | <term>BoxColor:</term>
|
567 |
|
568 | <listitem>
|
569 | <para>Color of the boxes to be filled by the students. This allows
|
570 | to print the boxes with some color that won't disturb too much the
|
571 | data capture (for example <emphasis>red</emphasis>, but some light
|
572 | gray can also be considered). The color has to be given as a valid
|
573 | <command>xcolor</command> color (see <command>xcolor</command>
|
574 | LaTeX package documentation for details), such as
|
575 | <emphasis>red</emphasis>, <emphasis>magenta</emphasis>,
|
576 | <emphasis>pink</emphasis>, <emphasis>lightgray</emphasis>,
|
577 | <emphasis>cyan</emphasis>, or in the form <code>#RRGGBB</code>,
|
578 | like <code>#FFBEC8</code> for some light red.</para>
|
579 | </listitem>
|
580 | </varlistentry>
|
581 |
|
582 | <varlistentry>
|
583 | <term>DefaultScoringS:</term>
|
584 |
|
585 | <listitem>
|
586 | <para>Default scoring strategy for simple questions (questions for
|
587 | which one and only one answer is correct). See <xref
|
588 | linkend="bareme"/> for details. The default value gives one point
|
589 | for the right answer, and zero for others.</para>
|
590 | </listitem>
|
591 | </varlistentry>
|
592 |
|
593 | <varlistentry>
|
594 | <term>DefaultScoringM:</term>
|
595 |
|
596 | <listitem>
|
597 | <para>Default scoring strategy for multiple questions (questions
|
598 | for which there can be zero, one or several correct answers). See
|
599 | <xref linkend="bareme"/> for details. The default value is
|
600 | <code>haut=2</code>, so that a perfect answer gives 2 points, and
|
601 | each error (ticking a box that should not be ticked, or leaving a
|
602 | box that should be ticked unticked) takes one point off (keeping
|
603 | the score non-negative).</para>
|
604 | </listitem>
|
605 | </varlistentry>
|
606 |
|
607 | <varlistentry>
|
608 | <term>LaTeX:</term>
|
609 |
|
610 | <listitem>
|
611 | <para>Set this option to 1 if you want to use LaTeX commands in
|
612 | your texts. This allows for example to insert mathematical
|
613 | formulas, like <code>$\sqrt{a+b}$</code>. If 0 (default), all your
|
614 | texts will be written unmodified.</para>
|
615 | </listitem>
|
616 | </varlistentry>
|
617 |
|
618 | <varlistentry>
|
619 | <term>LaTeX-Preambule:</term>
|
620 |
|
621 | <listitem>
|
622 | <para>Give commands you want to be added to the LaTeX preambule
|
623 | (for example <command>\usepackage</command> commands).</para>
|
624 | </listitem>
|
625 | </varlistentry>
|
626 |
|
627 | <varlistentry>
|
628 | <term>LaTeX-BeginDocument:</term>
|
629 |
|
630 | <listitem>
|
631 | <para>Give commands to be inserted at the beginning of the LaTeX
|
632 | <command>document</command> environment (for example macro
|
633 | definitions).</para>
|
634 | </listitem>
|
635 | </varlistentry>
|
636 |
|
637 | <varlistentry>
|
638 | <term>Disable:</term>
|
639 |
|
640 | <listitem>
|
641 | <para>Gives a comma-separated list of features to disable. Current
|
642 | implemented features are <code>images</code> (see <xref
|
643 | linkend="parse_images"/>), <code>embf</code> (see <xref
|
644 | linkend="parse_embf"/>) and <code>local_latex</code> (see <xref
|
645 | linkend="parse_local_latex"/>).</para>
|
646 | </listitem>
|
647 | </varlistentry>
|
648 |
|
649 | <varlistentry>
|
650 | <term>PackageOptions:</term>
|
651 |
|
652 | <listitem>
|
653 | <para>Gives some more options to pass to the automultiplechoice
|
654 | LaTeX package (see <xref linkend="sec.package.options"/>.</para>
|
655 | </listitem>
|
656 | </varlistentry>
|
657 | </variablelist>
|
658 |
|
659 | <sect3>
|
660 | <title>Separate answer sheet</title>
|
661 |
|
662 | <para>To use separate answer sheets for your questionnaire, consider
|
663 | the following options:</para>
|
664 |
|
665 | <variablelist>
|
666 | <varlistentry>
|
667 | <term>SeparateAnswerSheet:</term>
|
668 |
|
669 | <listitem>
|
670 | <para>If 1, a separate answer sheet will be added.</para>
|
671 | </listitem>
|
672 | </varlistentry>
|
673 |
|
674 | <varlistentry>
|
675 | <term>AnswerSheetTitle:</term>
|
676 |
|
677 | <listitem>
|
678 | <para>Title of the answer sheet.</para>
|
679 | </listitem>
|
680 | </varlistentry>
|
681 |
|
682 | <varlistentry>
|
683 | <term>AnswerSheetPresentation:</term>
|
684 |
|
685 | <listitem>
|
686 | <para>Presentation of the answer sheet. For example, remind the
|
687 | students that the answers are to be given on this sheet
|
688 | <emphasis>only</emphasis>.</para>
|
689 | </listitem>
|
690 | </varlistentry>
|
691 |
|
692 | <varlistentry>
|
693 | <term>AnswerSheetColumns:</term>
|
694 |
|
695 | <listitem>
|
696 | <para>Number of columns for the answer sheet.</para>
|
697 | </listitem>
|
698 | </varlistentry>
|
699 |
|
700 | <varlistentry>
|
701 | <term>AutoMarks:</term>
|
702 |
|
703 | <listitem>
|
704 | <para>If 1, uses <option>automarks</option> option (see <xref
|
705 | linkend="sec.package.options"/>).</para>
|
706 | </listitem>
|
707 | </varlistentry>
|
708 | </variablelist>
|
709 | </sect3>
|
710 | </sect2>
|
711 |
|
712 | <sect2>
|
713 | <title>Questions</title>
|
714 |
|
715 | <para>Simple questions (questions for which one and only one answer is
|
716 | correct) begin with a <code>*</code> at the beginning of the line, and
|
717 | multiple questions (questions for which there can be zero, one or
|
718 | several correct answers) begin with a <code>**</code>. Insert then the
|
719 | question itself, and the choices, introduced with a <code>+</code> for
|
720 | correct ones and with a <code>-</code> for wrong ones.</para>
|
721 |
|
722 | <sect3>
|
723 | <title>Questions options</title>
|
724 |
|
725 | <para>Some options are available for questions. They must be separated
|
726 | by commas and enclosed by square brackets just after the leading
|
727 | <code>*</code>'s, as in the following example:</para>
|
728 |
|
729 | <programlisting>*[ordered,horiz,name=sum] How much are
|
730 | one plus one?
|
731 | - 0
|
732 | - 1
|
733 | + 2</programlisting>
|
734 |
|
735 | <para>Available options for questions:</para>
|
736 |
|
737 | <variablelist>
|
738 | <varlistentry>
|
739 | <term>horiz</term>
|
740 |
|
741 | <listitem>
|
742 | <para>present choices horizontally, not on separated
|
743 | lines.</para>
|
744 | </listitem>
|
745 | </varlistentry>
|
746 |
|
747 | <varlistentry>
|
748 | <term>columns=<replaceable>n</replaceable></term>
|
749 |
|
750 | <listitem>
|
751 | <para>make <replaceable>n</replaceable> columns for the
|
752 | choices.</para>
|
753 | </listitem>
|
754 | </varlistentry>
|
755 |
|
756 | <varlistentry>
|
757 | <term>ordered</term>
|
758 |
|
759 | <listitem>
|
760 | <para>don't shuffle the choices, keep the same order as in the
|
761 | description file.</para>
|
762 | </listitem>
|
763 | </varlistentry>
|
764 |
|
765 | <varlistentry>
|
766 | <term>id=<replaceable>xxxx</replaceable></term>
|
767 |
|
768 | <listitem>
|
769 | <para>Give a name to the question, so as to locate the
|
770 | corresponding results easily in the exported spreadsheets. This
|
771 | name must contain only simple characters, without accents and
|
772 | LaTeX special characters such as <code>_</code>, <code>^</code>,
|
773 | <code>%</code>...</para>
|
774 |
|
775 | <para><option>name</option> can also be used instead of
|
776 | <option>id</option> for compatibility with old versions, but you
|
777 | should prefer using <option>id</option>.</para>
|
778 | </listitem>
|
779 | </varlistentry>
|
780 |
|
781 | <varlistentry>
|
782 | <term>indicative</term>
|
783 |
|
784 | <listitem>
|
785 | <para>don't use this question score to compute the global
|
786 | student's score.</para>
|
787 | </listitem>
|
788 | </varlistentry>
|
789 |
|
790 | <varlistentry>
|
791 | <term>next</term>
|
792 |
|
793 | <listitem>
|
794 | <para>Use this option if you want the question to stay next to
|
795 | the previous one, even when using questions shuffling with
|
796 | <option>ShuffleQuestions</option> general option.</para>
|
797 | </listitem>
|
798 | </varlistentry>
|
799 |
|
800 | <varlistentry>
|
801 | <term>first</term>
|
802 |
|
803 | <listitem>
|
804 | <para>Use this option to place the question always at the
|
805 | beginning of the group (see <xref
|
806 | linkend="sec.txt-groups"/>).</para>
|
807 | </listitem>
|
808 | </varlistentry>
|
809 |
|
810 | <varlistentry>
|
811 | <term>last</term>
|
812 |
|
813 | <listitem>
|
814 | <para>Use this option to place the question always at the end of
|
815 | the group (see <xref linkend="sec.txt-groups"/>).</para>
|
816 | </listitem>
|
817 | </varlistentry>
|
818 | </variablelist>
|
819 | </sect3>
|
820 |
|
821 | <sect3>
|
822 | <title>Scoring strategy</title>
|
823 |
|
824 | <para>You can set the scoring strategy for a particular question or
|
825 | choice enclosing it with braces just after the leading characters
|
826 | (<code>*</code>, <code>**</code>, <code>+</code> or <code>-</code>)
|
827 | and the possible options, as in the following example. See <xref
|
828 | linkend="bareme"/> for details about the scoring strategy
|
829 | syntax.</para>
|
830 |
|
831 | <programlisting>*{b=2,m=-1} What is the capital city of France?
|
832 | + Paris
|
833 | - Lille
|
834 | - Marseille
|
835 | - Ouagadougou
|
836 | -{-2} New York
|
837 |
|
838 | **[ordered,horiz,name=positive]{haut=1} From the following numbers, which are positive?
|
839 | - -2
|
840 | + 2
|
841 | + 10
|
842 | </programlisting>
|
843 | </sect3>
|
844 |
|
845 | <sect3>
|
846 | <title>Open questions</title>
|
847 |
|
848 | <para>You can define open question giving options (see <xref
|
849 | linkend="openquestions"/>) enclosed with <code><</code> and
|
850 | <code>></code>, as in the following example:</para>
|
851 |
|
852 | <programlisting>*<lines=4> Describe the moon.
|
853 | -[O]{0} O
|
854 | -[P]{1} P
|
855 | +[V]{2} V</programlisting>
|
856 |
|
857 | <para>You should also consider using the following global
|
858 | options:</para>
|
859 |
|
860 | <variablelist>
|
861 | <varlistentry>
|
862 | <term>L-OpenText:</term>
|
863 |
|
864 | <listitem>
|
865 | <para>Text used to tell the student to write the answer on the
|
866 | separate answer sheet (if relevant).</para>
|
867 | </listitem>
|
868 | </varlistentry>
|
869 |
|
870 | <varlistentry>
|
871 | <term>L-OpenReserved:</term>
|
872 |
|
873 | <listitem>
|
874 | <para>Text to be written along the open questions boxes to tell
|
875 | the student not to consider these boxes.</para>
|
876 | </listitem>
|
877 | </varlistentry>
|
878 | </variablelist>
|
879 | </sect3>
|
880 | </sect2>
|
881 |
|
882 | <sect2>
|
883 | <title>Multi-line</title>
|
884 |
|
885 | <para>You can always continue some text on the next lines (even if some
|
886 | of them are empty), provided that these following lines cannot be
|
887 | considered as the beginning of an option definition, of a question or of
|
888 | a choice. As an example, consider the following question:</para>
|
889 |
|
890 | <programlisting>* How much are 2
|
891 | + 2?
|
892 | - 0
|
893 | + 4
|
894 | - 10</programlisting>
|
895 |
|
896 | <para>This is a correct AMC-TXT question. However, it won't be treated
|
897 | as you'd like to, because here the second line is not considered as
|
898 | being the following of the first one, but form the first choice of the
|
899 | question!</para>
|
900 |
|
901 | <para>A similar problem arises from the following AMC-TXT question,
|
902 | where `<code>Gershwin:</code>' is considered as a general option
|
903 | definition...</para>
|
904 |
|
905 | <programlisting>* You all know Georges
|
906 | Gershwin: he is a composer.
|
907 | When was he born?
|
908 | + in 1898
|
909 | - in 1892
|
910 | - in 1902</programlisting>
|
911 |
|
912 | <para>This is a correct way to write it:</para>
|
913 |
|
914 | <programlisting>* You all know Georges Gershwin:
|
915 | he is a composer.
|
916 | When was he born?
|
917 | + in 1898
|
918 | - in 1892
|
919 | - in 1902</programlisting>
|
920 |
|
921 | <para>Note that line breaks can be inserted leaving an empty line,
|
922 | as:</para>
|
923 |
|
924 | <programlisting>Presentation: Title
|
925 |
|
926 | Description of the exam.
|
927 |
|
928 | ** Difficult question.
|
929 |
|
930 | How many stars in the sky?
|
931 | - one
|
932 | - two
|
933 | - ten millions</programlisting>
|
934 | </sect2>
|
935 |
|
936 | <sect2>
|
937 | <title>Title</title>
|
938 |
|
939 | <para>To get a title, enclose it between <code>[==</code> and
|
940 | <code>==]</code>.</para>
|
941 | </sect2>
|
942 |
|
943 | <sect2 id="parse_embf">
|
944 | <title>Bold, italic</title>
|
945 |
|
946 | <para>To get <emphasis>bold</emphasis> text, enclose it between
|
947 | <code>[*</code> and <code>*]</code>. To get <emphasis>italic</emphasis>
|
948 | text, enclose it between <code>[_</code> and <code>_]</code>.</para>
|
949 |
|
950 | <programlisting>* What is the [*capital city*] of [_France_]?
|
951 | + Paris
|
952 | - Lille
|
953 | - Marseille</programlisting>
|
954 | </sect2>
|
955 |
|
956 | <sect2 id="parse_images">
|
957 | <title>Images</title>
|
958 |
|
959 | <para>You can add images in your document using the following
|
960 | syntax:</para>
|
961 |
|
962 | <programlisting>![height=2cm]images/bird.png!</programlisting>
|
963 |
|
964 | <para>Here, the image <filename>images/bird.png</filename> that is
|
965 | located in the project directory will be appended with 2cm height.
|
966 | Options that can be used inside the square brackets are those from the
|
967 | <command>\includegraphics</command> LaTeX command
|
968 | (<parameter>width=3cm</parameter> or
|
969 | <parameter>keepaspectratio</parameter> for example). To get a centered
|
970 | image that is three quarters of the line width, use</para>
|
971 |
|
972 | <programlisting>!{center}[width=.75\linewidth]images/map.pdf!</programlisting>
|
973 | </sect2>
|
974 |
|
975 | <sect2 id="parse_local_latex">
|
976 | <title>Pieces of LaTeX code</title>
|
977 |
|
978 | <para>You can include some small parts of LaTeX code in your document,
|
979 | including it in double square brackets, as in:</para>
|
980 |
|
981 | <programlisting>Questions with a [[\multiSymbole{}]] may have zero, one or more right answers.</programlisting>
|
982 | </sect2>
|
983 |
|
984 | <sect2 id="sec.txt-groups">
|
985 | <title>Questions groups</title>
|
986 |
|
987 | <para>You can group some question so that they stay together even when
|
988 | shuffling, with the following syntax:</para>
|
989 |
|
990 | <programlisting>*( Questions about Martin Luther King.
|
991 |
|
992 | * When was he born?
|
993 | - in 1901
|
994 | + in 1929
|
995 | - in 1968
|
996 |
|
997 | * When did he die?
|
998 | - in 1945
|
999 | - in 1515
|
1000 | + in 1968
|
1001 | - in 1999
|
1002 |
|
1003 | * Where was he born?
|
1004 | + Atlanta
|
1005 | - Memphis
|
1006 | - New York
|
1007 |
|
1008 | *) End of questions on Martin Luther King. </programlisting>
|
1009 |
|
1010 | <para>You can specify some options on groups, like:</para>
|
1011 |
|
1012 | <programlisting>*([shuffle=false,columns=2] Questions about Martin Luther King.</programlisting>
|
1013 |
|
1014 | <para>The following options are available:</para>
|
1015 |
|
1016 | <variablelist>
|
1017 | <varlistentry>
|
1018 | <term>shuffle=<replaceable>xxx</replaceable></term>
|
1019 |
|
1020 | <listitem>
|
1021 | <para>Give <replaceable>true</replaceable> or
|
1022 | <replaceable>false</replaceable> to tell if you want to shuffle
|
1023 | the questions inside the group. The default value if the global
|
1024 | one, from the <option>ShuffleQuestions</option> option.</para>
|
1025 | </listitem>
|
1026 | </varlistentry>
|
1027 |
|
1028 | <varlistentry>
|
1029 | <term>columns=<replaceable>n</replaceable></term>
|
1030 |
|
1031 | <listitem>
|
1032 | <para>Number of columns for the group's questions.</para>
|
1033 | </listitem>
|
1034 | </varlistentry>
|
1035 |
|
1036 | <varlistentry>
|
1037 | <term>group=<replaceable>nom</replaceable></term>
|
1038 |
|
1039 | <listitem>
|
1040 | <para>Give a name for the group (for internal matter).</para>
|
1041 | </listitem>
|
1042 | </varlistentry>
|
1043 |
|
1044 | <varlistentry>
|
1045 | <term>numquestions=<replaceable>n</replaceable></term>
|
1046 |
|
1047 | <listitem>
|
1048 | <para>With this option, only the first
|
1049 | <replaceable>n</replaceable> questions of the group will be used.
|
1050 | If the questions are shuffled, this allows to get
|
1051 | <replaceable>n</replaceable> questions chosen at random from the
|
1052 | group.</para>
|
1053 |
|
1054 | <note>
|
1055 | <para>Question with option <option>first</option> or
|
1056 | <option>last</option> are not affected (they are always
|
1057 | inserted). Moreover, questions stuck together with option
|
1058 | <option>next</option> count as one single question.</para>
|
1059 | </note>
|
1060 | </listitem>
|
1061 | </varlistentry>
|
1062 | </variablelist>
|
1063 | </sect2>
|
1064 |
|
1065 | <sect2 id="txt-arabic">
|
1066 | <title>Arabic language</title>
|
1067 |
|
1068 | <para>Writing a questionnaire in Arabic is a little special. Use of
|
1069 | course option</para>
|
1070 |
|
1071 | <programlisting>Lang: AR</programlisting>
|
1072 |
|
1073 | <para>You can also consider the following global options:</para>
|
1074 |
|
1075 | <variablelist>
|
1076 | <varlistentry>
|
1077 | <term>ArabicFont:</term>
|
1078 |
|
1079 | <listitem>
|
1080 | <para>This is the font used for Arabic text. Default value is
|
1081 | <emphasis>Rasheeq</emphasis>, a font from the project <ulink
|
1082 | url="http://arabeyes.org/">ArabEyes</ulink> (you can find it on
|
1083 | debian/ubuntu in the ttf-arabeyes package).</para>
|
1084 | </listitem>
|
1085 | </varlistentry>
|
1086 | </variablelist>
|
1087 |
|
1088 | <warning>
|
1089 | <para>For better working and portability, give an explicit value for
|
1090 | <option>L-Name</option> and <option>L-Student</option> options.</para>
|
1091 | </warning>
|
1092 |
|
1093 | <note>
|
1094 | <para>To insert texts with non-Arabic characters, you must turn on
|
1095 | <option>LaTeX</option> option and enclose these texts as a
|
1096 | <command>\textLR</command> LaTeX command argument, as in
|
1097 | <code>\textLR{xelatex command}</code>.</para>
|
1098 | </note>
|
1099 | </sect2>
|
1100 |
|
1101 | <sect2 id="txt-japanese">
|
1102 | <title>Japanese language</title>
|
1103 |
|
1104 | <para>Japanese language questionnaires can be produced with
|
1105 | option</para>
|
1106 |
|
1107 | <programlisting>Lang: JA</programlisting>
|
1108 |
|
1109 | <para>AMC will make some adjustments on the produced LaTeX source to
|
1110 | allow Japanese characters to be included.</para>
|
1111 |
|
1112 | <warning>
|
1113 | <para>In this case, AMC will use <command>pTex</command> to process
|
1114 | the LaTeX file made from your AMC-TXT source file. AMC needs a
|
1115 | <emphasis>recent</emphasis> version of <command>pTex</command> to
|
1116 | work. Versions of pTex from texlive 2009, that can be found on old
|
1117 | versions of some linux distributions, are <emphasis>not</emphasis>
|
1118 | compatible.</para>
|
1119 | </warning>
|
1120 | </sect2>
|
1121 |
|
1122 | <sect2>
|
1123 | <title>Including other files</title>
|
1124 |
|
1125 | <para>You can include other files with:</para>
|
1126 |
|
1127 | <programlisting>IncludeFile: <replaceable>file-to-include.txt</replaceable></programlisting>
|
1128 |
|
1129 | <warning>
|
1130 | <para>Be very careful when including a single file from different
|
1131 | projects! Suppose for example that
|
1132 | <filename>/home/alexis/questions-a.txt</filename> is included from
|
1133 | projects A and B. You already processed project A, and you are
|
1134 | currently working on project B. You update the scoring strategy of a
|
1135 | question in <filename>/home/alexis/questions-a.txt</filename>, and
|
1136 | also add another question. If you need to update the marks in project
|
1137 | A with this new scoring strategy, AMC will also see a new question for
|
1138 | which no data capture has been made, and this will spoil all your
|
1139 | marks in A...</para>
|
1140 | </warning>
|
1141 | </sect2>
|
1142 | </sect1>
|
1143 |
|
1144 | <sect1 id="latex">
|
1145 | <title>LaTeX source file</title>
|
1146 |
|
1147 | <para>This section describes the LaTeX commands that allows you to design
|
1148 | your exam answer sheets from a LaTeX source file. If you chose another
|
1149 | format for your source file, you can skip this section. The MCQ can be
|
1150 | described as a LaTeX file using the <package>automultiplechoice</package>
|
1151 | package. You can check the LaTeX file you are designing at any moment by
|
1152 | compiling it with the <command>latex</command> command, then visualizing
|
1153 | the resulting dvi file.</para>
|
1154 |
|
1155 | <para>We start with a few examples giving quick illustrations of how to
|
1156 | build LaTeX files for MCQs; the corresponding tex file are available as
|
1157 | templates, so that one can create a new MCQ project starting with one of
|
1158 | these templates.</para>
|
1159 |
|
1160 | <sect2>
|
1161 | <title>A simple example</title>
|
1162 |
|
1163 | <para> |
1164 | DESC: A simple example (from the documentation) with one simple question and one multiple question.--><programlisting
|
1165 | id="modeles-simple.tex" linenumbering="numbered">\documentclass[a4paper]{article}
|
1166 |
|
1167 | \usepackage[utf8x]{inputenc} <co id="simple.latin1"
|
1168 | linkends="simple.latin1.exp"/>
|
1169 | \usepackage[T1]{fontenc}
|
1170 |
|
1171 | \usepackage[box,completemulti]{automultiplechoice} <co id="simple.amc"
|
1172 | linkends="simple.amc.exp"/>
|
1173 | \begin{document}
|
1174 |
|
1175 | \onecopy{10}{ <co id="simple.exemplaire" linkends="simple.exemplaire.exp"/>
|
1176 |
|
1177 | %%% beginning of the test sheet header: <co id="simple.entete"
|
1178 | linkends="simple.entete.exp"/>
|
1179 |
|
1180 | \noindent{\bf QCM \hfill TEST}
|
1181 |
|
1182 | \vspace*{.5cm}
|
1183 | \begin{minipage}{.4\linewidth}
|
1184 | \centering\large\bf Test\\ Examination on Jan., 1st, 2008\end{minipage}
|
1185 | \namefield{\fbox{ <co id="simple.champnom" linkends="simple.champnom.exp"/>
|
1186 | \begin{minipage}{.5\linewidth}
|
1187 | Firstname and lastname:
|
1188 |
|
1189 | \vspace*{.5cm}\dotfill
|
1190 | \vspace*{1mm}
|
1191 | \end{minipage}
|
1192 | }}
|
1193 |
|
1194 | \begin{center}\em
|
1195 | Duration : 10 minutes.
|
1196 |
|
1197 | No documents allowed. The use of electronic calculators is forbidden.
|
1198 |
|
1199 |
|
1200 | Questions using the sign \multiSymbole{} may have
|
1201 | zero, one or several correct answers. Other questions have a single correct answer.
|
1202 |
|
1203 | Negative points may be attributed to \emph{very
|
1204 | bad} answers.
|
1205 | \end{center}
|
1206 | \vspace{1ex}
|
1207 |
|
1208 | %%% end of the header
|
1209 |
|
1210 | \begin{question}{prez} <co id="simple.qr" linkends="simple.qr.exp"/>
|
1211 | Among the following persons, which one has ever been a President of the French Republic?
|
1212 | \begin{choices}
|
1213 | \correctchoice{René Coty}
|
1214 | \wrongchoice{Alain Prost}
|
1215 | \wrongchoice{Marcel Proust}
|
1216 | \wrongchoice{Claude Monet}
|
1217 | \end{choices}
|
1218 | \end{question}
|
1219 |
|
1220 | \begin{questionmult}{pref} <co id="simple.qrmult"
|
1221 | linkends="simple.qrmult.exp"/>
|
1222 | Among the following cities, which ones are French prefectures?
|
1223 | \begin{choices}
|
1224 | \correctchoice{Poitiers}
|
1225 | \wrongchoice{Sainte-Menehould}
|
1226 | \correctchoice{Avignon}
|
1227 | \end{choices}
|
1228 | \end{questionmult}
|
1229 |
|
1230 | \clearpage <co id="simple.clear" linkends="simple.clear.exp"/>
|
1231 |
|
1232 | } <co id="simple.fin" linkends="simple.fin.exp"/>
|
1233 |
|
1234 | \end{document}
|
1235 | </programlisting></para>
|
1236 |
|
1237 | <para>A few extra details on this example:</para>
|
1238 |
|
1239 | <para><calloutlist>
|
1240 | <callout arearefs="simple.latin1" id="simple.latin1.exp">
|
1241 | <para>The packages <package>inputenc</package> and
|
1242 | <package>fontenc</package> allow one to use the UTF-8 encoding.
|
1243 | You can of course modify them depending on the encoding you want
|
1244 | to use.</para>
|
1245 | </callout>
|
1246 |
|
1247 | <callout arearefs="simple.amc" id="simple.amc.exp">
|
1248 | <para>The options used here for the <package>automultiplechoice
|
1249 | </package>LaTeX package prevent questions from being split between
|
1250 | two pages (<option>box</option>) and to automatically complete any
|
1251 | multiple choice question by a standard answer allowing the student
|
1252 | to mention that, in her/his opinion, none of the listed answers is
|
1253 | correct (<option>completemulti</option>).</para>
|
1254 | </callout>
|
1255 |
|
1256 | <callout arearefs="simple.exemplaire" id="simple.exemplaire.exp">
|
1257 | <para>The <command>onecopy</command> command produces as many
|
1258 | (distinct) realizations of the MCQ test as desired (here 10).
|
1259 | See <xref linkend="sec.unecopie"/> for an alternative syntax using
|
1260 | an environment.</para>
|
1261 | </callout>
|
1262 |
|
1263 | <callout arearefs="simple.entete" id="simple.entete.exp">
|
1264 | <para>Lines that start here describe the header of the
|
1265 | test-sheet.</para>
|
1266 | </callout>
|
1267 |
|
1268 | <callout arearefs="simple.champnom" id="simple.champnom.exp">
|
1269 | <para>The <command>namefield</command> command specifies where
|
1270 | students write their name.</para>
|
1271 | </callout>
|
1272 |
|
1273 | <callout arearefs="simple.qr" id="simple.qr.exp">
|
1274 | <para>The environments <command>question</command> and
|
1275 | <command>choices</command> allow one to build a multiple choice
|
1276 | question for which there is a single correct answer. A unique
|
1277 | identifier for the question has to be specified (here:
|
1278 | <emphasis>prez</emphasis>).</para>
|
1279 | </callout>
|
1280 |
|
1281 | <callout arearefs="simple.qrmult" id="simple.qrmult.exp">
|
1282 | <para>The environments <command>questionmult</command> and
|
1283 | <command>choices</command> allow one to build a multiple choice
|
1284 | question that may have zero, one or several correct answers.
|
1285 | Student are asked to check all the boxes corresponding to an
|
1286 | answer that she/he thinks is correct, or the last box (added
|
1287 | automatically thanks to the <option>completemulti</option> option
|
1288 | used in the reference to the package in line 6).</para>
|
1289 | </callout>
|
1290 |
|
1291 | <callout arearefs="simple.clear" id="simple.clear.exp">
|
1292 | <para>The <command>clearpage</command> is used to start the next
|
1293 | realization of the MCQ test on a new page.</para>
|
1294 | </callout>
|
1295 |
|
1296 | <callout arearefs="simple.fin" id="simple.fin.exp">
|
1297 | <para>This marks the end of the <command>onecopy</command> command
|
1298 | (started at line 9).</para>
|
1299 | </callout>
|
1300 | </calloutlist></para>
|
1301 | </sect2>
|
1302 |
|
1303 | <sect2>
|
1304 | <title>An example with groups of questions and shuffling</title>
|
1305 |
|
1306 | <para>In this example, we want the order in which questions appear in
|
1307 | the MCQ test to be different from one realization of the test to the
|
1308 | other, but still keeping together questions dealing with the same
|
1309 | subject. To this end, we create two groups of questions, within which
|
1310 | questions are shuffled at random.</para>
|
1311 |
|
1312 | <para> |
1313 | DESC: An example (from the documentation) in which questions are shuffled inside two distinct groups.--><programlisting
|
1314 | id="modeles-groups.tex" linenumbering="numbered">\documentclass[a4paper]{article}
|
1315 |
|
1316 | \usepackage[utf8x]{inputenc}
|
1317 | \usepackage[T1]{fontenc}
|
1318 |
|
1319 | \usepackage[box,completemulti]{automultiplechoice}
|
1320 | \begin{document}
|
1321 |
|
1322 | %%% preparation of the groups
|
1323 |
|
1324 | \setdefaultgroupmode{withoutreplacement}
|
1325 |
|
1326 | \element{geographie}{
|
1327 | \begin{question}{Paris}
|
1328 | In which continent is Paris?
|
1329 | \begin{choices}
|
1330 | \correctchoice{Europe}
|
1331 | \wrongchoice{Africa}
|
1332 | \wrongchoice{Asia}
|
1333 | \wrongchoice{planet Mars}
|
1334 | \end{choices}
|
1335 | \end{question}
|
1336 | }
|
1337 |
|
1338 | \element{geographie}{
|
1339 | \begin{question}{Cameroon}
|
1340 | Which is the capital city of Cameroon?
|
1341 | \begin{choices}
|
1342 | \correctchoice{Yaoundé}
|
1343 | \wrongchoice{Douala}
|
1344 | \wrongchoice{Abou-Dabi}
|
1345 | \end{choices}
|
1346 | \end{question}
|
1347 | }
|
1348 |
|
1349 | \element{histoire}{
|
1350 | \begin{question}{Marignan}
|
1351 | In which year did the battle of Marignan take place?
|
1352 | \begin{choiceshoriz}
|
1353 | \correctchoice{1515}
|
1354 | \wrongchoice{1915}
|
1355 | \wrongchoice{1519}
|
1356 | \end{choiceshoriz}
|
1357 | \end{question}
|
1358 | }
|
1359 |
|
1360 | \element{histoire}{
|
1361 | \begin{questionmult}{Nantes}
|
1362 | What can be said about the \emph{Édit de Nantes}?
|
1363 | \begin{choices}
|
1364 | \correctchoice{It was signed in 1598}
|
1365 | \correctchoice{Il has been revoked by Louis XIV}
|
1366 | \wrongchoice{It was signed by Henri II}
|
1367 | \end{choices}
|
1368 | \end{questionmult}
|
1369 | }
|
1370 |
|
1371 | %%% copies
|
1372 |
|
1373 | \onecopy{10}{
|
1374 |
|
1375 | %%% beginning of the test sheet header:
|
1376 |
|
1377 | \noindent{\bf QCM \hfill TEST}
|
1378 |
|
1379 | \vspace*{.5cm}
|
1380 | \begin{minipage}{.4\linewidth}
|
1381 | \centering\large\bf History and geography\\ Examination on Jan. 1st, 2008
|
1382 | \end{minipage}
|
1383 | \namefield{\fbox{\begin{minipage}{.5\linewidth}
|
1384 | Firstname and lastname:
|
1385 |
|
1386 | \vspace*{.5cm}\dotfill
|
1387 | \vspace*{1mm}
|
1388 | \end{minipage}}}
|
1389 |
|
1390 | %%% end of the header
|
1391 |
|
1392 | \begin{center}
|
1393 | \hrule\vspace{2mm}
|
1394 | \bf\Large Geography
|
1395 | \vspace{1mm}\hrule
|
1396 | \end{center}
|
1397 |
|
1398 | \insertgroup{geographie}
|
1399 |
|
1400 | \begin{center}
|
1401 | \hrule\vspace{2mm}
|
1402 | \bf\Large History
|
1403 | \vspace{2mm}\hrule
|
1404 | \end{center}
|
1405 |
|
1406 | \insertgroup{histoire}
|
1407 |
|
1408 | \clearpage
|
1409 |
|
1410 | }
|
1411 |
|
1412 | \end{document}
|
1413 | </programlisting></para>
|
1414 | </sect2>
|
1415 |
|
1416 | <sect2 id="secensemble">
|
1417 | <title>An example with a separate answer sheet</title>
|
1418 |
|
1419 | <para>In this example, one wants the check-boxes to be put together in a
|
1420 | separate sheet. This makes cheating more difficult, and, more
|
1421 | importantly, it is enough to scan a single sheet per student, which
|
1422 | makes things easier if one has to do a manual scan. In this example, the
|
1423 | number of questions is limited: they fit into a single page, so that
|
1424 | such a layout would not be really useful in this particular case. It is
|
1425 | up to you to modify this example in order to use this layout with a
|
1426 | large number of questions!</para>
|
1427 |
|
1428 | <para> |
1429 | DESC: An example (from the documentation) where all check-boxes are put together on a separate sheet for each student.--><programlisting
|
1430 | id="modeles-separate.tex" linenumbering="numbered">\documentclass[a4paper]{article}
|
1431 |
|
1432 | \usepackage[utf8x]{inputenc}
|
1433 | \usepackage[T1]{fontenc}
|
1434 |
|
1435 | \usepackage[box,completemulti,separateanswersheet]{automultiplechoice} <co
|
1436 | id="ensemble.opt" linkends="ensemble.opt.exp"/>
|
1437 | \begin{document}
|
1438 |
|
1439 | \AMCrandomseed{1237893}
|
1440 |
|
1441 | \def\AMCformQuestion#1{\vspace{\AMCformVSpace}\par {\sc Question #1:} } <co
|
1442 | id="ensemble.fq" linkends="ensemble.fq.exp"/>
|
1443 |
|
1444 | \setdefaultgroupmode{withoutreplacement}
|
1445 |
|
1446 | \element{general}{
|
1447 | \begin{question}{prez}
|
1448 | Among the following persons, which one has ever been a President of the French Republic?
|
1449 | \begin{choices}
|
1450 | \correctchoice{René Coty}
|
1451 | \wrongchoice{Alain Prost}
|
1452 | \wrongchoice{Marcel Proust}
|
1453 | \wrongchoice{Claude Monet}
|
1454 | \end{choices}
|
1455 | \end{question}
|
1456 | }
|
1457 |
|
1458 | \element{general}{
|
1459 | \begin{questionmult}{pref}
|
1460 | Among the following cities, which ones are French prefectures?
|
1461 | \begin{choices}
|
1462 | \correctchoice{Poitiers}
|
1463 | \wrongchoice{Sainte-Menehould}
|
1464 | \correctchoice{Avignon}
|
1465 | \end{choices}
|
1466 | \end{questionmult}
|
1467 | }
|
1468 |
|
1469 | \element{general}{
|
1470 | \begin{question}{nb-ue}
|
1471 | How many different states were members of the European Union in Jan. 2009?
|
1472 | \begin{choiceshoriz}[o]
|
1473 | \wrongchoice{15}
|
1474 | \wrongchoice{21}
|
1475 | \wrongchoice{25}
|
1476 | \correctchoice{27}
|
1477 | \wrongchoice{31}
|
1478 | \end{choiceshoriz}
|
1479 | \end{question}
|
1480 | }
|
1481 |
|
1482 | \onecopy{5}{
|
1483 |
|
1484 | %%% beginning of the test sheet header:
|
1485 |
|
1486 | \noindent{\bf QCM \hfill TEST}
|
1487 |
|
1488 | \vspace*{.5cm}
|
1489 | \begin{minipage}{.4\linewidth}
|
1490 | \centering\large\bf Test\\ Examination on Jan. 1st, 2008
|
1491 | \end{minipage}
|
1492 |
|
1493 | \begin{center}\em
|
1494 | Durée : 10 minutes.
|
1495 |
|
1496 | No documents allowed. The use of electronic calculators is forbidden.
|
1497 |
|
1498 | Questions using the sign \multiSymbole{} may have
|
1499 | zero, one or several correct answers. Other questions have a single correct answer.
|
1500 |
|
1501 | Negative points may be attributed to \emph{very
|
1502 | bad} answers.
|
1503 |
|
1504 | \end{center}
|
1505 | \vspace{1ex}
|
1506 |
|
1507 | %%% end of the header
|
1508 |
|
1509 | \insertgroup{general}
|
1510 |
|
1511 | \AMCcleardoublepage <co id="ensemble.cp" linkends="ensemble.cp.exp"/>
|
1512 |
|
1513 | \AMCformBegin <co id="debut.form" linkends="debut.form.exp"/>
|
1514 |
|
1515 | %%% beginning of the answer sheet header
|
1516 |
|
1517 | {\large\bf Answer sheet:}
|
1518 | \hfill \namefield{\fbox{ <co id="ensemble.nom" linkends="ensemble.nom.exp"/>
|
1519 | \begin{minipage}{.5\linewidth}
|
1520 | Firstname and lastname:
|
1521 |
|
1522 | \vspace*{.5cm}\dotfill
|
1523 | \vspace*{1mm}
|
1524 | \end{minipage}
|
1525 | }}
|
1526 |
|
1527 | \begin{center}
|
1528 | \bf\em Answers must be given exclusively on this sheet:
|
1529 | answers given on the other sheets will be ignored.
|
1530 | \end{center}
|
1531 |
|
1532 | %%% end of the answer sheet header
|
1533 |
|
1534 | \AMCform <co id="ensemble.formulaire" linkends="ensemble.formulaire.exp"/>
|
1535 |
|
1536 | \clearpage
|
1537 |
|
1538 | }
|
1539 |
|
1540 | \end{document}</programlisting>The following remarks should make the above
|
1541 | example clearer :<calloutlist>
|
1542 | <callout arearefs="ensemble.opt" id="ensemble.opt.exp">
|
1543 | <para>The <option>separateanswersheet</option> option is what
|
1544 | allows us to do what we wanted.</para>
|
1545 | </callout>
|
1546 |
|
1547 | <callout arearefs="ensemble.fq" id="ensemble.fq.exp">
|
1548 | <para>One can re-define in this manner the way the questions are
|
1549 | identified on the answer sheet (this line is optional).</para>
|
1550 | </callout>
|
1551 |
|
1552 | <callout arearefs="ensemble.cp" id="ensemble.cp.exp">
|
1553 | <para>This page break is put before the special page where the
|
1554 | check-boxes are put together. If one does recto-verso printing, it
|
1555 | is preferable to use <command>\AMCcleardoublepage</command> so
|
1556 | that this page is printed apart from the others. In the case of
|
1557 | recto printing, one can simply use
|
1558 | <command>\clearpage</command>.</para>
|
1559 | </callout>
|
1560 |
|
1561 | <callout arearefs="debut.form" id="debut.form.exp">
|
1562 | <para>This command marks the beginning of the answer sheet part.
|
1563 | Its use is necessary for the appropriate treatment of the
|
1564 | questions which appear only in that part, e.g. those generated by
|
1565 | <command>AMCcode</command>.</para>
|
1566 | </callout>
|
1567 |
|
1568 | <callout arearefs="ensemble.nom" id="ensemble.nom.exp">
|
1569 | <para>Students should normally write their name on the answer
|
1570 | sheet!</para>
|
1571 | </callout>
|
1572 |
|
1573 | <callout arearefs="ensemble.formulaire" id="ensemble.formulaire.exp">
|
1574 | <para>The LaTeX command <command>AMCform</command> writes all the
|
1575 | check-boxes.</para>
|
1576 | </callout>
|
1577 | </calloutlist></para>
|
1578 |
|
1579 | <warning>
|
1580 | <para>When one uses a separate answer sheet, letters (or digits, if
|
1581 | one uses the option <option>digits</option>, see <xref
|
1582 | linkend="sec.package.options"/>) are written in the check-boxes. To
|
1583 | achieve a correct detection of the checked boxes, one has to ask
|
1584 | students to completely fill the relevant boxes (checking by simply
|
1585 | drawing a cross would not suffice). One also has to tune the gray
|
1586 | level threshold (defining the proportion of black dots in a box above
|
1587 | which that box is considered to be checked) to a value of order
|
1588 | 0.5.</para>
|
1589 | </warning>
|
1590 | </sect2>
|
1591 |
|
1592 | <sect2>
|
1593 | <title>Description of the LaTeX commands</title>
|
1594 |
|
1595 | <sect3 id="sec.package.options">
|
1596 | <title id="sec.package.options.title">Package options</title>
|
1597 |
|
1598 | <para>To use the <package>automultiplechoice</package> package, one
|
1599 | uses the line <programlisting>\usepackage[...]{automultiplechoice}</programlisting>where
|
1600 | the dots are replaced by a list of options separated by commas. Here
|
1601 | are the available options:</para>
|
1602 |
|
1603 | <itemizedlist>
|
1604 | <listitem>
|
1605 | <para><option>lang=<replaceable>XX</replaceable></option>: sets
|
1606 | the subject language to <replaceable>XX</replaceable>. At present,
|
1607 | only DE (German), ES (Spanish), FR (French), IT (Italian), JA
|
1608 | (Japanese) and NL (Dutch) are available. Several strings added by
|
1609 | <package>automultiplechoice</package> will be translated, such as
|
1610 | "None of these answers are correct", see option
|
1611 | <option>completemulti</option>.</para>
|
1612 | </listitem>
|
1613 |
|
1614 | <listitem>
|
1615 | <para><option>box</option>: puts every question in a block, so
|
1616 | that it cannot be split by a page break.</para>
|
1617 |
|
1618 | <note>
|
1619 | <para>You may occasionally cancel this option for each question
|
1620 | with the command <command>\AMCnobloc</command>. <programlisting>
|
1621 | {\AMCnobloc%
|
1622 | \begin{question}{nb-ue}
|
1623 | How many different states were members of the European Union in Jan. 2009?
|
1624 | \begin{choiceshoriz}[o]
|
1625 | \wrongchoice{15}
|
1626 | \wrongchoice{21}
|
1627 | \wrongchoice{25}
|
1628 | \correctchoice{27}
|
1629 | \wrongchoice{31}
|
1630 | \end{choiceshoriz}
|
1631 | \end{question}
|
1632 | }% </programlisting></para>
|
1633 | </note>
|
1634 | </listitem>
|
1635 |
|
1636 | <listitem>
|
1637 | <para><option>completemulti</option>: automatically adds a "None
|
1638 | of these answers are correct" choice at the end of each multiple
|
1639 | question. Thus, for these questions, a distinction can be made
|
1640 | between no answer and the answer consisting in treating none of
|
1641 | the listed answers as correct. This behavior can be forced or
|
1642 | canceled for a particular question using one of the commands
|
1643 | <command>\AMCcompleteMulti</command> or
|
1644 | <command>\AMCnoCompleteMulti</command> inside the corresponding
|
1645 | <command>questionmult</command> environment.</para>
|
1646 | </listitem>
|
1647 |
|
1648 | <listitem>
|
1649 | <para><option>noshuffle</option>: stops the automatic shuffling of
|
1650 | the answers for every question</para>
|
1651 | </listitem>
|
1652 |
|
1653 | <listitem>
|
1654 | <para><option>answers</option>: produces the corrected version of
|
1655 | the MCQ test, not the test sheet itself.</para>
|
1656 | </listitem>
|
1657 |
|
1658 | <listitem>
|
1659 | <para><option>indivanswers</option> : produces the corrected
|
1660 | version of each MCQ test. So useful with randomized
|
1661 | numbers.</para>
|
1662 | </listitem>
|
1663 |
|
1664 | <listitem>
|
1665 | <para><option>separateanswersheet</option>: requires that all
|
1666 | check-boxes be put together at the end of the test sheet (usually,
|
1667 | this option is used when one wants to have only one sheet to scan
|
1668 | per student - see the example in <xref
|
1669 | linkend="secensemble"/>).</para>
|
1670 | </listitem>
|
1671 |
|
1672 | <listitem>
|
1673 | <para><option>digits</option>: if one uses the
|
1674 | <option>separateanswersheet</option> option, the
|
1675 | <option>digits</option> option requires the question to be
|
1676 | identified with digits rather than with letters (which corresponds
|
1677 | to the default setting). With this option, one has to take care
|
1678 | that the number of answers does not exceed 9.</para>
|
1679 | </listitem>
|
1680 |
|
1681 | <listitem>
|
1682 | <para><option>outsidebox</option>: when using
|
1683 | <option>separateanswersheet</option>, this option asks to print
|
1684 | letters (or digits) outside the boxes on the answer sheet.</para>
|
1685 | </listitem>
|
1686 |
|
1687 | <listitem>
|
1688 | <para><option>insidebox</option>: when not using
|
1689 | <option>separateanswersheet</option>, this options asks to print
|
1690 | letters (or digits) inside the boxes to be filled by the
|
1691 | students.</para>
|
1692 | </listitem>
|
1693 |
|
1694 | <listitem>
|
1695 | <para><option>catalog</option>: use this option to make a catalog
|
1696 | of your questions to be used to compose future exams. No need to
|
1697 | use <command>\onecopy</command> with this layout.</para>
|
1698 | </listitem>
|
1699 |
|
1700 | <listitem>
|
1701 | <para><option>postcorrect</option>: use this option if you want to
|
1702 | give the correct answers after scans analysis, from a teacher
|
1703 | completed answer sheet - see <xref linkend="postcorrect"/> for
|
1704 | details.</para>
|
1705 | </listitem>
|
1706 |
|
1707 | <listitem>
|
1708 | <para><option>automarks</option>: in
|
1709 | <option>separateanswersheet</option> mode, use this option if you
|
1710 | want to cancel marks printing on the subject pages. They will only
|
1711 | be print on the answer sheet pages. To change the way pages
|
1712 | numbers are print on the subject pages, redefine the
|
1713 | <command>\AMCsubjectPageTag</command> command:</para>
|
1714 |
|
1715 | <programlisting>\renewcommand\AMCsubjectPageTag{%
|
1716 | \fbox{\texttt{\the\AMCid@etud:\thepage}}%
|
1717 | }</programlisting>
|
1718 |
|
1719 | <warning>
|
1720 | <para>Only use <option>automarks</option> option if no data are
|
1721 | to be collected on the subjects pages, as AMC won't be able to
|
1722 | process these pages.</para>
|
1723 | </warning>
|
1724 | </listitem>
|
1725 | </itemizedlist>
|
1726 | </sect3>
|
1727 |
|
1728 | <sect3 id="sec.unecopie">
|
1729 | <title>Description of a copy</title>
|
1730 |
|
1731 | <para>The LaTeX source code describing the content of the test sheet
|
1732 | has to be included in a call to the command
|
1733 | <command>\onecopy</command>, the first argument being the number of
|
1734 | distinct realizations to be produced, and the second argument being
|
1735 | the code used to generate a realization.</para>
|
1736 |
|
1737 | <programlisting>\onecopy{50}{ ... }</programlisting>
|
1738 |
|
1739 | <para>If you have downloaded the LaTeX package
|
1740 | <package>environ</package> <emphasis>before</emphasis>
|
1741 | <package>automultiplechoice</package>, an alternative syntax is
|
1742 | available, using the <command>examcopy</command> environment, where
|
1743 | the number of realizations is an option (default is 5).</para>
|
1744 |
|
1745 | <programlisting>\begin{examcopy}[50]
|
1746 | ...
|
1747 | \end{examcopy}</programlisting>
|
1748 |
|
1749 | <note>
|
1750 | <para>The <package>environ</package> package is not available in the
|
1751 | TeX Live 2007 distribution, which is still used in Ubuntu
|
1752 | distributions up to version 9.10 (Karmic Koala).</para>
|
1753 | </note>
|
1754 | </sect3>
|
1755 |
|
1756 | <sect3 id="latex.qr">
|
1757 | <title id="latex.qr.title">Questions and answers</title>
|
1758 |
|
1759 | <para>For simple questions (a single correct answer), one uses the
|
1760 | following model: <programlisting linenumbering="unnumbered">\begin{question}{identifier}
|
1761 | Here is the question...
|
1762 | \begin{choices}
|
1763 | \correctchoice{The correct answer}
|
1764 | \wrongchoice{A wrong answer}
|
1765 | \wrongchoice{Another wrong answer}
|
1766 | \end{choices}
|
1767 | \end{question}</programlisting></para>
|
1768 |
|
1769 | <important>
|
1770 | <para>One must use a different identifier for every question. An
|
1771 | identifier can be made of digits, letters, and simple characters
|
1772 | (but do not use e.g. underscores, braces or brackets, that have a
|
1773 | special meaning in LaTeX files). Don't end your question identifier
|
1774 | with a dot followed by digits, as this syntax is reserved to codes
|
1775 | input.</para>
|
1776 | </important>
|
1777 |
|
1778 | <note>
|
1779 | <para>The maximum number of answers for a given question is limited
|
1780 | to 199.</para>
|
1781 | </note>
|
1782 |
|
1783 | <para>To keep the original order of the answers and prevent shuffling
|
1784 | for this specific question, one can use the <option>o</option> option
|
1785 | of the <option>choices</option> environment, replacing line 3 by the
|
1786 | following:<programlisting>\begin{choices}[o]</programlisting></para>
|
1787 |
|
1788 | <para>To put the answers on two columns, one can use the
|
1789 | <package>multicol</package> package: load it in the preamble (just
|
1790 | after the reference to the package
|
1791 | <package>automultiplechoice</package> for instance) with
|
1792 | <programlisting>\usepackage{multicol}</programlisting>and include the
|
1793 | choices environment inside a multicols environment in the following
|
1794 | manner:<programlisting> \begin{multicols}{2}
|
1795 | \begin{choices}
|
1796 | \correctchoice{The correct answer}
|
1797 | \wrongchoice{A wrong answer}
|
1798 | \wrongchoice{Another wrong answer}
|
1799 | \end{choices}
|
1800 | \end{multicols}</programlisting></para>
|
1801 |
|
1802 | <para>For even shorter answers, one can require questions to be
|
1803 | printed following one another, using the <option>choiceshoriz</option>
|
1804 | environment instead of <option>choices</option>.</para>
|
1805 |
|
1806 | <para>Multiple questions (those for which no, one, or several answers
|
1807 | can be correct) use the <option>questionmult</option> environment
|
1808 | instead of <option>question</option>.</para>
|
1809 |
|
1810 | <para>When the answer to the question is not supposed to be taken into
|
1811 | account in the grading, one uses the <code>\QuestionIndicative</code>
|
1812 | command, as in the following example:</para>
|
1813 |
|
1814 | <para>
|
1815 | <programlisting>\begin{question}{difficulty}\QuestionIndicative
|
1816 | \scoring{auto=0,v=-1,e=-2}
|
1817 | Did you find this class easy or difficult? Please answer on a scale from 0 (very difficult) to 5
|
1818 | (very easy).
|
1819 | \begin{choiceshoriz}[o]
|
1820 | \correctchoice{0}
|
1821 | \correctchoice{1}
|
1822 | \correctchoice{2}
|
1823 | \correctchoice{3}
|
1824 | \correctchoice{4}
|
1825 | \correctchoice{5}
|
1826 | \end{choiceshoriz}
|
1827 | \end{question}</programlisting>
|
1828 | </para>
|
1829 | </sect3>
|
1830 |
|
1831 | <sect3 id="latex.explain">
|
1832 | <title id="latex.explain.title">Explanation for the answers of a
|
1833 | question</title>
|
1834 |
|
1835 | <para>To provide explanation for the answers of a question, one can
|
1836 | use the <command>\explain</command> command. The explanations are
|
1837 | optional and are only displayed in the Solution and Catalog
|
1838 | file.</para>
|
1839 |
|
1840 | <para>Here is a simple example:</para>
|
1841 |
|
1842 | <para>
|
1843 | <programlisting>
|
1844 | \begin{question}{explanation}
|
1845 | Which has the highest elevation among the following?
|
1846 | \begin{choices}
|
1847 | \correctchoice{Sagarmatha}
|
1848 | \wrongchoice{K2}
|
1849 | \wrongchoice{Mont Blanc}
|
1850 | \wrongchoice{Aconcagua}
|
1851 | \end{choices}
|
1852 | \explain{Sagarmatha which literally means `Head of sky' is the native name of
|
1853 | Mount Everest, the highest mountain in the world.}
|
1854 | \end{question}</programlisting>
|
1855 | </para>
|
1856 |
|
1857 | <note>
|
1858 | <para>The <command>explain</command> command can be used inside
|
1859 | <option>question</option> like environments only. This includes
|
1860 | <option>question</option>, <option>questionmult</option> and
|
1861 | <option>questionmultx</option> environments.</para>
|
1862 | </note>
|
1863 |
|
1864 | <para>By default this command prints <emphasis>Explanation:
|
1865 | </emphasis> before each explanations. This behavior can be changed
|
1866 | using the <command>\AMCtext</command> command (see section <xref
|
1867 | linkend="AMCtext"/>).</para>
|
1868 |
|
1869 | <para>If you want to change this default behavior only for some
|
1870 | questions and not for all just use the <command>\AMCtext</command>
|
1871 | command before the <command>\explain</command> command as in the
|
1872 | following example:</para>
|
1873 |
|
1874 | <para>
|
1875 | <programlisting>
|
1876 | \begin{question}{elevation}
|
1877 | Which has the highest elevation among the following?
|
1878 | \begin{choices}
|
1879 | \correctchoice{Sagarmatha}
|
1880 | \wrongchoice{K2}
|
1881 | \wrongchoice{Mont Blanc}
|
1882 | \wrongchoice{Aconcagua}
|
1883 | \end{choices}
|
1884 | \explain{Sagarmatha which literally means `Head of sky' is the native name of
|
1885 | Mount Everest, the highest mountain in the world.}
|
1886 | \end{question}
|
1887 |
|
1888 | \begin{question}{odd}
|
1889 | Pick the odd one out.
|
1890 | \begin{choices}
|
1891 | \correctchoice{Kilimanjaro}
|
1892 | \wrongchoice{Himalayas}
|
1893 | \wrongchoice{Alps}
|
1894 | \wrongchoice{Andes}
|
1895 | \end{choices}
|
1896 | \AMCtext{explain}{\textit{\textbf{Reason: }}}
|
1897 | \explain{Kilimanjaro is a mountain while the rest are mountain ranges.}
|
1898 | \end{question}
|
1899 |
|
1900 | \begin{questionmultx}{himalaya}
|
1901 | Among the following which is in the Himalayas?
|
1902 | \begin{choices}
|
1903 | \correctchoice{Mount Everest}
|
1904 | \correctchoice{K2}
|
1905 | \wrongchoice{Mont Blanc}
|
1906 | \wrongchoice{Aconcagua}
|
1907 | \end{choices}
|
1908 | \explain{Aconcagua is located in the Andes mountain range while Mont Blanc
|
1909 | is located in the Alps.}
|
1910 | \end{questionmultx}</programlisting>
|
1911 | </para>
|
1912 |
|
1913 | <para>This will now print <emphasis>Explanation: </emphasis> before
|
1914 | the explanations of first and third question but <emphasis>Reason:
|
1915 | </emphasis> before the explanation of second question.</para>
|
1916 | </sect3>
|
1917 |
|
1918 | <sect3>
|
1919 | <title>Putting answers on multiple columns</title>
|
1920 |
|
1921 | <para>To put answers on several columns (and thus save space), one can
|
1922 | embed the <option>choices</option> environment in a
|
1923 | <option>multicols</option> environment, using the LaTeX package
|
1924 | <package>multicol</package>.</para>
|
1925 |
|
1926 | <para>If, moreover, the answers do not fit into a single line, an
|
1927 | answer might be split over several columns, which might be a little
|
1928 | puzzling for the reader. The <command>\AMCBoxedAnswers</command>
|
1929 | command was defined in order to prevent this phenomenon, by embedding
|
1930 | each answer into a box. Here is an example of use:</para>
|
1931 |
|
1932 | <para>
|
1933 | <programlisting>\begin{question}{two columns}
|
1934 | What is a bird ?
|
1935 | \begin{multicols}{2}\AMCBoxedAnswers
|
1936 | \begin{choices}
|
1937 | \correctchoice{It is an animal with wings, laying eggs. There are birds with all sorts of colors.}
|
1938 | \wrongchoice{It is a large piece of furniture, made of wood, and used most of the time to store
|
1939 | household linen}
|
1940 | \wrongchoice{It is a steam machine devised to seal cans at high speed.}
|
1941 | \end{choices}
|
1942 | \end{multicols}
|
1943 | \end{question}</programlisting>
|
1944 | </para>
|
1945 |
|
1946 | <para>Let us note that it is also possible to parameterize the
|
1947 | vertical space between two answer blocks, thanks to the dimension
|
1948 | <parameter>AMCinterBrep</parameter>:</para>
|
1949 |
|
1950 | <para>
|
1951 | <programlisting>\AMCinterBrep=.5ex</programlisting>
|
1952 | </para>
|
1953 | </sect3>
|
1954 |
|
1955 | <sect3>
|
1956 | <title>Space between answers</title>
|
1957 |
|
1958 | <para>Let us note that it is also possible to parameterize the
|
1959 | vertical space between many answer blocks, thanks to the dimension
|
1960 | <parameter>AMCinterIrep</parameter>:</para>
|
1961 |
|
1962 | <para>
|
1963 | <programlisting>\AMCinterIrep=.75ex</programlisting>
|
1964 | </para>
|
1965 | </sect3>
|
1966 |
|
1967 | <sect3 id="marks.display.area">
|
1968 | <title id="marks.display.area.title">Describe the marks' display
|
1969 | area</title>
|
1970 |
|
1971 | <para>You may add an additional option of marking area (see <xref
|
1972 | endterm="marks.position.title" linkend="marks.position"/>).</para>
|
1973 |
|
1974 | <sect4>
|
1975 | <title>Without the <option>separateanswersheet</option>
|
1976 | option</title>
|
1977 |
|
1978 | <para>Type this command after <command>\begin{document}</command>
|
1979 | and before the command <command>\onecopy</command> :</para>
|
1980 |
|
1981 | <programlisting>\AMCsetScoreZone{width=1.5em,height=1.5ex,depth=.5ex,position=margins}</programlisting>
|
1982 |
|
1983 | <para>The variables <parameter>width</parameter>,
|
1984 | <parameter>height</parameter>, <parameter>depth</parameter> describe
|
1985 | the dimensions of the box marking and its location on the
|
1986 | sheet.</para>
|
1987 |
|
1988 | <para>The <parameter>position</parameter> value may be equal to :
|
1989 | none, question, margin, margins.</para>
|
1990 | </sect4>
|
1991 |
|
1992 | <sect4>
|
1993 | <title>With the <option>separateanswersheet</option>option</title>
|
1994 |
|
1995 | <para>Type this command after <command>\begin{document}</command>
|
1996 | and before the command <command>\onecopy</command> :</para>
|
1997 |
|
1998 | <programlisting>\AMCsetScoreZoneAnswerSheet{width=1.5em,height=1.5ex,depth=.5ex,position=question}</programlisting>
|
1999 | </sect4>
|
2000 |
|
2001 | <para>The variables <parameter>width</parameter>,
|
2002 | <parameter>height</parameter>, <parameter>depth</parameter> describe
|
2003 | the dimensions of the box marking and its location on the
|
2004 | sheet.</para>
|
2005 |
|
2006 | <para>The <parameter>position</parameter> value may be equal to :
|
2007 | none, question, margin, margins.</para>
|
2008 |
|
2009 | <warning>
|
2010 | <para>Don't type one of those commands <emphasis> after</emphasis>
|
2011 | printing.</para>
|
2012 | </warning>
|
2013 | </sect3>
|
2014 |
|
2015 | <sect3>
|
2016 | <title>Groups of questions</title>
|
2017 |
|
2018 | <para>Putting questions into groups allows one to shuffle questions
|
2019 | inside these groups, in a different way for each realization of the
|
2020 | test. Every group of questions must have a name formed solely with
|
2021 | plain letters.</para>
|
2022 |
|
2023 | <para>One can put questions in a group one by one, as in the following
|
2024 | example.</para>
|
2025 |
|
2026 | <para>
|
2027 | <programlisting>\element{mygroup}{
|
2028 | \begin{question}{easy}
|
2029 | So, how much is one plus one?
|
2030 | \begin{choiceshoriz}
|
2031 | \correctchoice{two}
|
2032 | \wrongchoice{zero}
|
2033 | \wrongchoice{three}
|
2034 | \end{choiceshoriz}
|
2035 | \end{question}
|
2036 | }</programlisting>
|
2037 | </para>
|
2038 |
|
2039 | <important>
|
2040 | <para>The formation of the group, using the
|
2041 | <command>element</command> commands, must be made only once: thus,
|
2042 | these commands have to be used <emphasis>before</emphasis> the
|
2043 | <command>onecopy</command> command, which repeats some actions for
|
2044 | every realization.</para>
|
2045 | </important>
|
2046 |
|
2047 | <para>Finally, the group content can be output to the test sheet using
|
2048 | command <command>insertgroup</command>, as in<programlisting>\insertgroup{mygroup}</programlisting></para>
|
2049 |
|
2050 | <para>Group insertion can be controlled by the group mode, that can be
|
2051 | set by the <command>setgroupmode</command> command (called after group
|
2052 | creation, once for all, before <command>onecopy</command>):</para>
|
2053 |
|
2054 | <programlisting>\setgroupmode{mygroup}{XXX}</programlisting>
|
2055 |
|
2056 | <para>where <code>XXX</code> can be one of the following:</para>
|
2057 |
|
2058 | <variablelist>
|
2059 | <varlistentry>
|
2060 | <term>fixed</term>
|
2061 |
|
2062 | <listitem>
|
2063 | <para>with this mode, group's elements are taken from the
|
2064 | beginnig at each insertion.</para>
|
2065 | </listitem>
|
2066 | </varlistentry>
|
2067 |
|
2068 | <varlistentry>
|
2069 | <term>cyclic</term>
|
2070 |
|
2071 | <listitem>
|
2072 | <para>the elements will be taken from the group following the
|
2073 | last call group’s use, recycling if necessary.</para>
|
2074 | </listitem>
|
2075 | </varlistentry>
|
2076 |
|
2077 | <varlistentry>
|
2078 | <term>withreplacement</term>
|
2079 |
|
2080 | <listitem>
|
2081 | <para>the same as <code>fixed</code>, but the group is shuffled
|
2082 | before each use.</para>
|
2083 | </listitem>
|
2084 | </varlistentry>
|
2085 |
|
2086 | <varlistentry>
|
2087 | <term>withoutreplacement</term>
|
2088 |
|
2089 | <listitem>
|
2090 | <para>like <code>cyclic</code>, adding some shuffling when
|
2091 | comming back to the beginning of the group.</para>
|
2092 | </listitem>
|
2093 | </varlistentry>
|
2094 | </variablelist>
|
2095 |
|
2096 | <para>Note that a default group mode can be set for all groups that
|
2097 | will be created next (a group is created at the first
|
2098 | <command>element</command> call), using the command</para>
|
2099 |
|
2100 | <programlisting>\setdefaultgroupmode{XXX}</programlisting>
|
2101 |
|
2102 | <para>Without any mode definition, the <code>fixed</code> mode is
|
2103 | used.</para>
|
2104 |
|
2105 | <para>Once a group is formed, it is possible to shuffle questions
|
2106 | inside this group using the <command>shufflegroup</command> command.
|
2107 | For instance<programlisting>\shufflegroup{mygroup}</programlisting></para>
|
2108 |
|
2109 | <para>However, the command <command>shufflegroup</command> can always
|
2110 | be replaced by a proper use of group modes.</para>
|
2111 |
|
2112 | <warning>
|
2113 | <para>
|
2114 | Delete the command <command>\shufflegroup</command> if you rerun created tests with a AMC version lower to 1.2.2014.111201 and if you change the default mode (<code>fixed</code>).
|
2115 | </para>
|
2116 | </warning>
|
2117 |
|
2118 | <para>Groups of questions can be manipulated more precisely thanks to
|
2119 | the following commands:</para>
|
2120 |
|
2121 | <itemizedlist>
|
2122 | <listitem>
|
2123 | <para><code>\insertgroup[n]{mygroup}</code> (using optional
|
2124 | parameter <replaceable>n</replaceable>) only inserts the
|
2125 | <replaceable>n</replaceable> first elements from the group.</para>
|
2126 | </listitem>
|
2127 |
|
2128 | <listitem>
|
2129 | <para><code>\cleargroup{mygroup}</code> clears all group
|
2130 | content.</para>
|
2131 | </listitem>
|
2132 |
|
2133 | <listitem>
|
2134 | <para><code>\copygroup{groupA}{groupB}</code> copies all the
|
2135 | elements from group <replaceable>groupA</replaceable> to the end
|
2136 | of group <replaceable>groupB</replaceable>. With an optional
|
2137 | argument <replaceable>n</replaceable>, only the n first elements
|
2138 | will be copied: <code>\copygroup[n]{groupA}{groupB}</code>.</para>
|
2139 | </listitem>
|
2140 | </itemizedlist>
|
2141 |
|
2142 | <para>With these commands, you can for example make a exam taking 4
|
2143 | questions from group GA at random, 5 questions from group GB at
|
2144 | random, and all the questions from group GO, shuffling all these
|
2145 | questions, with the following code (to be used inside the argument of
|
2146 | the command <command>onecopy</command>, and supposing that the group
|
2147 | mode of groups <code>GA</code>, <code>GB</code> and <code>all</code>
|
2148 | is <code>withoutreplacement</code> or
|
2149 | <code>withreplacement</code>):</para>
|
2150 |
|
2151 | <programlisting>\cleargroup{all}
|
2152 | \copygroup[4]{GA}{all}
|
2153 | \copygroup[5]{GB}{all}
|
2154 | \copygroup{GO}{all}
|
2155 | \insertgroup{all}</programlisting>
|
2156 | </sect3>
|
2157 |
|
2158 | <sect3>
|
2159 | <title>Page size, margins</title>
|
2160 |
|
2161 | <para>The <command>automultiplechoice</command> LaTeX package uses
|
2162 | <command>geometry</command> to set the margins and page layout. You
|
2163 | can overwrite its settings using the <command>\geometry</command>
|
2164 | command just before the <code>\begin{document}</code> - see the
|
2165 | geometry package documentation for details. The values initially set
|
2166 | by AMC are:</para>
|
2167 |
|
2168 | <programlisting>\geometry{hmargin=3cm,headheight=2cm,headsep=.3cm,footskip=1cm,top=3.5cm,bottom=2.5cm}</programlisting>
|
2169 |
|
2170 | <para>When reducing the margins to gain some space, keep in mind
|
2171 | that:</para>
|
2172 |
|
2173 | <itemizedlist>
|
2174 | <listitem>
|
2175 | <para>The four corner marks must be printed entirely (they could
|
2176 | disappear due to the printer margins).</para>
|
2177 | </listitem>
|
2178 |
|
2179 | <listitem>
|
2180 | <para>The four corner marks must be entirely visible on the scans
|
2181 | (if they are too close from the border and the paper moved a
|
2182 | little or turned a little during scanning, this could not be the
|
2183 | case).</para>
|
2184 | </listitem>
|
2185 | </itemizedlist>
|
2186 |
|
2187 | <para>It is also possible to set the paper size as an option to add to
|
2188 | the list given as argument to the <command>\geometry</command>
|
2189 | command. Available values include <code>a4paper</code>,
|
2190 | <code>a5paper</code>, <code>a6paper</code>, <code>b4paper</code>,
|
2191 | <code>b5paper</code>, <code>ansibpaper</code>,
|
2192 | <code>ansicpaper</code>, <code>ansidpaper</code>,
|
2193 | <code>letterpaper</code>, <code>executivepaper</code>,
|
2194 | <code>legalpaper</code>.</para>
|
2195 |
|
2196 | <para>For small paper sizes, it may also be interesting to change the
|
2197 | position of the human readable sheet IDs (like <code>+1/1/53+</code>)
|
2198 | in the header. This can be done using the
|
2199 | <command>\AMCidsPosition</command> command, in the form</para>
|
2200 |
|
2201 | <programlisting>\AMCidsPosition{pos=<replaceable>p</replaceable>,width=<replaceable>w</replaceable>,height=<replaceable>h</replaceable>}</programlisting>
|
2202 |
|
2203 | <para>where <replaceable>p</replaceable> can be <code>none</code>,
|
2204 | <code>top</code> or <code>side</code>, and the dimensions
|
2205 | <replaceable>w</replaceable> and <replaceable>h</replaceable> refers
|
2206 | to the (invisible) box containing the ID. The default values
|
2207 | are</para>
|
2208 |
|
2209 | <programlisting>\AMCidsPosition{pos=side,width=4cm,height=3ex}</programlisting>
|
2210 |
|
2211 | <para>Let us end with an example for A5 paper sheets:</para>
|
2212 |
|
2213 | <programlisting>\geometry{a5paper,hmargin=1.6cm,top=2.5cm}
|
2214 | \AMCidsPosition{pos=top}</programlisting>
|
2215 | </sect3>
|
2216 |
|
2217 | <sect3>
|
2218 | <title>Check-box presentation style</title>
|
2219 |
|
2220 | <para>The <command>\AMCboxDimensions</command> command allows one to
|
2221 | modify one or several dimensions of the check-boxes.</para>
|
2222 |
|
2223 | <itemizedlist>
|
2224 | <listitem>
|
2225 | <para><option>shape</option> is the shape of the boxes. Use the
|
2226 | value <replaceable>square</replaceable> to get squares or
|
2227 | rectangles, and <replaceable>oval</replaceable> to get circles or
|
2228 | ovals. Note that the LaTeX package tikz must be loaded for
|
2229 | <replaceable>oval</replaceable> to work.</para>
|
2230 | </listitem>
|
2231 |
|
2232 | <listitem>
|
2233 | <para><option>width</option> is the width of the box;</para>
|
2234 | </listitem>
|
2235 |
|
2236 | <listitem>
|
2237 | <para><option>height</option> is the height of the box;</para>
|
2238 | </listitem>
|
2239 |
|
2240 | <listitem>
|
2241 | <para><option>size</option> is the size (<option>width</option>
|
2242 | and <option>height</option>) of the box;</para>
|
2243 | </listitem>
|
2244 |
|
2245 | <listitem>
|
2246 | <para><option>rule</option> is the thickness of the boundary of
|
2247 | the box;</para>
|
2248 | </listitem>
|
2249 |
|
2250 | <listitem>
|
2251 | <para><option>down</option> controls by how much boxes are pushed
|
2252 | down.</para>
|
2253 | </listitem>
|
2254 | </itemizedlist>
|
2255 |
|
2256 | <para>To obtain smaller boxes, one can e.g. use the command</para>
|
2257 |
|
2258 | <programlisting>\AMCboxDimensions{size=1.7ex,down=.2ex}</programlisting>
|
2259 |
|
2260 | <para>When using <option>separateanswersheet</option> package option,
|
2261 | you can also customize the boxes labeling. The default behavior is to
|
2262 | use uppercase alphabetical labeling, or arabic numbering if the
|
2263 | <option>digits</option> package option is used. To use your own
|
2264 | labeling, one has to redefine the <command>\AMCchoiceLabel</command>
|
2265 | command which takes as argument the name of the counter used to number
|
2266 | the choices. For example, the following code will ask for lowercase
|
2267 | letters to label the boxes:</para>
|
2268 |
|
2269 | <programlisting>\def\AMCchoiceLabel#1{\alph{#1}}</programlisting>
|
2270 |
|
2271 | <para>As an other example, when using <package>arabxetex</package>
|
2272 | package, the following code may be useful:</para>
|
2273 |
|
2274 | <programlisting>\def\AMCchoiceLabel#1{\textLR{\Alph{#1}}}</programlisting>
|
2275 |
|
2276 | <para>One can also change the style of the boxes labels redefining the
|
2277 | <command>\AMCchoiceLabelFormat</command> command, as in the following
|
2278 | example (here we need bold labels):</para>
|
2279 |
|
2280 | <programlisting>\def\AMCchoiceLabelFormat#1{\textbf{#1}}</programlisting>
|
2281 |
|
2282 | <para>Also note that the color of the boxes to be ticked by the
|
2283 | students can be set using</para>
|
2284 |
|
2285 | <programlisting>\AMCboxColor{red}</programlisting>
|
2286 |
|
2287 | <para>replacing <code>red</code> by the desired color (that must be
|
2288 | recognized by the <command>xcolor</command> package). For example, you
|
2289 | can get a light green with</para>
|
2290 |
|
2291 | <programlisting>\definecolor{amcboxcolor}{rgb}{0.67,0.88,0.5}
|
2292 | \AMCboxColor{amcboxcolor}</programlisting>
|
2293 | </sect3>
|
2294 |
|
2295 | <sect3>
|
2296 | <title>Questions presentation style</title>
|
2297 |
|
2298 | <para>The way each question is presented can be modified by redefining
|
2299 | the LaTeX command <command>AMCbeginQuestion</command>, whose default
|
2300 | definition is the following:</para>
|
2301 |
|
2302 | <para>
|
2303 | <programlisting>\def\AMCbeginQuestion#1#2{\par\noindent{\bf Question #1} #2\hspace*{1em}}</programlisting>
|
2304 | </para>
|
2305 |
|
2306 | <para>The first parameter transmitted to this command is the number of
|
2307 | the question to be displayed. The second parameter contains
|
2308 | <code>\multiSymbole</code> in the case of a multiple question, and is
|
2309 | void in all other cases. The <code>\multiSymbole</code> command too
|
2310 | can be modified: its goal is to distinguish multiple questions from
|
2311 | the others. By default, it displays a club.</para>
|
2312 |
|
2313 | <para>
|
2314 | <programlisting>\def\multiSymbole{$\clubsuit$}</programlisting>
|
2315 | </para>
|
2316 |
|
2317 | <para>Finally, one can modify the number of the next question with the
|
2318 | <code>\AMCnumero command</code>. At the beginning of each realization
|
2319 | of the test, a call to</para>
|
2320 |
|
2321 | <para>
|
2322 | <programlisting>\AMCnumero{1}</programlisting>
|
2323 | </para>
|
2324 |
|
2325 | <para>is performed, but this command can be used at any place.</para>
|
2326 |
|
2327 | <note>
|
2328 | <para>Each question must have a number, even it is not displayed, to
|
2329 | make sure of package cleveref's compatibility. Type
|
2330 | <command>\AMCquestionNumberfalse</command> command just after
|
2331 | <command>\AMCbeginQuestion</command> to have following numbers or
|
2332 | use the above command.</para>
|
2333 | </note>
|
2334 |
|
2335 | <para>The display of answers can be modified in the same fashion, if
|
2336 | one uses the <option>choicescustom</option> environment instead of
|
2337 | <option>choices</option> or <option>choiceshoriz</option>, redefining
|
2338 | the three following LaTeX macros:</para>
|
2339 |
|
2340 | <programlisting>\def\AMCbeginAnswer{}
|
2341 | \def\AMCendAnswer{}
|
2342 | \def\AMCanswer#1#2{#1 #2}
|
2343 | </programlisting>
|
2344 |
|
2345 | <para>One can also change spacing redefining the following dimensions
|
2346 | (here are the default values):</para>
|
2347 |
|
2348 | <programlisting>\AMCinterIrep=0pt
|
2349 | \AMCinterBrep=.5ex
|
2350 | \AMCinterIquest=0pt
|
2351 | \AMCinterBquest=3ex</programlisting>
|
2352 |
|
2353 | <para>These dimensions are the vertical space between questions
|
2354 | (<code>quest</code>) or answers (<code>rep</code>), in boxed mode
|
2355 | (<code>B</code>, with <command>\AMCBoxedAnswers</command> or
|
2356 | <option>box</option> package option) or standard mode
|
2357 | (<code>I</code>).</para>
|
2358 | </sect3>
|
2359 |
|
2360 | <sect3>
|
2361 | <title>Separate answer sheet presentation style</title>
|
2362 |
|
2363 | <para>It is also possible to modify the layout of the separate answer
|
2364 | sheet produced with the <option>separateanswersheet</option> option
|
2365 | (see section <xref linkend="secensemble"/>).</para>
|
2366 |
|
2367 | <orderedlist>
|
2368 | <listitem>
|
2369 | <para>If one only wants to modify the horizontal spacing between
|
2370 | two check-boxes or the vertical spacing between two questions, one
|
2371 | just has to redefine the following dimensions:</para>
|
2372 |
|
2373 | <programlisting>\AMCformHSpace=.3em
|
2374 | \AMCformVSpace=1.2ex
|
2375 | </programlisting>
|
2376 | </listitem>
|
2377 |
|
2378 | <listitem>
|
2379 | <para>For a deeper modification of the display settings, one can
|
2380 | also redefine the commands that are used at the beginning of each
|
2381 | question and for each answer (here follows the default
|
2382 | definitions):</para>
|
2383 |
|
2384 | <programlisting>\def\AMCformQuestion#1{\vspace{\AMCformVSpace}\par{\bf Question #1:}}
|
2385 | \def\AMCformAnswer#1{\hspace{\AMCformHSpace} #1}
|
2386 | </programlisting>
|
2387 | </listitem>
|
2388 | </orderedlist>
|
2389 |
|
2390 | <para>These definitions have to be inserted just after
|
2391 | <code>\begin{document}</code> in the LaTeX file.</para>
|
2392 | </sect3>
|
2393 |
|
2394 | <sect3 id="latex.codes">
|
2395 | <title>Code acquisition</title>
|
2396 |
|
2397 | <para>Code acquisition can be easily performed thanks to the LaTeX
|
2398 | command <command>AMCcode</command>, for instance to allow each student
|
2399 | to enter her/his student number by herself/himself on the answer
|
2400 | sheet. The two arguments of this command are a code/question
|
2401 | identifier, and the number of digits to be used by the code. One can
|
2402 | e.g. use the following header</para>
|
2403 |
|
2404 | <para>
|
2405 | <programlisting>{\setlength{\parindent}{0pt}\hspace*{\fill}\AMCcode{etu}{8}\hspace*{\fill}
|
2406 | \begin{minipage}[b]{6.5cm}
|
2407 | $\longleftarrow{}$\hspace{0pt plus 1cm} please encode your student number below,
|
2408 | and write your first and last names below.
|
2409 |
|
2410 | \vspace{3ex}
|
2411 |
|
2412 | \hfill\namefield{\fbox{
|
2413 | \begin{minipage}{.9\linewidth}
|
2414 | Firstname and lastname:
|
2415 |
|
2416 | \vspace*{.5cm}\dotfill
|
2417 |
|
2418 | \vspace*{.5cm}\dotfill
|
2419 | \vspace*{1mm}
|
2420 | \end{minipage}
|
2421 | }}\hfill\vspace{5ex}\end{minipage}\hspace*{\fill}
|
2422 |
|
2423 | }
|
2424 | </programlisting>
|
2425 | </para>
|
2426 |
|
2427 | <para>If the <option>separateanswersheet</option> option is used, the
|
2428 | <command>AMCcode</command> command has to be placed after the
|
2429 | <command>AMCformBegin</command> command.</para>
|
2430 |
|
2431 | <para>Note that the codes rendering from <command>\AMCcode</command>
|
2432 | can be adapted modifying the lengths
|
2433 | <command>\AMCcodeHspace</command>, <command>\AMCcodeVspace</command>
|
2434 | and <command>\AMCcodeBoxSep</command>, representing the horizontal and
|
2435 | vertical amount of space between boxes, and the amount of space
|
2436 | between boxes and labels (when the labels are written outside the
|
2437 | boxes). Default values are set with the following commands:</para>
|
2438 |
|
2439 | <programlisting>\AMCcodeHspace=.5em
|
2440 | \AMCcodeVspace=.5em
|
2441 | \AMCcodeBoxSep=.1em</programlisting>
|
2442 |
|
2443 | <para>Note that an horizontal version <command>AMCcodeH</command> is
|
2444 | also available, specially for the case of small number of
|
2445 | digits.</para>
|
2446 | </sect3>
|
2447 |
|
2448 | <sect3 id="openquestions">
|
2449 | <title>Open questions</title>
|
2450 |
|
2451 | <para>One can sometimes require some open questions to be added to the
|
2452 | subject. One way to do so is to reserve boxes use to the teacher for
|
2453 | these questions. After the exam, the teacher reads the completed
|
2454 | answer sheets and tick the boxes according to the answers written by
|
2455 | the students for open questions. He will then scan the sheets and let
|
2456 | AMC correct the multiple choice questions and integrate the open
|
2457 | questions scores into the marks.<programlisting>\begin{question}{open}
|
2458 | Define \emph{inflation}.
|
2459 | \AMCOpen{lines=5}{\wrongchoice[W]{w}\scoring{0}\wrongchoice[P]{p}\scoring{1}\correctchoice[C]{c}\scoring{2}}
|
2460 | \end{question}
|
2461 | </programlisting></para>
|
2462 |
|
2463 | <para>In this example, the teacher will get three boxes. If the first
|
2464 | (labeled W for wrong) is ticked, the student will get 0 points. If the
|
2465 | second (labeled P for partial) is ticked, the student will get 1
|
2466 | point. If the third (labeled C for correct) is ticked, the student
|
2467 | will get 2 points.</para>
|
2468 |
|
2469 | <para>The first argument to <command>\AMCOpen</command> is a comma
|
2470 | separated list of options. The available options are:</para>
|
2471 |
|
2472 | <warning>
|
2473 | <para>At least one option is requiered to correctly compile the
|
2474 | file.</para>
|
2475 | </warning>
|
2476 |
|
2477 | <variablelist>
|
2478 | <varlistentry>
|
2479 | <term>lineup=<replaceable>bool</replaceable></term>
|
2480 |
|
2481 | <listitem>
|
2482 | <para>if <code>true</code>, the answering area and the scoring
|
2483 | boxes will be on the same line. If <code>false</code> (this is
|
2484 | default), the answering area is enclosed in a frame and placed
|
2485 | below the scoring boxes.</para>
|
2486 | </listitem>
|
2487 | </varlistentry>
|
2488 |
|
2489 | <varlistentry>
|
2490 | <term>lines=<replaceable>num</replaceable></term>
|
2491 |
|
2492 | <listitem>
|
2493 | <para>sets the number of lines for the answer. Default value is
|
2494 | <code>1</code>.</para>
|
2495 | </listitem>
|
2496 | </varlistentry>
|
2497 |
|
2498 | <varlistentry>
|
2499 | <term>lineheight=<replaceable>dim</replaceable></term>
|
2500 |
|
2501 | <listitem>
|
2502 | <para>sets the height of each line. Default value is
|
2503 | <code>1cm</code>.</para>
|
2504 | </listitem>
|
2505 | </varlistentry>
|
2506 |
|
2507 | <varlistentry>
|
2508 | <term>dots=<replaceable>bool</replaceable></term>
|
2509 |
|
2510 | <listitem>
|
2511 | <para>if <code>true</code> (Default), each line will be realized
|
2512 | by a line of dots.</para>
|
2513 | </listitem>
|
2514 | </varlistentry>
|
2515 |
|
2516 | <varlistentry>
|
2517 | <term>contentcommand=<replaceable>cmdname</replaceable></term>
|
2518 |
|
2519 | <listitem>
|
2520 | <para>Use this option if you want to customize the content of
|
2521 | the answer area. You will have to define a
|
2522 | <command>\<replaceable>cmdname</replaceable></command> command
|
2523 | that has to produce the content.</para>
|
2524 | </listitem>
|
2525 | </varlistentry>
|
2526 |
|
2527 | <varlistentry>
|
2528 | <term>hspace=<replaceable>dim</replaceable></term>
|
2529 |
|
2530 | <listitem>
|
2531 | <para>sets the space between boxes in the marking area.</para>
|
2532 | </listitem>
|
2533 | </varlistentry>
|
2534 |
|
2535 | <varlistentry>
|
2536 | <term>backgroundcol=<replaceable>color</replaceable></term>
|
2537 |
|
2538 | <listitem>
|
2539 | <para>sets the background color of the marking area.</para>
|
2540 | </listitem>
|
2541 | </varlistentry>
|
2542 |
|
2543 | <varlistentry>
|
2544 | <term>foregroundcol=<replaceable>color</replaceable></term>
|
2545 |
|
2546 | <listitem>
|
2547 | <para>sets the foreground color of the marking area.</para>
|
2548 | </listitem>
|
2549 | </varlistentry>
|
2550 |
|
2551 | <varlistentry>
|
2552 | <term>scan=<replaceable>bool</replaceable></term>
|
2553 |
|
2554 | <listitem>
|
2555 | <para>if <code>false</code>, the boxes are not scanned (this can
|
2556 | be useful if you plan to use manual data capture only to mark
|
2557 | this question, and don't want to take into account the students
|
2558 | drawings on the boxes). Defaults to <code>true</code>.</para>
|
2559 | </listitem>
|
2560 | </varlistentry>
|
2561 |
|
2562 | <varlistentry>
|
2563 | <term>annotate=<replaceable>bool</replaceable></term>
|
2564 |
|
2565 | <listitem>
|
2566 | <para>if <code>false</code> (default value), the boxes from this
|
2567 | question won't be annotated when annotating the answer sheets
|
2568 | (only the score will be written).</para>
|
2569 | </listitem>
|
2570 | </varlistentry>
|
2571 |
|
2572 | <varlistentry>
|
2573 | <term>question=<replaceable>text</replaceable></term>
|
2574 |
|
2575 | <listitem>
|
2576 | <para>sets a short text that helps the examiner to identify the
|
2577 | question. This text will be written before the scoring boxes,
|
2578 | only if a separate answer sheet is used.</para>
|
2579 |
|
2580 | <para>The question's identifier will be displayed if you type
|
2581 | question in the options list.</para>
|
2582 | </listitem>
|
2583 | </varlistentry>
|
2584 |
|
2585 | <varlistentry>
|
2586 | <term>answer=<replaceable>text</replaceable></term>
|
2587 |
|
2588 | <listitem>
|
2589 | <para>sets a short text that will be written in the answering
|
2590 | area for corrected answer sheets.</para>
|
2591 | </listitem>
|
2592 | </varlistentry>
|
2593 |
|
2594 | <varlistentry>
|
2595 | <term>width=<replaceable>dim</replaceable></term>
|
2596 |
|
2597 | <listitem>
|
2598 | <para>sets the width of the frame enclosing the answering area
|
2599 | when <code>lineup=false</code>. Default value is
|
2600 | <code>.95\linewidth</code>.</para>
|
2601 | </listitem>
|
2602 | </varlistentry>
|
2603 |
|
2604 | <varlistentry>
|
2605 | <term>framerule=<replaceable>dim</replaceable></term>
|
2606 |
|
2607 | <listitem>
|
2608 | <para>sets the line width for the frame enclosing the answering
|
2609 | area.</para>
|
2610 | </listitem>
|
2611 | </varlistentry>
|
2612 |
|
2613 | <varlistentry>
|
2614 | <term>framerulecol=<replaceable>color</replaceable></term>
|
2615 |
|
2616 | <listitem>
|
2617 | <para>sets the frame color for the answering area.</para>
|
2618 | </listitem>
|
2619 | </varlistentry>
|
2620 |
|
2621 | <varlistentry>
|
2622 | <term>boxmargin=<replaceable>dim</replaceable></term>
|
2623 |
|
2624 | <listitem>
|
2625 | <para>sets the margin around the scoring boxes.</para>
|
2626 | </listitem>
|
2627 | </varlistentry>
|
2628 |
|
2629 | <varlistentry>
|
2630 | <term>boxframerule=<replaceable>dim</replaceable></term>
|
2631 |
|
2632 | <listitem>
|
2633 | <para>sets the line width for the frame around the scoring
|
2634 | boxes.</para>
|
2635 | </listitem>
|
2636 | </varlistentry>
|
2637 |
|
2638 | <varlistentry>
|
2639 | <term>boxframerulecol=<replaceable>color</replaceable></term>
|
2640 |
|
2641 | <listitem>
|
2642 | <para>sets the color of the frame around the scoring
|
2643 | boxes.</para>
|
2644 | </listitem>
|
2645 | </varlistentry>
|
2646 | </variablelist>
|
2647 |
|
2648 | <para>You can set other default values (for the whole exam) for all
|
2649 | these parameters using the command <command>\AMCopenOpts</command>,
|
2650 | like</para>
|
2651 |
|
2652 | <programlisting>\AMCopenOpts{boxframerule=2pt,boxframerulecol=red}</programlisting>
|
2653 |
|
2654 | <para>Moreover, a little text can be written in the marking area to
|
2655 | tell the students not to tick these boxes, redefining the
|
2656 | <command>\AMCotextReserved</command> command, as:</para>
|
2657 |
|
2658 | <programlisting>\def\AMCotextReserved{\emph{Reserved}}</programlisting>
|
2659 |
|
2660 | <para>When using separate answer sheets, the text added to each open
|
2661 | question can also be defined, as:</para>
|
2662 |
|
2663 | <programlisting>\def\AMCotextGoto{\par{\bf\emph{Please write the answer on the separate answer sheet.}}}</programlisting>
|
2664 | </sect3>
|
2665 |
|
2666 | <sect3>
|
2667 | <title>One-letter answers</title>
|
2668 |
|
2669 | <para>Sometimes this is not necessary to write some long text to
|
2670 | describe answers, and one letter or symbol is enough. When using a
|
2671 | separate answer sheet, it is quite annoying to print the boxes both on
|
2672 | the question and on the answer sheet. In such cases, use
|
2673 | <command>\AMCBoxOnly</command> instead of the <code>choices</code>
|
2674 | environment:</para>
|
2675 |
|
2676 | <programlisting>\begin{question}{arm}
|
2677 | Which letter shows the \textit{arm} on the diagram?
|
2678 | \AMCBoxOnly{ordered=true}{\wrongchoice[A]{}\correctchoice[B]{}%
|
2679 | \wrongchoice[C]{}\wrongchoice[D]{}}
|
2680 | \end{question}</programlisting>
|
2681 |
|
2682 | <para>The first argument to <command>\AMCBoxOnly</command> is a comma
|
2683 | separated list of options. The available options are:</para>
|
2684 |
|
2685 | <variablelist>
|
2686 | <varlistentry>
|
2687 | <term>help=<replaceable>text</replaceable></term>
|
2688 |
|
2689 | <listitem>
|
2690 | <para>prints some reminder text before the boxes on the separate
|
2691 | answer sheet.</para>
|
2692 | </listitem>
|
2693 | </varlistentry>
|
2694 |
|
2695 | <varlistentry>
|
2696 | <term>ordered=<replaceable>bool</replaceable></term>
|
2697 |
|
2698 | <listitem>
|
2699 | <para>if <code>true</code> (the default value is
|
2700 | <code>false</code>), the answers won't be shuffled.</para>
|
2701 | </listitem>
|
2702 | </varlistentry>
|
2703 | </variablelist>
|
2704 | </sect3>
|
2705 |
|
2706 | <sect3>
|
2707 | <title>Choice of shuffling parameters</title>
|
2708 |
|
2709 | <para>One can modify the seed of the random number generator used to
|
2710 | produce the shuffle, thanks to the following command (to be used just
|
2711 | at the beginning of the document, and in any case outside the
|
2712 | <command>onecopy</command> command):</para>
|
2713 |
|
2714 | <para>
|
2715 | <programlisting>\AMCrandomseed{1527384}</programlisting>
|
2716 | </para>
|
2717 |
|
2718 | <para>If the value that is assigned (to be chosen between 1 and
|
2719 | 4194303) is modified, then the shuffling will differ. Of course, one
|
2720 | must not modify this value after the test sheets have been
|
2721 | printed.</para>
|
2722 | </sect3>
|
2723 |
|
2724 | <sect3>
|
2725 | <title>Using sectioning and separate answer sheet</title>
|
2726 |
|
2727 | <para>For sectioning to be also visible in the separate answer sheet
|
2728 | (if any), use <command>\AMCsection</command> and
|
2729 | <command>\AMCsubsection</command> instead of
|
2730 | <command>\section</command> and <command>\subsection</command>.</para>
|
2731 | </sect3>
|
2732 |
|
2733 | <sect3>
|
2734 | <title>Using references inside the test sheets</title>
|
2735 |
|
2736 | <para>Using LaTeX commands <command>\label</command>,
|
2737 | <command>\ref</command> and <command>\pageref</command> within
|
2738 | questions or answers is problematic since they will be called with the
|
2739 | same arguments for every realization of the test, which will alter the
|
2740 | numbering of references. To solve this problem, one should use instead
|
2741 | the commands <command>\AMClabel</command>, <command>\AMCref</command>
|
2742 | and <command>\AMCpageref</command>: they add the realization number to
|
2743 | their argument before transmitting it to <command>\label</command>,
|
2744 | <command>\ref</command> and <command>\pageref</command>.</para>
|
2745 |
|
2746 | <note>
|
2747 | <para>If you updated the test version (1.2.2014.041103) to the
|
2748 | current version (1.2.2014.111201) or greater, you don't have to type
|
2749 | the command <command>\AMCqlabel</command> to label a question but
|
2750 | type <command>\AMClabel</command>. The old command remain compatible
|
2751 | with your previous tex files/exams.</para>
|
2752 | </note>
|
2753 |
|
2754 | <para>One also has to reset counters to zero at the beginning of each
|
2755 | realization. For instance, if one wants to include references to
|
2756 | pictures that are put together in a separate page, one might write
|
2757 | something like</para>
|
2758 |
|
2759 | <programlisting>\element{animals}{
|
2760 | \begin{figure}[p]
|
2761 | \centering
|
2762 | \includegraphics[width=.6\linewidth]{tiger}
|
2763 | \caption{An animal}
|
2764 | \AMClabel{tiger}
|
2765 | \end{figure}
|
2766 |
|
2767 | \begin{question}{tiger}
|
2768 | Which is the animal on figure~\AMCref{tiger} page~\AMCpageref{tiger}?
|
2769 | \begin{choices}
|
2770 | \correctchoice{A tiger}
|
2771 | \wrongchoice{A giraffe}
|
2772 | \wrongchoice{An elephant}
|
2773 | \wrongchoice{A cat}
|
2774 | \end{choices}
|
2775 | \end{question}
|
2776 | }</programlisting>
|
2777 |
|
2778 | <para>and it is then important to add, just after the command
|
2779 | <command>\onecopy</command> the line</para>
|
2780 |
|
2781 | <programlisting>\setcounter{figure}{0}</programlisting>
|
2782 |
|
2783 | <para>so that the numbering of figures starts at 1 for every
|
2784 | realization. Without that last command, the numbering of figures would
|
2785 | go on from one realization to the next one, which is clearly not
|
2786 | desirable.</para>
|
2787 | </sect3>
|
2788 |
|
2789 | <sect4 id="cleveref"><title>Using the package cleveref</title>
|
2790 | <para>This package sort in an ascending order the questions' numbers,
|
2791 | the questions' pages or the labels' pages (the documentation <ulink
|
2792 | url="http://mirrors.ctan.org/macros/latex/contrib/cleveref/cleveref.pdf">http://mirrors.ctan.org/macros/latex/contrib/cleveref/cleveref.pdf</ulink>).</para>
|
2793 | <warning>
|
2794 | <para>This package must be declare <emphasis>after</emphasis> the
|
2795 | package <package>automultiplechoice</package>.</para>
|
2796 | </warning> To use this package, a new command was created:
|
2797 | <command>\AMCstudentlabel</command>. <para>
|
2798 | <programlisting>\cref{\AMCstudentlabel{led},\AMCstudentlabel{lamp},\AMCstudentlabel{motor}}</programlisting>
|
2799 | </para>
|
2800 | <para><emphasis>led</emphasis>,<emphasis>lamp</emphasis>,<emphasis>motor</emphasis>
|
2801 | are the created labels to reference the questions with the command
|
2802 | \AMClabel{}.</para></sect4>
|
2803 |
|
2804 | <sect3 id="AMCtext">
|
2805 | <title>Customizing some texts inserted by AMC</title>
|
2806 |
|
2807 | <para>Use <command>\AMCtext</command> for the following
|
2808 | customizations:</para>
|
2809 |
|
2810 | <itemizedlist>
|
2811 | <listitem>
|
2812 | <para><code>\AMCtext{none}{<replaceable>sentence</replaceable>}</code>
|
2813 | replaces « None of these answers are correct. » (the English
|
2814 | default text) with the given <replaceable>sentence</replaceable>
|
2815 | when using option <option>completemulti</option>.</para>
|
2816 | </listitem>
|
2817 |
|
2818 | <listitem>
|
2819 | <para><code>\AMCtext{corrected}{<replaceable>title</replaceable>}</code>
|
2820 | replaces « Corrected » (the English default text) with the given
|
2821 | <replaceable>title</replaceable> on the corrected answer
|
2822 | sheet.</para>
|
2823 | </listitem>
|
2824 |
|
2825 | <listitem>
|
2826 | <para><code>\AMCtext{catalog}{<replaceable>title</replaceable>}</code>
|
2827 | replaces « Catalog » (the English default text) with the given
|
2828 | <replaceable>title</replaceable> on the questions catalog produced
|
2829 | thanks to option <option>catalog</option>.</para>
|
2830 | </listitem>
|
2831 |
|
2832 | <listitem>
|
2833 | <para><code>\AMCtext{explain}{<replaceable>title</replaceable>}</code>
|
2834 | replaces « <emphasis>Explanation</emphasis> » (the English default
|
2835 | text) with the given <replaceable>title</replaceable> before the
|
2836 | explanations produced due to the <command>explain</command>
|
2837 | command.</para>
|
2838 |
|
2839 | <para>The default option for this command is:</para>
|
2840 |
|
2841 | <programlisting>\AMCtext{explain}{\textit{\textbf{Explanation: }}}</programlisting>
|
2842 | </listitem>
|
2843 |
|
2844 | <listitem>
|
2845 | <para>You can also consider using commands like the following ones
|
2846 | (here the second argument is set to the default English
|
2847 | value):</para>
|
2848 |
|
2849 | <programlisting>\AMCtext{draft}{DRAFT}
|
2850 | \AMCtext{message}{For your examination, preferably print documents
|
2851 | compiled from auto-multiple-choice.}</programlisting>
|
2852 | </listitem>
|
2853 | </itemizedlist>
|
2854 | </sect3>
|
2855 |
|
2856 | <sect3 id="binary.code">
|
2857 | <title id="binary.code.title">Binary code</title>
|
2858 |
|
2859 | <para>AMC identifies each test and the page number of test with the
|
2860 | binary code.</para>
|
2861 |
|
2862 | <itemizedlist>
|
2863 | <listitem>
|
2864 | <para>First row : 12 boxes (default value) : maximum number of
|
2865 | tests = 2^12-1 = 4 095.</para>
|
2866 | </listitem>
|
2867 |
|
2868 | <listitem>
|
2869 | <para>Second row : 6 first boxes (default value) : maximum number
|
2870 | of pages per tests = 2^6-1 = 63.</para>
|
2871 | </listitem>
|
2872 |
|
2873 | <listitem>
|
2874 | <para>Second row : 6 last boxes (default value) : check
|
2875 | code.</para>
|
2876 | </listitem>
|
2877 | </itemizedlist>
|
2878 |
|
2879 | <para>To raise the number of tests and/or pages per test modify the
|
2880 | commands' default values <command>\AMC@NCBetud</command>,
|
2881 | <command>\AMC@NCBpage</command> et
|
2882 | <command>\AMC@NCBcheck</command>.</para>
|
2883 |
|
2884 | <para>Load those commands below in the preambule (here with the
|
2885 | default values).</para>
|
2886 |
|
2887 | <programlisting>
|
2888 | \makeatletter
|
2889 | \AMC@NCBetud=12
|
2890 | \AMC@NCBpage=6
|
2891 | \AMC@NCBcheck=6
|
2892 | \makeatother
|
2893 | </programlisting>
|
2894 |
|
2895 | <note>
|
2896 | <para>The values <command>\AMC@NCBpage</command> and
|
2897 | <command>\AMC@NCBcheck</command> must be equal.</para>
|
2898 | </note>
|
2899 | </sect3>
|
2900 | </sect2>
|
2901 |
|
2902 | <sect2>
|
2903 | <title>Options for AMC</title>
|
2904 |
|
2905 | <para>You can add in the source file header (the first lines that begin
|
2906 | with a '%') some options to be passed to AMC:</para>
|
2907 |
|
2908 | <variablelist>
|
2909 | <varlistentry>
|
2910 | <term><code>%%AMC:preprocess_command=<replaceable>commandname</replaceable></code></term>
|
2911 |
|
2912 | <listitem>
|
2913 | <para>tells AMC to run the <replaceable>commandname</replaceable>
|
2914 | command before calling LaTeX to process the source file. This
|
2915 | command will be run inside the project directory, and the name of
|
2916 | a source file copy will be passed as an argument. There is no
|
2917 | problem for <replaceable>commandname</replaceable> to change this
|
2918 | file content, because this is only a copy.</para>
|
2919 | </listitem>
|
2920 | </varlistentry>
|
2921 |
|
2922 | <varlistentry>
|
2923 | <term><code>%%AMC:latex_engine=<replaceable>engine</replaceable></code></term>
|
2924 |
|
2925 | <listitem>
|
2926 | <para>tells AMC to set the LaTeX engine to use for this file,
|
2927 | regardless to the one entered as a preference by the user.</para>
|
2928 | </listitem>
|
2929 | </varlistentry>
|
2930 | </variablelist>
|
2931 | </sect2>
|
2932 |
|
2933 | <sect2>
|
2934 | <title>Mathematical questions with randomized statements</title>
|
2935 |
|
2936 | <sect3>
|
2937 | <title>Using package fp</title>
|
2938 |
|
2939 | <para>Thanks to the LaTeX package <package>fp</package>, whose
|
2940 | documentation is available at <ulink
|
2941 | url="http://mirrors.ctan.org/macros/latex/contrib/fp/README">http://mirrors.ctan.org/macros/latex/contrib/fp/README</ulink>,
|
2942 | and which can be downloaded with the command <programlisting>\usepackage{fp}</programlisting>added
|
2943 | before that corresponding to <package>automultiplechoice</package>,
|
2944 | one can create exercises with randomized numerical data. Let us start
|
2945 | with a simple example.</para>
|
2946 |
|
2947 | <para><programlisting>\begin{question}{addition}
|
2948 | \FPeval\VQa{trunc(1+random*8,0)} <co id="alea.random"
|
2949 | linkends="alea.random.exp"/>
|
2950 | \FPeval\VQb{trunc(4+random*5,0)}
|
2951 | \FPeval\VQsomme{clip(VQa+VQb)} <co id="alea.result"
|
2952 | linkends="alea.result.exp"/>
|
2953 | \FPeval\VQnonA{clip(VQa+VQb-1)} <co id="alea.fausse"
|
2954 | linkends="alea.fausse.exp"/>
|
2955 | \FPeval\VQnonB{clip(VQa*VQb)}
|
2956 | \FPeval\VQnonC{clip(VQa-VQb)}
|
2957 |
|
2958 | What is the sum of \VQa{} and \VQb{} ?
|
2959 | \begin{choiceshoriz}
|
2960 | \correctchoice{\VQsomme}
|
2961 | \wrongchoice{\VQnonA}
|
2962 | \wrongchoice{\VQnonB}
|
2963 | \wrongchoice{\VQnonC}
|
2964 | \end{choiceshoriz}
|
2965 | \end{question}</programlisting></para>
|
2966 |
|
2967 | <para>The <command>\FPeval</command> command is used to perform
|
2968 | computations:</para>
|
2969 |
|
2970 | <para><calloutlist>
|
2971 | <callout arearefs="alea.random" id="alea.random.exp">
|
2972 | <para>Since <command>random</command> returns a real number in
|
2973 | the interval [0,1], this command sets VQa to a random integer
|
2974 | value between 1 and 8. The next line sets VQb to a random
|
2975 | integer value between 4 and 8.</para>
|
2976 | </callout>
|
2977 |
|
2978 | <callout arearefs="alea.result" id="alea.result.exp">
|
2979 | <para>Putting the correct answer in the variable VQsomme.</para>
|
2980 | </callout>
|
2981 |
|
2982 | <callout arearefs="alea.fausse" id="alea.fausse.exp">
|
2983 | <para>Putting wrong answers in variables VQnonA, VQnonB and
|
2984 | VQnonC...</para>
|
2985 | </callout>
|
2986 | </calloutlist>Variable names beginning with VQ have been chosen so
|
2987 | as to avoid interference with other LaTeX commands.</para>
|
2988 |
|
2989 | <sect4 id="latex.intervals">
|
2990 | <title>Choosing an interval</title>
|
2991 |
|
2992 | <para>The <command>automultiplechoice</command> package moreover
|
2993 | defines a <command>\AMCIntervals</command> command which makes this
|
2994 | kind of construction simpler, as illustrated in the next
|
2995 | example:<programlisting>\begin{question}{inf-expo-indep}
|
2996 | \FPeval\VQa{trunc(2 + random * 4,0)}
|
2997 | \FPeval\VQb{trunc(6 + random * 5,0)}
|
2998 | \FPeval\VQr{VQa/(VQa+VQb)}
|
2999 |
|
3000 | Let $X$ and $Y$ be two independent random variables, following the exponential distribution with
|
3001 | respective parameters \VQa{} and \VQb{}.
|
3002 | To which interval does the probability $\mathbb{P}[X<Y]$ belong ?
|
3003 |
|
3004 | \begin{multicols}{5}
|
3005 | \begin{choices}[o]
|
3006 | \AMCIntervals{\VQr}{0}{1}{0.1} <co id="choix.intervalles"
|
3007 | linkends="choix.intervalles.exp"/>
|
3008 | \end{choices}
|
3009 | \end{multicols}
|
3010 | \end{question}</programlisting></para>
|
3011 |
|
3012 | <calloutlist>
|
3013 | <callout arearefs="choix.intervalles" id="choix.intervalles.exp">
|
3014 | <para>This lines inserts ten answers corresponding to the
|
3015 | intervals [0,0.1[ [0.1,0.2[ ... [0.9,1[, while indicating that
|
3016 | the correct interval is the one containing VQr. The arguments of
|
3017 | the <command>\AMCIntervals</command> command are the
|
3018 | following:</para>
|
3019 |
|
3020 | <orderedlist>
|
3021 | <listitem>
|
3022 | <para>The correct answer,</para>
|
3023 | </listitem>
|
3024 |
|
3025 | <listitem>
|
3026 | <para>The left point of the first interval,</para>
|
3027 | </listitem>
|
3028 |
|
3029 | <listitem>
|
3030 | <para>The right point of the last interval,</para>
|
3031 | </listitem>
|
3032 |
|
3033 | <listitem>
|
3034 | <para>The length of each interval.</para>
|
3035 | </listitem>
|
3036 | </orderedlist>
|
3037 | </callout>
|
3038 | </calloutlist>
|
3039 |
|
3040 | <para>Note that the interval formatting can be changed redefining
|
3041 | the <command>\AMCintervalFormat</command> command, which is
|
3042 | originally defined as</para>
|
3043 |
|
3044 | <programlisting>\def\AMCIntervalFormat#1#2{[#1,\,#2[}</programlisting>
|
3045 |
|
3046 | <para>to follow local conventions (writing [a,b) instead of [a,b[ is
|
3047 | for example a common usage).</para>
|
3048 | </sect4>
|
3049 |
|
3050 | <sect4 id="latex.numeric">
|
3051 | <title>Coding the result</title>
|
3052 |
|
3053 | <para>The students can also be asked to code the numerical answer,
|
3054 | using the <command>\AMCnumericChoices</command> command, as in the
|
3055 | following example:</para>
|
3056 |
|
3057 | <programlisting>\begin{questionmultx}{sqrt}
|
3058 | \FPeval\VQa{trunc(5+random*15,0)}
|
3059 | \FPeval\VQs{VQa^0.5}
|
3060 | Compute $\sqrt{\VQa}$ and round it with two digits after period.
|
3061 |
|
3062 | \AMCnumericChoices{\VQs}{digits=3,decimals=2,sign=true,
|
3063 | borderwidth=0pt,backgroundcol=lightgray,approx=5}
|
3064 | \end{questionmultx}
|
3065 | </programlisting>
|
3066 |
|
3067 | <para>Note the use of <code>questionmultx</code> environment: we
|
3068 | need this question to be multiple as several boxes has to be ticked,
|
3069 | but we can’t say that several answers are correct, so we don’t show
|
3070 | the symbol for multiple questions.</para>
|
3071 |
|
3072 | <para>Available options that can be used in the second argument of
|
3073 | the <command>\AMCnumericChoices</command> command are the following
|
3074 | (<replaceable>bool</replaceable> can be <code>true</code> or
|
3075 | <code>false</code>, and <replaceable>color</replaceable> must be a
|
3076 | color known by the <command>xcolor</command> package):</para>
|
3077 |
|
3078 | <variablelist>
|
3079 | <varlistentry>
|
3080 | <term>digits=<replaceable>num</replaceable></term>
|
3081 |
|
3082 | <listitem>
|
3083 | <para>gives the number of digits to request (defaults to
|
3084 | 3).</para>
|
3085 | </listitem>
|
3086 | </varlistentry>
|
3087 |
|
3088 | <varlistentry>
|
3089 | <term>decimals=<replaceable>num</replaceable></term>
|
3090 |
|
3091 | <listitem>
|
3092 | <para>gives the number of digits after period to request
|
3093 | (defaults to 0). Note that when <replaceable>num</replaceable>
|
3094 | is positive, the LaTeX package <command>fp</command> must be
|
3095 | loaded.</para>
|
3096 | </listitem>
|
3097 | </varlistentry>
|
3098 |
|
3099 | <varlistentry>
|
3100 | <term>base=<replaceable>num</replaceable></term>
|
3101 |
|
3102 | <listitem>
|
3103 | <para>gives the base for <code>digits</code> and
|
3104 | <code>decimals</code> (defaults to 10).</para>
|
3105 | </listitem>
|
3106 | </varlistentry>
|
3107 |
|
3108 | <varlistentry>
|
3109 | <term>significant=<replaceable>bool</replaceable></term>
|
3110 |
|
3111 | <listitem>
|
3112 | <para>if <code>true</code>, the numbers to code are the first
|
3113 | significant digits from the first argument of
|
3114 | <command>\AMCnumericChoices</command>. For example, the right
|
3115 | answer to
|
3116 | <code>\AMCnumericChoices{56945.23}{digits=2,significant=true}</code>
|
3117 | is 57.</para>
|
3118 | </listitem>
|
3119 | </varlistentry>
|
3120 |
|
3121 | <varlistentry>
|
3122 | <term>nozero=<replaceable>bool</replaceable></term>
|
3123 |
|
3124 | <listitem>
|
3125 | <para>if true, the choice 0 is removed for all digits. May be
|
3126 | useful when using <command>\AMCnumericChoices</command> to
|
3127 | enter small (<10) positive values.</para>
|
3128 | </listitem>
|
3129 | </varlistentry>
|
3130 |
|
3131 | <varlistentry>
|
3132 | <term>sign=<replaceable>bool</replaceable></term>
|
3133 |
|
3134 | <listitem>
|
3135 | <para>requests (or not) a signed value (defaults to
|
3136 | true).</para>
|
3137 | </listitem>
|
3138 | </varlistentry>
|
3139 |
|
3140 | <varlistentry>
|
3141 | <term>strict=<replaceable>bool</replaceable></term>
|
3142 |
|
3143 | <listitem>
|
3144 | <para>if <code>true</code>, a box has to be ticked for every
|
3145 | digit and for the sign. If <code>false</code>, if some digits
|
3146 | has no ticked box, they will be set to zero. Defaults to
|
3147 | <code>false</code>.</para>
|
3148 | </listitem>
|
3149 | </varlistentry>
|
3150 |
|
3151 | <varlistentry>
|
3152 | <term>vertical=<replaceable>bool</replaceable></term>
|
3153 |
|
3154 | <listitem>
|
3155 | <para>if true, each digit is represented on one raw. If false
|
3156 | (default), each digit is represented on one line.</para>
|
3157 | </listitem>
|
3158 | </varlistentry>
|
3159 |
|
3160 | <varlistentry>
|
3161 | <term>reverse=<replaceable>bool</replaceable></term>
|
3162 |
|
3163 | <listitem>
|
3164 | <para>if true, place higher values of the digits on the top in
|
3165 | <code>vertical</code> mode (defaults to true).</para>
|
3166 | </listitem>
|
3167 | </varlistentry>
|
3168 |
|
3169 | <varlistentry>
|
3170 | <term>vhead=<replaceable>bool</replaceable></term>
|
3171 |
|
3172 | <listitem>
|
3173 | <para>if true, in <code>vertical</code> mode, a header is
|
3174 | placed over all digits rows, made using the command
|
3175 | <command>\AMCntextVHead</command> that is originally defined
|
3176 | as</para>
|
3177 |
|
3178 | <programlisting>\def\AMCntextVHead#1{\emph{b#1}}</programlisting>
|
3179 |
|
3180 | <para>This default value is useful to number the binary
|
3181 | digits.</para>
|
3182 |
|
3183 | <para>Default value is <code>false</code>.</para>
|
3184 | </listitem>
|
3185 | </varlistentry>
|
3186 |
|
3187 | <varlistentry>
|
3188 | <term>hspace=<replaceable>space</replaceable></term>
|
3189 |
|
3190 | <listitem>
|
3191 | <para>sets the horizontal space between boxes (defaults to
|
3192 | <code>.5em</code>).</para>
|
3193 | </listitem>
|
3194 | </varlistentry>
|
3195 |
|
3196 | <varlistentry>
|
3197 | <term>vspace=<replaceable>space</replaceable></term>
|
3198 |
|
3199 | <listitem>
|
3200 | <para>sets the vertical space between boxes (defaults to
|
3201 | <code>1ex</code>).</para>
|
3202 | </listitem>
|
3203 | </varlistentry>
|
3204 |
|
3205 | <varlistentry>
|
3206 | <term>borderwidth=<replaceable>space</replaceable></term>
|
3207 |
|
3208 | <listitem>
|
3209 | <para>sets the width of the frame border around all the boxes
|
3210 | (defaults to <code>1mm</code>).</para>
|
3211 | </listitem>
|
3212 | </varlistentry>
|
3213 |
|
3214 | <varlistentry>
|
3215 | <term>bordercol=<replaceable>color</replaceable></term>
|
3216 |
|
3217 | <listitem>
|
3218 | <para>sets the color of the frame (defaults to
|
3219 | <code>lightgray</code>).</para>
|
3220 | </listitem>
|
3221 | </varlistentry>
|
3222 |
|
3223 | <varlistentry>
|
3224 | <term>backgroundcol=<replaceable>color</replaceable></term>
|
3225 |
|
3226 | <listitem>
|
3227 | <para>sets the background color (defaults to
|
3228 | <code>white</code>).</para>
|
3229 | </listitem>
|
3230 | </varlistentry>
|
3231 |
|
3232 | <varlistentry>
|
3233 | <term>Tsign=<replaceable>text</replaceable></term>
|
3234 |
|
3235 | <listitem>
|
3236 | <para>sets the text to print at the top of the boxes to set
|
3237 | the sign (Can also be redefined by
|
3238 | <code>\def\AMCntextSign{<replaceable>text</replaceable>}</code>,
|
3239 | and defaults to be empty).</para>
|
3240 | </listitem>
|
3241 | </varlistentry>
|
3242 |
|
3243 | <varlistentry>
|
3244 | <term>Tpoint=<replaceable>text</replaceable></term>
|
3245 |
|
3246 | <listitem>
|
3247 | <para>sets the text for the period. Can also be redefined by
|
3248 | <code>\def\AMCdecimalPoint{<replaceable>text</replaceable>}</code>,
|
3249 | and defaults to <code>\raisebox{1ex}{\bf .}</code>.</para>
|
3250 | </listitem>
|
3251 | </varlistentry>
|
3252 |
|
3253 | <varlistentry>
|
3254 | <term>scoring=<replaceable>bool</replaceable></term>
|
3255 |
|
3256 | <listitem>
|
3257 | <para>if <code>true</code>, a scoring strategy is given to AMC
|
3258 | for this question. Defaults to <code>true</code>.</para>
|
3259 | </listitem>
|
3260 | </varlistentry>
|
3261 |
|
3262 | <varlistentry>
|
3263 | <term>scoreexact=<replaceable>num</replaceable></term>
|
3264 |
|
3265 | <listitem>
|
3266 | <para>gives the score for an exact answer (defaults to
|
3267 | 2).</para>
|
3268 | </listitem>
|
3269 | </varlistentry>
|
3270 |
|
3271 | <varlistentry>
|
3272 | <term>exact=<replaceable>num</replaceable></term>
|
3273 |
|
3274 | <listitem>
|
3275 | <para>sets the maximal distance to the correct integer value
|
3276 | (value without the decimal point) for an answer to be said
|
3277 | <emphasis>exact</emphasis> and be rewarded to
|
3278 | <code>scoreexact</code> points (defaults to 0).</para>
|
3279 | </listitem>
|
3280 | </varlistentry>
|
3281 |
|
3282 | <varlistentry>
|
3283 | <term>scoreapprox=<replaceable>num</replaceable></term>
|
3284 |
|
3285 | <listitem>
|
3286 | <para>gives the score for an
|
3287 | <emphasis>approximative</emphasis> answer (defaults to
|
3288 | 1).</para>
|
3289 | </listitem>
|
3290 | </varlistentry>
|
3291 |
|
3292 | <varlistentry>
|
3293 | <term>approx=<replaceable>num</replaceable></term>
|
3294 |
|
3295 | <listitem>
|
3296 | <para>sets the maximal distance to the correct integer value
|
3297 | (value without the decimal point) for an answer to be said
|
3298 | <emphasis>approximative</emphasis> and be rewarded to
|
3299 | <code>scoreapprox</code> points (defaults to 0).</para>
|
3300 | </listitem>
|
3301 | </varlistentry>
|
3302 | </variablelist>
|
3303 |
|
3304 | <para>You can set other default values (for the whole exam) for all
|
3305 | these parameters using the command
|
3306 | <command>\AMCnumericOpts</command>, like</para>
|
3307 |
|
3308 | <programlisting>\AMCnumericOpts{scoreexact=3,borderwidth=2pt}</programlisting>
|
3309 |
|
3310 | <para>Moreover, the text added at the end of the questions using
|
3311 | <command>\AMCnumericChoices</command> when not in the separate
|
3312 | answer sheet (and when a separate answer sheet is requested by the
|
3313 | <code>separateanswersheet</code> package option) can also be set
|
3314 | redefining the <command>\AMCntextGoto</command> command, as:</para>
|
3315 |
|
3316 | <programlisting>\def\AMCntextGoto{\par{\bf\emph{Please code the answer on
|
3317 | the separate answer sheet.}}}</programlisting>
|
3318 | </sect4>
|
3319 | </sect3>
|
3320 |
|
3321 | <sect3>
|
3322 | <title>Using package pgf/tikz</title>
|
3323 |
|
3324 | <para>This package must be declare <emphasis>after</emphasis> the
|
3325 | package <package>automultiplechoice</package>.</para>
|
3326 |
|
3327 | <para>LaTeX package <package>pgf/tikz</package> (see <ulink
|
3328 | url="http://www.ctan.org/tex-archive/graphics/pgf/base">http://www.ctan.org/tex-archive/graphics/pgf/base</ulink>)
|
3329 | provides mathematical functions that can be loaded with
|
3330 | <programlisting>\usepackage{tikz}</programlisting></para>
|
3331 |
|
3332 | <para>First of all, you must set the random seed to be sure to get the
|
3333 | same result each time latex is run to compile the subject:</para>
|
3334 |
|
3335 | <para><programlisting>\pgfmathsetseed{2056}</programlisting></para>
|
3336 |
|
3337 | <sect4>
|
3338 | <title>A simple computation</title>
|
3339 |
|
3340 | <para>Here is an example with a simple computation:</para>
|
3341 |
|
3342 | <para><programlisting>\begin{question}{inverse}
|
3343 | \pgfmathrandominteger{\x}{1}{50}
|
3344 |
|
3345 | How much is the reciprocal of $x=\x$?
|
3346 |
|
3347 | \begin{choices}
|
3348 | \correctchoice{\pgfmathparse{1/\x}\pgfmathresult }
|
3349 | \wrongchoice{\pgfmathparse{1/(\x +1))}\pgfmathresult}
|
3350 | \wrongchoice{\pgfmathparse{cos(\x)} \pgfmathresult}
|
3351 | \wrongchoice{\pgfmathparse{\x^(-0.5)}\pgfmathresult}
|
3352 | \end{choices}
|
3353 | \end{question}
|
3354 | </programlisting></para>
|
3355 |
|
3356 | <para>Here, the command <command>\pgfmathparse</command> makes the
|
3357 | computation, and <command>\pgfmathresult</command> outputs the
|
3358 | result.</para>
|
3359 |
|
3360 | <para>Output formatting is also available with the command
|
3361 | <command>\pgfmathprintnumber</command>, as in the following example
|
3362 | (three digits after decimal point, and use of the comma as a decimal
|
3363 | point).</para>
|
3364 |
|
3365 | <para><programlisting>\begin{question}{inverse3}
|
3366 | \pgfmathrandominteger{\x}{1}{50}
|
3367 | \pgfkeys{/pgf/number format/.cd,fixed,fixed zerofill,precision=3,use comma}
|
3368 | How much is the reciprocal of $x=\pgfmathprintnumber{\x}$?
|
3369 |
|
3370 | \begin{choices}
|
3371 | \correctchoice{\pgfmathparse{1/\x}\pgfmathprintnumber{\pgfmathresult}}
|
3372 | \wrongchoice{\pgfmathparse{1/(\x +1))} \pgfmathprintnumber{\pgfmathresult}}
|
3373 | \wrongchoice{\pgfmathparse{cos(\x)} \pgfmathprintnumber{\pgfmathresult}}
|
3374 | \wrongchoice{\pgfmathparse{\x^(-0.5)} \pgfmathprintnumber{\pgfmathresult}}
|
3375 | \end{choices}
|
3376 | \end{question}
|
3377 | </programlisting><note>
|
3378 | <para>You can also use the <command>\AMCIntervals</command> and
|
3379 | <command>\AMCnumericChoices</command> commands (see <xref
|
3380 | linkend="latex.intervals"/> and <xref
|
3381 | linkend="latex.numeric"/>)</para>
|
3382 | </note></para>
|
3383 | </sect4>
|
3384 |
|
3385 | <sect4>
|
3386 | <title>Graphics</title>
|
3387 |
|
3388 | <para>The tkiz package also allows to make (random or not)
|
3389 | graphs.</para>
|
3390 |
|
3391 | <para><programlisting>\begin{questionmult}{graph}
|
3392 | Let us consider the three functions which graphs are plotted below:
|
3393 | \pgfmathrandominteger{\a}{2}{4}
|
3394 | \begin{center}
|
3395 | \begin{tikzpicture}[domain=0:4]
|
3396 | \draw[very thin,color=gray] (-0.1,-4.1) grid (3.9,3.9);
|
3397 | \draw[->] (-0.2,0) -- (4.2,0) node[right] {$x$};
|
3398 | \draw[->] (0,-4.2) -- (0,4.2) node[above] {$f(x)$};
|
3399 | \draw[color=red] plot (\x,{(1+\a/4)*\x-\a}) node[right] {$f_{1} (x)$};
|
3400 | \draw[color=blue] plot (\x,{\a*sin(\x r)}) node[right] {$f_{2}(x)$};
|
3401 | \draw[color=orange] plot (\x,{\a*cos(\x r)}) node[right] {$f_{3}(x)$};
|
3402 | \end{tikzpicture}
|
3403 | \end{center}
|
3404 | Then:
|
3405 | \begin{choices}
|
3406 | \pgfmathrandominteger{\x0}{2}{4}
|
3407 | \correctchoice{$f_{2}(\x0)$=\pgfmathparse{\a*sin(\x0 r)} \pgfmathprintnumber{\pgfmathresult}.}
|
3408 | \correctchoice{$f_{3}(\x0)$=\pgfmathparse{\a*cos(\x0 r)} \pgfmathprintnumber{\pgfmathresult}.}
|
3409 | \wrongchoice{La fonction $f_{1}(x)$ est une fonction linéaire.}
|
3410 | \end{choices}
|
3411 | \end{questionmult}
|
3412 | </programlisting></para>
|
3413 |
|
3414 | <para>To make pretty graphs, package <package>pgfplots</package> can
|
3415 | also be useful.</para>
|
3416 |
|
3417 | <para>With pgfmath, precision is limited, so that a "Arithmetic
|
3418 | overflow" error can be encountered. Packages <package>tikz</package>
|
3419 | and <package>pgfplots</package> allows to overcome this problem,
|
3420 | using <command>gnuplot</command> as a backend. You need to install
|
3421 | <command>gnuplot</command> on your system, and use LaTeX option
|
3422 | <option>--shell-escape</option>. To this purpose, go to AMC
|
3423 | preferences window, and set the LaTeX engine for your project to
|
3424 | "<option>pdflatex --shell-escape</option>" (without the
|
3425 | quotes).</para>
|
3426 | </sect4>
|
3427 | </sect3>
|
3428 |
|
3429 | <sect3>
|
3430 | <title>Using LuaLaTeX</title>
|
3431 |
|
3432 | <para>LUA language can be used inside LaTeX documents thanks to the
|
3433 | <command>lualatex</command> command. If you uses it, your document
|
3434 | needs to be UTF-8 encoded, and you must not load the
|
3435 | <package>inputenc</package> package. See <ulink
|
3436 | url="http://www.luatex.org/documentation.html">http://www.luatex.org/documentation.html</ulink>
|
3437 | for some information.</para>
|
3438 |
|
3439 | <para>LUA commands are to be given as a <command>\directlua</command>
|
3440 | argument. The most useful LUA function is
|
3441 | <command>tex.print</command>, which will output results back to
|
3442 | LaTeX.</para>
|
3443 |
|
3444 | <para>Once again, if you use random numbers, always fix the random
|
3445 | seed to get the same results across different compilations:</para>
|
3446 |
|
3447 | <programlisting>\directlua{math.randomseed (2048)}</programlisting>
|
3448 |
|
3449 | <para>Here is a very simple sample source file:</para>
|
3450 |
|
3451 | <programlisting>\documentclass[a4paper]{article}
|
3452 | %\usepackage[utf8x]{inputenc}
|
3453 | \usepackage[T1]{fontenc}
|
3454 | \usepackage[box,completemulti]{automultiplechoice}
|
3455 | \begin{document}
|
3456 |
|
3457 | \onecopy{10}{
|
3458 |
|
3459 | %%% head
|
3460 |
|
3461 | \noindent{\bf QCM \hfill TEST}
|
3462 |
|
3463 | \vspace*{.5cm}
|
3464 | \begin{minipage}{.4\linewidth}
|
3465 | \centering\large\bf LuaLaTeX sample exam
|
3466 | \end{minipage}
|
3467 | \namefield{\fbox{\begin{minipage}{.5\linewidth}
|
3468 | Name :
|
3469 |
|
3470 | \vspace*{.5cm}\dotfill
|
3471 | \vspace*{1mm}
|
3472 | \end{minipage}}}
|
3473 |
|
3474 | %%%
|
3475 |
|
3476 | \directlua{math.randomseed (2048)}
|
3477 | \directlua{a=math.random()}
|
3478 |
|
3479 | \begin{question}{square-root}
|
3480 | How much is the square root of \directlua{tex.print(a)}?
|
3481 |
|
3482 | \begin{choices}
|
3483 | \correctchoice{\directlua{tex.print(math.sqrt(a))}}
|
3484 | \wrongchoice{\directlua{tex.print(math.sqrt(2*a))}}
|
3485 | \wrongchoice{\directlua{tex.print(math.sqrt(a*1.001))}}
|
3486 | \end{choices}
|
3487 | \end{question}
|
3488 |
|
3489 | \clearpage
|
3490 | }
|
3491 |
|
3492 | \end{document} </programlisting>
|
3493 |
|
3494 | <para>Output formatting can be obtained using lua functions, or with
|
3495 | the <package>siunitx</package> package.</para>
|
3496 |
|
3497 | <note>
|
3498 | <para>You can also use the <command>\AMCIntervals</command> and
|
3499 | <command>\AMCnumericChoices</command> commands (see <xref
|
3500 | linkend="latex.intervals"/> and <xref
|
3501 | linkend="latex.numeric"/>)</para>
|
3502 | </note>
|
3503 | </sect3>
|
3504 | </sect2>
|
3505 | </sect1>
|
3506 |
|
3507 | <sect1 id="graphical-interface">
|
3508 | <title>Usage - Graphical interface</title>
|
3509 |
|
3510 | <para>We shall describe here a usage example with the graphic interface
|
3511 | from the conception of the multiple-choice test until the edition of
|
3512 | students' scores.</para>
|
3513 |
|
3514 | <sect2>
|
3515 | <title>Creating a new project and subject</title>
|
3516 |
|
3517 | <para>Let's open the graphic interface. This can be done ordinarily by
|
3518 | selecting <menuchoice>
|
3519 | <guimenu>Applications</guimenu>
|
3520 |
|
3521 | <guisubmenu>Education</guisubmenu>
|
3522 |
|
3523 | <guimenuitem>Auto Multiple Choice</guimenuitem>
|
3524 | </menuchoice> in the general menu of Gnome (or its equivalent in KDE
|
3525 | or other), but the command <userinput>auto-multiple-choice</userinput>
|
3526 | can be used directly.</para>
|
3527 |
|
3528 | <para>Let's now create a new project, thanks to <menuchoice>
|
3529 | <guimenu>Project</guimenu>
|
3530 |
|
3531 | <guimenuitem>New</guimenuitem>
|
3532 | </menuchoice>. A window opens and allows us to see existing project
|
3533 | names (if any) and choose a name for our new project (made with simple
|
3534 | characters; « test » will be OK for our short test), which we write in
|
3535 | the field <guilabel>Project name</guilabel>. Then we push the
|
3536 | <guibutton>New project</guibutton> button.</para>
|
3537 |
|
3538 | <para>Now we must choose a LaTeX file as a source for the
|
3539 | multiple-choice. Several possibilities are shown:</para>
|
3540 |
|
3541 | <itemizedlist>
|
3542 | <listitem>
|
3543 | <para><guilabel>model</guilabel>: this choice allows to choose from
|
3544 | models shipped with AMC an exam to customize later.</para>
|
3545 | </listitem>
|
3546 |
|
3547 | <listitem>
|
3548 | <para><guilabel>file</guilabel>: this choice allows to choose a
|
3549 | LaTeX file already prepared for this exam. Somebody may have
|
3550 | prepared the exam for you, or you can have prepared the exam outside
|
3551 | AMC, using your favorite LaTeX editor.</para>
|
3552 | </listitem>
|
3553 |
|
3554 | <listitem>
|
3555 | <para><guilabel>empty</guilabel>: using this choice, an empty LaTeX
|
3556 | file will be created. You have to edit it to compose the exam from
|
3557 | zero.</para>
|
3558 | </listitem>
|
3559 |
|
3560 | <listitem>
|
3561 | <para><guilabel>archive</guilabel>: use this choice if you have a
|
3562 | zip or tgz archive containing the exam definition (LaTeX source
|
3563 | file, along with image files, parameters file for example). This
|
3564 | archive can be made by an external software. It can also be a backup
|
3565 | of one of your AMC projects.</para>
|
3566 | </listitem>
|
3567 | </itemizedlist>
|
3568 |
|
3569 | <para>For our test, let us choose <guilabel>model</guilabel>. The next
|
3570 | window presents the models: choose for example <guilabel>Simple
|
3571 | example</guilabel> from <guilabel>[EN] Documentation group</guilabel>.
|
3572 | Now we can edit it to modify the shape of the document or the questions,
|
3573 | thanks to the <guibutton>Edit LaTeX file</guibutton> button which
|
3574 | launches the default editor.</para>
|
3575 | </sect2>
|
3576 |
|
3577 | <sect2>
|
3578 | <title>Preparing the subject</title>
|
3579 |
|
3580 | <para>Preparing a project is done in two steps. First we must make the
|
3581 | reference documents from the LaTeX source file. This can be done by
|
3582 | clicking the <guibutton>Update documents</guibutton>. The following
|
3583 | documents are produced:</para>
|
3584 |
|
3585 | <itemizedlist>
|
3586 | <listitem>
|
3587 | <para>The <emphasis>question</emphasis>. This file can be printed to
|
3588 | distribute its pages to students (see below).</para>
|
3589 | </listitem>
|
3590 |
|
3591 | <listitem>
|
3592 | <para>The <emphasis>solution</emphasis>. We can check that the
|
3593 | chosen responses there are the good ones. It is also made to be
|
3594 | distributed to students.</para>
|
3595 | </listitem>
|
3596 | </itemizedlist>
|
3597 |
|
3598 | <para>When produced, those documents can be viewed (and possibly
|
3599 | printed) from the corresponding buttons.</para>
|
3600 |
|
3601 | <para>Now we can begin the last step of the preparation: analyzing the
|
3602 | layout. It can be launched with the button <guibutton>Layout
|
3603 | detection</guibutton>. This analysis detects, in every page of the
|
3604 | subject, the exact position of every element which must be analyzed in
|
3605 | the students' copies.</para>
|
3606 |
|
3607 | <para>To check whether the layouts have been correctly detected, we can
|
3608 | use the button <guibutton>Check layouts</guibutton>. A short insight
|
3609 | allows to check that red checkboxes are correctly located over the boxes
|
3610 | of the subject.</para>
|
3611 | </sect2>
|
3612 |
|
3613 | <sect2 id="printing">
|
3614 | <title id="printing.title">Printing and exam</title>
|
3615 |
|
3616 | <para>Two alternative workflows can be considered:</para>
|
3617 |
|
3618 | <itemizedlist>
|
3619 | <listitem>
|
3620 | <para>For the most robust, create as many exam sheets as necessary
|
3621 | for all your students, with different sheets numbers, and print them
|
3622 | all. Each page can be identified by its numbers and boxes at the
|
3623 | top, so that you can scan several times the same completed answer
|
3624 | sheet page carefree.</para>
|
3625 | </listitem>
|
3626 |
|
3627 | <listitem>
|
3628 | <para>Secondly, you can print a few subjects (or only one if you
|
3629 | want), and photocopy them to get one subject for all students.
|
3630 | Questions shuffling will be less efficient, and if you give several
|
3631 | times a scan of the same page, AMC won't be able to know about it
|
3632 | and will create an unwanted duplicate.</para>
|
3633 | </listitem>
|
3634 | </itemizedlist>
|
3635 |
|
3636 | <warning>
|
3637 | <para>To use this second workflow using photocopies, there must be
|
3638 | only one page for students to write on (using a separate answer sheet
|
3639 | can help you for this). If not, you won't be able to continue with
|
3640 | AMC! Indeed, it would be impossible for AMC to make the link between
|
3641 | two pages from the same student.</para>
|
3642 | </warning>
|
3643 |
|
3644 | <para>When the preparation is over, we can print the subject, and
|
3645 | distribute it to the students... In simple cases, we can directly print
|
3646 | from the viewer (after clicking the line <guilabel>Subject</guilabel> in
|
3647 | the list of work documents). When it is better to print the copies
|
3648 | separately (for example if copies contain multiple pages and when the
|
3649 | printer allows to staple them together), we shall rather use the button
|
3650 | <guibutton>Print copies</guibutton> after calculating the layout.</para>
|
3651 |
|
3652 | <important>
|
3653 | <para>When the subject is printed and distributed, we may no more
|
3654 | modify the <emphasis>work documents</emphasis> because they must
|
3655 | remain identical to distributed copies.</para>
|
3656 | </important>
|
3657 | </sect2>
|
3658 |
|
3659 | <sect2>
|
3660 | <title>Reading the copies</title>
|
3661 |
|
3662 | <para>Now we shall describe the input from students' copies, which can
|
3663 | be done automatically and/or manually.</para>
|
3664 |
|
3665 | <para>Let's move to the <guilabel>Data capture</guilabel> tab of the
|
3666 | graphical interface.</para>
|
3667 |
|
3668 | <sect3>
|
3669 | <title>Automated input</title>
|
3670 |
|
3671 | <para>For automatic recognition of the checked boxes in the students'
|
3672 | pages, they must be previously digitalized. I use a copier/scanner
|
3673 | which does it automatically (all the pages in a bundle without
|
3674 | interaction with me), with the following settings: 300 dpi, OCR mode
|
3675 | (for the characters' recognition, black and white without grayscale -
|
3676 | but the scanner does not process any character recognition), each scan
|
3677 | delivered as a single TIFF file per page.</para>
|
3678 |
|
3679 | <note>
|
3680 | <para>To analyze the scans, we must have them in one or several
|
3681 | image files (TIFF, JPG, PNG, etc.). Vector graphics formats (PDF, PS
|
3682 | or EPS) are also suitable: scans will then be converted into PNG by
|
3683 | AMC before analysis.</para>
|
3684 | </note>
|
3685 |
|
3686 | <note>
|
3687 | <para>When giving scans for automated data capture the first time,
|
3688 | you will have tell AMC which method you used: either different
|
3689 | papers printed, or photocopied papers (see <xref
|
3690 | endterm="printing.title" linkend="printing"/>).</para>
|
3691 | </note>
|
3692 |
|
3693 | <para>Then we select this set of scan files in the dialog opened by
|
3694 | the button <guibutton>Automated</guibutton> of the section
|
3695 | <guilabel>Data capture after examination</guilabel>, then we validate
|
3696 | with the <guibutton>OK</guibutton> button. AMC begins with Optical
|
3697 | Mark Recognition to detect the position of the four circle corner
|
3698 | marks on the scans, position the boxes, and detects the amount of
|
3699 | black pixels in each box.</para>
|
3700 |
|
3701 | <para>The result of the analysis of each page is indicated in the
|
3702 | lists of the section <guilabel>Diagnosis</guilabel>:</para>
|
3703 |
|
3704 | <itemizedlist>
|
3705 | <listitem>
|
3706 | <para>The value <emphasis>MSD</emphasis> (mean square deviation)
|
3707 | is an indication of the good framing of the marks (the four black
|
3708 | dots surrounding each copy). When it is too great, the framing
|
3709 | must be checked (right click on the page's line then choose
|
3710 | <guimenuitem>page</guimenuitem> to view the scanned page and the
|
3711 | boxes as they were detected).</para>
|
3712 | </listitem>
|
3713 |
|
3714 | <listitem>
|
3715 | <para>The value <emphasis>sensitivity</emphasis> is an indicator
|
3716 | of proximity of the filling of the boxes with the threshold. If it
|
3717 | is too great (from 8 to its max value 10), we must check whether
|
3718 | the boxes recognized as checked are the good ones (a right click
|
3719 | on the page's line the choose <guimenuitem>zoom</guimenuitem> to
|
3720 | view the set of boxes in the copy, verify whether the detection
|
3721 | worked correctly, and correct it if needed drag-and-dropping the
|
3722 | boxes images).</para>
|
3723 | </listitem>
|
3724 | </itemizedlist>
|
3725 | </sect3>
|
3726 |
|
3727 | <sect3>
|
3728 | <title>Manual input</title>
|
3729 |
|
3730 | <para>If we cannot use easily the scanner, or if, for a few copies,
|
3731 | the automated input did not work as expected, we can manage the input
|
3732 | manually. To do so, let's open the right window thanks to the button
|
3733 | <guibutton>Manual</guibutton> of the section <guilabel>Input of the
|
3734 | copies after exam</guilabel>. In that window, we can input the boxes
|
3735 | which have been checked ourselves (by clicking them) on the wanted
|
3736 | pages.</para>
|
3737 |
|
3738 | <note>
|
3739 | <para>Every manual input will overwrite results eventually coming
|
3740 | from a previous or posterior automated input for the same
|
3741 | page.</para>
|
3742 | </note>
|
3743 | </sect3>
|
3744 | </sect2>
|
3745 |
|
3746 | <sect2>
|
3747 | <title>Correction</title>
|
3748 |
|
3749 | <para>In the <guilabel>Marking</guilabel> tab of the graphic interface,
|
3750 | the part <guilabel>Marking</guilabel> allows us to deduce the scores of
|
3751 | the students from the inputs, but also to read the codes written by the
|
3752 | students (see <xref linkend="latex.codes"/>).</para>
|
3753 |
|
3754 | <sect3>
|
3755 | <title>Process</title>
|
3756 |
|
3757 | <para>The computation of the scores is launched with the button
|
3758 | <guibutton>Mark</guibutton>, but we must previously make the following
|
3759 | choice:</para>
|
3760 |
|
3761 | <itemizedlist>
|
3762 | <listitem>
|
3763 | <para>If we check the box <guilabel>Update marking
|
3764 | scale</guilabel>, the scoring strategy will be first extracted
|
3765 | from the LaTeX source file. This allows to try many strategies at
|
3766 | the end of the correction process. This action also updates which
|
3767 | answers are specified as correct or as wrong. Hence, potential
|
3768 | mistakes in the answers can be easily fixed after the exam. The
|
3769 | method to specify the strategy in the LaTeX file will be explained
|
3770 | in the section <xref endterm="bareme.title" linkend="bareme"/> (a
|
3771 | default scoring strategy is used when no indication is
|
3772 | given).</para>
|
3773 | </listitem>
|
3774 | </itemizedlist>
|
3775 |
|
3776 | <para>When we click the button <guibutton>Mark</guibutton>, the
|
3777 | correction is made (this can take some time if we also asked for the
|
3778 | reading of the scale).</para>
|
3779 | </sect3>
|
3780 |
|
3781 | <sect3 id="bareme">
|
3782 | <title id="bareme.title">Scoring strategy</title>
|
3783 |
|
3784 | <para>The strategy used to score the copies is indicated in the LaTeX
|
3785 | source file, with the command <command>scoring</command>. It can be
|
3786 | used in an environment <command>question</command> or
|
3787 | <command>questionmult</command>, to set it for every response, but
|
3788 | also in the environment <command>choices</command>, to give scaling
|
3789 | indications about a single response. The argument of the LaTeX command
|
3790 | scoring is made of indications like
|
3791 | <code><replaceable>parameter</replaceable>=<replaceable>value</replaceable></code>,
|
3792 | separated by comas. The usable parameters are the following (the table
|
3793 | shows also in which context those parameters can be used):</para>
|
3794 |
|
3795 | <informaltable>
|
3796 | <tgroup cols="6">
|
3797 | <colspec align="center" colname="param" colwidth="3pc"/>
|
3798 |
|
3799 | <colspec align="center" colname="q" colwidth="1pc"/>
|
3800 |
|
3801 | <colspec align="center" colname="r" colwidth="1pc"/>
|
3802 |
|
3803 | <colspec align="center" colname="qm" colwidth="1pc"/>
|
3804 |
|
3805 | <colspec align="center" colname="rm" colwidth="1pc"/>
|
3806 |
|
3807 | <colspec align="left" colname="valeur"/>
|
3808 |
|
3809 | <spanspec nameend="r" namest="q" spanname="simple"/>
|
3810 |
|
3811 | <spanspec nameend="rm" namest="qm" spanname="multiple"/>
|
3812 |
|
3813 | <tbody>
|
3814 | <row>
|
3815 | <entry morerows="1">parameter</entry>
|
3816 |
|
3817 | <entry spanname="simple">simple</entry>
|
3818 |
|
3819 | <entry spanname="multiple">multiple</entry>
|
3820 |
|
3821 | <entry morerows="1">value</entry>
|
3822 | </row>
|
3823 |
|
3824 | <row>
|
3825 | <entry>Q</entry>
|
3826 |
|
3827 | <entry>A</entry>
|
3828 |
|
3829 | <entry>Q</entry>
|
3830 |
|
3831 | <entry>A</entry>
|
3832 | </row>
|
3833 |
|
3834 | <row>
|
3835 | <entry>e</entry>
|
3836 |
|
3837 | <entry>●</entry>
|
3838 |
|
3839 | <entry/>
|
3840 |
|
3841 | <entry>●</entry>
|
3842 |
|
3843 | <entry/>
|
3844 |
|
3845 | <entry>The score given when responses are incoherent: many
|
3846 | boxes checked for a simple question, or, for a multiple
|
3847 | question, the box "none of the responses are correct" checked
|
3848 | while another box is also checked.</entry>
|
3849 | </row>
|
3850 |
|
3851 | <row>
|
3852 | <entry>v</entry>
|
3853 |
|
3854 | <entry>●</entry>
|
3855 |
|
3856 | <entry/>
|
3857 |
|
3858 | <entry>●</entry>
|
3859 |
|
3860 | <entry/>
|
3861 |
|
3862 | <entry>The score given in case of no response (no box is
|
3863 | checked).</entry>
|
3864 | </row>
|
3865 |
|
3866 | <row>
|
3867 | <entry>d</entry>
|
3868 |
|
3869 | <entry/>
|
3870 |
|
3871 | <entry/>
|
3872 |
|
3873 | <entry>●</entry>
|
3874 |
|
3875 | <entry/>
|
3876 |
|
3877 | <entry>An offset, i.e. a value added to every score not
|
3878 | relevant of parameters e and v.</entry>
|
3879 | </row>
|
3880 |
|
3881 | <row>
|
3882 | <entry>p</entry>
|
3883 |
|
3884 | <entry/>
|
3885 |
|
3886 | <entry/>
|
3887 |
|
3888 | <entry>●</entry>
|
3889 |
|
3890 | <entry/>
|
3891 |
|
3892 | <entry>The bottom score. If the calculation of the score in
|
3893 | that question yields a value below the bottom value, the sore
|
3894 | is set to the bottom value.</entry>
|
3895 | </row>
|
3896 |
|
3897 | <row>
|
3898 | <entry>b</entry>
|
3899 |
|
3900 | <entry>●</entry>
|
3901 |
|
3902 | <entry/>
|
3903 |
|
3904 | <entry>●</entry>
|
3905 |
|
3906 | <entry>●</entry>
|
3907 |
|
3908 | <entry>Score for a good response to a question.</entry>
|
3909 | </row>
|
3910 |
|
3911 | <row>
|
3912 | <entry>m</entry>
|
3913 |
|
3914 | <entry>●</entry>
|
3915 |
|
3916 | <entry/>
|
3917 |
|
3918 | <entry>●</entry>
|
3919 |
|
3920 | <entry>●</entry>
|
3921 |
|
3922 | <entry>Score for a bad response to a question.</entry>
|
3923 | </row>
|
3924 |
|
3925 | <row>
|
3926 | <entry/>
|
3927 |
|
3928 | <entry/>
|
3929 |
|
3930 | <entry>●</entry>
|
3931 |
|
3932 | <entry/>
|
3933 |
|
3934 | <entry/>
|
3935 |
|
3936 | <entry>Without parameter name (syntax:
|
3937 | <code>\scoring{2}</code>), this indicates the score to give if
|
3938 | the student has checked <emphasis>this</emphasis>
|
3939 | response.</entry>
|
3940 | </row>
|
3941 |
|
3942 | <row>
|
3943 | <entry>auto</entry>
|
3944 |
|
3945 | <entry>●</entry>
|
3946 |
|
3947 | <entry/>
|
3948 |
|
3949 | <entry/>
|
3950 |
|
3951 | <entry/>
|
3952 |
|
3953 | <entry>With this parameter, the value of the response numbered
|
3954 | <replaceable>i</replaceable> will be
|
3955 | <replaceable>auto</replaceable>+<replaceable>i</replaceable>-1.
|
3956 | This option is mainly used with
|
3957 | <code>\QuestionIndicative</code> (see section <xref
|
3958 | endterm="latex.qr.title" linkend="latex.qr"/>).</entry>
|
3959 | </row>
|
3960 |
|
3961 | <row>
|
3962 | <entry>mz</entry>
|
3963 |
|
3964 | <entry>●</entry>
|
3965 |
|
3966 | <entry/>
|
3967 |
|
3968 | <entry>●</entry>
|
3969 |
|
3970 | <entry/>
|
3971 |
|
3972 | <entry>This parameter is used for a "maximum or zero" scoring:
|
3973 | if all the answers are correct, the score is
|
3974 | <replaceable>mz</replaceable>. If not, the score is
|
3975 | zero.</entry>
|
3976 | </row>
|
3977 |
|
3978 | <row>
|
3979 | <entry>haut</entry>
|
3980 |
|
3981 | <entry/>
|
3982 |
|
3983 | <entry/>
|
3984 |
|
3985 | <entry>●</entry>
|
3986 |
|
3987 | <entry/>
|
3988 |
|
3989 | <entry>When you give this parameter a value
|
3990 | <replaceable>n</replaceable>, the score given for a perfect
|
3991 | response will be <replaceable>n</replaceable>, and one point
|
3992 | will be withdrawn for each error.</entry>
|
3993 | </row>
|
3994 |
|
3995 | <row>
|
3996 | <entry>MAX</entry>
|
3997 |
|
3998 | <entry>●</entry>
|
3999 |
|
4000 | <entry/>
|
4001 |
|
4002 | <entry>●</entry>
|
4003 |
|
4004 | <entry/>
|
4005 |
|
4006 | <entry>Gives the maximal value given for the question (for a
|
4007 | "question scored 5", one can write MAX=5). To be used only
|
4008 | when it is not the same value as when one replies every good
|
4009 | response.</entry>
|
4010 | </row>
|
4011 |
|
4012 | <row>
|
4013 | <entry>formula</entry>
|
4014 |
|
4015 | <entry>●</entry>
|
4016 |
|
4017 | <entry/>
|
4018 |
|
4019 | <entry>●</entry>
|
4020 |
|
4021 | <entry/>
|
4022 |
|
4023 | <entry>Gives the score to be given for the question, often
|
4024 | using a formula that uses some variables (see <xref
|
4025 | linkend="scoring.global"/>), without taking <code>b</code> and
|
4026 | <code>m</code> values into account.</entry>
|
4027 | </row>
|
4028 |
|
4029 | <row>
|
4030 | <entry>set.<replaceable>XXX</replaceable></entry>
|
4031 |
|
4032 | <entry>●</entry>
|
4033 |
|
4034 | <entry>●</entry>
|
4035 |
|
4036 | <entry>●</entry>
|
4037 |
|
4038 | <entry>●</entry>
|
4039 |
|
4040 | <entry>Gives a particular value to the variable named
|
4041 | <replaceable>XXX</replaceable>, that will be available in a
|
4042 | <code>formula</code>. In an answer context, the value is
|
4043 | associated to the variable only if the box is ticked. As a
|
4044 | particular case, give a non-null value to the variable
|
4045 | <varname>INVALID</varname> to declare the responses incoherent
|
4046 | (so that the score will be given by the variable
|
4047 | <code>e</code>).</entry>
|
4048 | </row>
|
4049 |
|
4050 | <row>
|
4051 | <entry>default.<replaceable>XXX</replaceable></entry>
|
4052 |
|
4053 | <entry>●</entry>
|
4054 |
|
4055 | <entry/>
|
4056 |
|
4057 | <entry>●</entry>
|
4058 |
|
4059 | <entry/>
|
4060 |
|
4061 | <entry>Gives a value to the variable
|
4062 | <replaceable>XXX</replaceable> in the case when no ticked
|
4063 | boxes gave a value to <replaceable>XXX</replaceable>.</entry>
|
4064 | </row>
|
4065 |
|
4066 | <row>
|
4067 | <entry>requires.<replaceable>XXX</replaceable></entry>
|
4068 |
|
4069 | <entry>●</entry>
|
4070 |
|
4071 | <entry/>
|
4072 |
|
4073 | <entry>●</entry>
|
4074 |
|
4075 | <entry/>
|
4076 |
|
4077 | <entry>Tells that the variable <replaceable>XXX</replaceable>
|
4078 | has to be defined, unless the data is told
|
4079 | <emphasis>incoherent</emphasis> and the question scored with
|
4080 | the value of <code>e</code>.</entry>
|
4081 | </row>
|
4082 | </tbody>
|
4083 | </tgroup>
|
4084 | </informaltable>
|
4085 |
|
4086 | <para>The default scale for a simple question is
|
4087 | <code>e=0,v=0,b=1,m=0</code>, which gives one point for a good
|
4088 | response and no point in the other cases. The default scaling for a
|
4089 | multiple question is <code>e=0,v=0,b=1,m=0,p=-100,d=0</code>, which
|
4090 | gives a point for every checked box, either good or not (good box
|
4091 | checked or wrong box not checked).</para>
|
4092 |
|
4093 | <para>The LaTeX command <command>\scoring</command> can also be used
|
4094 | outside question definitions, for whole examination parameters:</para>
|
4095 |
|
4096 | <itemizedlist>
|
4097 | <listitem>
|
4098 | <para><code>SUF=</code><replaceable>x</replaceable> gives a total
|
4099 | number of points sufficient to get the maximal mark. For example,
|
4100 | with 10 for the maximal mark and parameter <code>SUF=8</code>, a
|
4101 | student getting a total of 6 points will get mark 6/8*10=7.5,
|
4102 | whatever the value of the total number of points for a perfect
|
4103 | answer sheet.</para>
|
4104 | </listitem>
|
4105 |
|
4106 | <listitem>
|
4107 | <para><code>allowempty=<replaceable>x</replaceable></code> allows
|
4108 | the student to leave <replaceable>x</replaceable> questions
|
4109 | unanswered. When summing up questions scores,
|
4110 | <replaceable>x</replaceable> unanswered questions will be
|
4111 | canceled.</para>
|
4112 | </listitem>
|
4113 | </itemizedlist>
|
4114 |
|
4115 | <para>Using all of these parameters in combination allows to define
|
4116 | many kinds of scoring strategies, as in the following example:</para>
|
4117 |
|
4118 | <para> |
4119 | DESC: Example (from the documentation) with different scoring strategies.--><programlisting
|
4120 | id="modeles-scoring.tex" linenumbering="numbered">\documentclass{article}
|
4121 |
|
4122 | \usepackage[utf8x]{inputenc}
|
4123 | \usepackage[T1]{fontenc}
|
4124 |
|
4125 | \usepackage[box,completemulti]{automultiplechoice}
|
4126 |
|
4127 | \begin{document}
|
4128 |
|
4129 | \element{qqs}{
|
4130 | \begin{question}{good choice}
|
4131 | How many points would you like for this question?
|
4132 | \begin{choices}
|
4133 | \correctchoice{Maximum: 10}\scoring{10}
|
4134 | \wrongchoice{Only 5}\scoring{5}
|
4135 | \wrongchoice{Two will be enough}\scoring{2}
|
4136 | \wrongchoice{None, thanks}\scoring{0}
|
4137 | \end{choices}
|
4138 | \end{question}
|
4139 | }
|
4140 |
|
4141 | \element{qqs}{
|
4142 | \begin{questionmult}{added}
|
4143 | Get free points checking the following boxes:
|
4144 | \begin{choices}
|
4145 | \correctchoice{2 points}\scoring{b=2}
|
4146 | \wrongchoice{One negative point!}\scoring{b=0,m=-1}
|
4147 | \correctchoice{3 points}\scoring{b=3}
|
4148 | \correctchoice{1 point}
|
4149 | \correctchoice{Half point}\scoring{b=0.5}
|
4150 | \end{choices}
|
4151 | \end{questionmult}
|
4152 | }
|
4153 |
|
4154 | \element{qqs}{
|
4155 | \begin{questionmult}{3 or zero}\scoring{mz=3}
|
4156 | Only a perfect response will be scored 3 points - otherwise, null score.
|
4157 | \begin{choices}
|
4158 | \wrongchoice{Wrong}
|
4159 | \wrongchoice{Wrong}
|
4160 | \correctchoice{Right}
|
4161 | \correctchoice{Right}
|
4162 | \end{choices}
|
4163 | \end{questionmult}
|
4164 | }
|
4165 |
|
4166 | \element{qqs}{
|
4167 | \begin{questionmult}{all for 2}\scoring{haut=2}
|
4168 | Perfect response scored 2 points, and give back one point for any error...
|
4169 | \begin{choices}
|
4170 | \correctchoice{Right}
|
4171 | \correctchoice{This one is OK}
|
4172 | \correctchoice{Yes!}
|
4173 | \wrongchoice{False!}
|
4174 | \wrongchoice{Don't check!}
|
4175 | \end{choices}
|
4176 | \end{questionmult}
|
4177 | }
|
4178 |
|
4179 | \element{qqs}{
|
4180 | \begin{question}{attention}\scoring{b=2}
|
4181 | Some very bad answer yields here to a negative score (-2), but the correct answer is rewarded 2 points.
|
4182 | \begin{choices}
|
4183 | \correctchoice{Good!}
|
4184 | \wrongchoice{Not correct}
|
4185 | \wrongchoice{Not correct}
|
4186 | \wrongchoice{Not correct}
|
4187 | \wrongchoice{Very bad answer!}\scoring{-2}
|
4188 | \end{choices}
|
4189 | \end{question}
|
4190 | }
|
4191 |
|
4192 | \element{qqs}{
|
4193 | \begin{questionmult}{as you like}
|
4194 | Choose how much points you need:
|
4195 | \begin{choices}
|
4196 | \correctchoice{You take two points here}\scoring{b=2}
|
4197 | \wrongchoice{Check to give 3 points}\scoring{b=0,m=3}
|
4198 | \correctchoice{Get one if checked, but give one if not}\scoring{m=-1}
|
4199 | \end{choices}
|
4200 | \end{questionmult}
|
4201 | }
|
4202 |
|
4203 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
4204 |
|
4205 | \onecopy{20}{
|
4206 |
|
4207 | \noindent{\bf QCM \hfill Scoring strategy test}
|
4208 |
|
4209 | \vspace*{.5cm}
|
4210 | \begin{minipage}{.4\linewidth}
|
4211 | \centering\large\bf Test\\ Jan. 2008\end{minipage}
|
4212 | \namefield{\fbox{\begin{minipage}{.5\linewidth}
|
4213 | Name:
|
4214 |
|
4215 | \vspace*{.5cm}\dotfill
|
4216 | \vspace*{1mm}
|
4217 | \end{minipage}}}
|
4218 |
|
4219 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
4220 |
|
4221 | \shufflegroup{qqs}
|
4222 |
|
4223 | \insertgroup{qqs}
|
4224 |
|
4225 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
4226 |
|
4227 | \clearpage
|
4228 |
|
4229 | }
|
4230 |
|
4231 | \end{document}</programlisting></para>
|
4232 | </sect3>
|
4233 |
|
4234 | <sect3 id="scoring.global">
|
4235 | <title>Global scoring strategy</title>
|
4236 |
|
4237 | <para>To use a strategy globally for a set of questions, one can
|
4238 | define it in a LaTeX command, as in the following example:</para>
|
4239 |
|
4240 | <programlisting>\def\barQmult{haut=3,p=-1}
|
4241 |
|
4242 | \begin{questionmult}\scoring{\barQmult}
|
4243 | [...]
|
4244 | \end{questionmult}</programlisting>
|
4245 |
|
4246 | <para>Another possibility comes with the LaTeX commands
|
4247 | <command>\scoringDefaultS</command> and
|
4248 | <command>\scoringDefaultM</command>, to be used in the begin of the
|
4249 | document (outside the command <command>\onecopy</command>), which
|
4250 | allow to give default values for the scoring strategy of simple and
|
4251 | multiple questions:</para>
|
4252 |
|
4253 | <programlisting>\scoringDefaultM{haut=3,p=-1}</programlisting>
|
4254 |
|
4255 | <para>If you use <command>formula</command> with
|
4256 | <command>\scoringDefautM</command> or
|
4257 | <command>\scoringDefautS</command>, you must cancel it to score
|
4258 | different questions with a specific scoring.</para>
|
4259 |
|
4260 | <programlisting>
|
4261 | \begin{questionmult}\scoring{b=1,m=-0.5,formula=}
|
4262 | [...]
|
4263 | \end{questionmult}</programlisting>
|
4264 |
|
4265 | <para>In some cases, defining a global strategy can be interesting
|
4266 | <emphasis>depending of the number of proposed responses</emphasis>. To
|
4267 | do so, just input the value <varname>N</varname>. For example, to get
|
4268 | a scale yielding 4 as the maximal score and such as the mean expected
|
4269 | score of a student checking randomly the boxes is 1, one can use the
|
4270 | scale <code>d=4,b=0,m=-(4-1)*2/N</code> (which give the score -2 if
|
4271 | every response is false, i.e. the wrong boxes have been checked and
|
4272 | the right boxes are not). Operations allowed in those formulas are the
|
4273 | four simple operations (<code>+</code> <code>-</code> <code>*</code>
|
4274 | <code>/</code>), cases operator <code>( ? : )</code>, parenthesis and
|
4275 | all perl operators.</para>
|
4276 |
|
4277 | <para>Other variables can also be used:</para>
|
4278 |
|
4279 | <itemizedlist>
|
4280 | <listitem>
|
4281 | <para><varname>N</varname> is the number of proposed responses,
|
4282 | without counting the response eventually added by the option
|
4283 | <option>completemulti</option>.</para>
|
4284 | </listitem>
|
4285 |
|
4286 | <listitem>
|
4287 | <para><varname>NB</varname> is the number of correct responses to
|
4288 | the question (without taking in account checked or non-checked
|
4289 | boxes).</para>
|
4290 | </listitem>
|
4291 |
|
4292 | <listitem>
|
4293 | <para><varname>NBC</varname> is the count of correct responses
|
4294 | which have been checked.</para>
|
4295 | </listitem>
|
4296 |
|
4297 | <listitem>
|
4298 | <para><varname>NM</varname> is the number of wrong responses to
|
4299 | the question (without taking in account checked or non-checked
|
4300 | boxes).</para>
|
4301 | </listitem>
|
4302 |
|
4303 | <listitem>
|
4304 | <para><varname>NMC</varname> is the count of wrong responses which
|
4305 | have been checked.</para>
|
4306 | </listitem>
|
4307 |
|
4308 | <listitem>
|
4309 | <para><varname>IS</varname> is set to 1 if the question is simple
|
4310 | and 0 if not.</para>
|
4311 | </listitem>
|
4312 |
|
4313 | <listitem>
|
4314 | <para><varname>IMULT</varname> is set to 1 if the question is
|
4315 | multiple and 0 if not.</para>
|
4316 | </listitem>
|
4317 | </itemizedlist>
|
4318 | </sect3>
|
4319 |
|
4320 | <sect3 id="scoring-result">
|
4321 | <title>From scoring strategy to students marks</title>
|
4322 |
|
4323 | <para>Here is how students' marks are computed: for every
|
4324 | student,</para>
|
4325 |
|
4326 | <orderedlist>
|
4327 | <listitem>
|
4328 | <para>The scoring strategy is applied for each question in turn,
|
4329 | to get the <emphasis>questions scores</emphasis>.</para>
|
4330 | </listitem>
|
4331 |
|
4332 | <listitem>
|
4333 | <para>All questions (except indicative ones) scores are added to
|
4334 | get the student <emphasis>total score</emphasis>.</para>
|
4335 | </listitem>
|
4336 |
|
4337 | <listitem>
|
4338 | <para>If a positive <emphasis>maximal mark</emphasis> is given as
|
4339 | a parameter (in the <guilabel>Project</guilabel> tab of the
|
4340 | <menuchoice>
|
4341 | <guimenu>Edit</guimenu>
|
4342 |
|
4343 | <guimenuitem>Preferences</guimenuitem>
|
4344 | </menuchoice> window), the total score of the student is divided
|
4345 | by the <emphasis>maximum total score</emphasis> (which is the
|
4346 | total score for a perfect copy), and multiplied by the
|
4347 | <emphasis>maximum mark</emphasis>, to get the student's
|
4348 | <emphasis>mark</emphasis>. This way, if the student answered
|
4349 | perfectly to all questions, his mark will be the maximum mark. If
|
4350 | you set the maximum mark to 100, the student's mark can be seen as
|
4351 | a percentage of good answers.</para>
|
4352 | </listitem>
|
4353 | </orderedlist>
|
4354 | </sect3>
|
4355 | </sect2>
|
4356 |
|
4357 | <sect2 id="sec.students.id">
|
4358 | <title>Identification of the students</title>
|
4359 |
|
4360 | <para>This stage is not mandatory. It deals with associating each copy
|
4361 | with a student. The name of the student is not read in an automated
|
4362 | fashion, but two reasonable possibilities are proposed:</para>
|
4363 |
|
4364 | <orderedlist>
|
4365 | <listitem>
|
4366 | <para>It is possible to ask students to identify themselves on their
|
4367 | copy with their student number, which will be written by checking
|
4368 | one box per digit. A LaTeX command is designed to use this method on
|
4369 | the copy (see the part <xref linkend="latex.codes"/>). After the
|
4370 | exam, copies will be identified automatically taking into account a
|
4371 | list matching the students' numbers and their names.</para>
|
4372 | </listitem>
|
4373 |
|
4374 | <listitem>
|
4375 | <para>With no input of the students' numbers, or in the case when
|
4376 | the automated identification has not succeeded perfectly (for
|
4377 | example when a student made a wrong input), the graphical interface
|
4378 | allows an assisted manual association.</para>
|
4379 | </listitem>
|
4380 | </orderedlist>
|
4381 |
|
4382 | <para>Let's first move to the <guilabel>Marking</guilabel> tab of the
|
4383 | graphical interface.</para>
|
4384 |
|
4385 | <sect3 id="liste.etudiants">
|
4386 | <title id="liste.etudiants.title">List of the students</title>
|
4387 |
|
4388 | <para>We must previously supply a list of students. This list can
|
4389 | obviously be used for many multiple-choices tests. This list is a CSV
|
4390 | file with optional comments lines at the beginning with prefix
|
4391 | `<code>#</code>', as in the following example:<programlisting># STUDENTS / 1ST YEAR
|
4392 | surname:name:id:email
|
4393 | Bienvenüe:Alexis:001:paamc@passoire.fr
|
4394 | Boulix:Jojo:002:jojo.boulix@rien.xx
|
4395 | Noël:Père:003:pere.noel@pole-nord.xx</programlisting></para>
|
4396 |
|
4397 | <para>The first lines of the file which begin with the character
|
4398 | `<code>#'</code> are comments. The first of the other lines contains
|
4399 | (separated by the character <code>`:'</code>) the column titles. Then,
|
4400 | with one line per student, we write the corresponding information.
|
4401 | There must be at least one column named <code>name</code> or
|
4402 | <code>surname</code>.</para>
|
4403 |
|
4404 | <note>
|
4405 | <para>One can replace the separator <code>`:'</code> by a comma, a
|
4406 | semicolon or a tabulation. However the same separator must be used
|
4407 | everywhere in the file which contains the list of students. The used
|
4408 | separator is detected by taking the character (out of the four
|
4409 | possible characters) which appears most frequently in the first line
|
4410 | which is not a comment.</para>
|
4411 |
|
4412 | <para>Any CSV file should be suitable.</para>
|
4413 | </note>
|
4414 |
|
4415 | <warning>
|
4416 | <para>
|
4417 | Type carefully the CSV file to send the same test to multiple recipients.
|
4418 | </para>
|
4419 | <itemizedlist>
|
4420 | <listitem>A semi-colon or colon or tabulation to separate the headers and a comma to separate the email adresses.</listitem>
|
4421 | <listitem>A comma to separate the headers and email adresses between inverted comma/quotation marks.</listitem>
|
4422 | </itemizedlist>
|
4423 | <programlisting>
|
4424 | name,forenama,email
|
4425 | Boulix,Jojo,"jojo@boulix.fr,parents@boulix.com"
|
4426 | </programlisting>
|
4427 | </warning>
|
4428 |
|
4429 | <para>The prepared list of students will then be selected with the
|
4430 | button <guibutton>Set file</guibutton> in the <guilabel>Students
|
4431 | identification</guilabel> section. We must also choose one of the
|
4432 | columns as a unique key which will identify the students (generally,
|
4433 | one chooses the column containing the student's number). Last, to
|
4434 | prepare an automated association, we must choose the name of the
|
4435 | relevant code used in the LaTeX command <command>AMCcode</command> (if
|
4436 | used).</para>
|
4437 | </sect3>
|
4438 |
|
4439 | <sect3>
|
4440 | <title>Association</title>
|
4441 |
|
4442 | <sect4>
|
4443 | <title>Automated association</title>
|
4444 |
|
4445 | <para>When we push the button <guibutton>Automatic</guibutton> in
|
4446 | the part <guilabel>Students identification</guilabel>, matching of
|
4447 | the codes given by the students begins. We can watch or improve the
|
4448 | result later with a (partial) manual association.</para>
|
4449 |
|
4450 | <warning>
|
4451 | <para>To make an automated association, at least one command
|
4452 | <command>AMCcode</command> is required (see <xref
|
4453 | linkend="latex.codes"/>) in the LaTeX source file, as well as a
|
4454 | list of students with a column containing a reference (generally a
|
4455 | number of student) which will be identical to the input given in
|
4456 | the boxes produced by the command
|
4457 | <command>AMCcode</command>.</para>
|
4458 | </warning>
|
4459 | </sect4>
|
4460 |
|
4461 | <sect4>
|
4462 | <title>Manual association</title>
|
4463 |
|
4464 | <para>To open the window allowing recognition of the students'
|
4465 | names, let's click on <guibutton>Manual</guibutton> button in the
|
4466 | <guilabel>Students identification</guilabel> section. This window is
|
4467 | made of an upper part which presents in sequence images of the names
|
4468 | written by the students, a lower part containing a button for each
|
4469 | student from the list we supplied, and a right part allowing to
|
4470 | browse easily the copies to be identified. Let's click the button
|
4471 | matching the name written in the upper part for each presented page
|
4472 | (by default, only the copies not or badly identified are presented -
|
4473 | this can be changed by checking the box
|
4474 | <guilabel>associated</guilabel>). When every page is read, a blue
|
4475 | background appears instead of the names, and we just need to click
|
4476 | the <guibutton>Save</guibutton> button to end with
|
4477 | association.</para>
|
4478 | </sect4>
|
4479 | </sect3>
|
4480 | </sect2>
|
4481 |
|
4482 | <sect2>
|
4483 | <title>Exporting the scores list</title>
|
4484 |
|
4485 | <para>At this stage, we can get the list of scores under various formats
|
4486 | (currently CSV and OpenOffice), with the button
|
4487 | <guibutton>Export</guibutton>. This export will be followed by the
|
4488 | opening of the produced file by the appropriate software (if
|
4489 | available).</para>
|
4490 |
|
4491 | <sect3>
|
4492 | <title>Export to ODS (OpenOffice, LibreOffice)</title>
|
4493 |
|
4494 | <para>In the exported file, the following colors are used:</para>
|
4495 |
|
4496 | <variablelist>
|
4497 | <varlistentry>
|
4498 | <term>gray</term>
|
4499 |
|
4500 | <listitem>
|
4501 | <para>is used for <emphasis>non applicable</emphasis>. This may
|
4502 | be for example scores for absentees, or scores corresponding to
|
4503 | a question that was not shown to the corresponding
|
4504 | student.</para>
|
4505 | </listitem>
|
4506 | </varlistentry>
|
4507 |
|
4508 | <varlistentry>
|
4509 | <term>yellow</term>
|
4510 |
|
4511 | <listitem>
|
4512 | <para>is used for questions that has not been answered by the
|
4513 | student.</para>
|
4514 | </listitem>
|
4515 | </varlistentry>
|
4516 |
|
4517 | <varlistentry>
|
4518 | <term>red</term>
|
4519 |
|
4520 | <listitem>
|
4521 | <para>is used for questions with an <emphasis>invalid</emphasis>
|
4522 | answer: the student ticked several boxes in a simple question,
|
4523 | or he ticked some boxes <emphasis>and</emphasis> the box
|
4524 | <emphasis>None of these answers are correct</emphasis>.</para>
|
4525 | </listitem>
|
4526 | </varlistentry>
|
4527 |
|
4528 | <varlistentry>
|
4529 | <term>purple</term>
|
4530 |
|
4531 | <listitem>
|
4532 | <para>used for indicative questions.</para>
|
4533 | </listitem>
|
4534 | </varlistentry>
|
4535 | </variablelist>
|
4536 | </sect3>
|
4537 | </sect2>
|
4538 |
|
4539 | <sect2>
|
4540 | <title>Annotation</title>
|
4541 |
|
4542 | <para>When we push the button <guibutton>Annotate papers</guibutton>,
|
4543 | copies annotation will begin: on every scan, the following annotations
|
4544 | will be made (these are the default annotations, they can be
|
4545 | configured):</para>
|
4546 |
|
4547 | <itemizedlist>
|
4548 | <listitem>
|
4549 | <para>The boxes wrongly checked by the student will be circled in
|
4550 | red;</para>
|
4551 | </listitem>
|
4552 |
|
4553 | <listitem>
|
4554 | <para>the non-checked boxes which should have been are checked in
|
4555 | red;</para>
|
4556 | </listitem>
|
4557 |
|
4558 | <listitem>
|
4559 | <para>the checked boxes which had to be checked are checked in
|
4560 | blue;</para>
|
4561 | </listitem>
|
4562 |
|
4563 | <listitem>
|
4564 | <para>for each question, obtained and maximal scores are
|
4565 | indicated;</para>
|
4566 | </listitem>
|
4567 |
|
4568 | <listitem>
|
4569 | <para>the global score of the copy is indicated on the first page of
|
4570 | the copy.</para>
|
4571 | </listitem>
|
4572 | </itemizedlist>
|
4573 |
|
4574 | <para>The text written on the first page of the copies can be configured
|
4575 | (<menuchoice>
|
4576 | <guimenu>Edit</guimenu>
|
4577 |
|
4578 | <guimenuitem>Preferences</guimenuitem>
|
4579 |
|
4580 | <guimenuitem>Annotation</guimenuitem>
|
4581 |
|
4582 | <guimenuitem>Header</guimenuitem>
|
4583 | </menuchoice> or <menuchoice>
|
4584 | <guimenu>Edit</guimenu>
|
4585 |
|
4586 | <guimenuitem>Preferences</guimenuitem>
|
4587 |
|
4588 | <guimenuitem>Project</guimenuitem>
|
4589 |
|
4590 | <guimenuitem>Papers annotation</guimenuitem>
|
4591 |
|
4592 | <guimenuitem>Header text</guimenuitem>
|
4593 | </menuchoice>). Substitutions will be made within the provided text
|
4594 | (please have a look at <xref linkend="scoring-result"/> for some details
|
4595 | on the meaning of those values):</para>
|
4596 |
|
4597 | <variablelist>
|
4598 | <varlistentry>
|
4599 | <term><literal>%S</literal></term>
|
4600 |
|
4601 | <listitem>
|
4602 | <para>is replaced by the student's <emphasis>total
|
4603 | score</emphasis>.</para>
|
4604 | </listitem>
|
4605 | </varlistentry>
|
4606 |
|
4607 | <varlistentry>
|
4608 | <term><literal>%M</literal></term>
|
4609 |
|
4610 | <listitem>
|
4611 | <para>is replaced by the <emphasis>maximum total
|
4612 | score</emphasis>.</para>
|
4613 | </listitem>
|
4614 | </varlistentry>
|
4615 |
|
4616 | <varlistentry>
|
4617 | <term><literal>%s</literal></term>
|
4618 |
|
4619 | <listitem>
|
4620 | <para>is replaced by the student's
|
4621 | <emphasis>mark</emphasis>.</para>
|
4622 | </listitem>
|
4623 | </varlistentry>
|
4624 |
|
4625 | <varlistentry>
|
4626 | <term><literal>%m</literal></term>
|
4627 |
|
4628 | <listitem>
|
4629 | <para>is replaced by the <emphasis>maximum mark</emphasis>.</para>
|
4630 | </listitem>
|
4631 | </varlistentry>
|
4632 |
|
4633 | <varlistentry>
|
4634 | <term><literal>%(ID)</literal></term>
|
4635 |
|
4636 | <listitem>
|
4637 | <para>is replaced by the student's name.</para>
|
4638 | </listitem>
|
4639 | </varlistentry>
|
4640 |
|
4641 | <varlistentry>
|
4642 | <term><literal>%(<replaceable>COL</replaceable>)</literal></term>
|
4643 |
|
4644 | <listitem>
|
4645 | <para>is replaced by the value of column
|
4646 | <replaceable>COL</replaceable> in the students list for the
|
4647 | current student.</para>
|
4648 | </listitem>
|
4649 | </varlistentry>
|
4650 | </variablelist>
|
4651 |
|
4652 | <para>This operation is made for each page, giving as a result PDF
|
4653 | annotated papers. The name of the PDF file which will contain the
|
4654 | corrected copy of a student is based on the template indicated in the
|
4655 | field <guilabel>File name model</guilabel>. In that template, every
|
4656 | substring as « (<replaceable>col</replaceable>) » is replaced by the
|
4657 | contents of the column named <code><replaceable>col</replaceable></code>
|
4658 | in the file containing the list of students (see section <xref
|
4659 | endterm="liste.etudiants.title" linkend="liste.etudiants"/>). If we let
|
4660 | this field empty, a default value is built up based on the student's
|
4661 | name and student number.</para>
|
4662 |
|
4663 | <sect3 id="marks.position">
|
4664 | <title id="marks.position.title">Marks' position</title>
|
4665 |
|
4666 | <para>You may choose marks's position with the menu <menuchoice>
|
4667 | <guimenu>Edition</guimenu>
|
4668 |
|
4669 | <guimenuitem>Preference</guimenuitem>
|
4670 |
|
4671 | <guimenuitem>Project</guimenuitem>
|
4672 |
|
4673 | <guimenuitem>Marks position</guimenuitem>
|
4674 | </menuchoice></para>
|
4675 |
|
4676 | <para>Default choices</para>
|
4677 |
|
4678 | <itemizedlist>
|
4679 | <listitem>
|
4680 | (none)
|
4681 | </listitem>
|
4682 |
|
4683 | <listitem>
|
4684 | In the margin.
|
4685 | </listitem>
|
4686 |
|
4687 | <listitem>
|
4688 | In the both margins
|
4689 | </listitem>
|
4690 |
|
4691 | <listitem>
|
4692 | Beside the boxes.
|
4693 | </listitem>
|
4694 |
|
4695 | <listitem>
|
4696 | Where defined in the source (see
|
4697 |
|
4698 | <xref endterm="marks.display.area.title"
|
4699 | linkend="marks.display.area"/>
|
4700 |
|
4701 | ).
|
4702 | </listitem>
|
4703 | </itemizedlist>
|
4704 | </sect3>
|
4705 | </sect2>
|
4706 | </sect1>
|
4707 |
|
4708 | <sect1>
|
4709 | <title>Alternative usages</title>
|
4710 |
|
4711 | <sect2>
|
4712 | <title>Photocopied subject</title>
|
4713 |
|
4714 | <para>As explained in <xref endterm="printing.title"
|
4715 | linkend="printing"/>, it is not always possible to photocopy one answer
|
4716 | sheet to give to several students. However, when using a separate answer
|
4717 | sheet and when questions and answers are not to be shuffled, you can
|
4718 | photocopy the subject, and print all the answer sheets separately. We
|
4719 | detail here the proper way to follow.</para>
|
4720 |
|
4721 | <itemizedlist>
|
4722 | <listitem>
|
4723 | <para>Use <option>separateanswersheet</option> package option (see
|
4724 | <xref endterm="sec.package.options.title"
|
4725 | linkend="sec.package.options"/>).</para>
|
4726 | </listitem>
|
4727 |
|
4728 | <listitem>
|
4729 | <para>Write the subject before calling <command>onecopy</command>
|
4730 | command or outside <command>examcopy</command> environment.</para>
|
4731 | </listitem>
|
4732 |
|
4733 | <listitem>
|
4734 | <para>Use <command>\AMCformS</command> to output answer boxes in
|
4735 | each answer sheet, inside
|
4736 | <command>onecopy</command>/<command>examcopy</command>.</para>
|
4737 | </listitem>
|
4738 | </itemizedlist>
|
4739 |
|
4740 | <para>Here is a minimal example:</para>
|
4741 |
|
4742 | <programlisting>\documentclass[a4paper]{article}
|
4743 | \usepackage[separateanswersheet]{automultiplechoice}
|
4744 | \begin{document}
|
4745 |
|
4746 | \noindent{\bf Subject}
|
4747 |
|
4748 | \begin{question}{sum}
|
4749 | How much are one plus one?
|
4750 | \begin{choices}
|
4751 | \wrongchoice{1}
|
4752 | \correctchoice{2}
|
4753 | \wrongchoice{3}
|
4754 | \end{choices}
|
4755 | \end{question}
|
4756 |
|
4757 | \begin{question}{k2}
|
4758 | How high is the K2?
|
4759 | \begin{choices}
|
4760 | \wrongchoice{around 8000m}
|
4761 | \correctchoice{around 8600m}
|
4762 | \wrongchoice{around 9000m}
|
4763 | \end{choices}
|
4764 | \end{question}
|
4765 |
|
4766 | \AMCcleardoublepage
|
4767 |
|
4768 | \onecopy{5}{
|
4769 |
|
4770 | \AMCformBegin
|
4771 |
|
4772 | {\large\bf Answer sheet:}
|
4773 | \hfill \namefield{\fbox{
|
4774 | \begin{minipage}{.5\linewidth}
|
4775 | Name:
|
4776 |
|
4777 | \vspace*{.5cm}\dotfill
|
4778 | \vspace*{1mm}
|
4779 | \end{minipage}
|
4780 | }}
|
4781 |
|
4782 | \AMCformS
|
4783 |
|
4784 | }
|
4785 |
|
4786 | \end{document}
|
4787 | </programlisting>
|
4788 |
|
4789 | <para>You will get from this LaTeX file one subject (sheet numbered 0)
|
4790 | to print and photocopy to all students, and several answer sheets to
|
4791 | print (one for each student).</para>
|
4792 | </sect2>
|
4793 |
|
4794 | <sect2 id="postcorrect">
|
4795 | <title>Post correcting</title>
|
4796 |
|
4797 | <para>Suppose you want to use a single generic answer sheet for all your
|
4798 | exams. You simply print answer boxes on it (say 5 for each questions,
|
4799 | and 40 questions), and give the students a subject that you wrote
|
4800 | somewhere else. The point here is that the correct choices are not
|
4801 | pointed out in the LaTeX file, so that AMC does not know about them. The
|
4802 | solution is to give one answer sheet to the teacher to fill correct
|
4803 | choices. Then, after scanning and AMC analysis, you simply have to tell
|
4804 | AMC which is the teacher completed answer sheet.</para>
|
4805 |
|
4806 | <para>To implement this idea, follow these rules:</para>
|
4807 |
|
4808 | <itemizedlist>
|
4809 | <listitem>
|
4810 | <para>Use <option>postcorrect</option>, <option>insidebox</option>
|
4811 | and <option>noshuffle</option> package options (see <xref
|
4812 | endterm="sec.package.options.title"
|
4813 | linkend="sec.package.options"/>).</para>
|
4814 | </listitem>
|
4815 |
|
4816 | <listitem>
|
4817 | <para>Only use <command>\wrongchoice</command> for all your choices
|
4818 | (never <command>\correctchoice</command>).</para>
|
4819 | </listitem>
|
4820 | </itemizedlist>
|
4821 |
|
4822 | <para>Here is a minimal example:</para>
|
4823 |
|
4824 | <programlisting>\documentclass[a4paper]{article}
|
4825 | \usepackage{multicol}
|
4826 | \usepackage[insidebox,noshuffle,postcorrect]{automultiplechoice}
|
4827 |
|
4828 | \begin{document}
|
4829 |
|
4830 | \onecopy{5}{
|
4831 |
|
4832 | \noindent
|
4833 | \begin{tabular}{|l|l|l|}
|
4834 | \hline
|
4835 | student number & class & subject\\
|
4836 | \hline
|
4837 | \vspace{-0.25cm}
|
4838 | & &\\
|
4839 | \AMCcode{StudentNum}{10}&
|
4840 | \AMCcode{class}{2}&
|
4841 | \AMCcode{subject}{3}
|
4842 | \\
|
4843 | \hline
|
4844 | \end{tabular}
|
4845 | \hfill\namefield{\fbox{
|
4846 | \begin{minipage}{.25\linewidth}
|
4847 | Name:
|
4848 |
|
4849 | \vspace*{.5cm}\dotfill
|
4850 |
|
4851 | \vspace*{.5cm}\dotfill
|
4852 | \vspace*{1mm}
|
4853 | \end{minipage}
|
4854 | }}\hfill
|
4855 |
|
4856 |
|
4857 | \vspace{.5cm}
|
4858 | \noindent\hrulefill
|
4859 |
|
4860 | \begin{multicols}{2}\columnseprule=.4pt
|
4861 |
|
4862 | \begin{question}{01}
|
4863 | \begin{choicescustom}
|
4864 | \wrongchoice{}%
|
4865 | \wrongchoice{}%
|
4866 | \wrongchoice{}%
|
4867 | \wrongchoice{}%
|
4868 | \wrongchoice{}%
|
4869 | \end{choicescustom}
|
4870 | \end{question}
|
4871 |
|
4872 | \begin{question}{02}
|
4873 | \begin{choicescustom}
|
4874 | \wrongchoice{}%
|
4875 | \wrongchoice{}%
|
4876 | \wrongchoice{}%
|
4877 | \wrongchoice{}%
|
4878 | \wrongchoice{}%
|
4879 | \end{choicescustom}
|
4880 | \end{question}
|
4881 |
|
4882 | % continue here to get as many questions as needed...
|
4883 |
|
4884 | \end{multicols}
|
4885 |
|
4886 | }
|
4887 |
|
4888 | \end{document}
|
4889 | </programlisting>
|
4890 |
|
4891 | <para>You can then process the LaTeX file in AMC, print the sheets, scan
|
4892 | them after the exam, and start AMC automatic data capture (including the
|
4893 | teacher sheet). When you click on <guibutton>Mark</guibutton> in the
|
4894 | <guilabel>Marking</guilabel> tab, letting <guilabel>Update marking
|
4895 | scale</guilabel> ticked, you will be prompted for the teacher answer
|
4896 | sheet number. You can then continue as usual.</para>
|
4897 |
|
4898 | <note>
|
4899 | <para>You can also write the letters outside the boxes: replace the
|
4900 | <option>insidebox</option> option with <option>outsidebox</option>,
|
4901 | and write your questions in the following way:</para>
|
4902 |
|
4903 | <programlisting>\begin{question}{01}
|
4904 | \begin{choicescustom}
|
4905 | \wrongchoice{A }%
|
4906 | \wrongchoice{B }%
|
4907 | \wrongchoice{C }%
|
4908 | \wrongchoice{D }%
|
4909 | \wrongchoice{E }%
|
4910 | \end{choicescustom}
|
4911 | \end{question}
|
4912 | </programlisting>
|
4913 | </note>
|
4914 | </sect2>
|
4915 |
|
4916 | <sect2>
|
4917 | <title>Nominative sheets</title>
|
4918 |
|
4919 | <para>In some situations, it can be useful to prepare nominative sheets
|
4920 | for all students, from a list of students. Let us see how this can be
|
4921 | done.</para>
|
4922 |
|
4923 | <itemizedlist>
|
4924 | <listitem>
|
4925 | <para>The students list has to be a CSV list. Suppose in the
|
4926 | following that the file students.csv, in the project directory, is
|
4927 | UTF8 encoded and that its content is like the following:</para>
|
4928 |
|
4929 | <programlisting>name,forename,id
|
4930 | Boulix,Jojo,001
|
4931 | Golin,André,002
|
4932 | Moniuszko,Stanisław,003</programlisting>
|
4933 |
|
4934 | <warning><para>
|
4935 | Type carefully the CSV file to send the same test to multiple recipients.
|
4936 | </para>
|
4937 | <itemizedlist><listitem>Headers separated by a semi-colon and email adresses by a comma.</listitem></itemizedlist>
|
4938 | <programlisting>
|
4939 | name;surname;id;email
|
4940 | Boulix;Jojo;001;jojo@boulix.fr,parents@boulix.com
|
4941 | Golin;André;002;andre_golin@truc.fr,papa.golin@rouge.fr,mamangolin@rouge.com
|
4942 | Moniuszko;Stanisław;003</programlisting>
|
4943 | </warning>
|
4944 |
|
4945 | </listitem>
|
4946 |
|
4947 | <warning>
|
4948 | <para>Do not use _ (underscore) with the student's name or forename. A compilation error will be display.</para>
|
4949 | </warning>
|
4950 |
|
4951 | <listitem>
|
4952 | <para>The LaTeX source file has to load csvsimple package,
|
4953 | with:</para>
|
4954 |
|
4955 | <programlisting>\usepackage{csvsimple}</programlisting>
|
4956 | </listitem>
|
4957 |
|
4958 | <listitem>
|
4959 | <para>In the LaTeX source file, define the subject as a command that
|
4960 | produce a single subject. This command will be called once for each
|
4961 | student by <command>\csvreader</command> (suppose here that the
|
4962 | questions has already be defined and included in a group named
|
4963 | <code>general</code>):</para>
|
4964 |
|
4965 | <programlisting>\newcommand{\subject}{
|
4966 | \onecopy{1}{
|
4967 |
|
4968 | \noindent{\bf AutoMultipleChoice \hfill TEST}
|
4969 |
|
4970 | \vspace*{.5cm}
|
4971 |
|
4972 | \begin{center}\em
|
4973 | Pre-filled test.
|
4974 | \end{center}
|
4975 |
|
4976 | \hfill \namefield{\fbox{
|
4977 | \begin{minipage}{.5\linewidth}
|
4978 | Name:
|
4979 |
|
4980 | \Large\bf \name{} \surname{}
|
4981 |
|
4982 | \vspace*{1mm}
|
4983 | \end{minipage}
|
4984 | }}
|
4985 |
|
4986 | \noindent\hrulefill
|
4987 |
|
4988 | \vspace{1ex}
|
4989 |
|
4990 | \shufflegroup{general}
|
4991 | \insertgroup{general}
|
4992 |
|
4993 | \AMCassociation{\id}
|
4994 | }
|
4995 | }
|
4996 |
|
4997 | \csvreader[head to column names]{students.csv}{}{\subject}<co id="separator.comma" linkends="separator.comma.exp"/>
|
4998 | %\csvreader[head to column names,separator=semicolon]{liste.csv}{}{\subject}<co id="separator.semicolon" linkends="separator.semicolon.exp"/>
|
4999 |
|
5000 | </programlisting>
|
5001 |
|
5002 | <para>The head to column names option for
|
5003 | <command>\csvreader</command> defines commands
|
5004 | <command>\name</command>, <command>\surname</command> and
|
5005 | <command>\id</command> (named from the CSV headers), that can be
|
5006 | used inside <command>\subject</command>. The
|
5007 | <command>\AMCassociation</command> call tells AMC to associate the
|
5008 | current sheet to student with id <command>\id</command>.</para>
|
5009 | <para>
|
5010 | <calloutlist>
|
5011 | <callout arearefs="separator.comma" id="separator.comma.exp">
|
5012 | <para>
|
5013 | Use this command if the CSV file contains only one email address per student.
|
5014 | </para>
|
5015 | </callout>
|
5016 |
|
5017 | <callout arearefs="separator.semicolon" id="separator.semicolon.exp">
|
5018 | <para>
|
5019 | Use this command if the CSV file contains multiple email addresses per student.
|
5020 | </para>
|
5021 | </callout>
|
5022 | </calloutlist>
|
5023 | </para>
|
5024 | </listitem>
|
5025 |
|
5026 | <listitem>
|
5027 | <para>After printing, scanning, data capture and marking, when
|
5028 | associating copies with students, choose value
|
5029 | "<emphasis>pre-association</emphasis>" for field "code-name for
|
5030 | automatic association", and "<emphasis>id</emphasis>" for field
|
5031 | "Primary key".</para>
|
5032 | </listitem>
|
5033 | </itemizedlist>
|
5034 | </sect2>
|
5035 | </sect1>
|
5036 |
|
5037 | <sect1 id="commands">
|
5038 | <title>Commands manual</title>
|
5039 |
|
5040 | <para>You may skip this part if you want to use only the graphical user
|
5041 | interface (and that should usually be the case). However, every action
|
5042 | carried out with the graphical interface can also be performed using the
|
5043 | various commands whose syntax is described here.</para>
|
5044 |
|
5045 | <refentry id="auto-multiple-choice">
|
5046 | <refmeta>
|
5047 | <refentrytitle>auto-multiple-choice</refentrytitle>
|
5048 |
|
5049 | <manvolnum>1</manvolnum>
|
5050 |
|
5051 | <refmiscinfo class="source">Auto Multiple Choice</refmiscinfo>
|
5052 |
|
5053 | <refmiscinfo class="version">@/PACKAGE_V_DEB/@</refmiscinfo>
|
5054 | </refmeta>
|
5055 |
|
5056 | <refnamediv>
|
5057 | <refname>auto-multiple-choice</refname>
|
5058 |
|
5059 | <refpurpose>Automated treatment of MCQs</refpurpose>
|
5060 | </refnamediv>
|
5061 |
|
5062 | <refsynopsisdiv>
|
5063 | <cmdsynopsis>
|
5064 | <command>auto-multiple-choice</command>
|
5065 |
|
5066 | <arg choice="plain"><replaceable>action</replaceable></arg>
|
5067 |
|
5068 | <arg rep="repeat">arguments</arg>
|
5069 | </cmdsynopsis>
|
5070 |
|
5071 | <cmdsynopsis>
|
5072 | <command>auto-multiple-choice</command>
|
5073 |
|
5074 | <arg>project</arg>
|
5075 | </cmdsynopsis>
|
5076 | </refsynopsisdiv>
|
5077 |
|
5078 | <refsect1>
|
5079 | <title>Description</title>
|
5080 |
|
5081 | <para>The <command>auto-multiple-choice</command> command transmits
|
5082 | its arguments to the
|
5083 | <command>AMC-<replaceable>action</replaceable>.pl</command>
|
5084 | command.</para>
|
5085 |
|
5086 | <para>The second form, which does not mention any action, calls the
|
5087 | graphical interface <command>AMC-gui.pl</command>, possibly with the
|
5088 | name of a project to be opened.</para>
|
5089 | </refsect1>
|
5090 |
|
5091 | <refsect1>
|
5092 | <title>See also</title>
|
5093 |
|
5094 | <para>Different AMC actions: <citerefentry>
|
5095 | <refentrytitle>AMC-prepare</refentrytitle>
|
5096 |
|
5097 | <manvolnum>1</manvolnum>
|
5098 | </citerefentry>, <citerefentry>
|
5099 | <refentrytitle>AMC-imprime</refentrytitle>
|
5100 |
|
5101 | <manvolnum>1</manvolnum>
|
5102 | </citerefentry>, <citerefentry>
|
5103 | <refentrytitle>AMC-analyse</refentrytitle>
|
5104 |
|
5105 | <manvolnum>1</manvolnum>
|
5106 | </citerefentry>, <citerefentry>
|
5107 | <refentrytitle>AMC-note</refentrytitle>
|
5108 |
|
5109 | <manvolnum>1</manvolnum>
|
5110 | </citerefentry>, <citerefentry>
|
5111 | <refentrytitle>AMC-association-auto</refentrytitle>
|
5112 |
|
5113 | <manvolnum>1</manvolnum>
|
5114 | </citerefentry>, <citerefentry>
|
5115 | <refentrytitle>AMC-export</refentrytitle>
|
5116 |
|
5117 | <manvolnum>1</manvolnum>
|
5118 | </citerefentry>, <citerefentry>
|
5119 | <refentrytitle>AMC-annotate</refentrytitle>
|
5120 |
|
5121 | <manvolnum>1</manvolnum>
|
5122 | </citerefentry>, <citerefentry>
|
5123 | <refentrytitle>AMC-regroupe</refentrytitle>
|
5124 |
|
5125 | <manvolnum>1</manvolnum>
|
5126 | </citerefentry>.</para>
|
5127 | </refsect1>
|
5128 | </refentry>
|
5129 |
|
5130 | <refentry id="AMC-prepare">
|
5131 | <refmeta>
|
5132 | <refentrytitle>AMC-prepare</refentrytitle>
|
5133 |
|
5134 | <manvolnum>1</manvolnum>
|
5135 |
|
5136 | <refmiscinfo class="source">Auto Multiple Choice</refmiscinfo>
|
5137 |
|
5138 | <refmiscinfo class="version">@/PACKAGE_V_DEB/@</refmiscinfo>
|
5139 | </refmeta>
|
5140 |
|
5141 | <refnamediv>
|
5142 | <refname>AMC-prepare</refname>
|
5143 |
|
5144 | <refpurpose>prepares working documents from LaTeX source
|
5145 | file</refpurpose>
|
5146 | </refnamediv>
|
5147 |
|
5148 | <refsynopsisdiv>
|
5149 | <cmdsynopsis>
|
5150 | <command>auto-multiple-choice</command>
|
5151 |
|
5152 | <arg choice="plain">prepare</arg>
|
5153 |
|
5154 | <arg choice="plain">--mode s</arg>
|
5155 |
|
5156 | <arg choice="plain">--prefix
|
5157 | <replaceable>project-dir</replaceable></arg>
|
5158 |
|
5159 | <arg choice="plain"><replaceable>mcq-source-file</replaceable></arg>
|
5160 | </cmdsynopsis>
|
5161 |
|
5162 | <cmdsynopsis>
|
5163 | <command>auto-multiple-choice</command>
|
5164 |
|
5165 | <arg choice="plain">prepare</arg>
|
5166 |
|
5167 | <arg choice="plain">--mode b</arg>
|
5168 |
|
5169 | <arg choice="plain">--data
|
5170 | <replaceable>project-data-dir</replaceable></arg>
|
5171 |
|
5172 | <arg choice="plain"><replaceable>mcq-source-file</replaceable></arg>
|
5173 | </cmdsynopsis>
|
5174 | </refsynopsisdiv>
|
5175 |
|
5176 | <refsect1>
|
5177 | <title>Description</title>
|
5178 |
|
5179 | <para>The <command>AMC-prepare.pl</command> command extracts working
|
5180 | documents from the source file describing the multiple choice
|
5181 | questionnaire. Information to be extracted depends on the
|
5182 | <option>--mode</option> argument value. In any mode, the source
|
5183 | filename must be given as an argument.</para>
|
5184 |
|
5185 | <itemizedlist>
|
5186 | <listitem>
|
5187 | <para>with "<option>--mode s</option>",
|
5188 | <command>AMC-prepare.pl</command> makes the subject file (answer
|
5189 | sheet to be printed and given to the students), the correction
|
5190 | (single corrected answer sheet) and the positions file (file
|
5191 | containing information about the positions of the boxes on the
|
5192 | pages). The following arguments can be used:</para>
|
5193 |
|
5194 | <variablelist>
|
5195 | <varlistentry>
|
5196 | <term><option>--out-sujet
|
5197 | <replaceable>subject.pdf</replaceable></option></term>
|
5198 |
|
5199 | <listitem>
|
5200 | <para>sets the subject file to build.</para>
|
5201 | </listitem>
|
5202 | </varlistentry>
|
5203 |
|
5204 | <varlistentry>
|
5205 | <term><option>--out-corrige
|
5206 | <replaceable>corrected.pdf</replaceable></option></term>
|
5207 |
|
5208 | <listitem>
|
5209 | <para>sets the correction to build.</para>
|
5210 | </listitem>
|
5211 | </varlistentry>
|
5212 |
|
5213 | <varlistentry>
|
5214 | <term><option>--out-calage
|
5215 | <replaceable>calage.xy</replaceable></option></term>
|
5216 |
|
5217 | <listitem>
|
5218 | <para>sets the positions file to build.</para>
|
5219 | </listitem>
|
5220 | </varlistentry>
|
5221 |
|
5222 | <varlistentry>
|
5223 | <term><option>--prefix
|
5224 | <replaceable>directory</replaceable></option></term>
|
5225 |
|
5226 | <listitem>
|
5227 | <para>this directory is only necessary if one or more of the
|
5228 | three previous options are not used: default values are then
|
5229 | <filename><replaceable>directory</replaceable>/sujet.pdf</filename>,
|
5230 | <filename><replaceable>directory</replaceable>/corrige.pdf</filename>
|
5231 | and
|
5232 | <filename><replaceable>directory</replaceable>/calage.xy</filename>.</para>
|
5233 | </listitem>
|
5234 | </varlistentry>
|
5235 | </variablelist>
|
5236 | </listitem>
|
5237 |
|
5238 | <listitem>
|
5239 | <para>with "<option>--mode b</option>",
|
5240 | <command>AMC-prepare.pl</command> extracts scoring data from the
|
5241 | source file. In this mode, the <option>--data</option> argument
|
5242 | must be used (see below).</para>
|
5243 | </listitem>
|
5244 | </itemizedlist>
|
5245 |
|
5246 | <para>The following optional arguments can be used in any mode:</para>
|
5247 |
|
5248 | <variablelist>
|
5249 | <varlistentry>
|
5250 | <term><option>--with
|
5251 | <replaceable>latex-engine</replaceable></option></term>
|
5252 |
|
5253 | <listitem>
|
5254 | <para>gives the LaTeX engine (command) to be used.
|
5255 | <replaceable>latex-engine</replaceable> can be
|
5256 | <command>pdflatex</command> or <command>xelatex</command> for
|
5257 | example.</para>
|
5258 | </listitem>
|
5259 | </varlistentry>
|
5260 |
|
5261 | <varlistentry>
|
5262 | <term><option>--filter
|
5263 | <replaceable>filter</replaceable></option></term>
|
5264 |
|
5265 | <listitem>
|
5266 | <para>sets the filter name to transform the MCQ source file into
|
5267 | a LaTeX file. Native filters are <code>latex</code> (no change
|
5268 | at all) and <code>plain</code> (source is an AMC-TXT
|
5269 | file).</para>
|
5270 | </listitem>
|
5271 | </varlistentry>
|
5272 |
|
5273 | <varlistentry>
|
5274 | <term><option>--filtered-source
|
5275 | <replaceable>mcq-latex-file</replaceable></option></term>
|
5276 |
|
5277 | <listitem>
|
5278 | <para>gives the LaTeX file to make from the source file using
|
5279 | specified filter. If omitted, a filename derived from
|
5280 | <replaceable>mcq-source-file</replaceable> adding
|
5281 | <filename>_filtered.tex</filename> is used.</para>
|
5282 | </listitem>
|
5283 | </varlistentry>
|
5284 |
|
5285 | <varlistentry>
|
5286 | <term><option>--n-copies
|
5287 | <replaceable>n</replaceable></option></term>
|
5288 |
|
5289 | <listitem>
|
5290 | <para>sets the number of copies to produce, overriding the
|
5291 | number given in the LaTeX source file (first argument of the
|
5292 | <command>\onecopy</command> command).</para>
|
5293 | </listitem>
|
5294 | </varlistentry>
|
5295 |
|
5296 | <varlistentry>
|
5297 | <term><option>--debug
|
5298 | <replaceable>file.log</replaceable></option></term>
|
5299 |
|
5300 | <listitem>
|
5301 | <para>gives a file to fill with debugging information.</para>
|
5302 | </listitem>
|
5303 | </varlistentry>
|
5304 |
|
5305 | <varlistentry>
|
5306 | <term><option>--data
|
5307 | <replaceable>project-data-dir</replaceable></option></term>
|
5308 |
|
5309 | <listitem>
|
5310 | <para>sets the directory where the project's SQLite data files
|
5311 | are.</para>
|
5312 | </listitem>
|
5313 | </varlistentry>
|
5314 | </variablelist>
|
5315 | </refsect1>
|
5316 | </refentry>
|
5317 |
|
5318 | <refentry>
|
5319 | <refmeta>
|
5320 | <refentrytitle>AMC-meptex</refentrytitle>
|
5321 |
|
5322 | <manvolnum>1</manvolnum>
|
5323 |
|
5324 | <refmiscinfo>Auto Multiple Choice</refmiscinfo>
|
5325 |
|
5326 | <refmiscinfo>@/PACKAGE_V_DEB/@</refmiscinfo>
|
5327 | </refmeta>
|
5328 |
|
5329 | <refnamediv>
|
5330 | <refname>AMC-meptex</refname>
|
5331 |
|
5332 | <refpurpose>gets the layout information from the working document to
|
5333 | the layout database</refpurpose>
|
5334 | </refnamediv>
|
5335 |
|
5336 | <refsynopsisdiv>
|
5337 | <cmdsynopsis>
|
5338 | <command>auto-multiple-choice</command>
|
5339 |
|
5340 | <arg choice="plain">meptex</arg>
|
5341 |
|
5342 | <arg choice="plain">--src <replaceable>calage.xy</replaceable></arg>
|
5343 |
|
5344 | <arg choice="plain">--data
|
5345 | <replaceable>directory</replaceable></arg>
|
5346 | </cmdsynopsis>
|
5347 | </refsynopsisdiv>
|
5348 |
|
5349 | <refsect1>
|
5350 | <title>Description</title>
|
5351 |
|
5352 | <para>The <command>AMC-meptex.pl</command> command extracts the layout
|
5353 | information (exact positions of the boxes, the marks, the name field
|
5354 | on all the pages) from a working document
|
5355 | <replaceable>calage.xy</replaceable> and fills the layout database (a
|
5356 | SQLite file) in the data directory
|
5357 | <replaceable>directory</replaceable>.</para>
|
5358 | </refsect1>
|
5359 | </refentry>
|
5360 |
|
5361 | <refentry id="AMC-imprime">
|
5362 | <refmeta>
|
5363 | <refentrytitle>AMC-imprime</refentrytitle>
|
5364 |
|
5365 | <manvolnum>1</manvolnum>
|
5366 |
|
5367 | <refmiscinfo class="source">Auto Multiple Choice</refmiscinfo>
|
5368 |
|
5369 | <refmiscinfo class="version">@/PACKAGE_V_DEB/@</refmiscinfo>
|
5370 | </refmeta>
|
5371 |
|
5372 | <refnamediv>
|
5373 | <refname>AMC-imprime</refname>
|
5374 |
|
5375 | <refpurpose>prints AMC multiple choice answer sheets to be distributed
|
5376 | to the students</refpurpose>
|
5377 | </refnamediv>
|
5378 |
|
5379 | <refsynopsisdiv>
|
5380 | <cmdsynopsis>
|
5381 | <command>auto-multiple-choice</command>
|
5382 |
|
5383 | <arg choice="plain">imprime</arg>
|
5384 |
|
5385 | <arg choice="plain">--sujet
|
5386 | <replaceable>subject.pdf</replaceable></arg>
|
5387 |
|
5388 | <arg choice="plain">--fich-nums
|
5389 | <replaceable>numbers-file.txt</replaceable></arg>
|
5390 |
|
5391 | <arg choice="plain">--data <replaceable>data-dir</replaceable></arg>
|
5392 |
|
5393 | <arg choice="plain">--methode
|
5394 | <replaceable>method</replaceable></arg>
|
5395 |
|
5396 | <arg rep="repeat">where-to-print-arguments</arg>
|
5397 | </cmdsynopsis>
|
5398 | </refsynopsisdiv>
|
5399 |
|
5400 | <refsect1>
|
5401 | <title>Description</title>
|
5402 |
|
5403 | <para>The <command>AMC-imprime.pl</command> command prints selected
|
5404 | copies from a AMC multiple choice answer sheet.</para>
|
5405 |
|
5406 | <refsect2>
|
5407 | <title>What to print</title>
|
5408 |
|
5409 | <para>The following arguments describe what to print:</para>
|
5410 |
|
5411 | <variablelist>
|
5412 | <varlistentry>
|
5413 | <term><option>--sujet
|
5414 | <replaceable>subject.pdf</replaceable></option></term>
|
5415 |
|
5416 | <listitem>
|
5417 | <para>sets the subject file (prepared by <citerefentry>
|
5418 | <refentrytitle>AMC-prepare</refentrytitle>
|
5419 |
|
5420 | <manvolnum>1</manvolnum>
|
5421 | </citerefentry>).</para>
|
5422 | </listitem>
|
5423 | </varlistentry>
|
5424 |
|
5425 | <varlistentry>
|
5426 | <term><option>--fich-nums
|
5427 | <replaceable>numbers-file.txt</replaceable></option></term>
|
5428 |
|
5429 | <listitem>
|
5430 | <para>gives a file where the numbers of the copies to be
|
5431 | printed are written (one number per line). If this argument is
|
5432 | not given, all the copies will be printed.</para>
|
5433 | </listitem>
|
5434 | </varlistentry>
|
5435 |
|
5436 | <varlistentry>
|
5437 | <term><option>--data
|
5438 | <replaceable>data-dir</replaceable></option></term>
|
5439 |
|
5440 | <listitem>
|
5441 | <para>gives the directory where data files are (see for
|
5442 | example <citerefentry>
|
5443 | <refentrytitle>AMC-meptex</refentrytitle>
|
5444 |
|
5445 | <manvolnum>1</manvolnum>
|
5446 | </citerefentry>). The layout database in the data directory
|
5447 | is used to know at which page of the subject file each copy
|
5448 | begins and ends.</para>
|
5449 | </listitem>
|
5450 | </varlistentry>
|
5451 |
|
5452 | <varlistentry>
|
5453 | <term><option>--split</option></term>
|
5454 |
|
5455 | <listitem>
|
5456 | <para>asks to print separate answer sheets separately.</para>
|
5457 | </listitem>
|
5458 | </varlistentry>
|
5459 | </variablelist>
|
5460 | </refsect2>
|
5461 |
|
5462 | <refsect2>
|
5463 | <title>Where to print</title>
|
5464 |
|
5465 | <para>Several printing methods are currently defined:</para>
|
5466 |
|
5467 | <itemizedlist>
|
5468 | <listitem>
|
5469 | <para>with "<option>--methode CUPS</option>",
|
5470 | <command>AMC-imprime.pl</command> prints to a CUPS printer. One
|
5471 | print job is sent for each copy, allowing for example to use
|
5472 | stapling. Use the following options with this method:</para>
|
5473 |
|
5474 | <variablelist>
|
5475 | <varlistentry>
|
5476 | <term><option>--imprimante
|
5477 | <replaceable>printer</replaceable></option></term>
|
5478 |
|
5479 | <listitem>
|
5480 | <para>sets the CUPS printer name to print to.</para>
|
5481 | </listitem>
|
5482 | </varlistentry>
|
5483 |
|
5484 | <varlistentry>
|
5485 | <term><option>--options
|
5486 | <replaceable>cups-options</replaceable></option></term>
|
5487 |
|
5488 | <listitem>
|
5489 | <para>gives CUPS options, in the
|
5490 | <option>opt1=value1,opt2=value2,...</option>
|
5491 | format.</para>
|
5492 | </listitem>
|
5493 | </varlistentry>
|
5494 | </variablelist>
|
5495 | </listitem>
|
5496 |
|
5497 | <listitem>
|
5498 | <para>with "<option>--methode file</option>",
|
5499 | <command>AMC-imprime.pl</command> outputs the answer sheets to
|
5500 | files (one for each copy).</para>
|
5501 |
|
5502 | <variablelist>
|
5503 | <varlistentry>
|
5504 | <term><option>--output
|
5505 | <replaceable>filename</replaceable></option></term>
|
5506 |
|
5507 | <listitem>
|
5508 | <para>sets the filename for outputs. The
|
5509 | '<literal>%e</literal>' sequence will be replaced by a
|
5510 | 4-digits copy number. If
|
5511 | <replaceable>filename</replaceable> does not contain
|
5512 | '<literal>%e</literal>', the string
|
5513 | '<literal>-%e.pdf</literal>' will be added at its
|
5514 | end.</para>
|
5515 | </listitem>
|
5516 | </varlistentry>
|
5517 | </variablelist>
|
5518 | </listitem>
|
5519 |
|
5520 | <listitem>
|
5521 | <para>with "<option>--methode command</option>",
|
5522 | <command>AMC-imprime.pl</command> will use a provided command
|
5523 | for each copy.</para>
|
5524 |
|
5525 | <variablelist>
|
5526 | <varlistentry>
|
5527 | <term><option>--print-command
|
5528 | <replaceable>command</replaceable></option></term>
|
5529 |
|
5530 | <listitem>
|
5531 | <para>gives the command to be used for printing. The
|
5532 | <replaceable>command</replaceable> string will be split at
|
5533 | each space character (even when using quotes...). The
|
5534 | sequence '<literal>%f</literal>' will be replaced by a PDF
|
5535 | filename (containing the copy to print), and
|
5536 | '<literal>%e</literal>' will be replaced by the copy
|
5537 | number.</para>
|
5538 | </listitem>
|
5539 | </varlistentry>
|
5540 | </variablelist>
|
5541 | </listitem>
|
5542 | </itemizedlist>
|
5543 | </refsect2>
|
5544 |
|
5545 | <refsect2>
|
5546 | <title>Other options</title>
|
5547 |
|
5548 | <para>Other available options:</para>
|
5549 |
|
5550 | <variablelist>
|
5551 | <varlistentry>
|
5552 | <term>--extract-with <replaceable>command</replaceable></term>
|
5553 |
|
5554 | <listitem>
|
5555 | <para>gives the command to use to extract pages from the PDF
|
5556 | subject. Currently only <command>pdftk</command> and
|
5557 | <command>gs</command> are available. The default value is
|
5558 | <command>pdftk</command>, but <command>gs</command> will be
|
5559 | used if the <command>pdftk</command> command is not
|
5560 | installed.</para>
|
5561 | </listitem>
|
5562 | </varlistentry>
|
5563 | </variablelist>
|
5564 | </refsect2>
|
5565 | </refsect1>
|
5566 | </refentry>
|
5567 |
|
5568 | <refentry>
|
5569 | <refmeta>
|
5570 | <refentrytitle>AMC-getimages</refentrytitle>
|
5571 |
|
5572 | <manvolnum>1</manvolnum>
|
5573 |
|
5574 | <refmiscinfo class="source">Auto Multiple Choice</refmiscinfo>
|
5575 |
|
5576 | <refmiscinfo class="version">@/PACKAGE_V_DEB/@</refmiscinfo>
|
5577 | </refmeta>
|
5578 |
|
5579 | <refnamediv>
|
5580 | <refname>AMC-getimages</refname>
|
5581 |
|
5582 | <refpurpose>prepares scan images before sending them to <citerefentry>
|
5583 | <refentrytitle>AMC-analyse</refentrytitle>
|
5584 |
|
5585 | <manvolnum>1</manvolnum>
|
5586 | </citerefentry> for analysis</refpurpose>
|
5587 | </refnamediv>
|
5588 |
|
5589 | <refsynopsisdiv>
|
5590 | <cmdsynopsis>
|
5591 | <command>auto-multiple-choice</command>
|
5592 |
|
5593 | <arg choice="plain">getimages</arg>
|
5594 |
|
5595 | <arg choice="opt">--copy-to
|
5596 | <replaceable>project-scans-dir</replaceable></arg>
|
5597 |
|
5598 | <arg>--vector-density <replaceable>density</replaceable></arg>
|
5599 |
|
5600 | <arg choice="plain">--list
|
5601 | <replaceable>list-file</replaceable></arg>
|
5602 |
|
5603 | <group>
|
5604 | <arg choice="plain"
|
5605 | rep="repeat"><replaceable>scan-files</replaceable></arg>
|
5606 | </group>
|
5607 | </cmdsynopsis>
|
5608 | </refsynopsisdiv>
|
5609 |
|
5610 | <refsect1>
|
5611 | <title>Description</title>
|
5612 |
|
5613 | <para>The <command>AMC-getimages.pl</command> command prepares scan
|
5614 | files before sending them to <citerefentry>
|
5615 | <refentrytitle>AMC-analyse</refentrytitle>
|
5616 |
|
5617 | <manvolnum>1</manvolnum>
|
5618 | </citerefentry>:</para>
|
5619 |
|
5620 | <itemizedlist>
|
5621 | <listitem>
|
5622 | <para>multipage image files are split to get one file per
|
5623 | page.</para>
|
5624 | </listitem>
|
5625 |
|
5626 | <listitem>
|
5627 | <para>vector images (such as PDF, EPS) are converted to bitmap
|
5628 | images.</para>
|
5629 | </listitem>
|
5630 | </itemizedlist>
|
5631 |
|
5632 | <para>The input images can be given either as arguments to
|
5633 | AMC-getimages.pl, either as the name of a file which contains all the
|
5634 | paths of the scan files.</para>
|
5635 |
|
5636 | <variablelist>
|
5637 | <varlistentry>
|
5638 | <term><option>--list
|
5639 | <replaceable>list-file</replaceable></option></term>
|
5640 |
|
5641 | <listitem>
|
5642 | <para>gives the name of the file that optionally contains (one
|
5643 | per line) the paths of the scan files. This file will be cleared
|
5644 | and filled with the paths of the scan files after processing, so
|
5645 | that the same path can be passed to
|
5646 | <command>AMC-analyse.pl</command> as the
|
5647 | <option>--list-fichiers</option> option value.</para>
|
5648 | </listitem>
|
5649 | </varlistentry>
|
5650 |
|
5651 | <varlistentry>
|
5652 | <term><option>--copy-to
|
5653 | <replaceable>project-scans-dir</replaceable></option></term>
|
5654 |
|
5655 | <listitem>
|
5656 | <para>gives a directory where to copy all the scans
|
5657 | files.</para>
|
5658 | </listitem>
|
5659 | </varlistentry>
|
5660 |
|
5661 | <varlistentry>
|
5662 | <term><option>--vector-density
|
5663 | <replaceable>density</replaceable></option></term>
|
5664 |
|
5665 | <listitem>
|
5666 | <para>sets the density used to convert vector graphics scans to
|
5667 | bitmap files. Defaults to 300.</para>
|
5668 | </listitem>
|
5669 | </varlistentry>
|
5670 | </variablelist>
|
5671 | </refsect1>
|
5672 | </refentry>
|
5673 |
|
5674 | <refentry id="AMC-analyse">
|
5675 | <refmeta>
|
5676 | <refentrytitle>AMC-analyse</refentrytitle>
|
5677 |
|
5678 | <manvolnum>1</manvolnum>
|
5679 |
|
5680 | <refmiscinfo class="source">Auto Multiple Choice</refmiscinfo>
|
5681 |
|
5682 | <refmiscinfo class="version">@/PACKAGE_V_DEB/@</refmiscinfo>
|
5683 | </refmeta>
|
5684 |
|
5685 | <refnamediv>
|
5686 | <refname>AMC-analyse</refname>
|
5687 |
|
5688 | <refpurpose>automatic data capture from scans for AMC multiple choice
|
5689 | exams.</refpurpose>
|
5690 | </refnamediv>
|
5691 |
|
5692 | <refsynopsisdiv>
|
5693 | <cmdsynopsis>
|
5694 | <command>auto-multiple-choice</command>
|
5695 |
|
5696 | <arg choice="plain">analyse</arg>
|
5697 |
|
5698 | <arg choice="plain">--projet
|
5699 | <replaceable>project-dir</replaceable></arg>
|
5700 |
|
5701 | <arg>--seuil-coche <replaceable>threshold</replaceable></arg>
|
5702 |
|
5703 | <arg>--tol-marque <replaceable>tol</replaceable></arg>
|
5704 |
|
5705 | <group>
|
5706 | <arg choice="plain">--list-fichiers
|
5707 | <replaceable>files-list.txt</replaceable></arg>
|
5708 |
|
5709 | <arg choice="plain"
|
5710 | rep="repeat"><replaceable>scan-files</replaceable></arg>
|
5711 | </group>
|
5712 | </cmdsynopsis>
|
5713 | </refsynopsisdiv>
|
5714 |
|
5715 | <refsect1>
|
5716 | <title>Description</title>
|
5717 |
|
5718 | <para>The <command>AMC-analyse.pl</command> command performs automatic
|
5719 | data capture from scans of completed answer sheets of an AMC multiple
|
5720 | choice questionnaire. Before calling
|
5721 | <command>AMC-analyse.pl</command>, <citerefentry>
|
5722 | <refentrytitle>AMC-prepare</refentrytitle>
|
5723 |
|
5724 | <manvolnum>1</manvolnum>
|
5725 | </citerefentry> should have been called to make working documents
|
5726 | (<option>--mode s</option>) and the layout should have been processed
|
5727 | with <citerefentry>
|
5728 | <refentrytitle>AMC-meptex</refentrytitle>
|
5729 |
|
5730 | <manvolnum>1</manvolnum>
|
5731 | </citerefentry>.</para>
|
5732 |
|
5733 | <variablelist>
|
5734 | <varlistentry>
|
5735 | <term><option>--data
|
5736 | <replaceable>data-dir</replaceable></option></term>
|
5737 |
|
5738 | <listitem>
|
5739 | <para>gives the directory where data files are (see for example
|
5740 | <citerefentry>
|
5741 | <refentrytitle>AMC-meptex</refentrytitle>
|
5742 |
|
5743 | <manvolnum>1</manvolnum>
|
5744 | </citerefentry>). Defaults to
|
5745 | <filename><replaceable>project-dir</replaceable>/data</filename>.</para>
|
5746 | </listitem>
|
5747 | </varlistentry>
|
5748 |
|
5749 | <varlistentry>
|
5750 | <term><option>--cr
|
5751 | <replaceable>project-cr-dir</replaceable></option></term>
|
5752 |
|
5753 | <listitem>
|
5754 | <para>gives a directory where to create image reports of the
|
5755 | data capture (zooms on the boxes in a <filename>zooms</filename>
|
5756 | sub-directory, name filed extraction as a
|
5757 | <filename>name-*.jpg</filename> file, and layout report as a
|
5758 | <filename>page-*.jpg</filename> file).</para>
|
5759 | </listitem>
|
5760 | </varlistentry>
|
5761 |
|
5762 | <varlistentry>
|
5763 | <term><option>--projet
|
5764 | <replaceable>project-dir</replaceable></option></term>
|
5765 |
|
5766 | <listitem>
|
5767 | <para>When using this option, if <option>--cr</option> is not
|
5768 | used, <replaceable>project-cr-dir</replaceable> will be set to
|
5769 | <filename><replaceable>project-dir</replaceable>/cr</filename>.</para>
|
5770 | </listitem>
|
5771 | </varlistentry>
|
5772 | </variablelist>
|
5773 |
|
5774 | <para>Giving the names of the scan files to process can be done in two
|
5775 | ways:</para>
|
5776 |
|
5777 | <itemizedlist>
|
5778 | <listitem>
|
5779 | <para>these names can be given as arguments,</para>
|
5780 | </listitem>
|
5781 |
|
5782 | <listitem>
|
5783 | <para>these names can be written to a plain file (one filename per
|
5784 | line), using the <option>--list-fichiers
|
5785 | <replaceable>files-list.txt</replaceable></option> to give the
|
5786 | name of this file.</para>
|
5787 | </listitem>
|
5788 | </itemizedlist>
|
5789 |
|
5790 | <para>Some parameters for data capture may be set using the following
|
5791 | options:</para>
|
5792 |
|
5793 | <variablelist>
|
5794 | <varlistentry>
|
5795 | <term><option>--prop
|
5796 | <replaceable>proportion</replaceable></option></term>
|
5797 |
|
5798 | <listitem>
|
5799 | <para>sets the proportion of each box that will be measured to
|
5800 | decide if the box is ticked or not. Default value is 0.8.</para>
|
5801 | </listitem>
|
5802 | </varlistentry>
|
5803 |
|
5804 | <varlistentry>
|
5805 | <term><option>--bw-threshold
|
5806 | <replaceable>threshold</replaceable></option></term>
|
5807 |
|
5808 | <listitem>
|
5809 | <para>This parameter is used when converting the grayscale scan
|
5810 | file to black and white. To get more black pixels, use a greater
|
5811 | value. To get more white pixels, use a smaller value. The
|
5812 | threshold must be between 0 and 1. The default value is
|
5813 | 0.6.</para>
|
5814 | </listitem>
|
5815 | </varlistentry>
|
5816 |
|
5817 | <varlistentry>
|
5818 | <term><option>--ignore-red</option></term>
|
5819 |
|
5820 | <listitem>
|
5821 | <para>With this option, only red channel will be used from color
|
5822 | scans. This way, all that is written in red will be ignored in
|
5823 | the scan. This can be useful when the boxes are printed in
|
5824 | red.</para>
|
5825 | </listitem>
|
5826 | </varlistentry>
|
5827 |
|
5828 | <varlistentry>
|
5829 | <term><option>--tol-marque
|
5830 | <replaceable>tol</replaceable></option></term>
|
5831 |
|
5832 | <listitem>
|
5833 | <para>defines the tolerance when detecting the four marks in the
|
5834 | scans corners. These marks are detected looking for black
|
5835 | connected components which dimensions are
|
5836 | <emphasis>closed</emphasis> to the target dimension
|
5837 | <replaceable>target</replaceable> (exact dimensions of the marks
|
5838 | if printing/scanning process where perfectly accurate). If
|
5839 | <replaceable>tol</replaceable> is a real number, accepted
|
5840 | dimensions are those between
|
5841 | (1-<replaceable>tol</replaceable>)*<replaceable>target</replaceable>
|
5842 | and
|
5843 | (1+<replaceable>tol</replaceable>)*<replaceable>target</replaceable>.
|
5844 | If <replaceable>tol</replaceable> is
|
5845 | "<replaceable>tinf</replaceable>,<replaceable>tsup</replaceable>"
|
5846 | (where <replaceable>tinf</replaceable> and
|
5847 | <replaceable>tsup</replaceable> are real numbers), accepted
|
5848 | dimensions are those between
|
5849 | (1-<replaceable>tinf</replaceable>)*<replaceable>target</replaceable>
|
5850 | and
|
5851 | (1+<replaceable>tsup</replaceable>)*<replaceable>target</replaceable>.
|
5852 | A standard value is 0.2.</para>
|
5853 | </listitem>
|
5854 | </varlistentry>
|
5855 |
|
5856 | <varlistentry>
|
5857 | <term><option>--multiple</option></term>
|
5858 |
|
5859 | <listitem>
|
5860 | <para>This option is to be used when the scans are photocopies
|
5861 | from some subjects (different students can have the same
|
5862 | subject). In this case, <emphasis>copy</emphasis> numbers are
|
5863 | allocated to students so that their answer sheets, with the same
|
5864 | subject number, can be differentiated.</para>
|
5865 | </listitem>
|
5866 | </varlistentry>
|
5867 |
|
5868 | <varlistentry>
|
5869 | <term><option>--pre-allocate
|
5870 | <replaceable>copy_id</replaceable></option></term>
|
5871 |
|
5872 | <listitem>
|
5873 | <para>This option can be used in conjunction with
|
5874 | <option>--multiple</option>. The copy numbers used for the scans
|
5875 | will start from <replaceable>copy_id</replaceable>, in the same
|
5876 | order than the scans given as arguments.</para>
|
5877 | </listitem>
|
5878 | </varlistentry>
|
5879 |
|
5880 | <varlistentry>
|
5881 | <term>--try-three | --no-try-three</term>
|
5882 |
|
5883 | <listitem>
|
5884 | <para>Use one of these options to tell if you allow processing
|
5885 | of scans where only three corner marks are present.</para>
|
5886 | </listitem>
|
5887 | </varlistentry>
|
5888 |
|
5889 | <varlistentry>
|
5890 | <term><option>--debug
|
5891 | <replaceable>file.log</replaceable></option></term>
|
5892 |
|
5893 | <listitem>
|
5894 | <para>gives a file to fill with debugging information.</para>
|
5895 | </listitem>
|
5896 | </varlistentry>
|
5897 | </variablelist>
|
5898 | </refsect1>
|
5899 | </refentry>
|
5900 |
|
5901 | <refentry id="AMC-note">
|
5902 | <refmeta>
|
5903 | <refentrytitle>AMC-note</refentrytitle>
|
5904 |
|
5905 | <manvolnum>1</manvolnum>
|
5906 |
|
5907 | <refmiscinfo class="source">Auto Multiple Choice</refmiscinfo>
|
5908 |
|
5909 | <refmiscinfo class="version">@/PACKAGE_V_DEB/@</refmiscinfo>
|
5910 | </refmeta>
|
5911 |
|
5912 | <refnamediv>
|
5913 | <refname>AMC-note</refname>
|
5914 |
|
5915 | <refpurpose>computes marks after scans data capture for AMC multiple
|
5916 | choice exams.</refpurpose>
|
5917 | </refnamediv>
|
5918 |
|
5919 | <refsynopsisdiv>
|
5920 | <cmdsynopsis>
|
5921 | <command>auto-multiple-choice</command>
|
5922 |
|
5923 | <arg choice="plain">note</arg>
|
5924 |
|
5925 | <arg choice="plain">--data
|
5926 | <replaceable>project-data-dir</replaceable></arg>
|
5927 |
|
5928 | <arg>--seuil <replaceable>threshold</replaceable></arg>
|
5929 |
|
5930 | <arg>--grain <replaceable>granularity</replaceable></arg>
|
5931 |
|
5932 | <arg>--arrondi <replaceable>rounding</replaceable></arg>
|
5933 |
|
5934 | <arg>--notemin <replaceable>min</replaceable></arg>
|
5935 |
|
5936 | <arg>--notemax <replaceable>max</replaceable></arg>
|
5937 |
|
5938 | <group>
|
5939 | <arg choice="plain">--no-plafond</arg>
|
5940 |
|
5941 | <arg choice="plain">--plafond</arg>
|
5942 | </group>
|
5943 | </cmdsynopsis>
|
5944 | </refsynopsisdiv>
|
5945 |
|
5946 | <refsect1>
|
5947 | <title>Description</title>
|
5948 |
|
5949 | <para>The <command>AMC-note.pl</command> command computes marks for
|
5950 | all students from the scoring strategy extracted from the LaTeX source
|
5951 | file by <citerefentry>
|
5952 | <refentrytitle>AMC-prepare</refentrytitle>
|
5953 |
|
5954 | <manvolnum>1</manvolnum>
|
5955 | </citerefentry> and from the data capture reports made by
|
5956 | <citerefentry>
|
5957 | <refentrytitle>AMC-analyse</refentrytitle>
|
5958 |
|
5959 | <manvolnum>1</manvolnum>
|
5960 | </citerefentry>.</para>
|
5961 |
|
5962 | <variablelist>
|
5963 | <varlistentry>
|
5964 | <term><option>--data
|
5965 | <replaceable>project-data-dir</replaceable></option></term>
|
5966 |
|
5967 | <listitem>
|
5968 | <para>gives the directory where data files are (see for example
|
5969 | <citerefentry>
|
5970 | <refentrytitle>AMC-meptex</refentrytitle>
|
5971 |
|
5972 | <manvolnum>1</manvolnum>
|
5973 | </citerefentry>).</para>
|
5974 | </listitem>
|
5975 | </varlistentry>
|
5976 |
|
5977 | <varlistentry>
|
5978 | <term><option>--seuil
|
5979 | <replaceable>threshold</replaceable></option></term>
|
5980 |
|
5981 | <listitem>
|
5982 | <para>gives the black ratio threshold for deciding whether a box
|
5983 | is ticked or not. When deciding whether a box is checked or not,
|
5984 | <command>AMC-note.pl</command> compares the black ratio (number
|
5985 | of black pixels over total number of pixels) to
|
5986 | <replaceable>threshold</replaceable>. If the black ratio is
|
5987 | greater then <replaceable>threshold</replaceable>, the box is
|
5988 | declared to be checked. Standard values can be 0.15 in the
|
5989 | standard layout, or 0.5 for separate answer sheet layout (in
|
5990 | this last case, letters are drawn in the boxes, and the students
|
5991 | are told to fill the boxes entirely).</para>
|
5992 | </listitem>
|
5993 | </varlistentry>
|
5994 |
|
5995 | <varlistentry>
|
5996 | <term><option>--grain <replaceable>granularity</replaceable>
|
5997 | --arrondi <replaceable>rounding</replaceable></option></term>
|
5998 |
|
5999 | <listitem>
|
6000 | <para>ask marks to be rounded to a multiple of
|
6001 | <replaceable>granularity</replaceable>. If
|
6002 | <replaceable>rounding</replaceable> is '<literal>i</literal>',
|
6003 | rounding is done from below (as with <citerefentry>
|
6004 | <refentrytitle>floor</refentrytitle>
|
6005 |
|
6006 | <manvolnum>3</manvolnum>
|
6007 | </citerefentry>). If <replaceable>rounding</replaceable> is
|
6008 | '<literal>n</literal>', rounding is done to the nearest multiple
|
6009 | of <replaceable>granularity</replaceable>. If
|
6010 | <replaceable>rounding</replaceable> is '<literal>s</literal>',
|
6011 | rounding is done from above (as with <citerefentry>
|
6012 | <refentrytitle>ceil</refentrytitle>
|
6013 |
|
6014 | <manvolnum>3</manvolnum>
|
6015 | </citerefentry>). For example, with options "<option>--grain
|
6016 | 0.25 --arrondi s</option>", mark 6.285 is rounded to 6.5.</para>
|
6017 | </listitem>
|
6018 | </varlistentry>
|
6019 |
|
6020 | <varlistentry>
|
6021 | <term><option>--notemin
|
6022 | <replaceable>min</replaceable></option></term>
|
6023 |
|
6024 | <listitem>
|
6025 | <para>with this option, all marks below
|
6026 | <replaceable>min</replaceable> will be replaced by
|
6027 | <replaceable>min</replaceable>.</para>
|
6028 | </listitem>
|
6029 | </varlistentry>
|
6030 |
|
6031 | <varlistentry>
|
6032 | <term><option>--notemax
|
6033 | <replaceable>max</replaceable></option></term>
|
6034 |
|
6035 | <listitem>
|
6036 | <para>gives the mark to associate to a sheet where all answers
|
6037 | are correct. If not used, marks are not scaled.</para>
|
6038 | </listitem>
|
6039 | </varlistentry>
|
6040 |
|
6041 | <varlistentry>
|
6042 | <term><option>--plafond</option></term>
|
6043 |
|
6044 | <listitem>
|
6045 | <para>with this option, all marks above
|
6046 | <replaceable>max</replaceable> will be replaced by
|
6047 | <replaceable>max</replaceable>.</para>
|
6048 | </listitem>
|
6049 | </varlistentry>
|
6050 |
|
6051 | <varlistentry>
|
6052 | <term><option>--debug
|
6053 | <replaceable>file.log</replaceable></option></term>
|
6054 |
|
6055 | <listitem>
|
6056 | <para>gives a file to fill with debugging information.</para>
|
6057 | </listitem>
|
6058 | </varlistentry>
|
6059 |
|
6060 | <varlistentry>
|
6061 | <term><option>--postcorrect-student <replaceable>s</replaceable>
|
6062 | --postcorrect-copy <replaceable>c</replaceable></option></term>
|
6063 |
|
6064 | <listitem>
|
6065 | <para>requests port-correction from the completed answer sheet
|
6066 | identified by student and copy numbers. In post-correction mode,
|
6067 | correct answers are not extracted from the LaTeX source file,
|
6068 | but taken from the answers given on this sheet.</para>
|
6069 | </listitem>
|
6070 | </varlistentry>
|
6071 | </variablelist>
|
6072 | </refsect1>
|
6073 | </refentry>
|
6074 |
|
6075 | <refentry id="AMC-association-auto">
|
6076 | <refmeta>
|
6077 | <refentrytitle>AMC-association-auto</refentrytitle>
|
6078 |
|
6079 | <manvolnum>1</manvolnum>
|
6080 |
|
6081 | <refmiscinfo class="source">Auto Multiple Choice</refmiscinfo>
|
6082 |
|
6083 | <refmiscinfo class="version">@/PACKAGE_V_DEB/@</refmiscinfo>
|
6084 | </refmeta>
|
6085 |
|
6086 | <refnamediv>
|
6087 | <refname>AMC-association-auto</refname>
|
6088 |
|
6089 | <refpurpose>automatic association between students and answer sheets
|
6090 | for AMC multiple choice exams.</refpurpose>
|
6091 | </refnamediv>
|
6092 |
|
6093 | <refsynopsisdiv>
|
6094 | <cmdsynopsis>
|
6095 | <command>auto-multiple-choice</command>
|
6096 |
|
6097 | <arg choice="plain">association-auto</arg>
|
6098 |
|
6099 | <arg choice="plain">--data
|
6100 | <replaceable>project-data-dir</replaceable></arg>
|
6101 |
|
6102 | <arg choice="plain">--notes-id <replaceable>id</replaceable></arg>
|
6103 |
|
6104 | <arg choice="plain">--liste
|
6105 | <replaceable>students-list.csv</replaceable></arg>
|
6106 |
|
6107 | <arg>--encodage-liste <replaceable>list-encoding</replaceable></arg>
|
6108 |
|
6109 | <arg choice="plain">--liste-key <replaceable>key</replaceable></arg>
|
6110 | </cmdsynopsis>
|
6111 | </refsynopsisdiv>
|
6112 |
|
6113 | <refsect1>
|
6114 | <title>Description</title>
|
6115 |
|
6116 | <para>The <command>AMC-association-auto.pl</command> command
|
6117 | associates students with their answer sheet (when there are no errors
|
6118 | from students when coding their student number and no error during
|
6119 | data capture). See <xref linkend="sec.students.id"/> from English user
|
6120 | documentation for details.</para>
|
6121 |
|
6122 | <variablelist>
|
6123 | <varlistentry>
|
6124 | <term><option>--data
|
6125 | <replaceable>project-data-dir</replaceable></option></term>
|
6126 |
|
6127 | <listitem>
|
6128 | <para>gives the directory where data files are (see for example
|
6129 | <citerefentry>
|
6130 | <refentrytitle>AMC-prepare</refentrytitle>
|
6131 |
|
6132 | <manvolnum>1</manvolnum>
|
6133 | </citerefentry>).</para>
|
6134 | </listitem>
|
6135 | </varlistentry>
|
6136 |
|
6137 | <varlistentry>
|
6138 | <term><option>--notes-id
|
6139 | <replaceable>id</replaceable></option></term>
|
6140 |
|
6141 | <listitem>
|
6142 | <para>gives the identification string of the code provided for
|
6143 | student numbers (command <command>\AMCcode</command> in the
|
6144 | LaTeX source file).</para>
|
6145 | </listitem>
|
6146 | </varlistentry>
|
6147 |
|
6148 | <varlistentry>
|
6149 | <term><option>--pre-association</option></term>
|
6150 |
|
6151 | <listitem>
|
6152 | <para>if used, the <option>--notes-id</option> option is ignored
|
6153 | and the automatic association is made from the pre-association
|
6154 | data (command <command>\AMCassociation</command> in the LaTeX
|
6155 | source file).</para>
|
6156 | </listitem>
|
6157 | </varlistentry>
|
6158 |
|
6159 | <varlistentry>
|
6160 | <term><option>--liste
|
6161 | <replaceable>students-list.csv</replaceable></option></term>
|
6162 |
|
6163 | <listitem>
|
6164 | <para>gives the students list.</para>
|
6165 | </listitem>
|
6166 | </varlistentry>
|
6167 |
|
6168 | <varlistentry>
|
6169 | <term><option>--encodage-liste
|
6170 | <replaceable>list-encoding</replaceable></option></term>
|
6171 |
|
6172 | <listitem>
|
6173 | <para>gives the students list file encoding (default is
|
6174 | utf-8).</para>
|
6175 | </listitem>
|
6176 | </varlistentry>
|
6177 |
|
6178 | <varlistentry>
|
6179 | <term><option>--liste-key
|
6180 | <replaceable>key</replaceable></option></term>
|
6181 |
|
6182 | <listitem>
|
6183 | <para>gives the column name where to find the student number in
|
6184 | the students list.</para>
|
6185 | </listitem>
|
6186 | </varlistentry>
|
6187 |
|
6188 | <varlistentry>
|
6189 | <term><option>--debug
|
6190 | <replaceable>file.log</replaceable></option></term>
|
6191 |
|
6192 | <listitem>
|
6193 | <para>gives a file to fill with debugging information.</para>
|
6194 | </listitem>
|
6195 | </varlistentry>
|
6196 | </variablelist>
|
6197 | </refsect1>
|
6198 | </refentry>
|
6199 |
|
6200 | <refentry id="AMC-association">
|
6201 | <refmeta>
|
6202 | <refentrytitle>AMC-association</refentrytitle>
|
6203 |
|
6204 | <manvolnum>1</manvolnum>
|
6205 |
|
6206 | <refmiscinfo class="source">Auto Multiple Choice</refmiscinfo>
|
6207 |
|
6208 | <refmiscinfo class="version">@/PACKAGE_V_DEB/@</refmiscinfo>
|
6209 | </refmeta>
|
6210 |
|
6211 | <refnamediv>
|
6212 | <refname>AMC-association</refname>
|
6213 |
|
6214 | <refpurpose>manual association between students and answer sheets for
|
6215 | AMC multiple choice exams.</refpurpose>
|
6216 | </refnamediv>
|
6217 |
|
6218 | <refsynopsisdiv>
|
6219 | <cmdsynopsis>
|
6220 | <command>auto-multiple-choice</command>
|
6221 |
|
6222 | <arg choice="plain">association</arg>
|
6223 |
|
6224 | <arg choice="plain">--data
|
6225 | <replaceable>project-data-dir</replaceable></arg>
|
6226 |
|
6227 | <arg choice="plain">--list</arg>
|
6228 | </cmdsynopsis>
|
6229 |
|
6230 | <cmdsynopsis>
|
6231 | <command>auto-multiple-choice</command>
|
6232 |
|
6233 | <arg choice="plain">association</arg>
|
6234 |
|
6235 | <arg choice="plain">--data
|
6236 | <replaceable>project-data-dir</replaceable></arg>
|
6237 |
|
6238 | <arg choice="plain">--set</arg>
|
6239 |
|
6240 | <arg choice="plain">--student
|
6241 | <replaceable>student-sheet-number</replaceable></arg>
|
6242 |
|
6243 | <arg>--copy <replaceable>copy-number</replaceable></arg>
|
6244 |
|
6245 | <arg choice="plain">--id <replaceable>student-id</replaceable></arg>
|
6246 | </cmdsynopsis>
|
6247 | </refsynopsisdiv>
|
6248 |
|
6249 | <refsect1>
|
6250 | <title>Description</title>
|
6251 |
|
6252 | <para>The <command>AMC-association.pl</command> command handles
|
6253 | association data between students and their answer sheet.</para>
|
6254 |
|
6255 | <variablelist>
|
6256 | <varlistentry>
|
6257 | <term><option>--data
|
6258 | <replaceable>project-data-dir</replaceable></option></term>
|
6259 |
|
6260 | <listitem>
|
6261 | <para>gives the directory where data files are (see for example
|
6262 | <citerefentry>
|
6263 | <refentrytitle>AMC-prepare</refentrytitle>
|
6264 |
|
6265 | <manvolnum>1</manvolnum>
|
6266 | </citerefentry>).</para>
|
6267 | </listitem>
|
6268 | </varlistentry>
|
6269 | </variablelist>
|
6270 |
|
6271 | <para>With option <option>--list</option>, all association data is
|
6272 | output.</para>
|
6273 |
|
6274 | <para>With option <option>--set</option>, a manual association is
|
6275 | updated.</para>
|
6276 | </refsect1>
|
6277 | </refentry>
|
6278 |
|
6279 | <refentry id="AMC-export">
|
6280 | <refmeta>
|
6281 | <refentrytitle>AMC-export</refentrytitle>
|
6282 |
|
6283 | <manvolnum>1</manvolnum>
|
6284 |
|
6285 | <refmiscinfo class="source">Auto Multiple Choice</refmiscinfo>
|
6286 |
|
6287 | <refmiscinfo class="version">@/PACKAGE_V_DEB/@</refmiscinfo>
|
6288 | </refmeta>
|
6289 |
|
6290 | <refnamediv>
|
6291 | <refname>AMC-export</refname>
|
6292 |
|
6293 | <refpurpose>exports marks for AMC multiple choice exams.</refpurpose>
|
6294 | </refnamediv>
|
6295 |
|
6296 | <refsynopsisdiv>
|
6297 | <cmdsynopsis>
|
6298 | <command>auto-multiple-choice</command>
|
6299 |
|
6300 | <arg choice="plain">export</arg>
|
6301 |
|
6302 | <arg choice="plain">--data
|
6303 | <replaceable>project-data-dir</replaceable></arg>
|
6304 |
|
6305 | <arg choice="plain">--module <replaceable>module</replaceable></arg>
|
6306 |
|
6307 | <arg choice="plain">--fich-noms
|
6308 | <replaceable>students-list.csv</replaceable></arg>
|
6309 |
|
6310 | <arg>--noms-encodage <replaceable>list-encoding</replaceable></arg>
|
6311 |
|
6312 | <arg choice="plain">--o <replaceable>output-file</replaceable></arg>
|
6313 | </cmdsynopsis>
|
6314 | </refsynopsisdiv>
|
6315 |
|
6316 | <refsect1>
|
6317 | <title>Description</title>
|
6318 |
|
6319 | <para>The <command>AMC-export.pl</command> command exports marks from
|
6320 | an Auto Multiple Choice exam.</para>
|
6321 |
|
6322 | <variablelist>
|
6323 | <varlistentry>
|
6324 | <term><option>--data
|
6325 | <replaceable>project-data-dir</replaceable></option></term>
|
6326 |
|
6327 | <listitem>
|
6328 | <para>gives the directory where data files are (see for example
|
6329 | <citerefentry>
|
6330 | <refentrytitle>AMC-prepare</refentrytitle>
|
6331 |
|
6332 | <manvolnum>1</manvolnum>
|
6333 | </citerefentry>).</para>
|
6334 | </listitem>
|
6335 | </varlistentry>
|
6336 |
|
6337 | <varlistentry>
|
6338 | <term><option>--module
|
6339 | <replaceable>module</replaceable></option></term>
|
6340 |
|
6341 | <listitem>
|
6342 | <para>selects a module for export. See below for the modules
|
6343 | included in the AMC standard distribution.</para>
|
6344 | </listitem>
|
6345 | </varlistentry>
|
6346 |
|
6347 | <varlistentry>
|
6348 | <term><option>--fich-noms
|
6349 | <replaceable>students-list.csv</replaceable></option></term>
|
6350 |
|
6351 | <listitem>
|
6352 | <para>sets the students list file.</para>
|
6353 | </listitem>
|
6354 | </varlistentry>
|
6355 |
|
6356 | <varlistentry>
|
6357 | <term><option>--noms-encodage
|
6358 | <replaceable>list-encoding</replaceable></option></term>
|
6359 |
|
6360 | <listitem>
|
6361 | <para>selects an encoding for file
|
6362 | <replaceable>students-list.csv</replaceable> (default is
|
6363 | utf-8).</para>
|
6364 | </listitem>
|
6365 | </varlistentry>
|
6366 |
|
6367 | <varlistentry>
|
6368 | <term><option>--o
|
6369 | <replaceable>output-file</replaceable></option></term>
|
6370 |
|
6371 | <listitem>
|
6372 | <para>gives the output file name.</para>
|
6373 | </listitem>
|
6374 | </varlistentry>
|
6375 |
|
6376 | <varlistentry>
|
6377 | <term><option>--option-out
|
6378 | <replaceable>options</replaceable></option></term>
|
6379 |
|
6380 | <listitem>
|
6381 | <para>gives an option for selected module, in the form
|
6382 | <literal>key=value</literal> (see below for possible options for
|
6383 | each module). To specify multiple options, use
|
6384 | <option>--option</option> several times.</para>
|
6385 | </listitem>
|
6386 | </varlistentry>
|
6387 |
|
6388 | <varlistentry>
|
6389 | <term><option>--sort
|
6390 | <replaceable>sort-type</replaceable></option></term>
|
6391 |
|
6392 | <listitem>
|
6393 | <para>sort the students names, depending on
|
6394 | <replaceable>sort-type</replaceable>. If
|
6395 | <replaceable>sort-type</replaceable> is <literal>l</literal>,
|
6396 | use line number from students list file to sort. If
|
6397 | <replaceable>sort-type</replaceable> is <literal>m</literal>,
|
6398 | use mark (and name if marks are equal) to sort. If
|
6399 | <replaceable>sort-type</replaceable> is <literal>i</literal>,
|
6400 | use student number to sort. If
|
6401 | <replaceable>sort-type</replaceable> is <literal>n</literal>,
|
6402 | use name to sort (or line from students list if equal).</para>
|
6403 | </listitem>
|
6404 | </varlistentry>
|
6405 |
|
6406 | <varlistentry>
|
6407 | <term><option>--useall
|
6408 | <replaceable>all</replaceable></option></term>
|
6409 |
|
6410 | <listitem>
|
6411 | <para>if <replaceable>all</replaceable> is <literal>0</literal>
|
6412 | or empty, only students with a scanned answer sheet appears in
|
6413 | the output. If <replaceable>all</replaceable> is
|
6414 | <literal>1</literal>, all students in the students list appears
|
6415 | in the output.</para>
|
6416 | </listitem>
|
6417 | </varlistentry>
|
6418 | </variablelist>
|
6419 | </refsect1>
|
6420 |
|
6421 | <refsect1>
|
6422 | <title>Modules</title>
|
6423 |
|
6424 | <refsect2>
|
6425 | <title>OpenDocument</title>
|
6426 |
|
6427 | <para>With "<option>--module ods</option>", an OpenDocument (for use
|
6428 | by OpenOffice or LibreOffice for example) is produced. The following
|
6429 | options are recognized:</para>
|
6430 |
|
6431 | <variablelist>
|
6432 | <varlistentry>
|
6433 | <term>nom</term>
|
6434 |
|
6435 | <listitem>
|
6436 | <para>gives a name for the exam, to be written on the
|
6437 | beginning of the sheet.</para>
|
6438 | </listitem>
|
6439 | </varlistentry>
|
6440 |
|
6441 | <varlistentry>
|
6442 | <term>code</term>
|
6443 |
|
6444 | <listitem>
|
6445 | <para>gives an short name for the exam, to be used as a tab
|
6446 | name.</para>
|
6447 | </listitem>
|
6448 | </varlistentry>
|
6449 |
|
6450 | <varlistentry>
|
6451 | <term>columns</term>
|
6452 |
|
6453 | <listitem>
|
6454 | <para>sets the list of columns that are to be added to each
|
6455 | student. Default value is
|
6456 | <code>student.key,student.name</code>.</para>
|
6457 | </listitem>
|
6458 | </varlistentry>
|
6459 |
|
6460 | <varlistentry>
|
6461 | <term>stats</term>
|
6462 |
|
6463 | <listitem>
|
6464 | <para>with a true value, a table will be added with statistics
|
6465 | for all questions.</para>
|
6466 | </listitem>
|
6467 | </varlistentry>
|
6468 |
|
6469 | <varlistentry>
|
6470 | <term>statsindic</term>
|
6471 |
|
6472 | <listitem>
|
6473 | <para>with a true value, a table will be added with statistics
|
6474 | for all indicative questions.</para>
|
6475 | </listitem>
|
6476 | </varlistentry>
|
6477 | </variablelist>
|
6478 | </refsect2>
|
6479 |
|
6480 | <refsect2>
|
6481 | <title>CSV</title>
|
6482 |
|
6483 | <para>With "<option>--module CSV</option>", a CSV file is produced.
|
6484 | The following options are recognized:</para>
|
6485 |
|
6486 | <variablelist>
|
6487 | <varlistentry>
|
6488 | <term>columns</term>
|
6489 |
|
6490 | <listitem>
|
6491 | <para>sets the list of columns that are to be added to each
|
6492 | student. Default value is
|
6493 | <code>student.copy,student.key,student.name</code>.</para>
|
6494 | </listitem>
|
6495 | </varlistentry>
|
6496 |
|
6497 | <varlistentry>
|
6498 | <term>decimal</term>
|
6499 |
|
6500 | <listitem>
|
6501 | <para>sets the decimal point (default is a dot).</para>
|
6502 | </listitem>
|
6503 | </varlistentry>
|
6504 |
|
6505 | <varlistentry>
|
6506 | <term>encodage</term>
|
6507 |
|
6508 | <listitem>
|
6509 | <para>sets the encoding to use for output (default is
|
6510 | utf-8).</para>
|
6511 | </listitem>
|
6512 | </varlistentry>
|
6513 |
|
6514 | <varlistentry>
|
6515 | <term>separateur</term>
|
6516 |
|
6517 | <listitem>
|
6518 | <para>sets the character used between colums (default is a
|
6519 | comma).</para>
|
6520 | </listitem>
|
6521 | </varlistentry>
|
6522 |
|
6523 | <varlistentry>
|
6524 | <term>entoure</term>
|
6525 |
|
6526 | <listitem>
|
6527 | <para>sets the character used to enclose strings (default is a
|
6528 | double quote).</para>
|
6529 | </listitem>
|
6530 | </varlistentry>
|
6531 |
|
6532 | <varlistentry>
|
6533 | <term>ticked</term>
|
6534 |
|
6535 | <listitem>
|
6536 | <para>if not empty, additional columns (with
|
6537 | "<literal>CHECKED:</literal>" prefix) are included to give all
|
6538 | the checked boxes on all the sheets. This can be used by an
|
6539 | external program to retrieve all the checked boxes when marks
|
6540 | are not sufficient. Use value <literal>01</literal> to get
|
6541 | 0;0;1;1;0 if boxes 3 and 4 are checked, and value
|
6542 | <literal>AB</literal> to get CD if boxes 3 and 4 are
|
6543 | checked.</para>
|
6544 | </listitem>
|
6545 | </varlistentry>
|
6546 | </variablelist>
|
6547 | </refsect2>
|
6548 |
|
6549 | <refsect2>
|
6550 | <title>List</title>
|
6551 |
|
6552 | <para>With "<option>--module List</option>", a PDF file is produced
|
6553 | with a list of marks for all students. The following options are
|
6554 | recognized:</para>
|
6555 |
|
6556 | <variablelist>
|
6557 | <varlistentry>
|
6558 | <term>pagesize</term>
|
6559 |
|
6560 | <listitem>
|
6561 | <para>The page size. Default value is <code>a4</code>.</para>
|
6562 | </listitem>
|
6563 | </varlistentry>
|
6564 |
|
6565 | <varlistentry>
|
6566 | <term>nom</term>
|
6567 |
|
6568 | <listitem>
|
6569 | <para>gives the name of the exam, to be printed at the top of
|
6570 | the page.</para>
|
6571 | </listitem>
|
6572 | </varlistentry>
|
6573 |
|
6574 | <varlistentry>
|
6575 | <term>ncols</term>
|
6576 |
|
6577 | <listitem>
|
6578 | <para>The number of columns. Default value is 2.</para>
|
6579 | </listitem>
|
6580 | </varlistentry>
|
6581 |
|
6582 | <varlistentry>
|
6583 | <term>decimal</term>
|
6584 |
|
6585 | <listitem>
|
6586 | <para>sets the decimal point (default is a dot).</para>
|
6587 | </listitem>
|
6588 | </varlistentry>
|
6589 | </variablelist>
|
6590 | </refsect2>
|
6591 | </refsect1>
|
6592 | </refentry>
|
6593 |
|
6594 | <refentry id="AMC-annote">
|
6595 | <refmeta>
|
6596 | <refentrytitle>AMC-annotate</refentrytitle>
|
6597 |
|
6598 | <manvolnum>1</manvolnum>
|
6599 |
|
6600 | <refmiscinfo class="source">Auto Multiple Choice</refmiscinfo>
|
6601 |
|
6602 | <refmiscinfo class="version">@/PACKAGE_V_DEB/@</refmiscinfo>
|
6603 | </refmeta>
|
6604 |
|
6605 | <refnamediv>
|
6606 | <refname>AMC-annotate</refname>
|
6607 |
|
6608 | <refpurpose>completed answer sheets annotation after marking for AMC
|
6609 | multiple choice exams.</refpurpose>
|
6610 | </refnamediv>
|
6611 |
|
6612 | <refsynopsisdiv>
|
6613 | <cmdsynopsis>
|
6614 | <command>auto-multiple-choice</command>
|
6615 |
|
6616 | <arg choice="plain">annotate</arg>
|
6617 |
|
6618 | <arg choice="plain">--projet
|
6619 | <replaceable>project-dir</replaceable></arg>
|
6620 |
|
6621 | <arg choice="plain">--names-file
|
6622 | <replaceable>students.csv</replaceable></arg>
|
6623 |
|
6624 | <arg rep="repeat">annotation options</arg>
|
6625 | </cmdsynopsis>
|
6626 | </refsynopsisdiv>
|
6627 |
|
6628 | <refsect1>
|
6629 | <title>Description</title>
|
6630 |
|
6631 | <para>The <command>AMC-annotate.pl</command> command annotates papers
|
6632 | scans with scores for all questions, global score and mark, resulting
|
6633 | in PDF files (one for each student, or one single file).</para>
|
6634 |
|
6635 | <refsect2>
|
6636 | <title>General options</title>
|
6637 |
|
6638 | <variablelist>
|
6639 | <varlistentry>
|
6640 | <term><option>--projet
|
6641 | <replaceable>project-dir</replaceable></option></term>
|
6642 |
|
6643 | <listitem>
|
6644 | <para>sets the project name or directory.</para>
|
6645 | </listitem>
|
6646 | </varlistentry>
|
6647 |
|
6648 | <varlistentry>
|
6649 | <term><option>--data
|
6650 | <replaceable>project-data-dir</replaceable></option></term>
|
6651 |
|
6652 | <listitem>
|
6653 | <para>gives the directory where data files are (default value
|
6654 | is
|
6655 | <filename><replaceable>project-dir</replaceable>/data</filename>).</para>
|
6656 | </listitem>
|
6657 | </varlistentry>
|
6658 |
|
6659 | <varlistentry>
|
6660 | <term><option>--pdf-dir
|
6661 | <replaceable>pdf-dir</replaceable></option></term>
|
6662 |
|
6663 | <listitem>
|
6664 | <para>sets the project pdf directory, where to output
|
6665 | annotated scans (default value is
|
6666 | <filename><replaceable>project-dir</replaceable>/cr/corrections/pdf</filename>).</para>
|
6667 | </listitem>
|
6668 | </varlistentry>
|
6669 |
|
6670 | <varlistentry>
|
6671 | <term><option>--names-file
|
6672 | <replaceable>students-list.csv</replaceable></option></term>
|
6673 |
|
6674 | <listitem>
|
6675 | <para>sets the students list file name.</para>
|
6676 | </listitem>
|
6677 | </varlistentry>
|
6678 |
|
6679 | <varlistentry>
|
6680 | <term><option>--names-encoding
|
6681 | <replaceable>encoding</replaceable></option></term>
|
6682 |
|
6683 | <listitem>
|
6684 | <para>selects an encoding for file
|
6685 | <replaceable>students-list.csv</replaceable> (default is
|
6686 | utf-8).</para>
|
6687 | </listitem>
|
6688 | </varlistentry>
|
6689 |
|
6690 | <varlistentry>
|
6691 | <term><option>--association-key
|
6692 | <replaceable>key</replaceable></option></term>
|
6693 |
|
6694 | <listitem>
|
6695 | <para>sets the key (column name in the students list file)
|
6696 | that is used for association. Default value is stored in the
|
6697 | database from value actually used for association, so this
|
6698 | option should not be used.</para>
|
6699 | </listitem>
|
6700 | </varlistentry>
|
6701 |
|
6702 | <varlistentry>
|
6703 | <term><option>--subject
|
6704 | <replaceable>subject.pdf</replaceable></option></term>
|
6705 |
|
6706 | <listitem>
|
6707 | <para>sets the path to the PDF question file (default is
|
6708 | <filename><replaceable>project-dir</replaceable>/DOC-sujet.pdf</filename>).</para>
|
6709 | </listitem>
|
6710 | </varlistentry>
|
6711 |
|
6712 | <varlistentry>
|
6713 | <term><option>--compose
|
6714 | <replaceable>mode</replaceable></option></term>
|
6715 |
|
6716 | <listitem>
|
6717 | <para>use this option if you want to take pages from the
|
6718 | subject when there is no boxes to be filled on them (for
|
6719 | example, question pages before the annotated answer sheet).
|
6720 | When <replaceable>mode</replaceable> equals 1, the pages are
|
6721 | taken from the subject, are filled or not according to the
|
6722 | student's answers (the same as on the answer sheet), and the
|
6723 | same correction marks are drawn as on the answer sheet. When
|
6724 | mode equals 2, the pages are taken from the corrected answer
|
6725 | sheet (so the ticked answers are the correct ones), and no
|
6726 | correction marks are drawn.</para>
|
6727 | </listitem>
|
6728 | </varlistentry>
|
6729 |
|
6730 | <varlistentry>
|
6731 | <term><option>--corrected
|
6732 | <replaceable>corrected.pdf</replaceable></option></term>
|
6733 |
|
6734 | <listitem>
|
6735 | <para>sets the path to the PDF corrected subject (default is
|
6736 | <filename><replaceable>project-dir</replaceable>/DOC-corrected.pdf</filename>).
|
6737 | If not present, this file will be built using values from
|
6738 | options <option>--n-copies</option>, <option>--with</option>,
|
6739 | <option>--filter</option> and
|
6740 | <option>--filtered-source</option>).</para>
|
6741 | </listitem>
|
6742 | </varlistentry>
|
6743 |
|
6744 | <varlistentry>
|
6745 | <term><option>--darkness-threshold
|
6746 | <replaceable>t</replaceable></option></term>
|
6747 |
|
6748 | <listitem>
|
6749 | <para>sets the darkness threshold. Default value is stored in
|
6750 | the database from value actually used for scoring, so this
|
6751 | option should not be used.</para>
|
6752 | </listitem>
|
6753 | </varlistentry>
|
6754 |
|
6755 | <varlistentry>
|
6756 | <term><option>--csv-build-name
|
6757 | <replaceable>name-model</replaceable></option></term>
|
6758 |
|
6759 | <listitem>
|
6760 | <para>sets the model for building students names from the
|
6761 | students list file. Default value is '<code>(nom|surname)
|
6762 | (prenom|name)</code>', so that the name is built using the
|
6763 | <code>nom</code> column content (or the <code>surname</code>
|
6764 | column if the <code>nom</code> column does not exist),
|
6765 | followed by the content of the <code>prenom</code> column (or
|
6766 | the <code>name</code> column), so that the result should be OK
|
6767 | for French or English simple CSV files.</para>
|
6768 | </listitem>
|
6769 | </varlistentry>
|
6770 |
|
6771 | <varlistentry>
|
6772 | <term><option>--id-file
|
6773 | <replaceable>ids.txt</replaceable></option></term>
|
6774 |
|
6775 | <listitem>
|
6776 | <para>gives a filename where to find the ids of copies to
|
6777 | annotate (one per line, either the student number if photocopy
|
6778 | mode is off, or
|
6779 | <code><replaceable>student</replaceable>:<replaceable>copy</replaceable></code>
|
6780 | if the photocopy mode is on). If no file is given, then all
|
6781 | copies will be annotated.</para>
|
6782 | </listitem>
|
6783 | </varlistentry>
|
6784 |
|
6785 | <varlistentry>
|
6786 | <term><option>--debug
|
6787 | <replaceable>file.log</replaceable></option></term>
|
6788 |
|
6789 | <listitem>
|
6790 | <para>gives a file to fill with debugging information.</para>
|
6791 | </listitem>
|
6792 | </varlistentry>
|
6793 | </variablelist>
|
6794 | </refsect2>
|
6795 |
|
6796 | <refsect2>
|
6797 | <title>PDF output options</title>
|
6798 |
|
6799 | <variablelist>
|
6800 | <varlistentry>
|
6801 | <term><option>--single-output</option></term>
|
6802 |
|
6803 | <listitem>
|
6804 | <para>use this option if you need all annotated copies in a
|
6805 | single PDF file. Default behavior is to build one PDF file per
|
6806 | student.</para>
|
6807 | </listitem>
|
6808 | </varlistentry>
|
6809 |
|
6810 | <varlistentry>
|
6811 | <term><option>--sort
|
6812 | <replaceable>s</replaceable></option></term>
|
6813 |
|
6814 | <listitem>
|
6815 | <para>sets the sort key (only useful when using
|
6816 | <option>--single-output</option>): use</para>
|
6817 |
|
6818 | <variablelist>
|
6819 | <varlistentry>
|
6820 | <term>l</term>
|
6821 |
|
6822 | <listitem>
|
6823 | <para>to keep students in the same order as in the
|
6824 | students list file.</para>
|
6825 | </listitem>
|
6826 | </varlistentry>
|
6827 |
|
6828 | <varlistentry>
|
6829 | <term>m</term>
|
6830 |
|
6831 | <listitem>
|
6832 | <para>to sort students according to their marks.</para>
|
6833 | </listitem>
|
6834 | </varlistentry>
|
6835 |
|
6836 | <varlistentry>
|
6837 | <term>i</term>
|
6838 |
|
6839 | <listitem>
|
6840 | <para>to sort students according to the copy id.</para>
|
6841 | </listitem>
|
6842 | </varlistentry>
|
6843 |
|
6844 | <varlistentry>
|
6845 | <term>n</term>
|
6846 |
|
6847 | <listitem>
|
6848 | <para>to sort students according to their names.</para>
|
6849 | </listitem>
|
6850 | </varlistentry>
|
6851 | </variablelist>
|
6852 | </listitem>
|
6853 | </varlistentry>
|
6854 |
|
6855 | <varlistentry>
|
6856 | <term><option>--filename-model
|
6857 | <replaceable>model</replaceable></option></term>
|
6858 |
|
6859 | <listitem>
|
6860 | <para>sets a file name model for annotated PDFs. In this
|
6861 | model, some sequences will be substituted:</para>
|
6862 |
|
6863 | <variablelist>
|
6864 | <varlistentry>
|
6865 | <term><literal>(N)</literal></term>
|
6866 |
|
6867 | <listitem>
|
6868 | <para>is replaced by the student's name (see
|
6869 | <option>--csv-build-name</option>).</para>
|
6870 | </listitem>
|
6871 | </varlistentry>
|
6872 |
|
6873 | <varlistentry>
|
6874 | <term><literal>(ID)</literal></term>
|
6875 |
|
6876 | <listitem>
|
6877 | <para>is replaced by the student number.</para>
|
6878 | </listitem>
|
6879 | </varlistentry>
|
6880 |
|
6881 | <varlistentry>
|
6882 | <term><literal>(<replaceable>COL</replaceable>)</literal></term>
|
6883 |
|
6884 | <listitem>
|
6885 | <para>is replaced by the value of column
|
6886 | <replaceable>COL</replaceable> in the students list for
|
6887 | the current student.</para>
|
6888 | </listitem>
|
6889 | </varlistentry>
|
6890 | </variablelist>
|
6891 |
|
6892 | <para>The default value is
|
6893 | '<literal>(N)-(ID).pdf</literal>'.</para>
|
6894 | </listitem>
|
6895 | </varlistentry>
|
6896 | </variablelist>
|
6897 | </refsect2>
|
6898 |
|
6899 | <refsect2>
|
6900 | <title>Source file options</title>
|
6901 |
|
6902 | <para>These options are used when the <option>--corrected</option>
|
6903 | path points to a non-existing file, so that this file can be
|
6904 | rebuilt.</para>
|
6905 |
|
6906 | <variablelist>
|
6907 | <varlistentry>
|
6908 | <term><option>--src <replaceable>mcq-source-file</replaceable>
|
6909 | --n-copies <replaceable>n</replaceable> --with
|
6910 | <replaceable>latex-engine</replaceable> --filter
|
6911 | <replaceable>filter-name</replaceable> --filtered-source
|
6912 | <replaceable>fs.tex</replaceable></option></term>
|
6913 |
|
6914 | <listitem>
|
6915 | <para>see <citerefentry>
|
6916 | <refentrytitle>AMC-prepare</refentrytitle>
|
6917 |
|
6918 | <manvolnum>1</manvolnum>
|
6919 | </citerefentry>.</para>
|
6920 | </listitem>
|
6921 | </varlistentry>
|
6922 | </variablelist>
|
6923 | </refsect2>
|
6924 |
|
6925 | <refsect2>
|
6926 | <title>Options for embedded scans</title>
|
6927 |
|
6928 | <para>When present, scans are embedded in the annotated PDF file.
|
6929 | The following options control the quality of the embedded scans, to
|
6930 | reduce the annotated file size.</para>
|
6931 |
|
6932 | <variablelist>
|
6933 | <varlistentry>
|
6934 | <term><option>--embedded-max-size
|
6935 | <replaceable>maxsize</replaceable></option></term>
|
6936 |
|
6937 | <listitem>
|
6938 | <para>sets the maximal size for scans (in the format
|
6939 | <literal><replaceable>width</replaceable>x<replaceable>height</replaceable></literal>,
|
6940 | in pixels). Default value is the empty string, which means
|
6941 | there is no maximum size. Scans that are larger will be
|
6942 | reduced before being included in the annotated file.</para>
|
6943 | </listitem>
|
6944 | </varlistentry>
|
6945 |
|
6946 | <varlistentry>
|
6947 | <term><option>--embedded-format
|
6948 | <replaceable>format</replaceable></option></term>
|
6949 |
|
6950 | <listitem>
|
6951 | <para>sets the format for scans inclusion:
|
6952 | <replaceable>jpeg</replaceable> or
|
6953 | <replaceable>png</replaceable>.</para>
|
6954 | </listitem>
|
6955 | </varlistentry>
|
6956 |
|
6957 | <varlistentry>
|
6958 | <term><option>--embedded-jpeg-quality
|
6959 | <replaceable>quality</replaceable></option></term>
|
6960 |
|
6961 | <listitem>
|
6962 | <para>sets the JPEG quality (from 1 to 100) for jpeg embedded
|
6963 | scans.</para>
|
6964 | </listitem>
|
6965 | </varlistentry>
|
6966 | </variablelist>
|
6967 | </refsect2>
|
6968 |
|
6969 | <refsect2>
|
6970 | <title>Annotation options</title>
|
6971 |
|
6972 | <para>These options controls what kind of annotations are being to
|
6973 | be drawn.</para>
|
6974 |
|
6975 | <variablelist>
|
6976 | <varlistentry>
|
6977 | <term><option>--font-size
|
6978 | <replaceable>fs</replaceable></option></term>
|
6979 |
|
6980 | <listitem>
|
6981 | <para>sets the font size, in points, for annotations.</para>
|
6982 | </listitem>
|
6983 | </varlistentry>
|
6984 |
|
6985 | <varlistentry>
|
6986 | <term><option>--text-color
|
6987 | <replaceable>color</replaceable></option></term>
|
6988 |
|
6989 | <listitem>
|
6990 | <para>text color for annotations. Default value is
|
6991 | <replaceable>red</replaceable>.</para>
|
6992 | </listitem>
|
6993 | </varlistentry>
|
6994 |
|
6995 | <varlistentry>
|
6996 | <term><option>--verdict
|
6997 | <replaceable>header</replaceable></option></term>
|
6998 |
|
6999 | <listitem>
|
7000 | <para>sets the text header to be printed on each first page of
|
7001 | the students copies. This text may contain CR characters for
|
7002 | multi-line headers. Some sequences are substituted in
|
7003 | it:</para>
|
7004 |
|
7005 | <variablelist>
|
7006 | <varlistentry>
|
7007 | <term><literal>%S</literal></term>
|
7008 |
|
7009 | <listitem>
|
7010 | <para>is replaced by the student total score.</para>
|
7011 | </listitem>
|
7012 | </varlistentry>
|
7013 |
|
7014 | <varlistentry>
|
7015 | <term><literal>%M</literal></term>
|
7016 |
|
7017 | <listitem>
|
7018 | <para>is replaced by the maximum total score.</para>
|
7019 | </listitem>
|
7020 | </varlistentry>
|
7021 |
|
7022 | <varlistentry>
|
7023 | <term><literal>%s</literal></term>
|
7024 |
|
7025 | <listitem>
|
7026 | <para>is replaced by the student mark.</para>
|
7027 | </listitem>
|
7028 | </varlistentry>
|
7029 |
|
7030 | <varlistentry>
|
7031 | <term><literal>%m</literal></term>
|
7032 |
|
7033 | <listitem>
|
7034 | <para>is replaced by the maximum mark.</para>
|
7035 | </listitem>
|
7036 | </varlistentry>
|
7037 |
|
7038 | <varlistentry>
|
7039 | <term><literal>%(ID)</literal></term>
|
7040 |
|
7041 | <listitem>
|
7042 | <para>is replaced by the student's name.</para>
|
7043 | </listitem>
|
7044 | </varlistentry>
|
7045 |
|
7046 | <varlistentry>
|
7047 | <term><literal>%(<replaceable>COL</replaceable>)</literal></term>
|
7048 |
|
7049 | <listitem>
|
7050 | <para>is replaced by the value of column
|
7051 | <replaceable>COL</replaceable> in the students list for
|
7052 | the current student.</para>
|
7053 | </listitem>
|
7054 | </varlistentry>
|
7055 | </variablelist>
|
7056 | </listitem>
|
7057 | </varlistentry>
|
7058 |
|
7059 | <varlistentry>
|
7060 | <term><option>--position
|
7061 | <replaceable>pos</replaceable></option></term>
|
7062 |
|
7063 | <listitem>
|
7064 | <para>sets the position where question scores are to be
|
7065 | written:</para>
|
7066 |
|
7067 | <variablelist>
|
7068 | <varlistentry>
|
7069 | <term>marge</term>
|
7070 |
|
7071 | <listitem>
|
7072 | <para>the scores will be written in the left
|
7073 | margin</para>
|
7074 | </listitem>
|
7075 | </varlistentry>
|
7076 |
|
7077 | <varlistentry>
|
7078 | <term>marges</term>
|
7079 |
|
7080 | <listitem>
|
7081 | <para>the scores will be written in the closest margin
|
7082 | (left or right).</para>
|
7083 | </listitem>
|
7084 | </varlistentry>
|
7085 |
|
7086 | <varlistentry>
|
7087 | <term>case</term>
|
7088 |
|
7089 | <listitem>
|
7090 | <para>the scores will be written near the boxes</para>
|
7091 | </listitem>
|
7092 | </varlistentry>
|
7093 |
|
7094 | <varlistentry>
|
7095 | <term>none</term>
|
7096 |
|
7097 | <listitem>
|
7098 | <para>the scores won't be written.</para>
|
7099 | </listitem>
|
7100 | </varlistentry>
|
7101 | </variablelist>
|
7102 | </listitem>
|
7103 | </varlistentry>
|
7104 |
|
7105 | <varlistentry>
|
7106 | <term>--verdict-question
|
7107 | <replaceable>perl-expression</replaceable></term>
|
7108 |
|
7109 | <listitem>
|
7110 | <para>sets the text to be printed next to all questions,
|
7111 | through a perl expression to be evaluated (if you need a
|
7112 | simple text, simply quote it with <code>"</code>). Some
|
7113 | sequences are substituted in it before evaluation:</para>
|
7114 |
|
7115 | <variablelist>
|
7116 | <varlistentry>
|
7117 | <term><literal>%S</literal></term>
|
7118 |
|
7119 | <listitem>
|
7120 | <para>is replaced by the student score for this
|
7121 | question.</para>
|
7122 | </listitem>
|
7123 | </varlistentry>
|
7124 |
|
7125 | <varlistentry>
|
7126 | <term><literal>%M</literal></term>
|
7127 |
|
7128 | <listitem>
|
7129 | <para>is replaced by the maximum score for this
|
7130 | question.</para>
|
7131 | </listitem>
|
7132 | </varlistentry>
|
7133 |
|
7134 | <varlistentry>
|
7135 | <term><literal>%s</literal></term>
|
7136 |
|
7137 | <listitem>
|
7138 | <para>is the same as <code>%S</code>, but rounded to
|
7139 | <replaceable>nc</replaceable> significant digits (see
|
7140 | option <option>--ch-sign</option>).</para>
|
7141 | </listitem>
|
7142 | </varlistentry>
|
7143 |
|
7144 | <varlistentry>
|
7145 | <term><literal>%m</literal></term>
|
7146 |
|
7147 | <listitem>
|
7148 | <para>is the same as <code>%M</code>, but rounded to
|
7149 | <replaceable>nc</replaceable> significant digits (see
|
7150 | option <option>--ch-sign</option>).</para>
|
7151 | </listitem>
|
7152 | </varlistentry>
|
7153 | </variablelist>
|
7154 |
|
7155 | <para>A standard value for this option is
|
7156 | <code>"\"%s/%m\""</code>. You can also use tests (with the
|
7157 | perl syntax <code>( TEST ? IF-YES : IF-NO )</code>) to write
|
7158 | <emphasis>Valid</emphasis> if the score is the maximal score,
|
7159 | or <emphasis>Failed</emphasis> if not, using</para>
|
7160 |
|
7161 | <programlisting>--verdict-question "(%S==%M ? \"Valid\" : \"Failed\")"</programlisting>
|
7162 | </listitem>
|
7163 | </varlistentry>
|
7164 |
|
7165 | <varlistentry>
|
7166 | <term>--verdict-question-cancelled
|
7167 | <replaceable>perl-expression</replaceable></term>
|
7168 |
|
7169 | <listitem>
|
7170 | <para>same as <option>--verdict-question</option>, but applies
|
7171 | for cancelled questions (see <code>allowempty</code> scoring
|
7172 | strategy). The default value is <code>"X"</code>.</para>
|
7173 | </listitem>
|
7174 | </varlistentry>
|
7175 |
|
7176 | <varlistentry>
|
7177 | <term><option>--indicatives</option></term>
|
7178 |
|
7179 | <listitem>
|
7180 | <para>use this option to request boxes annotation for
|
7181 | indicative questions (these questions' scores won't be taken
|
7182 | into account while computing the global score. The
|
7183 | correct/wrong status is often irrelevant for these questions,
|
7184 | so there is no point correcting the corresponding
|
7185 | boxes).</para>
|
7186 | </listitem>
|
7187 | </varlistentry>
|
7188 |
|
7189 | <varlistentry>
|
7190 | <term><option>--line-width
|
7191 | <replaceable>width</replaceable></option></term>
|
7192 |
|
7193 | <listitem>
|
7194 | <para>sets the line width (in points) when drawing symbols to
|
7195 | correct answers.</para>
|
7196 | </listitem>
|
7197 | </varlistentry>
|
7198 |
|
7199 | <varlistentry>
|
7200 | <term><option>--symbols
|
7201 | <replaceable>symbols-definition</replaceable></option></term>
|
7202 |
|
7203 | <listitem>
|
7204 | <para>defines how boxes will be annotated. symbols-definition
|
7205 | is a comma separated list of
|
7206 | <literal><replaceable>H</replaceable>-<replaceable>A</replaceable>:<replaceable>shape</replaceable>:<replaceable>color</replaceable></literal>
|
7207 | constructs, where <replaceable>H</replaceable> is
|
7208 | <literal>0</literal> or <literal>1</literal> depending on
|
7209 | whether the box has to be checked or not,
|
7210 | <replaceable>A</replaceable> is <literal>0</literal> or
|
7211 | <literal>1</literal> depending on whether the box is actually
|
7212 | checked or not, <replaceable>shape</replaceable> is one of
|
7213 | <literal>none</literal>, <literal>circle</literal>,
|
7214 | <literal>mark</literal>, <literal>box</literal> and
|
7215 | <replaceable>color</replaceable> is a color (name or #RGB, see
|
7216 | ImageMagick or GraphicsMagick documentation for details).
|
7217 | Default value is
|
7218 | "<code>0-0:none,0-1:circle:red,1-0:mark:red,1-1:mark:blue</code>".</para>
|
7219 | </listitem>
|
7220 | </varlistentry>
|
7221 | </variablelist>
|
7222 | </refsect2>
|
7223 |
|
7224 | <refsect2>
|
7225 | <title>Lengths</title>
|
7226 |
|
7227 | <para>The following length can be given with a unit
|
7228 | (<code>in</code>, <code>ft</code>, <code>pt</code>, <code>cm</code>
|
7229 | or <code>mm</code>).</para>
|
7230 |
|
7231 | <variablelist>
|
7232 | <varlistentry>
|
7233 | <term><option>--dist-to-box
|
7234 | <replaceable>d</replaceable></option></term>
|
7235 |
|
7236 | <listitem>
|
7237 | <para>sets the distance from the boxes (going left) where to
|
7238 | write questions scores when using <option>--position
|
7239 | case</option>.Defaults to <code>1cm</code>.</para>
|
7240 | </listitem>
|
7241 | </varlistentry>
|
7242 |
|
7243 | <varlistentry>
|
7244 | <term><option>--dist-margin
|
7245 | <replaceable>d</replaceable></option></term>
|
7246 |
|
7247 | <listitem>
|
7248 | <para>sets the margin size. Defaults to
|
7249 | <code>5mm</code>.</para>
|
7250 | </listitem>
|
7251 | </varlistentry>
|
7252 |
|
7253 | <varlistentry>
|
7254 | <term><option>--dist-margin-global
|
7255 | <replaceable>d</replaceable></option></term>
|
7256 |
|
7257 | <listitem>
|
7258 | <para>sets the margin size for the header. Defaults to
|
7259 | <code>3mm</code>.</para>
|
7260 | </listitem>
|
7261 | </varlistentry>
|
7262 | </variablelist>
|
7263 | </refsect2>
|
7264 | </refsect1>
|
7265 | </refentry>
|
7266 |
|
7267 | <refentry>
|
7268 | <refmeta>
|
7269 | <refentrytitle>AMC-mailing</refentrytitle>
|
7270 |
|
7271 | <manvolnum>1</manvolnum>
|
7272 |
|
7273 | <refmiscinfo class="source">Auto Multiple Choice</refmiscinfo>
|
7274 |
|
7275 | <refmiscinfo class="version">@/PACKAGE_V_DEB/@</refmiscinfo>
|
7276 | </refmeta>
|
7277 |
|
7278 | <refnamediv>
|
7279 | <refname>AMC-mailing</refname>
|
7280 |
|
7281 | <refpurpose>mail PDF annotated completed answer sheets to
|
7282 | students</refpurpose>
|
7283 | </refnamediv>
|
7284 |
|
7285 | <refsynopsisdiv>
|
7286 | <cmdsynopsis>
|
7287 | <command>auto-multiple-choice</command>
|
7288 |
|
7289 | <arg choice="plain">mailing</arg>
|
7290 |
|
7291 | <arg>--xmlargs <replaceable>args.xml</replaceable></arg>
|
7292 |
|
7293 | <arg choice="plain">--project
|
7294 | <replaceable>project-dir</replaceable></arg>
|
7295 |
|
7296 | <arg choice="plain">--students-list
|
7297 | <replaceable>students-list.csv</replaceable></arg>
|
7298 |
|
7299 | <arg>--list-encoding <replaceable>encoding</replaceable></arg>
|
7300 |
|
7301 | <arg choice="plain">--email-column
|
7302 | <replaceable>col</replaceable></arg>
|
7303 |
|
7304 | <arg choice="plain">--sender
|
7305 | <replaceable>sender-email</replaceable></arg>
|
7306 |
|
7307 | <arg choice="plain">--subject
|
7308 | <replaceable>subject</replaceable></arg>
|
7309 |
|
7310 | <arg choice="plain">--text
|
7311 | <replaceable>email-body</replaceable></arg>
|
7312 |
|
7313 | <arg>--text-content-type
|
7314 | <replaceable>content-type</replaceable></arg>
|
7315 |
|
7316 | <arg>--debug <replaceable>file.log</replaceable></arg>
|
7317 |
|
7318 | <arg rep="repeat"><replaceable>transport
|
7319 | arguments</replaceable></arg>
|
7320 | </cmdsynopsis>
|
7321 | </refsynopsisdiv>
|
7322 |
|
7323 | <refsect1>
|
7324 | <title>Description</title>
|
7325 |
|
7326 | <para>The command <command>AMC-mailing.pl</command> sends by email the
|
7327 | PDF annotated completed answer sheets to the students. Email addresses
|
7328 | are taken from the students list file.</para>
|
7329 |
|
7330 | <variablelist>
|
7331 | <varlistentry>
|
7332 | <term><option>--project
|
7333 | <replaceable>project-dir</replaceable></option></term>
|
7334 |
|
7335 | <listitem>
|
7336 | <para>Gives the project directory.</para>
|
7337 | </listitem>
|
7338 | </varlistentry>
|
7339 |
|
7340 | <varlistentry>
|
7341 | <term><option>--students-list
|
7342 | <replaceable>students-list.csv</replaceable></option></term>
|
7343 |
|
7344 | <listitem>
|
7345 | <para>sets the students list file name.</para>
|
7346 | </listitem>
|
7347 | </varlistentry>
|
7348 |
|
7349 | <varlistentry>
|
7350 | <term><option>--list-encoding
|
7351 | <replaceable>encoding</replaceable></option></term>
|
7352 |
|
7353 | <listitem>
|
7354 | <para>selects an encoding for file
|
7355 | <replaceable>students-list.csv</replaceable> (default is
|
7356 | utf-8).</para>
|
7357 | </listitem>
|
7358 | </varlistentry>
|
7359 |
|
7360 | <varlistentry>
|
7361 | <term><option>--email-column
|
7362 | <replaceable>col</replaceable></option></term>
|
7363 |
|
7364 | <listitem>
|
7365 | <para>sets the name of the column containing the email addresses
|
7366 | of the students in the students list file.</para>
|
7367 | </listitem>
|
7368 | </varlistentry>
|
7369 |
|
7370 | <varlistentry>
|
7371 | <term><option>--sender
|
7372 | <replaceable>sender-email</replaceable></option></term>
|
7373 |
|
7374 | <listitem>
|
7375 | <para>sets the sender email.</para>
|
7376 | </listitem>
|
7377 | </varlistentry>
|
7378 |
|
7379 | <varlistentry>
|
7380 | <term><option>--cc
|
7381 | <replaceable>cc-email-address</replaceable></option></term>
|
7382 |
|
7383 | <listitem>
|
7384 | <para>sets the carbon copy email address.</para>
|
7385 | </listitem>
|
7386 | </varlistentry>
|
7387 |
|
7388 | <varlistentry>
|
7389 | <term><option>--bcc
|
7390 | <replaceable>bcc-email-address</replaceable></option></term>
|
7391 |
|
7392 | <listitem>
|
7393 | <para>sets the blind carbon copy email address.</para>
|
7394 | </listitem>
|
7395 | </varlistentry>
|
7396 |
|
7397 | <varlistentry>
|
7398 | <term><option>--subject
|
7399 | <replaceable>subject</replaceable></option></term>
|
7400 |
|
7401 | <listitem>
|
7402 | <para>sets the subject of the emails to send.</para>
|
7403 | </listitem>
|
7404 | </varlistentry>
|
7405 |
|
7406 | <varlistentry>
|
7407 | <term><option>--text
|
7408 | <replaceable>email-body</replaceable></option></term>
|
7409 |
|
7410 | <listitem>
|
7411 | <para>sets the body text of the emails to send.</para>
|
7412 | </listitem>
|
7413 | </varlistentry>
|
7414 |
|
7415 | <varlistentry>
|
7416 | <term><option>--text-content-type
|
7417 | <replaceable>content-type</replaceable></option></term>
|
7418 |
|
7419 | <listitem>
|
7420 | <para>sets the content-type of email text.
|
7421 | <replaceable>content-type</replaceable> may be
|
7422 | <constant>text/plain</constant> or
|
7423 | <constant>text/html</constant>.</para>
|
7424 | </listitem>
|
7425 | </varlistentry>
|
7426 |
|
7427 | <varlistentry>
|
7428 | <term><option>--attach
|
7429 | <replaceable>filename</replaceable></option></term>
|
7430 |
|
7431 | <listitem>
|
7432 | <para>adds file <replaceable>filename</replaceable> as an
|
7433 | attachment to all emails sent. Use this option several times to
|
7434 | attach multiple files.</para>
|
7435 | </listitem>
|
7436 | </varlistentry>
|
7437 |
|
7438 | <varlistentry>
|
7439 | <term><option>--transport
|
7440 | <replaceable>transport</replaceable></option></term>
|
7441 |
|
7442 | <listitem>
|
7443 | <para>sets the transport to use.
|
7444 | <replaceable>transport</replaceable> may be
|
7445 | <constant>sendmail</constant> or
|
7446 | <constant>SMTP</constant>.</para>
|
7447 | </listitem>
|
7448 | </varlistentry>
|
7449 |
|
7450 | <varlistentry>
|
7451 | <term><option>--debug
|
7452 | <replaceable>file.log</replaceable></option></term>
|
7453 |
|
7454 | <listitem>
|
7455 | <para>gives a file to fill with debugging information.</para>
|
7456 | </listitem>
|
7457 | </varlistentry>
|
7458 | </variablelist>
|
7459 | </refsect1>
|
7460 |
|
7461 | <refsect1>
|
7462 | <title>Transport arguments</title>
|
7463 |
|
7464 | <para>Depending on the value used for argument
|
7465 | <replaceable>transport</replaceable>, the following arguments can be
|
7466 | added:</para>
|
7467 |
|
7468 | <refsect2>
|
7469 | <title>Transport sendmail</title>
|
7470 |
|
7471 | <variablelist>
|
7472 | <varlistentry>
|
7473 | <term><option>--sendmail-path
|
7474 | <replaceable>path</replaceable></option></term>
|
7475 |
|
7476 | <listitem>
|
7477 | <para>sets the path to the <command>sendmail</command> command
|
7478 | (defaults to <filename>/usr/sbin/sendmail</filename>).</para>
|
7479 | </listitem>
|
7480 | </varlistentry>
|
7481 | </variablelist>
|
7482 | </refsect2>
|
7483 |
|
7484 | <refsect2>
|
7485 | <title>Transport SMTP</title>
|
7486 |
|
7487 | <variablelist>
|
7488 | <varlistentry>
|
7489 | <term><option>--smtp-host
|
7490 | <replaceable>host</replaceable></option></term>
|
7491 |
|
7492 | <listitem>
|
7493 | <para>sets the SMTP hostname (defaults to
|
7494 | <constant>smtp</constant>).</para>
|
7495 | </listitem>
|
7496 | </varlistentry>
|
7497 |
|
7498 | <varlistentry>
|
7499 | <term><option>--smtp-port
|
7500 | <replaceable>port</replaceable></option></term>
|
7501 |
|
7502 | <listitem>
|
7503 | <para>sets the port to use (default value is 25).</para>
|
7504 | </listitem>
|
7505 | </varlistentry>
|
7506 | </variablelist>
|
7507 | </refsect2>
|
7508 | </refsect1>
|
7509 |
|
7510 | <refsect1>
|
7511 | <title>Arguments in a XML file</title>
|
7512 |
|
7513 | <para>To avoid encoding problems, one can place some arguments in a
|
7514 | XML file and use the <option>--xmlargs
|
7515 | <replaceable>file.xml</replaceable></option> argument as the first
|
7516 | command argument. Here is an example of such a file:</para>
|
7517 |
|
7518 | <programlisting><?xml version="1.0" encoding="UTF-8"?>
|
7519 | <arguments>
|
7520 | <arg>--sender</arg><arg>Bienvenüe &lt;paamc@passoire.fr&gt;</arg>
|
7521 | <arg>--text</arg><arg>Voilà votre copie corrigée</arg>
|
7522 | <arg>--subject</arg><arg>QCM</arg>
|
7523 | </arguments></programlisting>
|
7524 | </refsect1>
|
7525 | </refentry>
|
7526 | </sect1>
|
7527 | </article>
|