From 0b2fb9b8f952f20000e48c19527f35c2a16dddb1 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Wed, 14 Aug 2019 11:05:01 -0700 Subject: Add thin space when needed in LaTeX quote ligatures. Closes #5685. --- src/Text/Pandoc/Writers/LaTeX.hs | 13 +++++++++---- test/command/5685.md | 6 ++++++ 2 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 test/command/5685.md diff --git a/src/Text/Pandoc/Writers/LaTeX.hs b/src/Text/Pandoc/Writers/LaTeX.hs index 2f832b45b..232b0020c 100644 --- a/src/Text/Pandoc/Writers/LaTeX.hs +++ b/src/Text/Pandoc/Writers/LaTeX.hs @@ -333,6 +333,11 @@ stringToLaTeX context zs = do | ctx == TextString -> cs <> xs _ -> cs <> "{}" <> xs + emitquote cs = do + case xs of + '`':_ -> cs <> "\\," <> xs -- add thin space + '\'':_ -> cs <> "\\," <> xs -- add thin space + _ -> cs <> xs in case x of '?' | ligatures -> -- avoid ?` ligature case xs of @@ -367,10 +372,10 @@ stringToLaTeX context zs = do '\160' -> emits "~" '\x202F' -> emits "\\," '\x2026' -> emitcseq "\\ldots" - '\x2018' | ligatures -> emits "`" - '\x2019' | ligatures -> emits "'" - '\x201C' | ligatures -> emits "``" - '\x201D' | ligatures -> emits "''" + '\x2018' | ligatures -> emitquote "`" + '\x2019' | ligatures -> emitquote "'" + '\x201C' | ligatures -> emitquote "``" + '\x201D' | ligatures -> emitquote "''" '\x2014' | ligatures -> emits "---" '\x2013' | ligatures -> emits "--" _ | writerPreferAscii opts diff --git a/test/command/5685.md b/test/command/5685.md new file mode 100644 index 000000000..e723f755f --- /dev/null +++ b/test/command/5685.md @@ -0,0 +1,6 @@ +``` +% pandoc -f native -t latex +[Str "\8222\8218Der",Space,Str "Erz\228hler.",Space,Str "Betrachtungen",Space,Str "zum",Space,Str "Werk",Space,Str "Nikolai",Space,Str "Lesskows\8216\8220."] +^D +„‚Der Erzähler. Betrachtungen zum Werk Nikolai Lesskows`\,``. +``` -- cgit v1.2.3