git.iko.soy/typeable/pandoc
on master help sign in
JATS writer: use both tex and mml alternatives for math when possible.
commite5e2a6e0a5c1ef10375e4c94985b3247289d77e9 authorJohn MacFarlane <jgm@berkeley.edu> dateThu 30 Mar 2017, 16:22 (10 years ago) parentbf651b9
2 files changed+28−13
src/Text/Pandoc/Writers/JATS.hs+7−5 test/writer.jats+21−8
src/Text/Pandoc/Writers/JATS.hs+7−5
@@ -381,14 +381,16 @@ inlineToJATS _ (Math t str) = do
381381 let tagtype = case t of
382382 DisplayMath -> "disp-formula"
383383 InlineMath -> "inline-formula"
384− return $ inTagsSimple tagtype $
385− case res of
386− Right r -> text $ Xml.ppcElement conf
387− $ fixNS r
388− Left _ -> inTagsSimple "tex-math"
384+ let rawtex = inTagsSimple "tex-math"
389385 $ text "<![CDATA[" <>
390386 text str <>
391387 text "]]>"
388+ return $ inTagsSimple tagtype $
389+ case res of
390+ Right r -> inTagsSimple "alternatives" $
391+ cr <> rawtex $$
392+ (text $ Xml.ppcElement conf $ fixNS r)
393+ Left _ -> rawtex
392394inlineToJATS _ (Link _attr [Str t] ('m':'a':'i':'l':'t':'o':':':email, _))
393395 | escapeURI t == email =
394396 return $ inTagsSimple "email" $ text (escapeStringForXML email)
test/writer.jats+21−8
@@ -1048,39 +1048,52 @@ These should not be escaped: \$ \\ \&gt; \[ \{</preformat>
10481048 </list-item>
10491049 <list-item>
10501050 <p>
1051− <inline-formula><mml:math display="inline" xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mrow><mml:mn>2</mml:mn><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mo>=</mml:mo><mml:mn>4</mml:mn></mml:mrow></mml:math></inline-formula>
1051+ <inline-formula><alternatives>
1052+ <tex-math><![CDATA[2+2=4]]></tex-math>
1053+ <mml:math display="inline" xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mrow><mml:mn>2</mml:mn><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mo>=</mml:mo><mml:mn>4</mml:mn></mml:mrow></mml:math></alternatives></inline-formula>
10521054 </p>
10531055 </list-item>
10541056 <list-item>
10551057 <p>
1056− <inline-formula><mml:math display="inline" xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mrow><mml:mi>x</mml:mi><mml:mo>∈</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:math></inline-formula>
1058+ <inline-formula><alternatives>
1059+ <tex-math><![CDATA[x \in y]]></tex-math>
1060+ <mml:math display="inline" xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mrow><mml:mi>x</mml:mi><mml:mo>∈</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:math></alternatives></inline-formula>
10571061 </p>
10581062 </list-item>
10591063 <list-item>
10601064 <p>
1061− <inline-formula><mml:math display="inline" xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mrow><mml:mi>α</mml:mi><mml:mo>∧</mml:mo><mml:mi>ω</mml:mi></mml:mrow></mml:math></inline-formula>
1065+ <inline-formula><alternatives>
1066+ <tex-math><![CDATA[\alpha \wedge \omega]]></tex-math>
1067+ <mml:math display="inline" xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mrow><mml:mi>α</mml:mi><mml:mo>∧</mml:mo><mml:mi>ω</mml:mi></mml:mrow></mml:math></alternatives></inline-formula>
10621068 </p>
10631069 </list-item>
10641070 <list-item>
10651071 <p>
1066− <inline-formula><mml:math display="inline" xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mn>223</mml:mn></mml:math></inline-formula>
1072+ <inline-formula><alternatives>
1073+ <tex-math><![CDATA[223]]></tex-math>
1074+ <mml:math display="inline" xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mn>223</mml:mn></mml:math></alternatives></inline-formula>
10671075 </p>
10681076 </list-item>
10691077 <list-item>
10701078 <p>
1071− <inline-formula><mml:math display="inline" xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mi>p</mml:mi></mml:math></inline-formula>-Tree
1079+ <inline-formula><alternatives>
1080+ <tex-math><![CDATA[p]]></tex-math>
1081+ <mml:math display="inline" xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mi>p</mml:mi></mml:math></alternatives></inline-formula>-Tree
10721082 </p>
10731083 </list-item>
10741084 <list-item>
10751085 <p>
1076− Here’s some display math:
1077− <disp-formula><mml:math display="block" xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mrow><mml:mfrac><mml:mi>d</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mfrac><mml:mi>f</mml:mi><mml:mo stretchy="false" form="prefix">(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy="false" form="postfix">)</mml:mo><mml:mo>=</mml:mo><mml:munder><mml:mo>lim</mml:mo><mml:mrow><mml:mi>h</mml:mi><mml:mo accent="false">→</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:munder><mml:mfrac><mml:mrow><mml:mi>f</mml:mi><mml:mo stretchy="false" form="prefix">(</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>h</mml:mi><mml:mo stretchy="false" form="postfix">)</mml:mo><mml:mo>−</mml:mo><mml:mi>f</mml:mi><mml:mo stretchy="false" form="prefix">(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy="false" form="postfix">)</mml:mo></mml:mrow><mml:mi>h</mml:mi></mml:mfrac></mml:mrow></mml:math></disp-formula>
1086+ Here’s some display math: <disp-formula><alternatives>
1087+ <tex-math><![CDATA[\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}]]></tex-math>
1088+ <mml:math display="block" xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mrow><mml:mfrac><mml:mi>d</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mfrac><mml:mi>f</mml:mi><mml:mo stretchy="false" form="prefix">(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy="false" form="postfix">)</mml:mo><mml:mo>=</mml:mo><mml:munder><mml:mo>lim</mml:mo><mml:mrow><mml:mi>h</mml:mi><mml:mo accent="false">→</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:munder><mml:mfrac><mml:mrow><mml:mi>f</mml:mi><mml:mo stretchy="false" form="prefix">(</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>h</mml:mi><mml:mo stretchy="false" form="postfix">)</mml:mo><mml:mo>−</mml:mo><mml:mi>f</mml:mi><mml:mo stretchy="false" form="prefix">(</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy="false" form="postfix">)</mml:mo></mml:mrow><mml:mi>h</mml:mi></mml:mfrac></mml:mrow></mml:math></alternatives></disp-formula>
10781089 </p>
10791090 </list-item>
10801091 <list-item>
10811092 <p>
10821093 Here’s one that has a line break in it:
1083− <inline-formula><mml:math display="inline" xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mrow><mml:mi>α</mml:mi><mml:mo>+</mml:mo><mml:mi>ω</mml:mi><mml:mo>×</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula>.
1094+ <inline-formula><alternatives>
1095+ <tex-math><![CDATA[\alpha + \omega \times x^2]]></tex-math>
1096+ <mml:math display="inline" xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mrow><mml:mi>α</mml:mi><mml:mo>+</mml:mo><mml:mi>ω</mml:mi><mml:mo>×</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:math></alternatives></inline-formula>.
10841097 </p>
10851098 </list-item>
10861099 </list>