amc2moodle
amc2moodle
, is a suite of tools to convert multiple choice questionnaires (MCQ)
amc2moodle
use LaTeXML to expands LaTeX commands, it could be easily adapted to support most of LaTeX capabilities.The conversion supports equations, tables, figures and standard text formatting. This software is written in python and in XSLT, thus the conversion step is OS independent. It has been tested for moodle 3.x or 4.x and auto-multiple-choice (v1.0.3-v1.5).
Note that auto-multiple-choice (amc) LaTeX format is very convenient, and can be used for preparing multiple choice questions off-line and avoiding moodle web GUI.
A Docker image with amc2moodle
and its dependencies is available at ghcr.io/nennigb/amc2moodle.
Once the docker software is installed, this image allows to use amc2moodle
on windows plateforms or to add the resource isolation features on linux or macOS. For more information, see the amc2moodle
' docker README.
To install amc2moodle
as a python package on linux or macOS platform, follow the steps below.
imageMagick
, useful to convert image files (.eps, .pdf, ...) into png
sudo apt-get install imagemagick
brew install imagemagick
(see ImageMagick
website for more details )LaTeXML
[tested with version >= 0.8.1] This program does the first step of the conversion into XML
sudo apt-get install latexml
xmlindent
[optional]. This program can be used to indent well the XML file
sudo apt-get install xmlindent
xmllint
natively available on MacOS.For MacOS users, most dependencies can be installed with brew
but LaTeXML
installation can failed for some version. Please see the steps given in the install script workflow.
Run
pip install amc2moodle
pip will download automatically the required files.
or if you have download the sources, run
pip install .
in the root folder (where setup.py
is). This will automatically install other dependencies i.e., lxml
, and Wand
.
Alternatively, you can run
pip install -e .
to install it in editable mode, useful if git is used.
Note: for Ubuntu users use pip3
instead of pip
for python3.
Run
pip uninstall amc2moodle
The program can be run in a shell terminal, for instance to convert an amc LaTeX file to moodle XML
amc2moodle input_Tex_file.tex -o output_file.xml -c catname
Help and options can be obtained using
amc2moodle -h
Then on moodle, go to the course administration\question bank\import
and choose 'moodle XML format' and tick: If your grade are not conform to that you must use: 'Nearest grade if not listed' in import option in the moodle question bank (see below for details).
Examples of the amc2moodle
possibilities are given at QCM.pdf
If your original exam uses AMC-TXT syntax, you must first convert it to LaTeX before feeding it to amc2moodle
. To convert an AMC-TXT file to LaTeX, generate the exam documents with AMC graphical interface as usual. AMC will generate a LaTeX version of your exam called DOC-filtered.tex
inside the project directory, which you can pass to amc2moodle
.
In the same way, conversion from moodle XML to amc LaTeX file, run
moodle2amc input_XML_file.xml
Help and options can be obtained using
moodle2amc -h
Then the output LaTeX can be edited and included for creating amc exams. Examples of the moodle2amc
possibilities are given here.
In case of problem, do not hesitate to ask for help on discussions or to create an issues. Both binaries (amc2moodle
and moodle2amc
) write full log in log files based on the name of the input file (_amc2moodle.log
and _amc2moodle.log
suffixes are added on these files).
perl
modules Parse::RecDescent
, XML::LibXML
and XML::LibXSLT
here with cpan
or cpanm
in CLI.Warning:missing_file:package-name Can't find binding for package package-name
, you can try to invoque amc2moodle
with --includestyles
flag.If you want to contribute to amc2moodle
, your are welcomed! Don't hesitate to
To ensure code homogeneity among contributors, we use a source-code analyzer (e.g. pylint
).
Before submitting a PR, run the tests suite.
This file is part of amc2moodle, a tool to convert automultiplechoice quizzes to moodle questions. amc2moodle is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. amc2moodle is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with amc2moodle. If not, see https://www.gnu.org/licenses/.