Aller au contenu principal
Version: 3.0.0-rc.1

Équations mathématiques

Les équations mathématiques peuvent être rendues en utilisant KaTeX.

Utilisation

Veuillez lire la documentation de KaTeX pour plus de détails.

En ligne

Écrivez des équations mathématiques en ligne en enveloppant les équations LaTeX entre $ :

Soit $f\colon[a,b]\to\R$ est une intégrale de Riemann. Soit $F\colon[a,b]\to\R$ est
$F(x)=\int_{a}^{x} f(t)\,dt$. Alors $F$ est continue, et pour tout $x$ tel que
$f$ est continue à $x$, $F$ est différentiable à $x$ avec $F'(x)=f(x)$.
http://localhost:3000

Soit fcolon[a,b]toRf\\colon[a,b] \\to \\R est une intégrale de Riemann. Soit Fcolon[a,b]toRF\\colon[a,b]\\to\\R est F(x)=int_axf(t),dtF(x)= \\int\_{a}^{x} f(t),dt. Alors FF est continue, et pour tout xx tel que ff est continue à xx, FF est différentiable à xx avec F(x)=f(x)F'(x)=f(x).

Blocs

Pour le bloc d'équation ou le mode d'affichage, utilisez les sauts de ligne et le $$ :

$$
I = \int_0^{2\pi} \sin(x)\,dx
$$
http://localhost:3000
I=int02pisin(x),dxI = \\int_0^{2\\pi} \\sin(x),dx

Configuration

Pour activer KaTeX, vous devez installer les plugins remark-math et rehype-katex.

npm install --save remark-math@6 rehype-katex@7
attention

Make sure to use remark-math 6 and rehype-katex 7 for Docusaurus v3 (using MDX v3). We can't guarantee other versions will work.

Those 2 plugins are now only available as ES Modules. To simplify usage, it is recommended to use an ES Modules config file:

ES module docusaurus.config.js
import remarkMath from 'remark-math';
import rehypeKatex from 'rehype-katex';

export default {
presets: [
[
'@docusaurus/preset-classic',
{
docs: {
path: 'docs',
remarkPlugins: [remarkMath],
rehypePlugins: [rehypeKatex],
},
},
],
],
};
Using a CommonJS config file?
Si vous décidez d'utiliser un fichier de config CommonJS, il est possible de charger ces plugins de module ES grâce à des importations dynamiques et une fonction créateur de config asynchrone :
CommonJS module docusaurus.config.js
module.exports = async function createConfigAsync() {
return {
presets: [
[
'@docusaurus/preset-classic',
{
docs: {
path: 'docs',
remarkPlugins: [(await import('remark-math')).default],
rehypePlugins: [(await import('rehype-katex')).default],
},
},
],
],
};
};

Incluez le CSS de KaTeX dans votre configuration sous stylesheets :

stylesheets: [
{
href: 'https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css',
type: 'text/css',
integrity:
'sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM',
crossorigin: 'anonymous',
},
],

Dans l'ensemble, les changements sont les suivants :

docusaurus.config.js
import remarkMath from 'remark-math';
import rehypeKatex from 'rehype-katex';

export default {
title: 'Docusaurus',
tagline: 'Construire rapidement des sites Web optimisés, se concentrer sur votre contenu',
presets: [
[
'@docusaurus/preset-classic',
{
docs: {
path: 'docs',
remarkPlugins: [remarkMath],
rehypePlugins: [rehypeKatex],
},
},
],
],
stylesheets: [
{
href: 'https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css',
type: 'text/css',
integrity:
'sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM',
crossorigin: 'anonymous',
},
],
};

Auto-hébergement des ressources KaTeX

Le chargement des feuilles de style, des polices et des bibliothèques JavaScript à partir de sources CDN est une bonne pratique pour les bibliothèques et les ressources populaires, car elle réduit la quantité de ressources que vous devez héberger. Si vous préférez héberger vous-même le fichier katex.min.css (avec les polices KaTeX requises), vous pouvez télécharger la dernière version depuis [KaTeX GitHub releases] (https://github.com/KaTeX/KaTeX/releases), extraire et copier katex.min.css et le répertoire fonts (seuls les types de polices .woff2 devraient suffire) dans le répertoire static de votre site, et dans docusaurus.config.js, remplacez le href de la feuille de style de l'URL du CDN par votre chemin local (disons, /katex/katex.min.css).

docusaurus.config.js
export default {
stylesheets: [
{
href: '/katex/katex.min.css',
type: 'text/css',
},
],
};