biblatex 和 etex 带有活动等号 (=)

biblatex 和 etex 带有活动等号 (=)

请问为什么特克斯无法通过活动加载=

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[turkish]{babel}
\catcode`\==13
\makeatletter
\bbl@activate{=}
\makeatother
\usepackage[style=authortitle-icomp]{biblatex}
\addbibresource{biblatex-examples.bib}

\begin{document}

\section*{The \texttt{authortitle-icomp} style}

This style combines the features of \texttt{authortitle-ibid} and
\texttt{authortitle-comp}. It will implicitly enable the
\texttt{sortcites} package option at load time. This style is
intended for citations given in footnotes.

\footcite{aristotle:rhetoric,averroes/bland,aristotle:physics,aristotle:poetics}
\printbibliography

\end{document}

我收到错误:

! Undefined control sequence.
\globmarks ->\et@xglob 
                       6\marks \mathchardef 
l.240 \let\newmarks=\globmarks

移动

\catcode`\=\string=13
\makeatletter
\bbl@activate{=}
\makeatother

进入文件主体部分,但我仍然对为什么埃泰克斯无法加载活动=。超越埃泰克斯比布拉特克斯当处于活动状态时无法处理其选项=

答案1

您已经发现了为什么babelLaTeX 执行时会延迟激活其简写字符\begin{document}

该字符=用于 TeX 的语法规则中,在这些情况下,它必须具有类别代码 12;因此,\let\a=\b如果处于活动状态,则任何分配都将失败=。在特定情况下,TeX 发现

\let\newmarks=\globmarks

但是=是活动的,所以 TeX 会将其\newmarks等同于活动的=,然后找到\globmarks,因此会将其扩展,因为它不是禁止扩展的赋值的一部分。由于 的替换文本\globmarks包含\et@xglob,而 仅在稍后定义,因此会发出错误消息。但即使\et@xglob之前已定义, 的读取etex.sty也已经受到影响。

相关内容