口音包的问题

口音包的问题

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}}

相关内容