commit 16660d12b4333f6486259048dec2b0a2e48a64d9 Author: Thibaut Cuvelier <tcuvel...@lyx.org> Date: Thu Mar 21 00:29:23 2024 +0100
MathML in HTML: don't escape <> for a raw LaTeX output. In some cases (I only found numbered equations), the LaTeX output still has a bit of HTML. For numbered equations, using \tag{X} (as suggested in https://www.lyx.org/trac/ticket/13048) would require fiddling with the output. KaTeX doesn't support \label. This patch is probably the easiest and most reliable fix. Fixes https://www.lyx.org/trac/ticket/13048. --- autotests/export/xhtml/math_output_latex.lyx | 112 +++++++++++++++++++++++++ autotests/export/xhtml/math_output_latex.xhtml | 28 +++++++ src/mathed/InsetMathHull.cpp | 3 +- 3 files changed, 142 insertions(+), 1 deletion(-) diff --git a/autotests/export/xhtml/math_output_latex.lyx b/autotests/export/xhtml/math_output_latex.lyx new file mode 100644 index 0000000000..59d77d2f9b --- /dev/null +++ b/autotests/export/xhtml/math_output_latex.lyx @@ -0,0 +1,112 @@ +#LyX 2.4 created this file. For more info see https://www.lyx.org/ +\lyxformat 620 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass article +\use_default_options true +\maintain_unincluded_children no +\language american +\language_package default +\inputencoding utf8 +\fontencoding auto +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_roman_osf false +\font_sans_osf false +\font_typewriter_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\float_placement class +\float_alignment class +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_formatted_ref 0 +\use_minted 0 +\use_lineno 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style english +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tablestyle default +\tracking_changes false +\output_changes false +\change_bars false +\postpone_fragile_content true +\html_math_output 3 +\html_css_as_file 0 +\html_be_strict false +\docbook_table_output 0 +\docbook_mathml_prefix 1 +\end_header + +\begin_body + +\begin_layout Title +Math formula output as raw LaTeX +\end_layout + +\begin_layout Standard +The problem occurs when adding a label. + https://www.lyx.org/trac/ticket/13048 +\end_layout + +\begin_layout Standard +\begin_inset Formula +\begin{equation} +x^{2}\label{eq:1} +\end{equation} + +\end_inset + + +\end_layout + +\end_body +\end_document diff --git a/autotests/export/xhtml/math_output_latex.xhtml b/autotests/export/xhtml/math_output_latex.xhtml new file mode 100644 index 0000000000..cec2d5ba0d --- /dev/null +++ b/autotests/export/xhtml/math_output_latex.xhtml @@ -0,0 +1,28 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> +<head> +<meta name="generator" content="LyX 2.4.0~devel" /> +<title>Math formula output as raw LaTeX</title> +<style> +/* Layout-provided Styles */ +h1.title { +font-size: x-large; +margin-bottom: 1ex; +text-align: center; + +} +div.standard { + margin-bottom: 2ex; +} + + +</style> +</head> +<body dir="auto"> +<h1 class='title' id='magicparlabel-1'>Math formula output as raw LaTeX</h1> +<div class='standard' id='magicparlabel-2'>The problem occurs when adding a label. https://www.lyx.org/trac/ticket/13048</div> + +<div class='standard' id='magicparlabel-3'><a id="eq_1" /><div class='math'><table class='mathtable'><tr><td class='math'>x^{2}</td><td>(1)</td></tr></table></div> +</div> +</body> +</html> diff --git a/src/mathed/InsetMathHull.cpp b/src/mathed/InsetMathHull.cpp index 2ba98b3d4d..bb368b3b93 100644 --- a/src/mathed/InsetMathHull.cpp +++ b/src/mathed/InsetMathHull.cpp @@ -2729,7 +2729,8 @@ docstring InsetMathHull::xhtml(XMLStream & xs, OutputParams const & op) const // probably should allow for some kind of customization here string const tag = (getType() == hullSimple) ? "span" : "div"; xs << xml::StartTag(tag, "class='math'") - << latex + << XMLStream::ESCAPE_AND << latex // Don't escape <> tags: latex might contain them + // (typically, when there is a label). << xml::EndTag(tag) << xml::CR(); } -- lyx-cvs mailing list lyx-cvs@lists.lyx.org http://lists.lyx.org/mailman/listinfo/lyx-cvs