git.iko.soy/typeable/pandoc
on master help sign in
ICML writer: better handling of math.
f096f03John MacFarlane
src/Text/Pandoc/Writers/ICML.hs+3−1
@@ -16,6 +16,7 @@ into InDesign with File -> Place.
16module Text.Pandoc.Writers.ICML (writeICML) where
16module Text.Pandoc.Writers.ICML (writeICML) where
17import Text.Pandoc.Definition
17import Text.Pandoc.Definition
18import Text.Pandoc.XML
18import Text.Pandoc.XML
19+import Text.Pandoc.Readers.TeXMath (texMathToInlines)
19import Text.Pandoc.Writers.Shared
20import Text.Pandoc.Writers.Shared
20import Text.Pandoc.Shared (splitBy)
21import Text.Pandoc.Shared (splitBy)
21import Text.Pandoc.Options
22import Text.Pandoc.Options
@@ -410,7 +411,8 @@ inlineToICML opts style (Cite _ lst) = inlinesToICML opts style lst
410inlineToICML _ style (Code _ str) = charStyle (codeName:style) $ text $ escapeStringForXML str
411inlineToICML _ style (Code _ str) = charStyle (codeName:style) $ text $ escapeStringForXML str
411inlineToICML _ style Space = charStyle style space
412inlineToICML _ style Space = charStyle style space
412inlineToICML _ style LineBreak = charStyle style $ text lineSeparator
413inlineToICML _ style LineBreak = charStyle style $ text lineSeparator
413−inlineToICML _ style (Math _ str) = charStyle style $ text $ escapeStringForXML str --InDesign doesn't really do math
414+inlineToICML opts style (Math mt str) =
415+ cat <$> mapM (inlineToICML opts style) (texMathToInlines mt str)
414inlineToICML _ _ (RawInline f str)
416inlineToICML _ _ (RawInline f str)
415 | f == Format "icml" = return $ text str
417 | f == Format "icml" = return $ text str
416 | otherwise = return empty
418 | otherwise = return empty
tests/writer.icml+59−9
@@ -1864,17 +1864,49 @@ These should not be escaped: \$ \\ \&gt; \[ \{</Content>
1864</ParagraphStyleRange>
1864</ParagraphStyleRange>
1865<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">
1865<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">
1866 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1866 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1867− <Content>2+2=4</Content>
1867+ <Content>2</Content>
1868+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1869+ <Content> </Content>
1870+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1871+ <Content>+</Content>
1872+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1873+ <Content> </Content>
1874+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1875+ <Content>2</Content>
1876+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1877+ <Content> </Content>
1878+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1879+ <Content>=</Content>
1880+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1881+ <Content> </Content>
1882+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1883+ <Content>4</Content>
1868 </CharacterStyleRange><Br />
1884 </CharacterStyleRange><Br />
1869</ParagraphStyleRange>
1885</ParagraphStyleRange>
1870<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">
1886<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">
1871− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1887+ <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">
1872− <Content>x \in y</Content>
1888+ <Content>x</Content>
1889+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1890+ <Content> </Content>
1891+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1892+ <Content>∈</Content>
1893+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1894+ <Content> </Content>
1895+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">
1896+ <Content>y</Content>
1873 </CharacterStyleRange><Br />
1897 </CharacterStyleRange><Br />
1874</ParagraphStyleRange>
1898</ParagraphStyleRange>
1875<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">
1899<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">
1876− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1900+ <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">
1877− <Content>\alpha \wedge \omega</Content>
1901+ <Content>α</Content>
1902+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1903+ <Content> </Content>
1904+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1905+ <Content>∧</Content>
1906+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1907+ <Content> </Content>
1908+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">
1909+ <Content>ω</Content>
1878 </CharacterStyleRange><Br />
1910 </CharacterStyleRange><Br />
1879</ParagraphStyleRange>
1911</ParagraphStyleRange>
1880<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">
1912<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">
@@ -1883,7 +1915,7 @@ These should not be escaped: \$ \\ \&gt; \[ \{</Content>
1883 </CharacterStyleRange><Br />
1915 </CharacterStyleRange><Br />
1884</ParagraphStyleRange>
1916</ParagraphStyleRange>
1885<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">
1917<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">
1886− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1918+ <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">
1887 <Content>p</Content>
1919 <Content>p</Content>
1888 </CharacterStyleRange>
1920 </CharacterStyleRange>
1889 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1921 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
@@ -1895,15 +1927,33 @@ These should not be escaped: \$ \\ \&gt; \[ \{</Content>
1895 <Content>Here’s some display math: </Content>
1927 <Content>Here’s some display math: </Content>
1896 </CharacterStyleRange>
1928 </CharacterStyleRange>
1897 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1929 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1898− <Content>\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}</Content>
1930+ <Content>$$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$$</Content>
1899 </CharacterStyleRange><Br />
1931 </CharacterStyleRange><Br />
1900</ParagraphStyleRange>
1932</ParagraphStyleRange>
1901<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">
1933<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">
1902 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1934 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1903 <Content>Here’s one that has a line break in it: </Content>
1935 <Content>Here’s one that has a line break in it: </Content>
1904 </CharacterStyleRange>
1936 </CharacterStyleRange>
1905− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1937+ <CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">
1906− <Content>\alpha + \omega \times x^2</Content>
1938+ <Content>α</Content>
1939+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1940+ <Content> </Content>
1941+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1942+ <Content>+</Content>
1943+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1944+ <Content> </Content>
1945+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">
1946+ <Content>ω</Content>
1947+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1948+ <Content> </Content>
1949+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1950+ <Content>×</Content>
1951+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1952+ <Content> </Content>
1953+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Italic">
1954+ <Content>x</Content>
1955+ </CharacterStyleRange><CharacterStyleRange AppliedCharacterStyle="CharacterStyle/Superscript">
1956+ <Content>2</Content>
1907 </CharacterStyleRange>
1957 </CharacterStyleRange>
1908 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1958 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1909 <Content>.</Content>
1959 <Content>.</Content>