User interface - Wiris Quizzes Studio

All mathematical content in a WIRIS question type is handled from Wiris Quizzes Studio, or Studio for short. Studio can always be accessed from a WIRIS question type by pressing this icon:

The Studio window is organized into four tabs, which we explain in detail below. Which tabs appear, and what they look like actually depends on the question type, but we'll explain everything in the Short answer case. The other question types have the same or fewer options.

In this tab you control the answer field for the student, and you also set the correct answer here inside a formula editor.

Below the editor is the Input method, with the following options:

  • MathType embedded: Select this for the student to use an embedded editor (default).
  • MathType in popup: Select this for the student to use a small input box, with a button to insert formulas with our editor.
  • Plain text input field: Select this for the student to use a small input box with no formula editor.

One of the above three is always selected. The further optional boxes are:

  • Compound answer: In Short answer questions, you can ask for more than one answer in a single question. For more details see this page: Compound answers.
  • Include text editor: You can provide your students with a text editor to make them include the reasoning they have followed to answer the question. For more details see this page: Auxiliary input.
  • Include CalcMe: You can supply your students with our online calculator while answering the question, and set initial content for the calculator if desired. Keep in mind that the calculator can do a lot more than numerical computations!

Here you select what kind of input is expected from the student. For example, choose between general mathematical expressions or quantities that involve units. Along with this, you can decide how the correct answer is validated against the student answer. The main function of many of the options is to decide how syntax checking works on the student side. For example [0,1) is normally highlighted as incorrect syntax, unless we choose the Intervals option. The tab is divided into three sections, explained below.

Allowed input

Choose the desired answer type. These can be:

  • General: Any mathematical expression. This is the default option, and it is probably the type you need in the majority of cases.
  • Quantity: The most important use of this is for answers with units or currencies. This option would also be appropriate for numerical answers, fractions, ratios, etc. The General option will work for these cases, but you have a few more options with Quantity.
  • Text: For pure text answers with no mathematical content. This option is rarely used. More details here.

The first two also have a series of options.

Options for General

Option Description Default
Constants Which symbols are recognized as mathematical constants (e.g. if i is enabled then i² will be understood as –1). All selectedblank
Functions Which function names are recognized by their usual meaning. (e.g. if exp/log is enabled then "ln(2)" will be understood and calculated as 0.6931... All selected
User Functions Define your own function names to add to the above list. They won't be calculated as anything, but sometimes this option is useful. See this page for an example: user functions Empty
List Allow lists as answers. Options for list separators are shown below. Selected
Lists always need curly brackets "{}" Require that lists be enclosed in curly brackets to be recognized as a list (e.g. if selected "4,7,88,9" would not be understood as a list - in fact, it would be highlighted as syntactically incorrect). Selected
Intervals Recognizes interval notation as valid syntax. Expressions like [0,1] are already valid without this, but now we may have for instance ]0,1] or (0,1]. More details here. Unselectedblank
Separators Decide which symbols act as decimal, digit, and list separators. Point "." : decimal digits
Comma "," : list items
Space " " : Nothing

Options for Quantity

Option Description Default
Constants Which symbols are recognized as mathematical constants (e.g. if i is enabled then i² will be understood as –1). π, i, j
Units Which units are recognized. It's important to note that "all" includes more units than the other 6 shown - it includes all S.I. basic and derived units. all
Unit prefixes Which unit prefixes are recognized. Again, "all" includes more prefixes than the ones shown. M,k,c,m
Mixed fractions Allow mixed fractions to be recognized. Without this option, a number next to a fraction is understood to be multiplying it. Unselected
List Allow lists as answers. Selected
Separators Decide which symbols act as a decimal, digit, and list separators. Additionally, you can use apostrophe ' for decimal mark. You must choose Quantity, and in Options > Units uncheck all, and then uncheck º'". Point "." : decimal digits
Comma "," : list items
Space " " : Nothing
See a detailed explanation of lists and sets here.
See a detailed explanation of percentages and per mille use here.

Comparison with student answer

Once we've decided what format we expect the student answer to be in, we have a few options for how their answer should be compared to the correct answer.

Comparison with student answer criteria
Tolerance This specifies the tolerance criteria used for the comparison between the student's answer and the correct answer. This setting applies globally (to the entire question). The default value is 0.1% percent error. More details
Literally equal This removes all mathematical interpretation from the comparison. The student's answer is only correct if it matches the correct answer exactly. For example, if the correct answer is 4 but the student writes 4.0, it will not be counted. This criterion is rarely recommended.
Mathematically equal This is the default comparison. It will detect if what the student has written is mathematically equal to the correct answer. For example, we don't need to worry if the student writes a + b or b + a. More details
Equivalent equations This comparison is very similar to the above, but it is for the special case where the answer is an equation (e.g. the student could write y = 2x – 5, or 2.5 equals x minus y over 2, or any equivalent form). More details
Any answer Anything that the student answers will be counted as correct. This is useful in some cases. More details
Grading function Define your own function to decide which answers are accepted, and how to grade them. This is an advanced feature. More details
Compare as sets This is a checkbox that is independent of the above options. When checked, order and repetition are ignored from lists. So, if the correct answer is the set {1,5,2}, then {5,5,5,2,1} (for example) would be accepted. More details

