@@ -59,6 +59,7 @@ import Data.Bits ((.|.))
59import qualified Data.ByteString.Lazy as B
59import qualified Data.ByteString.Lazy as B
60import qualified Text.Pandoc.UTF8 as UTF8
60import qualified Text.Pandoc.UTF8 as UTF8
61import Control.Monad.Reader
61import Control.Monad.Reader
62+import Control.Applicative ((<$>))
62import qualified Data.Map as M
63import qualified Data.Map as M
63import Text.Pandoc.Compat.Except
64import Text.Pandoc.Compat.Except
64import Text.Pandoc.Readers.Docx.OMath (readOMML)
65import Text.Pandoc.Readers.Docx.OMath (readOMML)
@@ -681,13 +682,15 @@ elemToRunElem ns element
681-- The char attribute is a hex string
682-- The char attribute is a hex string
682getSymChar :: NameSpaces -> Element -> RunElem
683getSymChar :: NameSpaces -> Element -> RunElem
683getSymChar ns element
684getSymChar ns element
684− | Just s <- getCodepoint
685+ | Just s <- lowerFromPrivate <$> getCodepoint
685 , Just font <- getFont =
686 , Just font <- getFont =
686 let [(char, _)] = readLitChar ("\\x" ++ s) in
687 let [(char, _)] = readLitChar ("\\x" ++ s) in
687 TextRun . maybe "" (:[]) $ getUnicode font char
688 TextRun . maybe "" (:[]) $ getUnicode font char
689 getCodepoint = findAttr (elemName ns "w" "char") element
690 getCodepoint = findAttr (elemName ns "w" "char") element
690 getFont = stringToFont =<< findAttr (elemName ns "w" "font") element
691 getFont = stringToFont =<< findAttr (elemName ns "w" "font") element
692+ lowerFromPrivate ('F':xs) = '0':xs
693+ lowerFromPrivate xs = xs
691getSymChar _ _ = TextRun ""
694getSymChar _ _ = TextRun ""
693stringToFont :: String -> Maybe Font
696stringToFont :: String -> Maybe Font