maths / moodle-qtype_stack

Stack question type for Moodle
GNU General Public License v3.0
142 stars 149 forks source link

Use of siunitx in MathJax to enable semantic description of units #603

Open sohagan1 opened 4 years ago

sohagan1 commented 4 years ago

I'm not sure if this request is really to do with STACK or is more to do with Moodle.

I think it would be useful to have access to the siunitx package within MathJax in STACK.

This would allow users to specify units (and more) semantically and have MathJax deal with the presentation in a consistent way. For example, \si{\kilo\gram\metre\per\square\second} would be displayed as “kg m s^{-2}” with the correct spacing. The use of siunitx would also allow the presentation settings to be set - for example, if a slash was wanted to represent "per" then this can be set globally without changing each occurrence.

siunitx also allows for the consistent formatting of large and small numbers. For example, when typesetting “12345”, ideally you’d like “12 345” but that space isn’t a full space – who knows which one it should be though \, \: ? Relying on typists to hardcode that would be a nightmare. Using \num{12345} takes care of it automatically.

So, if siunitx was to be used with a STACK installation, is that something that could just be done with the local Moodle installation or should it happen somewhere else?

aharjula commented 4 years ago

More a Moodles MathJax-filter level of a thing. We do generally want to make STACK easy to install and thus prefer to not require any extra configuration of the MathJax filter as that might be difficult in large shared environments. (Note how difficult it is to configure at any level lower than the whole Moodle install, and then consider shared environments with different styles and cultures in play) This is why STACKs own units system keeps its units-LaTeX rendering simple and does not use that library. This is also relevant from the point of view of large material sharing banks, which do not like to accept additional technical requirements for their materials.

However, if the world would change so that the default MathJax in Moodle would have that library active, and we could config it at a question by question level, then it would make sense to change the way STACK does its own internal units to use that. But, until that happens people who manage to get siunitx to work in their own system will still need to live with STACK internal units coming out in some other form.

Personally, I would be angry if someone would start breaking up my numbers into groups, but that is something that is a part of an overall style config and localisation settings, which might be better handled though other means than relying on an units representation library. This is part of the same level of things as converting between long and short scales in spoken out ARIA-messages and so on, i.e. large scale localisation issues that happen when you don't only speak English etc.

sangwinc commented 1 year ago

This is related to issue #934.

sangwinc commented 7 months ago

Thanks for the suggestion @sohagan1, but we're not planning to add this in the near future because it makes the install process more complex.