Skip to content

Broken {eq} cross-reference to eq:Kalman102 in cross_product_trick.md #884

@mmcky

Description

@mmcky

Summary

In lectures/cross_product_trick.md the cross-reference to the Kalman filtering formulas renders as broken literal text rather than an equation link. There are two linked problems.

1. Malformed {eq} role (line 133) — it closes with } instead of a backtick:

A consequence of  formulas {eq}`eq:Kalman102} is that ...

Because the role isn't well-formed ({eq}`label` needs a closing backtick), MyST doesn't parse it as a cross-reference — it renders verbatim as {eq}`eq:Kalman102}.

2. The label is attached to an unnumbered align* block (line 121):

\begin{align*}
K(\Sigma_t) & = (A \Sigma_t D' + BF')(D \Sigma_t D' + FF')^{-1}, \\
\Sigma_{t+1}&  = A \Sigma_t A' + BB' - (A \Sigma_t D' + BF')(D \Sigma_t D' + FF')^{-1} (D \Sigma_t A' + FB').
\end{align*} (eq:Kalman102)

align* is unnumbered, and the (label) target syntax attaches to a $$ … $$ block — not to a bare \end{align*}. So (eq:Kalman102) currently renders as literal text after the equation and is not a referenceable target.

Note the two are linked: fixing only the role syntax in (1) would leave the reference pointing at a non-existent label, which under the -W (warnings-as-errors) build would then fail as an undefined label.

Suggested fix

Make the equation a labelled $$ … $$ block and reference it with a well-formed role.

Line 118–121:

$$
\begin{aligned}
K(\Sigma_t) & = (A \Sigma_t D' + BF')(D \Sigma_t D' + FF')^{-1}, \\
\Sigma_{t+1} & = A \Sigma_t A' + BB' - (A \Sigma_t D' + BF')(D \Sigma_t D' + FF')^{-1} (D \Sigma_t A' + FB').
\end{aligned}
$$ (eq:Kalman102)

Line 133:

A consequence of formulas {eq}`eq:Kalman102` is that ...

Context

Found during a style/structure audit of the QuantEcon lecture series (May 2026) — report: https://quantecon.github.io/audit.2026-05.style-guide/ (see the cross_product_trick page).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions