我尝试用Haskell pandoc
库的数学公式生成一个基本的odt
文件,以验证这个问题中docx
文档描述的问题是否与odt文件相同。
但是,当我执行这段代码时:
import Text.Pandoc
import Data.Map (fromList)
import qualified Data.ByteString.Lazy as B
import qualified Data.Set as Set
main = do
document <- writeODT WriterOptions{ writerStandalone=False
, writerReferenceODT=Nothing
, writerUserDataDir=Nothing
, writerExtensions=plainExtensions
} pandoc
B.writeFile "document.odt" document
pandoc = Pandoc ( Meta {unMeta = fromList []})
[ Para [Str "A small Math example"]
, Plain [Math InlineMath "A_e = \{var\} + 5"]
, HorizontalRule
]
plainExtensions = Set.fromList
[ Ext_table_captions
, Ext_implicit_figures
, Ext_simple_tables
, Ext_multiline_tables
, Ext_grid_tables
, Ext_latex_macros
, Ext_fancy_lists
, Ext_startnum
, Ext_definition_lists
, Ext_example_lists
, Ext_intraword_underscores
, Ext_blank_before_blockquote
, Ext_blank_before_header
, Ext_strikeout
]
生成的odt
文件无法用libreoffice打开。当文件打开时,出现以下错误消息:
Format error discovered in the file in sub-document content.xml at 2,0(row,col)
是否有我做错了我的Haskell代码?还是Pandoc bug ?
打开odt文件有什么技巧吗?
如果haskell正在编译而没有错误,那么它应该是格式良好的pandoc,这意味着文档中的任何错误都很可能是ODT编写器中的错误。你应该向github问题跟踪器提交一个bug。