Мне сложно понять, где проблема с моим кодом/рабочим процессом. Я уже задавал этот вопросздесь, но затем та же проблема вернулась. Когда я запускаю его в tex, я получаю ошибку input limit exceeded. Точный лог вставлен ниже:
This is pdfTeX, Version 3.14159265-2.6-1.40.17 (MiKTeX 2.9.6210 64-bit) (preloaded format=pdflatex 2017.1.26) 26 JAN 2017 20:45
entering extended mode
**./master.tex
(master.tex
LaTeX2e <2016/03/31> patch level 3
Babel <3.9r> and hyphenation patterns for 75 language(s) loaded.
("C:\Program Files\MiKTeX 2.9\tex\latex\base\article.cls"
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
("C:\Program Files\MiKTeX 2.9\tex\latex\base\size11.clo"
File: size11.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
)
\c@part=\count79
\c@section=\count80
\c@subsection=\count81
\c@subsubsection=\count82
\c@paragraph=\count83
\c@subparagraph=\count84
\c@figure=\count85
\c@table=\count86
\abovecaptionskip=\skip41
\belowcaptionskip=\skip42
\bibindent=\dimen102
)
("C:\Program Files\MiKTeX 2.9\tex\latex\apacite\apacite.sty"
Package: apacite 2013/07/21 v6.03 APA citation
\c@BibCnt=\count87
\bibleftmargin=\skip43
\bibindent=\skip44
\bibparsep=\skip45
\bibitemsep=\skip46
\biblabelsep=\skip47
)
No file master.aux.
\openout1 = `master.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 5.
LaTeX Font Info: ... okay on input line 5.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 5.
LaTeX Font Info: ... okay on input line 5.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 5.
LaTeX Font Info: ... okay on input line 5.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 5.
LaTeX Font Info: ... okay on input line 5.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 5.
LaTeX Font Info: ... okay on input line 5.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 5.
LaTeX Font Info: ... okay on input line 5.
\c@maskedRefs=\count88
("C:\Program Files\MiKTeX 2.9\tex\latex\apacite\english.apc"
File: english.apc 2013/07/21 v6.03 apacite language file
LaTeX Info: Redefining \BPBI on input line 129.
LaTeX Info: Redefining \BHBI on input line 130.
)
! TeX capacity exceeded, sorry [input stack size=5000].
\AtBeginDocument #1->#1
l.5 \begin{document}
If you really absolutely need more capacity,
you can ask a wizard to enlarge me.
Here is how much of TeX's memory you used:
641 strings out of 493333
7639 string characters out of 3139188
74825 words of memory out of 3000000
4254 multiletter control sequences out of 15000+200000
3940 words of font info for 15 fonts, out of 3000000 for 9000
1141 hyphenation exceptions out of 8191
5000i,0n,4998p,136b,36s stack positions out of 5000i,500n,10000p,200000b,50000s
! ==> Fatal error occurred, no output PDF file produced!
Я уже задавал этот вопрос и думал, что решил его, но проблема снова возникла.
Ниже приведен код Latex, который я пытаюсь выполнить:
\documentclass[11pt,twoside]{article}
\usepackage{apacite}
\nocite{*}
\begin{document}
% title page. Edit as needed for future publications.
\title{Research Proposal}
\author{Teererai Marange \\
Department of Computer Science \\
University of Auckland\\
\texttt{[email protected]}}
\date{January 26, 2017}
\maketitle
% end title page.
% abstract goes here
\newpage
\begin{abstract}
Abstract goes here
\end{abstract}
\newpage
% table of contents
\tableofcontents
\newpage
%begin introduction
\section {Introduction}
Lorem Ipsum Doremifaso
%\cite{Nedakeyword} use to cite
%references our biliography. This must go whereever we use our bibtex references
\bibliography{references}
\bibliographystyle{apacite}
\end{document}
а файл bib, который я использую для создания библиографии, приведен ниже:
@misc{wikipedia1,
title = "Scripting language",
author = "Wikipedia",
url = {http://en.wikipedia.org/wiki/Scripting_language},
year = 2014,
}
решение1
Вы получаете ошибку только с
\documentclass[11pt,twoside]{article}
\usepackage{apacite}
\nocite{*}
\begin{document}
\end{document}
перемещение ни один цитировать не избегает этого
\documentclass[11pt,twoside]{article}
\usepackage{apacite}
\begin{document}
\nocite{*}
\end{document}
решение2
При стандартной настройке \nocite{*}
before \begin{document}
выдаст ошибку. apacite
Стиль изменяется \nocite
так, чтобы его можно было использовать также в преамбуле (что не неразумно), но он использует для этого неправильный тест.
Действительно, код для \nocite
проверяет, \document
стал ли эквивалентен \@onlypreamble
, что означает, что документ начался, и в этом случае он выполняет обычную работу; в противном случае он выдает \AtBeginDocument{\nocite{...}}
(аргумент тот же, что и у \nocite
. Однако, когда токены для \AtBeginDocument
выполняются, \document
еще не стал эквивалентен \@preamble
. Это означает, что \nocite{*}
будет делать \AtBeginDocument{\nocite{*}}
, который… Бесконечный цикл, потому что в этот момент \AtBeginDocument
определяется просто для передачи своего аргумента.
Исправление кода может заключаться в том, чтобы он выполнялся \AtBeginDocument
только в том случае, если \AtBeginDocument
он не стал эквивалентен \@firstofone
.
\begin{filecontents*}{\jobname.bib}
@misc{wikipedia1,
title = "Scripting language",
author = "Wikipedia",
url = {http://en.wikipedia.org/wiki/Scripting_language},
year = 2014,
}
\end{filecontents*}
\documentclass[11pt,twoside]{article}
\usepackage{apacite}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\nocite}
{\AtBeginDocument{\nocite{#1}}}
{\ifx\AtBeginDocument\@firstofone\else\AtBeginDocument{\nocite{#1}}\fi}
{}{}
\makeatother
\nocite{*}
\begin{document}
% title page. Edit as needed for future publications.
\title{Research Proposal}
\author{Teererai Marange \\
Department of Computer Science \\
University of Auckland\\
\texttt{[email protected]}}
\date{January 26, 2017}
\maketitle
% end title page.
% abstract goes here
\newpage
\begin{abstract}
Abstract goes here
\end{abstract}
\newpage
% table of contents
\tableofcontents
\newpage
%begin introduction
\section {Introduction}
Lorem Ipsum Doremifaso
%\cite{Nedakeyword} use to cite
%references our biliography. This must go whereever we use our bibtex references
\bibliography{\jobname}
\bibliographystyle{apacite}
\end{document}
Конечно, проще двигаться \nocite{*}
после \begin{document}
. Однако это можно исправить в коде для apacite
.
Обратите внимание, что этот патч не будет работать, если multibbl
загружен. Для этого это было бы намного сложнее, поскольку переопределение \nocite
выполняется в начале документа.
Я отправил сообщение об ошибке разработчику apacite.sty
.