Additional properties

Sometimes it's not just the value of the answer that's important, but also its form. This usually happens when you are teaching basic algebraic manipulation, and you want the answer in a very specific form. For example, if you’re teaching how to reduce a fraction, you probably want to accept only the reduced fraction as the correct answer. If so, all other equivalent fractions are wrong, despite having the same value. In this case, we need to select is simplified from the list of Additional properties.

Structure Examples
Correct Wrong
has integer form It checks whether the answer is a single integer 123 1.0
has fraction form It checks whether the answer is a single fraction or integer negative 1 half 1.25
has polynomial form It checks whether the answer is syntactically a polynomial with real or complex coefficients 1 minus x sin left parenthesis x right parenthesis x
has rational function form It checks whether the answer has the form of a rational function y over x open parentheses square root of x close parentheses squared over y
is a combination of elementary functions It checks whether the answer is a combination of elemental functions sin left parenthesis x right parenthesis plus square root of y integral x d x
is expressed in scientific notation It checks whether the answer is in scientific notation 1.20 times 10 to the power of negative 4 end exponent 12.0 times 10 to the power of negative 4 end exponent
Specific property Examples
Correct Wrong
is simplified It checks whether the expression cannot be simplified open parentheses square root of x close parentheses cubed open parentheses square root of x close parentheses to the power of 4
is expanded It checks whether the expression is in its fully expanded form 27 1 plus 1
is factorized It checks whether an integer or a polynomial is factorized 2 to the power of 4 times 3 48
is rationalized It checks whether the expression does not have square (or higher) roots in the denominator. It also checks whether the expression has a pure real denominator (in the case of complex numbers) fraction numerator square root of 2 over denominator 2 end fraction fraction numerator 1 over denominator square root of 2 end fraction
doesn't have common factors It checks whether the summands of the answer have no common factors 2 left parenthesis 2 plus 3 plus 4 right parenthesis 4 plus 6 plus 8
has minimal radicands It checks whether any present radicands are minimal 2 square root of 2 square root of 8
is divisible by It checks whether the answer is divisible by the given value x squared minus y squared, given x minus y 24, given 7
has a single common denominator It checks whether the answer has a single common denominator fraction numerator x plus 1 over denominator x minus 1 end fraction fraction numerator x plus 1 over denominator x minus 1 end fraction plus fraction numerator x minus 1 over denominator x plus 1 end fraction
has unit equivalent to It checks whether the unit of measurement in the student's answer is equivalent to the given one. Multiples are not equivalent 5 space text N end text times text m end text, given text J end text 3 text m end text, given text km end text
has unit literally equal to It checks whether the unit of the answer is literally equal to the given one 3 text km end text, given text km end text 3 text m end text times text s end text to the power of negative 1 end exponent, given text m end text divided by text s end text
has precision It check that the response is expressed within a given precision range 2.50, between 3 and 4 significant figures 2.5, between 3 and 4 decimal places

For a complete and advanced description of all the properties, see assertions.

Until now, Wiris CAS was the tool for writing the algorithms in Wiris Quizzes Studio. Now, CalcMe has replaced Wiris CAS as the calculator in the Variables tab. If you have questions using Wiris CAS, we recommend you to see the CalcMe integration guide where the reasons for the update and how to make the transition from the old algorithms to the new ones are explained.

This tab is at the core of many of Wiris Quizzes' capabilities. We define variables here in a computer algebra system (CAS), and these are used in various parts of the question definition, mainly in the question's statement and correct answer. If you're familiar with CalcMe or Wiris CAS then you have a head start. If not, it's easy to get started. You can think of it as a big scientific calculator, but which can also manipulate symbolic equations. You can always check CalcMe basic guide (or CAS basic guide).

Declaring variables

Variables are defined by writing a name for a variable, an equals sign and an expression on the right-hand side. For example:

Wiris CAS CalcMe

There are two details to note:

Declaring variables

  • The left-hand side can be any letter or word without spaces, excluding reserved words (e.g. sin, cos)
  • The right-hand side can be any reasonable mathematical expression, be it numerical (as in the first variable above) or algebraic (as in the second).

Within this field, variables can be manipulated and acted on, and new variables can be defined from old ones, just as on paper. For instance:

Wiris CAS CalcMe

Only for Wiris CAS: We're using the space outside the yellow variables box to test the value of new_variable. This is what it is intended for. None of what is written outside of the box is used in the question at all; the space is just for testing variables and instructions whenever it might be necessary.

Algorithm language

