hyperref
和之间似乎存在冲突accents
。 降低的 MWE:
\documentclass{article}
\usepackage{accents}
\usepackage{hyperref}
\begin{document}
\subsection{Estimate on $\tilde{\alpha}$}
\end{document}
注释掉或\usepackage{accents}
可以\usepackage{hyperref}
消除错误(但不能解决问题)。
我正在尝试在我的文档中使用 accents 包,当我包含
\usepackage{accents}
到我的原始文档,我收到一个错误
!TeX 容量超出,抱歉 [输入堆栈大小=5000]。 \HyPsd@@LetCommand l.205 \begin{lemma}
! ==> 发生致命错误,未生成输出 PDF 文件!
我尝试打开一个新文档并复制初始部分(最多\begin{document}
)。
我将其添加到\usepackage{accents}
与原始文档相同的行中,并且没有错误。
我确实不知道这里该包含什么内容,但我可以提供任何可能有用的信息。
让我补充一下;
日志文件结尾
(./epsilon_closeloop.toc
LaTeX Font Info: External font `lmex10' loaded for size
(Font) <10> on input line 7.
LaTeX Font Info: External font `lmex10' loaded for size
(Font) <7> on input line 7.
)
\tf@toc=\write6
\openout6 = `epsilon_closeloop.toc'.
[1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}]
LaTeX Font Info: Try loading font information for T1+lmtt on input line 187.
(/usr/share/texmf/tex/latex/lm/t1lmtt.fd
File: t1lmtt.fd 2009/10/30 v1.6 Font defs for Latin Modern
)
! TeX capacity exceeded, sorry [input stack size=5000].
<to be read again>
\HyPsd@@LetCommand
l.205 \begin{lemma}
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:
15098 strings out of 494923
238621 string characters out of 6180741
684258 words of memory out of 5000000
18040 multiletter control sequences out of 15000+600000
54559 words of font info for 52 fonts, out of 8000000 for 9000
175 hyphenation exceptions out of 8191
5000i,18n,8735p,922b,742s stack positions out of 5000i,500n,10000p,200000b,80000s
! ==> Fatal error occurred, no output PDF file produced!
引理部分
\subsection{Estimate on $\mc{W}_2(\mu_t^{N,\a,\t\a},\bar{\mu}_t^{N,\a})$}
\begin{lemma}
\begin{equation}
\frac{1}{N}\sum_j |X_t^{N,\a,\t\a,j} - \bar{X}_t^{N,\a,j}|^2 \leq
\delta^2 + \int_0^t \mc{W}_2^2(\mu_s^{N,\a,\t\a},\mu_s^\a)
\end{equation}
\end{lemma}
引理部分结束
完整序言
\documentclass[reqno]{amsart}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{accents}
\usepackage{lmodern}
\usepackage{mathtools} %%used for \usetagform{roman}
\usepackage{hyperref}
\hypersetup{%
colorlinks=true,%
linkcolor=teal,%
urlcolor=teal%
}%
\usepackage{amsmath}
\numberwithin{equation}{section}
\usepackage{amsthm} % for proof environment.
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{float}
\usepackage[backend=biber]{biblatex}
\usepackage{showlabels}%For writing purposes. Comment at the end.
\usepackage[left=1.2in,right=1.2in,top=1in,bottom=1in]{geometry}
\makeatletter
\newcommand{\leqnomode}{\tagsleft@true}
\newcommand{\reqnomode}{\tagsleft@false}
\makeatother
\newcommand{\weak}{\Rightarrow}
\newcommand{\ind}[1]{{\bf 1}_{\left\{ {#1} \right\}} }
\newcommand{\mb}[1]{\mathbb{#1}}
\newcommand{\mc}[1]{\mathcal{#1}}
%% \newcommand{\an}{\{a_n\}_{n=0}^{\infty}}
%% \DeclareMathOperator{\csch}{csch}
\DeclareMathOperator*{\argmax}{arg\,max}
\DeclareMathOperator*{\argmin}{arg\,min}
\DeclareMathOperator{\Id}{Id}
\DeclareMathOperator*{\esssup}{ess\,sup}
\DeclareMathOperator*{\supp}{supp}
%% Stochastic Specific
\def\a{\alpha}
\def\t{\tilde}
\def\b{\overline} % First defined for bar.
\def\h{\hat}
\def\ub{\underline} %First defined for underbar, however underbar
%converts to text mode!
%% \newcommand{\ub}[1]{\underaccent{\bar}{#1}} %%Requires accents package.
\newtagform{roman}[\renewcommand{\theequation}{\roman{equation}}]()
\title{Close Loop}
\date{\today}
\theoremstyle{plain}
\newtheorem{theorem}{Theorem} %%included in init
\newtheorem*{theorem*}{Theorem}
\newtheorem{lemma}{Lemma} %%included in init
\newtheorem*{lemma*}{Lemma}
\theoremstyle{definition}
\newtheorem{definition}{Definition} %%included in init
\newtheorem{note}{Note} %%included in init
\newtheorem{example}{Example} %%included in init
\newtheorem{algorithm}{Algorithm}
\newtheorem{assumption}{Assumption} %%included in init
完整序言
答案1
除了有问题的重新定义\a
、\t
和\b
,以及放错位置的\usepackage{hyperref}
和\usepackage{showlabels}
(hyperref
一般来说应该是序言中的最后一个包,但也有一些例外,比如showlabels
必须在之后加载hyperref
)。
如果仍使用 的定义accents
(因为我猜这是您在加载时想要的),但在标题、章节标题等中hyperref
使用 的宏,accents
则必须确保hyperref
不会使用它无法处理的宏来创建书签。这可以手动完成\texorpdfstring
,但我建议直接为有问题的宏设置规则,这样您以后就不必关心它们了。为此,我们hyperref
提供了\pdfstringdefDisableCommands
宏,我们使用它在本地重新定义\tilde
和\bar
,以便对于 PDF 书签使用标准版本,但对于文档的其余部分,使用 提供的版本accents
。
(下面我删除了所有与当前问题不直接相关的内容)
\documentclass[reqno]{amsart}
\let\preAccentstilde\tilde
\let\preAccentsbar\bar
\usepackage{accents}
\usepackage{hyperref}
\pdfstringdefDisableCommands
{%
\let\tilde\preAccentstilde
\let\bar\preAccentsbar
}
\usepackage{showlabels}%For writing purposes. Comment at the end.
\newcommand{\mc}[1]{\mathcal{#1}}
%% Stochastic Specific
\newcommand\h{\hat}
\title{Close Loop}
\date{\today}
\author{Melih Iseri}
\begin{document}
\tableofcontents
\subsection{Estimate on $\mc{W}_2(\mu_t^{N,\alpha,\tilde{\alpha}},\bar{\mu}_t^{N,\alpha})$}
\end{document}
请注意,虽然这确实解决了问题并使您的文档至少可编译,但最好还是使用手动清除书签\texorpdfstring
,例如,而不是
\section{Some section $\alpha$}
使用
\section{\texorpdfstring{Some section $\alpha$}{Some section a}}