From: Thibaut Cuvelier Date: Wed, 20 Mar 2024 23:29:23 +0000 (+0100) Subject: MathML in HTML: don't escape <> for a raw LaTeX output. X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=16660d12b4333f6486259048dec2b0a2e48a64d9;p=features.git 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. --- 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 @@ + + + + +Math formula output as raw LaTeX + + + +

Math formula output as raw LaTeX

+
The problem occurs when adding a label. https://www.lyx.org/trac/ticket/13048
+ +
x^{2}(1)
+
+ + 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(); }