您将如何实施“catcode”解决方案这里上标?谢谢
编辑
以下代码重现了错误(使用 XeLaTeX 编译)。如果注释掉以下两行,则有效:
\catcode`^=\active
\newcommand^[1]{\ensuremath{\sp{\scriptscriptstyle #1}}}
完整代码:
\documentclass[11pt,english,no-math]{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{fontspec}
\setmainfont[Mapping=tex-text]{Calibri}
\usepackage{geometry}
\geometry{verbose,tmargin=0.8in,bmargin=0.8in,lmargin=0.8in,rmargin=0.8in}
\catcode`_=\active
\newcommand_[1]{\ensuremath{\sb{\scriptscriptstyle #1}}}
\catcode`^=\active
\newcommand^[1]{\ensuremath{\sp{\scriptscriptstyle #1}}}
\usepackage[dvipsnames]{xcolor}
\usepackage{titlesec}
\titleformat*{\section}{\LARGE\bfseries\color{RoyalBlue}}
\titleformat*{\subsection}{\Large\bfseries\color{RoyalBlue}}
\usepackage{xunicode}
\usepackage{polyglossia}
\setdefaultlanguage[variant=american]{english}
\begin{document}
\section{Set up}
\begin{align*}
\int_{n-1}^{n}c_{n}dt & =x\left(i,n\right)\\
\implies c_{n} & =x\left(i,n\right)
\end{align*}
\end{document}
答案1
出现此错误的原因是,在 TeX 处理某些不需要这些类别代码的文件之前,您正在更改类别代码:
\catcode`^=\active
\newcommand^[1]{\ensuremath{\sp{\scriptscriptstyle #1}}}
\usepackage[dvipsnames]{xcolor}
这意味着xcolor.sty
会使用 的新 catcode 进行处理^
(这不是它所准备的),这可能会导致不良结果。在 之前进行此重新定义也会出现类似的问题\usepackage{xunicode}
。
将这些\catcode
更改行移至所有外部文件加载之后。例如,就在之前或之后\begin{document}
。然后错误就会消失。