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).
Summary
In
lectures/cross_product_trick.mdthe 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:
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_trickpage).