容量超出错误

容量超出错误

我在 Mac 上使用 MacTex 2016(El Captain 10.11.2)。我的文本编辑器是 TexStudio 2.11.0,我的所有软件包都已更新(TeX live Utility 1.24)。

自从我将 MacTex 从 2015 版更新到 2016 版后,我在编译时不断收到同样的错误:在包含参考文献的文件中,当我第一次使用 XeLateX 进行编译时,我在使用 \textcite 或 \autocite 命令的地方收到有关超出容量的错误(以下几行只是警告):

TeX 容量超出,抱歉 [参数堆栈大小=10000]。本书 \autocite{adams} 'firstinits' 选项已弃用,请改用 'giveninits'。基于 utf8 的引擎忽略 inputenc 包。修补脚注失败。冲突的选项。将 \usepackage{fontspec} 添加到文档的 (frenchb.ldf) 序言中,

在我更新 MacTex 之前,这个 file.tex 可以正常工作,我会先用 XeLateX 编译,然后用 bibtex,然后 XeLatex 编译两次。但在尝试卸载 2016 并返回 2015 之前(如果我能将它下载到某个地方……),我想了解我做错了什么,显然我做错了什么。

\documentclass{book}
\title{Chapitre2}
\makeindex
\date{}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{times}
\usepackage{tipa}
\usepackage{chngcntr}
\usepackage[backend=bibtex, citestyle=authoryear-comp, maxcitenames=2, firstinits=true]{biblatex}
\addbibresource{/Users/MyName/Documents/Latex/biblio.bib}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{array}
\usepackage{longtable}
\usepackage{tabulary}
\usepackage{multirow}
\usepackage{lscape}
\usepackage{colortbl}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{enumerate}
\usepackage{arydshln}
\usepackage{todonotes}
\usepackage{fancyhdr}
\usepackage{titlesec}
\usepackage{caption}
\usepackage{phonrule}
\usepackage{tikz-qtree-compat}
\usetikzlibrary{decorations.markings, calc, shapes.misc, decorations.pathreplacing}
\usepackage{xr}
\usepackage{float}
\usepackage{gb4e}
\usepackage{hyperref}

\begin{document}

bla bla

This book \autocite{adams} is awesome.

Another awesome book : \textcite{arnason}.

\printbibliography
\end{document}

我知道有很多软件包,但由于其中一些不兼容,也许这就是问题所在。以下是我从 bib 文件中引用的两个参考资料:

