commit 011c3d73c0c3137dcd67bf8bb09644ac064b2342 Author: Thibaut Cuvelier <tcuvel...@lyx.org> Date: Sat Mar 9 20:59:12 2024 +0100
MathML: consider ordinary and alphabetical characters as identifiers instead of operators. The goal is to consider all Greek letters as identifiers instead of operators. Solves: https://www.lyx.org/trac/ticket/12948. --- .../export/docbook/mathml_greek_operators.lyx | 112 +++++++++++++++++++++ .../export/docbook/mathml_greek_operators.xml | 20 ++++ src/mathed/MathParser.cpp | 4 +- 3 files changed, 135 insertions(+), 1 deletion(-) diff --git a/autotests/export/docbook/mathml_greek_operators.lyx b/autotests/export/docbook/mathml_greek_operators.lyx new file mode 100644 index 0000000000..f7d2c1111e --- /dev/null +++ b/autotests/export/docbook/mathml_greek_operators.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 +\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 +\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 0 +\html_css_as_file 0 +\html_be_strict false +\docbook_table_output 0 +\docbook_mathml_prefix 1 +\end_header + +\begin_body + +\begin_layout Title +MathML: + all Greek letters are symbols, + none of them is an operator +\end_layout + +\begin_layout Standard +Issue: + https://www.lyx.org/trac/ticket/12948 +\end_layout + +\begin_layout Standard +\begin_inset Formula +\[ +1\alpha2\Xi3 +\] + +\end_inset + + +\end_layout + +\end_body +\end_document diff --git a/autotests/export/docbook/mathml_greek_operators.xml b/autotests/export/docbook/mathml_greek_operators.xml new file mode 100644 index 0000000000..c5fc17c0b8 --- /dev/null +++ b/autotests/export/docbook/mathml_greek_operators.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- This DocBook file was created by LyX 2.4.0~devel + See https://www.lyx.org/ for more information --> +<article xml:lang="en-US" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:xi="http://www.w3.org/2001/XInclude" version="5.2"> +<title>MathML: all Greek letters are symbols, none of them is an operator</title> +<para>Issue: https://www.lyx.org/trac/ticket/12948</para> +<informalequation> +<alt role='tex'>1\alpha2\Xi3</alt> +<m:math display="block"> + +<m:mrow> + <m:mn>1</m:mn> + <m:mi>α</m:mi> + <m:mn>2</m:mn> + <m:mi>Ξ</m:mi> + <m:mn>3</m:mn> +</m:mrow> +</m:math> +</informalequation> +</article> \ No newline at end of file diff --git a/src/mathed/MathParser.cpp b/src/mathed/MathParser.cpp index e94b6cea32..9b43da8cdd 100644 --- a/src/mathed/MathParser.cpp +++ b/src/mathed/MathParser.cpp @@ -2141,8 +2141,10 @@ bool Parser::parse1(InsetMathGrid & grid, unsigned flags, // FIXME This will likely need some work. char const * latexkeys::MathMLtype() const { - if (extra == "mathord") + // Consider as identifier (mml:mi): ordinary and alphabetical characters. + if (extra == "mathord" || extra == "mathalpha") return "mi"; + // Consider as operators (mml:mo): everything else. return "mo"; } -- lyx-cvs mailing list lyx-cvs@lists.lyx.org http://lists.lyx.org/mailman/listinfo/lyx-cvs