BibLaTeX 引用时缺少分号

BibLaTeX 引用时缺少分号

我正在使用 Texmaker v5.0.2 和 Windows 10 编写我的第一个 LaTeX 文档。

我使用 bibLaTeX 来做参考文献,必须符合 APA 第 6 版。根据我的序言,我能找到的 bibLaTeX 内置的最接近 APA 的样式是 authoryear:

\documentclass[11pt, twoside]{article}

%document foramtting
\usepackage[margin = 2.5cm]{geometry}

%math packages
\usepackage{amsfonts,mathtools,amssymb, amsthm}
\numberwithin{equation}{subsection}
\usepackage{xfrac}

\usepackage[none]{hyphenat}
\usepackage{gensymb}
\usepackage{changepage}
\usepackage{xcolor}

%Figure and table packages
\usepackage{booktabs,caption}
\usepackage[flushleft]{threeparttable}
\usepackage{graphicx}
\usepackage{float}
\usepackage{tabularx}

%Referencing package
\usepackage[
    backend=biber,
    citestyle = authoryear-comp,
    bibstyle = authoryear,
    url = true,
    doi = true,
    natbib = true
    ]{biblatex}
\addbibresource{citations.bib}

%math foramtting
\newtheorem{theorem}{Theorem}[section]
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{corollary}{Corollary}[theorem]
\theoremstyle{definition}
\newtheorem{definition}{Definition}
\renewcommand{\baselinestretch}{1.3}
\renewcommand{\arraystretch}{1.5}

这对于图题和参考书目之外的引用来说非常有效。但是,对于图题内的引用,分号不会出现在编译后的 PDF 文档中。

下面是我的一个源代码图形标题的示例:

\begin{figure}[t] \label{fig1}
\begin{center}
\fbox{ \includegraphics{Figures/Figure-1-with-text.png} }
\end{center}
\caption{Bla bla bla. Created using \citep{DrawGraph,PaintThreeD}.}
\end{figure}

PDF 文档中的内容如下:-

“图 1:Bla bla bla。使用 (Kummer,nd Microsoft,2017) 创建。”

有任何想法吗?

问候,

LaTeX 新手

答案1

首先:这个问题的答案需要一点水晶球的观察。请发布一份完整但精简的文档,以便其他人可以复制、粘贴和编译,而无需为将来的类似问题费心。请参阅我刚刚被要求写一个最简单的例子,那是什么?如何编写 MWEB(带有参考书目的最小工作示例)?为什么 TeX 需要如此复杂的 MWE:s


如果你想遵循 APA 风格,你绝对应该考虑使用biblatex-apa.biblatex-apa据我所知,是 LaTeX 中 APA 引用和参考书目样式最全面的实现。

请记住,biblatex-apa要实现 APA 的要求需要付出艰苦的努力。这意味着样式的代码非常复杂,即使对于“应该很容易”的事情,修改其行为也非常困难。因此,仅biblatex-apa当您遵循 APA 样式或经过轻微修改的 APA 样式版本时才使用。


一般情况下,biblatex两个引用之间不省略分号。无论是在\caption还是在其他地方。

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage{graphicx}
\usepackage{duckuments}

\usepackage[style=authoryear, backend=biber]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{appleby,
  author  = {Humphrey Appleby},
  title   = {On the Importance of the Civil Service},
}
\end{filecontents}

\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{appleby,sigfridsson}

\begin{figure}
\centering
\includegraphics{example-image-duck}
\caption{A duck. Created by \cite{appleby,sigfridsson}}
\end{figure}

\printbibliography
\end{document}

“Appleby nd; Sigfridsson 和 Ryde 1998”

我偶然看到了你的这个老问题:通过 apacite 包的 \cite{} 不起作用。您在那里发布的代码可以解释您在此处看到的内容。

不带年份的条目写为

@online{DrawGraph,
  author      = {Kummer, J.},
  year        = {n.d.},
  title       = {Draw Function Graph},
  url         = {https://rechneronline.de/function-graphs/},
  lastchecked = {2018-01-05},
}

事实上,MWE

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=authoryear, backend=biber]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{appleby,
  author  = {Humphrey Appleby},
  title   = {On the Importance of the Civil Service},
}
@online{DrawGraph,
  author      = {Kummer, J.},
  year        = {n.d.},
  title       = {Draw Function Graph},
  url         = {https://rechneronline.de/function-graphs/},
  lastchecked = {2018-01-05},
}
\end{filecontents}

\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{appleby,sigfridsson}

\cite{DrawGraph,sigfridsson}
\end{document}

重现该问题

再次“Appleby nd; Sigfridsson and Ryde 1998”,**但**“Kummer nd Sigfridsson and Ryde 1998”

这里发生了什么?biblatex有一个非常复杂的机制来避免双重标点符号。一些(很多?)语言有规则禁止两个标点符号连在一起,除非在特定情况下。在这些语言中,你永远不会看到,.或。在某些语言中有两种含义:(1)表示句子的结束(句号或句号,)或(2)标记缩写(点,在下面显示为 以避免与句尾 混淆)。句号通常不能与其他标点符号一起出现:,以及和被排除在外。缩写点可以出现在以下某些组合中:,都可以,但通常会被抑制,只给出。;...*..,.;,.;.*,*;*..

的双重角色.不仅是上述解释的问题,也是 的问题biblatexbiblatex不知道.您输入的 a 扮演哪个角色。它是句号还是点?biblatex通过始终假设 a.是句末句号来解决这个问题。如果需要,可以使用 把句号变成缩写点\isdot

这意味着n.d.year字段中的 以句号结尾。biblatex然后将不需要的双标点符号抑制.;为仅.

year这里的解决方案很简单。如果没有日期,则忽略该字段并让其biblatex处理。biblatex如果没有日期,则自动添加“nd”(或该字符串的本地化版本)。如果字符串中有一个被识别为句号的点,您可以添加\isdot以表明biblatex句号是一个点

n.d.\isdot

或使用biblatex立即排版一个点

n.d\adddot

相关内容