summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/templates/default.latex22
-rw-r--r--src/Text/Pandoc/Writers/LaTeX.hs15
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