diff options
| -rw-r--r-- | data/templates/default.latex | 22 | ||||
| -rw-r--r-- | src/Text/Pandoc/Writers/LaTeX.hs | 15 |
2 files changed, 21 insertions, 16 deletions
diff --git a/data/templates/default.latex b/data/templates/default.latex index 34618b01e..4aa28138f 100644 --- a/data/templates/default.latex +++ b/data/templates/default.latex @@ -350,15 +350,19 @@ $if(csl-refs)$ \setlength{\cslhangindent}{1.5em} \newlength{\csllabelwidth} \setlength{\csllabelwidth}{3em} -\newlength{\cslentryspacing} -\setlength{\cslentryspacing}{0em} -\usepackage{enumitem} -\newlist{CSLReferences}{itemize}{1} -\setlist[CSLReferences]{label={}, - leftmargin=\cslhangindent, - itemindent=-1\cslhangindent, - parsep=\parskip, - itemsep=\cslentryspacing} +\newenvironment{CSLReferences}[2] % #1 hanging-ident, #2 entry spacing + {\begin{list}{}{% + \setlength{\itemindent}{0pt} + \setlength{\leftmargin}{0pt} + \setlength{\parsep}{0pt} + % turn on hanging indent if param 1 is 1 + \ifodd #1 + \setlength{\leftmargin}{\cslhangindent} + \setlength{\itemindent}{-1\cslhangindent} + \fi + % set entry spacing + \setlength{\itemsep}{#2\baselineskip}}} + {\end{list}} \usepackage{calc} \newcommand{\CSLBlock}[1]{\hfill\break#1\hfill\break} \newcommand{\CSLLeftMargin}[1]{\parbox[t]{\csllabelwidth}{#1}} diff --git a/src/Text/Pandoc/Writers/LaTeX.hs b/src/Text/Pandoc/Writers/LaTeX.hs index 0a9fb86d3..dc726475a 100644 --- a/src/Text/Pandoc/Writers/LaTeX.hs +++ b/src/Text/Pandoc/Writers/LaTeX.hs @@ -339,14 +339,15 @@ blockToLaTeX (Div (identifier,classes,kvs) bs) = do then do modify $ \st -> st{ stHasCslRefs = True } inner <- blockListToLaTeX bs - return $ (if "hanging-indent" `notElem` classes - then "\\setlength{\\cslhangindent}{0em}" - else mempty) - $$ ("\\setlength{\\cslentryspacing}" <> braces + return $ ("\\begin{CSLReferences}" + <> braces + (if "hanging-indent" `elem` classes + then "1" + else "0") + <> braces (case lookup "entry-spacing" kvs of - Nothing -> "0em" - Just s -> (literal s <> "\\baselineskip"))) - $$ "\\begin{CSLReferences}" + Nothing -> "0" + Just s -> literal s)) $$ inner $+$ "\\end{CSLReferences}" else blockListToLaTeX bs |
