I am using Sphinx to write some notes. I am using the Mathjax extension for Math in the notes. The default size of the math is little larger than I would like. On the Mathjax page I found that I can change that size by adding the following script to the HTML file.
MathJax.Hub.Config({
"HTML-CSS": {scale: 90}
});
So, I tried by adding the following in a .rst
file:
.. raw:: html
<script type="text/javascript" >
MathJax.Hub.Config({
"HTML-CSS": {
scale: 90
}
});
</script>
==========
Objective
==========
To change math size \\( \\alpha \\).
The above works great for the math in that specific .rst
file. But I want to do this for many different .rst files that are all part of the same sphinx document. Is it possible to do this without adding the above script to every .rst
file?
Thank you for reading this and would appreciate if you can help.
This can be done with a template:
Create a folder called templates
in the Sphinx project directory.
In conf.py, add
templates_path = ["templates"]
In the templates
directory, create a file called layout.html
with the following contents:
{% extends "!layout.html" %}
{%- block extrahead %}
<script type="text/javascript">
MathJax.Hub.Config({
"HTML-CSS": {
scale: 90
}
});
</script>
{% endblock %}
The <script>
element will be included in the <head>
of every generated HTML page.
The extrahead
template block is empty by default. See the Sphinx templating documentation for details.
Another method:
Use the script_files setting in your overridden layout.html
file.
If you want to avoid altering templates, you can just call Sphinx's add_js_file()
from the setup()
function in your Sphinx project's conf.py:
# conf.py
# ... other settings ...
def setup(app):
# (create a setup() function if you don't already have one;
# or add to the existing setup() ...)
app.add_js_file("mathjax-config.js")
Create the file "mathjax-config.js" in your _static source directory. (Check the conf.py html_static_path
setting to verify the static directories, or define one if needed.) Sphinx will copy it into the output directory during the build.
There's also an add_css_file()
method for css files. And both of them can take either relative paths to your static source dirs, or full urls to external resources.
Before Sphinx v1.8, these functions were called add_javascript()
and add_stylesheet()
.
And in Sphinx v3.0 or later, there's an even simpler approach that avoids the need for an extra JS file.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With