diff options
| -rw-r--r-- | data/templates/default.latex | 8 | ||||
| -rw-r--r-- | src/Text/Pandoc/Writers/LaTeX.hs | 10 | ||||
| -rw-r--r-- | test/command/9472.md | 2 | ||||
| -rw-r--r-- | test/writer.latex | 3 | ||||
| -rw-r--r-- | test/writers-lang-and-dir.latex | 2 |
5 files changed, 15 insertions, 10 deletions
diff --git a/data/templates/default.latex b/data/templates/default.latex index 3bca1402f..24d078a39 100644 --- a/data/templates/default.latex +++ b/data/templates/default.latex @@ -443,13 +443,15 @@ $endfor$ % get rid of language-specific shorthands (see #6817): \let\LanguageShortHands\languageshorthands \def\languageshorthands#1{} +$if(selnolig-langs)$ +\ifLuaTeX + \usepackage[$for(selnolig-langs)$$it$$sep$,$endfor$]{selnolig} % disable illegal ligatures +\fi +$endif$ $endif$ $for(header-includes)$ $header-includes$ $endfor$ -\ifLuaTeX - \usepackage{selnolig} % disable illegal ligatures -\fi $if(dir)$ \ifPDFTeX \TeXXeTstate=1 diff --git a/src/Text/Pandoc/Writers/LaTeX.hs b/src/Text/Pandoc/Writers/LaTeX.hs index 2e6cd6649..bbd8591a7 100644 --- a/src/Text/Pandoc/Writers/LaTeX.hs +++ b/src/Text/Pandoc/Writers/LaTeX.hs @@ -33,13 +33,14 @@ import Control.Monad import Data.Containers.ListUtils (nubOrd) import Data.Char (isDigit) import Data.List (intersperse, (\\)) -import Data.Maybe (catMaybes, fromMaybe, isJust, mapMaybe, isNothing) +import Data.Maybe (catMaybes, fromMaybe, isJust, mapMaybe, isNothing, + maybeToList) import Data.Monoid (Any (..)) import Data.Text (Text) import qualified Data.Text as T import Network.URI (unEscapeString) import Text.DocTemplates (FromContext(lookupContext), renderTemplate) -import Text.Collate.Lang (renderLang) +import Text.Collate.Lang (renderLang, Lang(langLanguage)) import Text.Pandoc.Class.PandocMonad (PandocMonad, report, toLang) import Text.Pandoc.Definition import Text.Pandoc.Highlighting (formatLaTeXBlock, formatLaTeXInline, highlight, @@ -262,6 +263,11 @@ pandocToLaTeX options (Pandoc meta blocks) = do (map literal (nubOrd . catMaybes . filter (/= babelLang) $ map toBabel docLangs)) + $ defField "selnolig-langs" + (literal . T.intercalate "," $ + let langs = docLangs ++ maybeToList mblang + in (["english" | any ((== "en") . langLanguage) langs] ++ + ["german" | any ((== "de") . langLanguage) langs])) $ defField "latex-dir-rtl" ((render Nothing <$> getField "dir" context) == Just ("rtl" :: Text)) context diff --git a/test/command/9472.md b/test/command/9472.md index 48fec385d..7da450ee9 100644 --- a/test/command/9472.md +++ b/test/command/9472.md @@ -61,7 +61,7 @@ More text in English. ['Zitat auf Deutsch.']{lang=de} \let\LanguageShortHands\languageshorthands \def\languageshorthands#1{} \ifLuaTeX - \usepackage{selnolig} % disable illegal ligatures + \usepackage[german]{selnolig} % disable illegal ligatures \fi \usepackage{bookmark} \IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available diff --git a/test/writer.latex b/test/writer.latex index b1d784f02..5027b85cc 100644 --- a/test/writer.latex +++ b/test/writer.latex @@ -60,9 +60,6 @@ \providecommand{\tightlist}{% \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} \setcounter{secnumdepth}{-\maxdimen} % remove section numbering -\ifLuaTeX - \usepackage{selnolig} % disable illegal ligatures -\fi \usepackage{bookmark} \IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available \urlstyle{same} diff --git a/test/writers-lang-and-dir.latex b/test/writers-lang-and-dir.latex index 7d3fcc86f..3d12f0c1e 100644 --- a/test/writers-lang-and-dir.latex +++ b/test/writers-lang-and-dir.latex @@ -55,7 +55,7 @@ \let\LanguageShortHands\languageshorthands \def\languageshorthands#1{} \ifLuaTeX - \usepackage{selnolig} % disable illegal ligatures + \usepackage[english,german]{selnolig} % disable illegal ligatures \fi \ifPDFTeX \TeXXeTstate=1 |
