From e41aa878606da0dcddc5515384e425d9e1f4a015 Mon Sep 17 00:00:00 2001 From: Leonardo Castorina Date: Wed, 25 Sep 2024 09:59:57 +0100 Subject: [PATCH] Fix natbib + citeproc issue #250 --- textemplate/neurips.tex | 46 +++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/textemplate/neurips.tex b/textemplate/neurips.tex index 15da2c8..99d02d8 100644 --- a/textemplate/neurips.tex +++ b/textemplate/neurips.tex @@ -7,7 +7,7 @@ % ready for submission -\usepackage[final]{neurips} +\usepackage[final,nonatbib]{neurips} % to compile a preprint version, e.g., for submission to arXiv, add add the @@ -60,28 +60,38 @@ \makeatother $if(csl-refs)$ +% definitions for citeproc citations +\NewDocumentCommand\citeproctext{}{} +\NewDocumentCommand\citeproc{mm}{% +\begingroup\def\citeproctext{#2}\cite{#1}\endgroup} +\makeatletter +% allow citations to break across lines +\let\@cite@ofmt\@firstofone +% avoid brackets around text for \cite: +\def\@biblabel#1{} +\def\@cite#1#2{{#1\if@tempswa , #2\fi}} +\makeatother \newlength{\cslhangindent} \setlength{\cslhangindent}{1.5em} \newlength{\csllabelwidth} \setlength{\csllabelwidth}{3em} -\newlength{\cslentryspacingunit} % times entry-spacing -\setlength{\cslentryspacingunit}{\parskip} -\newenvironment{CSLReferences}[2] % #1 hanging-ident, #2 entry spacing - {% don't indent paragraphs - \setlength{\parindent}{0pt} - % turn on hanging indent if param 1 is 1 - \ifodd #1 - \let\oldpar\par - \def\par{\hangindent=\cslhangindent\oldpar} - \fi - % set entry spacing - \setlength{\parskip}{#2\cslentryspacingunit} - }% - {} +\newenvironment{CSLReferences}[2] % #1 hanging-indent, #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]{#1\hfill\break} -\newcommand{\CSLLeftMargin}[1]{\parbox[t]{\csllabelwidth}{#1}} -\newcommand{\CSLRightInline}[1]{\parbox[t]{\linewidth - \csllabelwidth}{#1}\break} +\newcommand{\CSLBlock}[1]{\hfill\break\parbox[t]{\linewidth}{\strut\ignorespaces#1\strut}} +\newcommand{\CSLLeftMargin}[1]{\parbox[t]{\csllabelwidth}{\strut#1\strut}} +\newcommand{\CSLRightInline}[1]{\parbox[t]{\linewidth - \csllabelwidth}{\strut#1\strut}} \newcommand{\CSLIndent}[1]{\hspace{\cslhangindent}#1} $endif$ \providecommand{\tightlist}{%