Pandoc hävittää inline-tyylit

Pandocin kirjoittimessa ei noteerata kuin tietyt tarkkaan määritellyt luokat. Alla oleellinen osa inlineToLatex-funktiosta, jossa konversio latexiksi tapahtuu. (Sijaitsee moduulissa Text.Pandoc.Writers.LaTeX)

    -- | Convert inline element to LaTeX
    inlineToLaTeX :: PandocMonad m
                  => Inline    -- ^ Inline to convert
                  -> LW m Doc
    inlineToLaTeX (Span (id',classes,kvs) ils) = do
      linkAnchor <- hypertarget False id' empty
      let cmds = ["textup" | "csl-no-emph" `elem` classes] ++
                 ["textnormal" | "csl-no-strong" `elem` classes ||
                                 "csl-no-smallcaps" `elem` classes] ++
                 ["RL" | ("dir", "rtl") `elem` kvs] ++
                 ["LR" | ("dir", "ltr") `elem` kvs] ++
                 (case lookup "lang" kvs of
                    Just lng -> let (l, o) = toPolyglossia $ splitBy (=='-') lng
                                    ops = if null o then "" else ("[" ++ o ++ "]")
                                in  ["text" ++ l ++ ops]
                    Nothing  -> [])
      contents <- inlineListToLaTeX ils
      return $ (if null id'
                   then empty
                   else "\\protect" <> linkAnchor) <>
               if null cmds
                  then braces contents
                  else foldr inCmd contents cmds

Mahdollinen ratkaisu

Tuossa ei periaatteessa tarvitsisi, kuin lisätä let cmds-lausekkeen loppuun kohta joka huomioisi myös muut kuin ennalta huomioitaviksi mäöritellyt tyyliluokat. Esimerkiksi seuraavasti.

    ++
    map (\x -> if x `notElem` cmds then x else []) classes 

Pitäisi laittaa tuosta ehdotus menemään pandocin kehittäjätaholle.

10.03.2016@16:48: Laitoin viestin dokumentaatiossa ohjeistettuun "pandoc-discussion" Google groupiin. Google group

13.03.2016@14:02: Vastauksia tulikin aika nopeasti. Kävi ilmi, että toiminto olisi helpoin toteuttaa filttereillä, joilla on muokata sisältöä (pandocin AST-muotoisena) pandocin parsimisen jälkeen ja ennen kääntöä kohdemerkintäkielelle.

Tähän voisi lisätä linkin tuohon keskusteluun.

15 Mar 17

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.