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.
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.
—These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.