Skip to content


Options affect the behaviour of each question.

Question Level Simplify

See the entry on simplification. Default is true.

Assume Positive

This option sets the value of Maxima's



If true and the sign of a parameter cannot be determined from the current context or other considerations, sign and asksign(x) return true. This may forestall some automatically-generated asksign queries, such as may arise from integrate or other computations

Default is False

Question Penalty

This is the percentage of the marks deducted from each different and valid attempt which is not completely correct, when the penalty mark modification scheme is in use. The default is of the marks available for this question, entered at .

Note that Moodle stores scores to 7 decimal places, so, should be entered as , and as . If you input any number close to , but with less precision, then the extra digits will automatically be added. The exact range affected is that any penalty and is changed to , and any penalty and is changed to .


The following options affect how mathematics is displayed.

Multiplication Sign

  • (none), e.g.
  • Dot, e.g.
  • Cross, e.g.

In practice it is very helpful to have some kind of multiplication sign displayed to the student. The difference between is very subtle. Notice the spacing? The first means xe^x=(xe)^x the second is x*e^x. Could be quite confusing to students if there is no multiplication sign. Using neatly solves this problem.

Internally the display of multiplication signs is controlled by the STACK function make_multsgn(ex), where the argument can be one of the strings "cross", "dot" or "blank". This can be switched part-way through a session. E.g. consider the following castext.

Default: {@a*b@}.
Switch to cross: {@(make_multsgn("cross"), a*b)@}.
Cross remains: {@a*b@}.

The expression (make_multsgn("cross"), a*b) uses parentheses as an abbreviation for Maxima's block command. So, the first expression make_multsgn("cross") is evaluated which changes the display option to a cross. Then the second expression is evaluated and displayed as . The new option persists in the next expression.

Logic symbols

How logical symbols should be displayed. The values are language, e.g. or symbol, e.g. .

Surd for Square Root

This option sets the value of Maxima's


When false the prefix function sqrt(x) will be displayed as . Please note that Maxima (by default) does not like to use the symbol. The internal representation favours fractional powers, for very good reasons. In Maxima 5.19.1 we get:

(%i1) 4*sqrt(2);
(%o1) 2^(5/2)
(%i2) 6*sqrt(2);
(%o2) 3*2^(3/2)

The discussion of this issue can be followed on the Maxima mailing list. Do you really want to continue using in your teaching?


In Maxima %i is the complex unit satisfying %i^2=-1. However, students would like to type i and physicists and engineers j. We also sometimes need to use symbols i and j for vectors. To accommodate these needs we have an option ComplexNo which provides a context for these symbols and affects the way they are displayed.

Option Interpretation Display ~ ~ ~ ~
%i^2 i^2 j^2 %i i j
-------- ---------------- --------- ----- ---- ----- -----
i -1 -1 j^2 i i j
j -1 i^2 -1 j i j
symi -1 i^2 j^2 i i j
symj -1 i^2 j^2 j i j

Note the use of both Roman and italic symbols in this table.

Matrix parentheses

See the entry on matrices.

Inline and displayed fractions.

The display of fractions can take two forms: inline and displayed .

The default behaviour is displayed, i.e. using LaTeX \frac{}{}.

The function stack_disp_fractions(ex) can be used to control the display.

  • stack_disp_fractions("i") switches display to inline.
  • stack_disp_fractions("d") switches display to display.

Note, for CASText the display is controlled by the prevailing setting at the moment the text is displayed, not when a variable is defined in the question variables. Hence, if you would like a single inline fraction within a CASText you will need to use

Normally fractions are displayed {@1/x@}. This switches to inline {@(stack_disp_fractions("i"), 1/x)@}, which persists {@1/a@}.  Switch explicitly back to displayed {@(stack_disp_fractions("d"),1/x)@}.