引用的显示引文和页码有问题

引用的显示引文和页码有问题

我在尝试让 citekey 在 blockcitation 中正常工作时遇到了问题。我通过 subfiles 包设置了一个嵌套文件,并使用 csquotes 生成块引用,如下所示:

在子文件中我有以下设置:

\documentclass[draft,../../main.tex]{subfiles}
\begin{document} 
\begin{displayquote}[\cite[235]{SomeOne}]
Something smart.
\end{displayquote}
\end{document}

在主文档中我已加载 csquotes 包,如下所示:

\documentclass[12pt,a4paper,twoside,openright,draft]{memoir}
% more preamble
\usepackage{csquotes}
 \usepackage[
   backend=biber,
   style=authoryear-icomp,
   maxcitenames=2,
   sorting=nyt
   ]{biblatex}
\begin{document}
   \subfile{sub.tex}
\end{document}

现在,当我编译主文件或子文件时,出现以下错误消息:

!扫描 \blx@citeargs@i 的使用时文件结束。 \par sub.tex 我怀疑您现在忘记了}', causing me to read past where you wanted me to stop. I'll try to recover; but if the error is serious, you'd better typeE' 或 `X' 并修复您的文件。 !紧急停止。sub.tex(作业中止,未找到合法的 \end)

如果我省略上述参数中的后注“[235]” \cite,错误消息就会消失。除了没有后注也能编译正常之外,我搞不清楚到底发生了什么。我看不出是语法错误还是发生了什么。我按照描述做了这里,但显然不是这样。顺便说一句,在我的 bibfile 中引用的条目,我没有放任何页码信息或任何东西,我不知道这是否是导致错误消息的原因?

任何帮助深表感谢!

答案1

您的代码中的问题在于这一行:

\begin{displayquote}[\cite[235]{westfahl:space}]

这里的问题是 LaTeX 无法找到相应的闭合]}。为了避免这个问题,只需将参数[...]用自己的分组对括起来即可{..}。结果:

\begin{displayquote}[{\cite[235]{westfahl:space}}]
%                   ^^                          ^^

请查看我为使您的代码可编译而进行的其他更改。请将我的 MWE 与您的代码进行比较并研究更改... 因此,使用以下可编译的 MWE(使用包filecontents将所有文件包含在一个可编译的 MWE 中):

\RequirePackage{filecontents}
\begin{filecontents}{\jobname-sub.tex}
\documentclass[\jobname.tex]{subfiles}
\begin{document} 
\cite[235]{westfahl:space}
\begin{displayquote}[{\cite[235]{westfahl:space}}]
Something smart.
\end{displayquote}
\end{document}
\end{filecontents}


\documentclass[12pt,a4paper,twoside,openright,draft]{memoir}
% more preamble
\usepackage{subfiles}
\usepackage{csquotes}
\usepackage[%
  backend=biber,
  style=authoryear-icomp,
  maxcitenames=2,
  sorting=nyt,
]{biblatex}
\addbibresource{biblatex-examples.bib}


\begin{document}
Test
\subfile{319085-sub}
Test
\end{document}

得到结果:

在此处输入图片描述

相关内容