Edit on GitHub

math_demo

This is a small demo module showing how pdoc renders $\LaTeX$ when invoked as pdoc --math!

Using Math in Docstrings

Note that docstrings work like regular strings, so backslashes are treated as escape characters. You can either escape a backslash with a second backslash:

def foo():
    """docstring with $\\frac{x}{y}$."""

or prefix your docstring with an "r" so that you have a raw string where backslashes are not processed:

def foo():
    r"""raw docstring with $\frac{x}{y}$."""

Advanced Usage

pdoc uses MathJax's MathJax's in-browser renderer by default. Please note that while pdoc generally strives to be self-contained, these resources are included from MathJax's CDN. You can create a math.html.jinja2 file in your pdoc template directory to override the default implementation.

Example

 1r'''
 2This is a small demo module showing how pdoc renders $\LaTeX$ when invoked as `pdoc --math`!
 3
 4# Using Math in Docstrings
 5
 6Note that docstrings work like regular strings, so backslashes are treated as escape characters.
 7You can either escape a backslash with a second backslash:
 8
 9
10```python
11def foo():
12    """docstring with $\\frac{x}{y}$."""
13```
14
15or prefix your docstring with an "r" so that you have a
16[raw string](https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals)
17where backslashes are not processed:
18
19```python
20
21def foo():
22    r"""raw docstring with $\frac{x}{y}$."""
23```
24
25# Advanced Usage
26
27pdoc uses MathJax's MathJax's in-browser renderer by default. Please note that while pdoc
28generally strives to be self-contained, these resources are included from MathJax's CDN.
29You can create a `math.html.jinja2` file in your pdoc template directory to override the
30[default implementation](https://github.com/mitmproxy/pdoc/blob/main/pdoc/templates/math.html.jinja2).
31
32# Example
33'''
34import math
35
36
37def binom_coef(n: int, k: int) -> int:
38    """
39    Return the number of ways to choose $k$ items from $n$ items without repetition and without order.
40
41    Evaluates to $n! / (k! * (n - k)!)$ when $k <= n$ and evaluates to zero when $k > n$.
42    """
43    return math.comb(n, k)
def binom_coef(n: int, k: int) -> int:
38def binom_coef(n: int, k: int) -> int:
39    """
40    Return the number of ways to choose $k$ items from $n$ items without repetition and without order.
41
42    Evaluates to $n! / (k! * (n - k)!)$ when $k <= n$ and evaluates to zero when $k > n$.
43    """
44    return math.comb(n, k)

Return the number of ways to choose $k$ items from $n$ items without repetition and without order.

Evaluates to $n! / (k! * (n - k)!)$ when $k <= n$ and evaluates to zero when $k > n$.