The algorithm field is available in multiple languages. By default, the language of the CAS will be the same as the Moodle, or English as the fallback. But you can choose another one of the available languages.

If you change the CalcMe language then any existing algorithm in it will be automatically translated. This is very useful if you have algorithms in other languages, like the ones in STEM collection.

Inserting variables

Those are the basics of how variables function inside of Wiris Quizzes Studio. What's very important though, is to know how to use these variables outside of Studio. The answer is simple:

To include a variable anywhere within a question type, write a pound symbol: # followed by the name of the variable (e.g. #a)

So we could include the above polynomial in a question just like this:

This would appear to the student as:

It's also possible to insert these variables in the question's feedback. Furthermore, you can use the student's answer there, learn how to do it here.

Random variables

Perhaps the most important use of variables is to introduce randomness in a question. There is a simple instruction in CalcMe that generates random numbers, random(). For example,

Wiris CAS CalcMe

generates a random number between -10 and 10. This could then be used in the question text as we have seen. The result is that each time the question is opened, a random value for a is used. So, students viewing the same question will see potentially different values.

There are many ways to exploit this feature, and we list a few of them ourselves in the basic guide. Similarly, if you want to see examples of questions that use randomness at different levels, you can see their dedicated page
If you are interested in having the same random seed for the same student, learn how to do it here.

Output options

Different countries, education levels, or textbooks, use different notations. You can configure some output options in the Application settings section inside CalcMe to better match the notation you use.

These options apply only to the values generated in the Algorithm field, i.e. the variables. All generated values will be in the same notation; you can not generate values in different notations.

Only for Wiris CAS: If you are still using the old calculator, these output options must be configured from Variables tab of Wiris Quizzes Studio.

Imaginary unit

Choose between i and j (often used in electrical engineering).

Times operator

Choose between middle dot · and cross x. Set Implicit to hide all non-necessary products, that is, implicit products.


Precision must be an integer between 1 and 15 included, and it can be set as Significant figures or Decimal places. By default it is Precision = 4 significant figures.

All notations usually imply a rounding. When rounding, the rule used for tie-breaking is half-up.

For a complete detailed information about tolerance, precision and notation, visit our dedicated page.


These notations apply only to decimal numbers. Numbers and expressions without a decimal point in them are exact, and so these notations don't apply to them. You can always convert an exact expression to decimal by multiplying by 1.0 for instance.

For a complete detailed information about tolerance, precision and notation, visit our dedicated page.


Choose the symbol for the decimal mark. Available options depend on the symbols in Validation tab, in Options... > Separators marked as Decimal digits. Trailing decimal points of integer numbers are never shown.


Choose the symbol for the digit groups separator, that is, thousands separator. Available options depend on the symbols in Validation tab, in Options... > Separators marked as Digit groups.

List items

Choose the symbol for the list items separator. Available options depend on the symbols in Validation tab, in Options... > Separators marked as List items.

In this tab you can simulate the question quickly, without having to save, exit the question editor, etc. Specifically you can test evaluation criteria, automatic feedback, and variables. The preview interface looks like this:

We will now examine the separate elements of the Preview pane.


This is a formula editor exactly as the student will have, where you can write a test answer.

Note: It's easy to see the toolbar in the editor window presented to the student is different from the MathType toolbar you normally see. This simpler toolbar is easier to navigate, and contains all the symbols and templates the student will likely need when answering quizzes. For full toolbar documentation, see the Toolbar and icons page in the MathType docs.


Click the Test button to see if the answer that you have written is correct. You may also want to use this to check that incorrect answers are, in fact, incorrect.

Correct answer

The correct answer, as defined in the Correct answer tab, will be shown in the blank on the left. Click the arrow button to automatically input the correct answer into the answer blank above. If any variables are defined in the variable tab, there will also be a refresh icon . When clicked, all algorithms in the Variables tab are executed again. In particular any random elements will be newly generated.

You can Export and Import the contents of Wiris Quizzes Studio.

The Export button will immediately download an XML file containing all settings of all tabs of the studio. Your browser will automatically save this file or will ask you where to put it, like any other download.

If you are using Studio inside an LMS (Moodle, Canvas,…), then be aware you are not exporting the question; you are exporting only the studio settings.

The Import button is the reverse action of Export.

You can use Export and Import to help you to:

  • Move algorithms between questions.
  • Change the type of a question; for instance, from shortanswer into multichoice.
  • Move questions between LMS; for instance, from Moodle to Canvas.
  • Provide detailed bug reports to support at

Wiris Quizzes is multilingual and it is today available in the following languages:

Language Original name Configuration code
Catalan català ca
Danish dansk da
English English en
French français fr
German Deutsch de
Greek ελληνικά el
Italian italiano it
Norwegian bokmal norsk bokmål nb
Norwegian nynorsk norsk nynorsk nn
Portuguese português pt
Portuguese Brazilian português brasileiro pt_br
Spanish español es