使上标尺寸更小(始终)

使上标尺寸更小(始终)

您将如何实施“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}。然后错误就会消失。

相关内容