参考书目中的悬挂缩进

参考书目中的悬挂缩进

我无法想象其他地方没有介绍这一点,但我无论如何也找不到它。(请原谅,我对 LaTeX 还很陌生。)

我正在尝试pandoc基于 Markdown 文档生成 PDF,但现在我的参考书目格式与其他段落一样:前导缩进,条目之间没有空格。我想将其格式化为悬挂缩进和部分之间留出一点空格。这似乎应该是默认行为,但即使我将 LaTeX 模板剥离到最基本的框架,我也无法让参考书目正常运行。

我正在运行该类memoir并使用chicago-fullnotes-bibliography样式。我想知道是否有办法更改默认参考书目行为,或者为文档的该部分破解不同的缩进模式。

答案1

我不确定“chicago-fullnotes-bibliography”是什么,但如果它基于biblatex,以下长度可能是您想要根据自己的喜好重新定义的长度:

\setlength{\bibhang}{11pt}% the hanging indent
\setlength{\bibitemsep}{6pt}% the separation b/w basic items
\setlength{\bibinitsep}{\baselineskip}% insert blank line between different initial letters

这些将与课程一起进行memoir;改变长度以满足您的需要。

如果您不使用biblatex,但需要遵循芝加哥风格,我建议您尽早切换到biblatexbiber,并使用biblatex-chicago贡献的风格。它实现了 CMS 第 16 版,并且正在积极开发中。作者也会对有关潜在问题的反馈做出回应。

答案2

由@jon 提供的答案只是给我一个错误信息。

但我发现以下解决方法效果很好。如果您的参考书目应该出现在文档末尾(默认),只需在 Markdown 文档的最后添加以下几行:

\noindent
\vspace{-2em}
\setlength{\parindent}{-0.5in}
\setlength{\leftskip}{0.5in}
\setlength{\parskip}{15pt}

但是,如果您手动定义参考书目的位置(使用标签<div id="refs"></div>),则必须将上述行和标签包装<div>在 Latex 组中,以将格式更改仅限于参考书目:

\begingroup
\noindent
\vspace{-2em}
\setlength{\parindent}{-0.5in}
\setlength{\leftskip}{0.5in}
\setlength{\parskip}{15pt}

<div id="refs"></div>

\endgroup

命令解释:

  • \setlength{\parindent}\setlength{\leftskip}定义参考书目条目的悬挂缩进。
  • \setlength{\parskip}定义参考书目条目之间的间距。
  • \noindent是为了将第一个参考书目条目正确缩进。
  • \vspace{-2em}减少参考书目与其之前的最后一段之间的垂直间距(因为\noindent添加了一个空白段落)。

来源:https://groups.google.com/d/msg/pandoc-discuss/4SKA5E11rO4/fDGiNSOsIMkJ

答案3

(我没有资格简单地对此发表评论,但我也想将上面的两个回复串联起来,以便将来像我一样的谷歌用户使用)

Pandoc 的内置参考书目格式使用西地普罗生成“参考书目”。也就是说,虽然它读取文件并通过 XeLaTeX 等引擎.bib生成,但它实际上从未调用 biber 等。.pdf

如果你将 pandoc 生成的参考书目输出到文件.tex,最后你会得到类似这样的内容:

\hypertarget{refs}{}
\leavevmode\hypertarget{ref-nightwood}{}%
Barnes, Djuna. 1936. \emph{Nightwood}. New York: New Directions.

\leavevmode\hypertarget{ref-fama_melancholic_2014}{}%
Fama, Katherine A. ``Melancholic Remedies: Djuna Barnes's
\emph{Nightwood} as Narrative Theory.'' \emph{Journal of Modern
Literature} 37, no. 2 (2014): 39--58.
\url{https://doi.org/10.2979/jmodelite.37.2.39}.

因此,@jon 的解决方案无法修复 Pandoc 的固有问题,因为生成的输出并未以某种方式标记以对类似内容做出反应\bibhang

因此,“最简单”的解决方案是强制改变格式,类似于@salim-b 建议

与提供的解决方案类似的解决方案是安装pandoc-citeproc-序言,在要创建参考书目的地方之前插入一个简短的.tex文件。其基本版本是:

\section*{References}
\setlength{\parindent}{-0.2in}
\singlespacing
\small
\setlength{\leftskip}{0.2in}
\setlength{\parskip}{8pt}
\vspace*{-0.4in}
\noindent

在我的实践中(如模板所示简单文章),我在调用 Pandoc 时只需附加一个类似于上面引用的文件:

pandoc -sr markdown+yaml_metadata_block+citations \
  --pdf-engine=xelatex --template=template.tex \
  --filter pandoc-citeproc \
  ./metadata.yml ./tmp/main.md ./bibliography-preamble.tex \
  -o output.pdf

潘多克--biblatex但是,有一个功能可以将其引用语法转换为 BibLaTeX 命令。在编译时添加标志将用所需的.tex所有\autocites 等填充生成的文件。但是,正如文档中明确指出的那样:

此选项不适用于 pandoc-citeproc 过滤器或 PDF 输出。它旨在用于生成可使用 bibtex 或 biber 处理的 LaTeX 文件。

在这种情况下,完整的咒语如下:

pandoc -sr markdown+yaml_metadata_block+citations \
  --biblatex ./metadata.yml ./tmp/main.md \
  -o output.tex ; xelatex output.tex ; biber output ; xelatex output.tex ; xelatex output.tex

事实上,我相信这是我今后将亲自使用的解决方案。我使用一个能够正确/语义地响应其环境的工具来获得格式正确的参考书目,而不是 Citeproc 产生的那种拼凑物。

相关内容