@Book{adams,
  title =     {Faroese: a language course for beginners},
  publisher = {Stiðin},
  year =      {2014},
  author =    {Adams, Jonathan and Petersen, Hjalmar P.},
  address =   {T\'{o}rshavn},
  type =      {Book}
}

@Book{arnason,
  title =     {The phonology of Icelandic and Faroese},
  publisher = {Oxford University Press},
  year =      {2011},
  author =    {\'{A}rnason, Kristj\'{a}n},
  address =   {Oxford; New York},
  type =      {Book}
}

如果我忘记了一些重要的事情,请询问。

先感谢您!

答案1

问题在于\automathgb4e并且使用名称中biblatex带有下划线的内部键。_

这会使 TeX 进入一个循环,最后出现可怕的“TeX 容量超出”消息。

如果要一起使用gb4ebiblatex,则需要发出\noautomath

你的序言中的其他问题包括

  1. \usepackage[utf8]{inputenc}
  2. \usepackage[T1]{fontenc}
  3. \usepackage{times}

这些应该被删除,

\usepackage{fontspec}

应该发出。如果你想要一个像 Times 这样的字体,请声明

\setmainfont{TeX Gyre Termes}

这是您的序言的更新版本,它修复了该问题。

\begin{filecontents*}{\jobname.bib}
@Book{adams,
  title =     {Faroese: a language course for beginners},
  publisher = {Stiðin},
  year =      {2014},
  author =    {Adams, Jonathan and Petersen, Hjalmar P.},
  address =   {T\'{o}rshavn},
  type =      {Book}
}

@Book{arnason,
  title =     {The phonology of Icelandic and Faroese},
  publisher = {Oxford University Press},
  year =      {2011},
  author =    {\'{A}rnason, Kristj\'{a}n},
  address =   {Oxford; New York},
  type =      {Book}
}
\end{filecontents*}

\documentclass{book}
\usepackage[french]{babel}

\usepackage{tipa}
\usepackage{fontspec}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{chngcntr}
\usepackage[
  backend=bibtex,
  citestyle=authoryear-comp,
  maxcitenames=2,
%  firstinits=true
]{biblatex}
\usepackage{csquotes}
\usepackage{array}
\usepackage{longtable}
\usepackage{tabulary}
\usepackage{multirow}
\usepackage{lscape}
\usepackage{colortbl}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{enumerate}
\usepackage{arydshln}
\usepackage{todonotes}
\usepackage{fancyhdr}
\usepackage{titlesec}
\usepackage{caption}
\usepackage{phonrule}
\usepackage{tikz-qtree-compat}
\usetikzlibrary{decorations.markings, calc, shapes.misc, decorations.pathreplacing}
\usepackage{xr}
\usepackage{float}
\usepackage{gb4e}
\usepackage{hyperref}

\setmainfont{TeX Gyre Termes}
\addbibresource{\jobname.bib}
\noautomath

\begin{document}
\title{Chapitre2}
\date{}

bla bla

This book \autocite{adams} is awesome.

Another awesome book : \textcite{arnason}.

\printbibliography
\end{document}

filecontents*环境只是为了使文档自成一体。使用您自己的.bib数据库。您应该考虑使用 Biber 而不是 BibTeX。

在此处输入图片描述

如果 TeX Gyre Termes 未作为系统字体安装,请按以下方式声明:

\setmainfont{texgyretermes}[
  Extension=.otf,
  UprightFont=*-regular,
  ItalicFont=*-italic,
  BoldFont=*-bold,
  BoldItalicFont=*-bolditalic,
]

答案2

egreg 提出的解决方案要求您关闭该\automath功能(允许在文本模式下使用_^)。由于这对语言学家来说确实是一个非常有用的功能,这里有一个解决方案(由 David Carlisle 提供),它可以解决问题并允许您继续使用\automath。这很可能将包含在的下一个版本中,gb4e但在撰写本文时尚未发生。

正如 cfr 在她对 egreg 的评论中提到的那样,如果您使用 XeLaTeX,使用 TIPA 通常不是一个好主意。相反,请使用带有音标的字体并将它们直接输入到您的源中。请参阅:

\begin{filecontents*}{\jobname.bib}
@Book{adams,
  title =     {Faroese: a language course for beginners},
  publisher = {Stiðin},
  year =      {2014},
  author =    {Adams, Jonathan and Petersen, Hjalmar P.},
  address =   {T\'{o}rshavn},
  type =      {Book}
}

@Book{arnason,
  title =     {The phonology of Icelandic and Faroese},
  publisher = {Oxford University Press},
  year =      {2011},
  author =    {\'{A}rnason, Kristj\'{a}n},
  address =   {Oxford; New York},
  type =      {Book}
}
\end{filecontents*}

\documentclass{book}
\usepackage[french]{babel}

\usepackage{fontspec}
\usepackage[
  backend=bibtex,
  citestyle=authoryear-comp,
  maxcitenames=2,
%  firstinits=true
]{biblatex}
\usepackage{csquotes}

\usepackage{gb4e}

\let\gbtmp_
\protected\def_{\ifincsname\string_\else\expandafter\gbtmp\fi}

\usepackage{hyperref}

\setmainfont{TeX Gyre Termes}
\addbibresource{\jobname.bib}
%\noautomath

\begin{document}
\title{Chapitre2}
\date{}

bla bla

This book \autocite{adams} is awesome.

Another awesome book : \textcite{arnason}.

And you can use subscripts_{a} in text mode!

\printbibliography
\end{document}

代码输出

相关内容