diff options
| author | John MacFarlane <[email protected]> | 2024-02-16 15:39:36 -0800 |
|---|---|---|
| committer | John MacFarlane <[email protected]> | 2024-02-16 15:39:36 -0800 |
| commit | aa759c430056cb46c61ffe007e18905fbcd8f277 (patch) | |
| tree | dbce8132a22b18d269ad70edecc6247a603cc7f4 | |
| parent | fc55d0037628a098436ca0fb8c823f2cec4b674b (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.hs | 10 |
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") |
