请问为什么特克斯无法通过活动加载=
?
\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
您已经发现了为什么babel
LaTeX 执行时会延迟激活其简写字符\begin{document}
。
该字符=
用于 TeX 的语法规则中,在这些情况下,它必须具有类别代码 12;因此,\let\a=\b
如果处于活动状态,则任何分配都将失败=
。在特定情况下,TeX 发现
\let\newmarks=\globmarks
但是=
是活动的,所以 TeX 会将其\newmarks
等同于活动的=
,然后找到\globmarks
,因此会将其扩展,因为它不是禁止扩展的赋值的一部分。由于 的替换文本\globmarks
包含\et@xglob
,而 仅在稍后定义,因此会发出错误消息。但即使\et@xglob
之前已定义, 的读取etex.sty
也已经受到影响。