git.iko.soy/typeable/pandoc
on master help sign in
JATS writer: use both tex and mml alternatives for math when possible.
e5e2a6eJohn MacFarlane
src/Text/Pandoc/Writers/JATS.hs+7−5
@@ -381,14 +381,16 @@ inlineToJATS _ (Math t str) = do
381 let tagtype = case t of
381 let tagtype = case t of
382 DisplayMath -> "disp-formula"
382 DisplayMath -> "disp-formula"
383 InlineMath -> "inline-formula"
383 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"
389 $ text "<![CDATA[" <>
385 $ text "<![CDATA[" <>
390 text str <>
386 text str <>
391 text "]]>"
387 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
392inlineToJATS _ (Link _attr [Str t] ('m':'a':'i':'l':'t':'o':':':email, _))
394inlineToJATS _ (Link _attr [Str t] ('m':'a':'i':'l':'t':'o':':':email, _))
393 | escapeURI t == email =
395 | escapeURI t == email =
394 return $ inTagsSimple "email" $ text (escapeStringForXML email)
396 return $ inTagsSimple "email" $ text (escapeStringForXML email)
test/writer.jats+21−8
@@ -1048,39 +1048,52 @@ These should not be escaped: \$ \\ \&gt; \[ \{</preformat>
1048 </list-item>
1048 </list-item>
1049 <list-item>
1049 <list-item>
1050 <p>
1050 <p>
1051+ <inline-formula><alternatives>
1052+ <tex-math><![CDATA[2+2=4]]></tex-math>
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>
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>
1052 </p>
1054 </p>
1053 </list-item>
1055 </list-item>
1054 <list-item>
1056 <list-item>
1055 <p>
1057 <p>
1058+ <inline-formula><alternatives>
1059+ <tex-math><![CDATA[x \in y]]></tex-math>
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>
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>
1057 </p>
1061 </p>
1058 </list-item>
1062 </list-item>
1059 <list-item>
1063 <list-item>
1060 <p>
1064 <p>
1065+ <inline-formula><alternatives>
1066+ <tex-math><![CDATA[\alpha \wedge \omega]]></tex-math>
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>
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>
1062 </p>
1068 </p>
1063 </list-item>
1069 </list-item>
1064 <list-item>
1070 <list-item>
1065 <p>
1071 <p>
1072+ <inline-formula><alternatives>
1073+ <tex-math><![CDATA[223]]></tex-math>
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>
1074+ <mml:math display="inline" xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mn>223</mml:mn></mml:math></alternatives></inline-formula>
1067 </p>
1075 </p>
1068 </list-item>
1076 </list-item>
1069 <list-item>
1077 <list-item>
1070 <p>
1078 <p>
1079+ <inline-formula><alternatives>
1080+ <tex-math><![CDATA[p]]></tex-math>
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
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
1072 </p>
1082 </p>
1073 </list-item>
1083 </list-item>
1074 <list-item>
1084 <list-item>
1075 <p>
1085 <p>
1076− Here’s some display math:
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>
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>
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>
1078 </p>
1089 </p>
1079 </list-item>
1090 </list-item>
1080 <list-item>
1091 <list-item>
1081 <p>
1092 <p>
1082 Here’s one that has a line break in it:
1093 Here’s one that has a line break in it:
1094+ <inline-formula><alternatives>
1095+ <tex-math><![CDATA[\alpha + \omega \times x^2]]></tex-math>
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>.
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>.
1084 </p>
1097 </p>
1085 </list-item>
1098 </list-item>
1086 </list>
1099 </list>