2016-10-25 8 views
0

Я попытался генерируемой основной odt файл с математической формулой с библиотекой Haskell pandoc, чтобы проверить, является ли проблема, описанная с docx документов в this question же с ODT файлов.Невозможно открыть ODT файл, созданный из Pandoc

Однако, когда я исполню этот код:

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?

Есть ли уловка, чтобы открыть файл odt?

+0

работает без элемента 'Math'? – mb21

+0

Нет, я удалил элемент Math, но ошибка осталась прежней! – JeanJouX

ответ

0

Если haskell компилируется без ошибок, он должен быть хорошо сформированным pandoc, что означает, что любая ошибка в документе, скорее всего, является ошибкой в ​​записи ODT. Вы должны сообщить об ошибке в трекер github.