diff options
-rw-r--r-- | src/Text/Pandoc/Readers/DocBook.hs | 3 | ||||
-rw-r--r-- | src/Text/Pandoc/Readers/JATS.hs | 8 | ||||
-rw-r--r-- | test/command/7173.md | 137 | ||||
-rw-r--r-- | test/docbook-reader.docbook | 4 |
4 files changed, 147 insertions, 5 deletions
diff --git a/src/Text/Pandoc/Readers/DocBook.hs b/src/Text/Pandoc/Readers/DocBook.hs index 6f5bb0ad4..4f525cfb1 100644 --- a/src/Text/Pandoc/Readers/DocBook.hs +++ b/src/Text/Pandoc/Readers/DocBook.hs @@ -1239,7 +1239,8 @@ equation e constructor = where mathMLEquations :: [Text] mathMLEquations = map writeTeX $ rights $ readMath - (\x -> qName (elName x) == "math" && qPrefix (elName x) == Just "mml") + (\x -> qName (elName x) == "math" && + qURI (elName x) == Just "http://www.w3.org/1998/Math/MathML") (readMathML . showElement) latexEquations :: [Text] diff --git a/src/Text/Pandoc/Readers/JATS.hs b/src/Text/Pandoc/Readers/JATS.hs index 602f3b4f2..c068f3774 100644 --- a/src/Text/Pandoc/Readers/JATS.hs +++ b/src/Text/Pandoc/Readers/JATS.hs @@ -491,7 +491,8 @@ parseInline (Elem e) = "disp-formula" -> formula displayMath "inline-formula" -> formula math - "math" | qPrefix (elName e) == Just "mml" -> return . math $ mathML e + "math" | qURI (elName e) == Just "http://www.w3.org/1998/Math/MathML" + -> return . math $ mathML e "tex-math" -> return . math $ textContent e "email" -> return $ link ("mailto:" <> textContent e) "" @@ -514,8 +515,9 @@ parseInline (Elem e) = filterChildren isMathML whereToLook return . mconcat . take 1 . map constructor $ texMaths ++ mathMLs - isMathML x = qName (elName x) == "math" && - qPrefix (elName x) == Just "mml" + isMathML x = qName (elName x) == "math" && + qURI (elName x) == + Just "http://www.w3.org/1998/Math/MathML" removePrefix elname = elname { qPrefix = Nothing } codeWithLang = do let classes' = case attrValue "language" e of diff --git a/test/command/7173.md b/test/command/7173.md new file mode 100644 index 000000000..2599dc19b --- /dev/null +++ b/test/command/7173.md @@ -0,0 +1,137 @@ +``` +% pandoc -f docbook -t latex +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE article PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd"> +<?xml-model href="http://www.oxygenxml.com/docbook/xml/5.0/rng/dbmathml.rng" schematypens="http://relaxng.org/ns/structure/1.0"?> +<?xml-model href="http://docbook.org/xml/5.0/rng/docbook.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> +<article xmlns="http://docbook.org/ns/docbook" + xmlns:xlink="http://www.w3.org/1999/xlink" + version="5.1"> + <title>Untitled Document</title> + <para>Word</para> + <informalequation> + <alt role='tex'>1+2</alt> + <m:math xmlns:m="http://www.w3.org/1998/Math/MathML"> + <m:mrow> + <m:mrow><m:mn>1</m:mn><m:mo>+</m:mo><m:mn>2</m:mn> + </m:mrow> + </m:mrow> + </m:math> + </informalequation> +</article> +^D +Word + +\[1 + 2\] +``` + +``` +% pandoc -f docbook -t latex +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE article PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd"> +<?xml-model href="http://www.oxygenxml.com/docbook/xml/5.0/rng/dbmathml.rng" schematypens="http://relaxng.org/ns/structure/1.0"?> +<?xml-model href="http://docbook.org/xml/5.0/rng/docbook.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> +<article xmlns="http://docbook.org/ns/docbook" + xmlns:xlink="http://www.w3.org/1999/xlink" + version="5.1"> + <title>Untitled Document</title> + <para>Word</para> + <informalequation> + <alt role='tex'>1+2</alt> + <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> + <mml:mrow> + <mml:mrow><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:mn>2</mml:mn> + </mml:mrow> + </mml:mrow> + </mml:math> + </informalequation> +</article> +^D +Word + +\[1 + 2\] +``` + +``` +% pandoc -f docbook -t latex +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE article PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd"> +<?xml-model href="http://www.oxygenxml.com/docbook/xml/5.0/rng/dbmathml.rng" schematypens="http://relaxng.org/ns/structure/1.0"?> +<?xml-model href="http://docbook.org/xml/5.0/rng/docbook.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> +<article xmlns="http://docbook.org/ns/docbook" + xmlns:xlink="http://www.w3.org/1999/xlink" + version="5.1"> + <title>Untitled Document</title> + <para>Word</para> + <informalequation> + <alt role='tex'>1+2</alt> + <math xmlns="http://www.w3.org/1998/Math/MathML"> + <mrow> + <mrow><mn>1</mn><mo>+</mo><mn>2</mn> + </mrow> + </mrow> + </math> + </informalequation> +</article> +^D +Word + +\[1 + 2\] +``` + +``` +% pandoc -f docbook -t latex +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE article PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd"> +<?xml-model href="http://www.oxygenxml.com/docbook/xml/5.0/rng/dbmathml.rng" schematypens="http://relaxng.org/ns/structure/1.0"?> +<?xml-model href="http://docbook.org/xml/5.0/rng/docbook.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> +<article xmlns="http://docbook.org/ns/docbook" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:m="http://www.w3.org/1998/Math/MathML" + version="5.1"> + <title>Untitled Document</title> + <para>Word</para> + <informalequation> + <alt role='tex'>1+2</alt> + <m:math> + <m:mrow> + <m:mrow><m:mn>1</m:mn><m:mo>+</m:mo><m:mn>2</m:mn> + </m:mrow> + </m:mrow> + </m:math> + </informalequation> +</article> +^D +Word + +\[1 + 2\] +``` + +``` +% pandoc -f docbook -t latex +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE article PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd"> +<?xml-model href="http://www.oxygenxml.com/docbook/xml/5.0/rng/dbmathml.rng" schematypens="http://relaxng.org/ns/structure/1.0"?> +<?xml-model href="http://docbook.org/xml/5.0/rng/docbook.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> +<article xmlns="http://docbook.org/ns/docbook" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:mml="http://www.w3.org/1998/Math/MathML" + version="5.1"> + <title>Untitled Document</title> + <para>Word</para> + <informalequation> + <alt role='tex'>1+2</alt> + <mml:math> + <mml:mrow> + <mml:mrow><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:mn>2</mml:mn> + </mml:mrow> + </mml:mrow> + </mml:math> + </informalequation> +</article> +^D +Word + +\[1 + 2\] +``` + diff --git a/test/docbook-reader.docbook b/test/docbook-reader.docbook index 5717d78d0..51e62942b 100644 --- a/test/docbook-reader.docbook +++ b/test/docbook-reader.docbook @@ -6,7 +6,9 @@ <!ENTITY let "LET" > <!ENTITY case "CASE" > ]> -<article> +<article xmlns="http://docbook.org/ns/docbook" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:mml="http://www.w3.org/1998/Math/MathML"> <articleinfo> <title>Pandoc Test Suite</title> <authorgroup> |