@@ -22,6 +22,7 @@ module Text.Pandoc.Writers.LaTeX.Util (
2222where
2323
2424import Control.Applicative ((<|>))
25+import Control.Monad (when)
2526import Text.Pandoc.Class (PandocMonad, toLang)
2627import Text.Pandoc.Options (WriterOptions(..), isEnabled)
2728import Text.Pandoc.Writers.LaTeX.Types (LW, WriterState(..))
@@ -30,7 +31,7 @@ import Text.Pandoc.Highlighting (toListingsLanguage)
3031import Text.DocLayout
3132import Text.Pandoc.Definition
3233import Text.Pandoc.ImageSize (showFl)
33−import Control.Monad.State.Strict (gets)
34+import Control.Monad.State.Strict (gets, modify)
3435import Data.Text (Text)
3536import qualified Data.Text as T
3637import Text.Pandoc.Extensions (Extension(Ext_smart))
@@ -49,6 +50,8 @@ data StringContext = TextString
4950stringToLaTeX :: PandocMonad m => StringContext -> Text -> LW m Text
5051stringToLaTeX context zs = do
5152 opts <- gets stOptions
53+ when ('\x200c' `elemText` zs) $
54+ modify (\s -> s { stZwnj = True })
5255 return $ T.pack $
5356 foldr (go opts context) mempty $ T.unpack $
5457 if writerPreferAscii opts
@@ -270,5 +273,3 @@ mbBraced :: Text -> Text
270273mbBraced x = if not (T.all isAlphaNum x)
271274 then "{" <> x <> "}"
272275 else x
273−
274−