git.iko.soy/typeable/pandoc
on master help sign in
LaTeX writer: use function instead of map for accent lookup.
2463fbfJohn MacFarlane
src/Text/Pandoc/Writers/LaTeX.hs+25−27
@@ -262,7 +262,7 @@ stringToLaTeX context zs = do
262 isUrl = ctx == URLString
262 isUrl = ctx == URLString
263 mbAccentCmd =
263 mbAccentCmd =
264 if writerPreferAscii opts && ctx == TextString
264 if writerPreferAscii opts && ctx == TextString
265− then uncons xs >>= \(c,_) -> M.lookup c accents
265+ then uncons xs >>= \(c,_) -> lookupAccent c
266 else Nothing
266 else Nothing
267 emits s =
267 emits s =
268 case mbAccentCmd of
268 case mbAccentCmd of
@@ -350,32 +350,30 @@ stringToLaTeX context zs = do
350 _ -> emitc x
350 _ -> emitc x
351 | otherwise -> emitc x
351 | otherwise -> emitc x
352
352
353−accents :: M.Map Char String
353+lookupAccent :: Char -> Maybe String
354−accents = M.fromList
354+lookupAccent '\779' = Just "\\H"
355− [ ('\779' , "\\H")
355+lookupAccent '\768' = Just "\\`"
356− , ('\768' , "\\`")
356+lookupAccent '\769' = Just "\\'"
357− , ('\769' , "\\'")
357+lookupAccent '\770' = Just "\\^"
358− , ('\770' , "\\^")
358+lookupAccent '\771' = Just "\\~"
359− , ('\771' , "\\~")
359+lookupAccent '\776' = Just "\\\""
360− , ('\776' , "\\\"")
360+lookupAccent '\775' = Just "\\."
361− , ('\775' , "\\.")
361+lookupAccent '\772' = Just "\\="
362− , ('\772' , "\\=")
362+lookupAccent '\781' = Just "\\|"
363− , ('\781' , "\\|")
363+lookupAccent '\817' = Just "\\b"
364− , ('\817' , "\\b")
364+lookupAccent '\807' = Just "\\c"
365− , ('\807' , "\\c")
365+lookupAccent '\783' = Just "\\G"
366− , ('\783' , "\\G")
366+lookupAccent '\777' = Just "\\h"
367− , ('\777' , "\\h")
367+lookupAccent '\803' = Just "\\d"
368− , ('\803' , "\\d")
368+lookupAccent '\785' = Just "\\f"
369− , ('\785' , "\\f")
369+lookupAccent '\778' = Just "\\r"
370− , ('\778' , "\\r")
370+lookupAccent '\865' = Just "\\t"
371− , ('\865' , "\\t")
371+lookupAccent '\782' = Just "\\U"
372− , ('\782' , "\\U")
372+lookupAccent '\780' = Just "\\v"
373− , ('\780' , "\\v")
373+lookupAccent '\774' = Just "\\u"
374− , ('\774' , "\\u")
374+lookupAccent '\808' = Just "\\k"
375− , ('\808' , "\\k")
376− , ('\785' , "\\newtie")
377− , ('\8413', "\\textcircled")
375+lookupAccent '\8413' = Just "\\textcircled"
378− ]
376+lookupAccent _ = Nothing
379
377
380toLabel :: PandocMonad m => Text -> LW m Text
378toLabel :: PandocMonad m => Text -> LW m Text
381toLabel z = go `fmap` stringToLaTeX URLString z
379toLabel z = go `fmap` stringToLaTeX URLString z