aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <[email protected]>2024-02-16 15:39:36 -0800
committerJohn MacFarlane <[email protected]>2024-02-16 15:39:36 -0800
commitaa759c430056cb46c61ffe007e18905fbcd8f277 (patch)
treedbce8132a22b18d269ad70edecc6247a603cc7f4
parentfc55d0037628a098436ca0fb8c823f2cec4b674b (diff)
Powerpoint writer: properly handle math in headings and tables.
This ensures that paragraphs containing math are wrapped in a `mc:AlternateContent` node as required. Closes #9465.
-rw-r--r--src/Text/Pandoc/Writers/Powerpoint/Output.hs10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/Text/Pandoc/Writers/Powerpoint/Output.hs b/src/Text/Pandoc/Writers/Powerpoint/Output.hs
index 6446b3056..690d72c80 100644
--- a/src/Text/Pandoc/Writers/Powerpoint/Output.hs
+++ b/src/Text/Pandoc/Writers/Powerpoint/Output.hs
@@ -1054,7 +1054,8 @@ createCaption contentShapeDimensions paraElements = do
[mknode "a:bodyPr" [] (), mknode "a:lstStyle" [] ()] <> elements
return
( 1
- , mknode "p:sp" [] [ mknode "p:nvSpPr" []
+ , surroundWithMathAlternate $
+ mknode "p:sp" [] [ mknode "p:nvSpPr" []
[ mknode "p:cNvPr" [("id","1"), ("name","TextBox 3")] ()
, mknode "p:cNvSpPr" [("txBox", "1")] ()
, mknode "p:nvPr" [] ()
@@ -1353,7 +1354,7 @@ shapeToElements layout (GraphicFrame tbls cptn) = map (bimap Just Elem) <$>
graphicFrameToElements layout tbls cptn
shapeToElements _ (RawOOXMLShape str) = return
[(Nothing, Text (CData CDataRaw str Nothing))]
-shapeToElements layout shp = do
+shapeToElements layout shp@(TextBox _) = do
(shapeId, element) <- shapeToElement layout shp
return [(shapeId, Elem element)]
@@ -1538,7 +1539,9 @@ nonBodyTextToElement layout phTypes paraElements
let txBody = mknode "p:txBody" [] $
[mknode "a:bodyPr" [] (), mknode "a:lstStyle" [] ()] <>
[element]
- return (Just shapeIdNum, replaceNamedChildren ns "p" "txBody" [txBody] sp)
+ return (Just shapeIdNum,
+ surroundWithMathAlternate $
+ replaceNamedChildren ns "p" "txBody" [txBody] sp)
-- XXX: TODO
| otherwise = return (Nothing, mknode "p:sp" [] ())
@@ -2008,6 +2011,7 @@ speakerNotesBody paras = do
let txBody = mknode "p:txBody" [] $
[mknode "a:bodyPr" [] (), mknode "a:lstStyle" [] ()] <> elements
return $
+ surroundWithMathAlternate $
mknode "p:sp" []
[ mknode "p:nvSpPr" []
[ mknode "p:cNvPr" [ ("id", "3")