gb4e 之后必须导入 tikz 吗?

gb4e 之后必须导入 tikz 吗?

我使用的是gb4etikz包。似乎只要我在gb4e之前导入tikz,就会出现错误:TeX capacity beyond, sorry [parameter stack size=10000]. \catcode`\noexpand\^^A

但是我gb4e之后再导入的话tikz就没有问题了,为什么会这样呢?

这是一个重现该错误的最小工作示例:

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[margin=1in]{geometry}
\usepackage{gb4e}
\usepackage{tikz}
\begin{document}
test
\end{document}

链接gb4ehttps://ctan.org/pkg/gb4e?lang=en

答案1

我很乐意删除这个,但是手册gb4e以这句话开头

le gb4e.sty 允许_(下标) 和^(上标) 在普通文本中使用,这很方便,但由于它改变了它们的定义,所以必须在任何以 TEX 含义使用它们的文件之后加载它。

在此处输入图片描述

因此,如果您希望能够在普通文本中使用_^,则需要gb4e最后加载,因为它改变了_和的定义^

然而事实证明,这并不能真正带来超级稳定的解决方案。让我们尝试让它gb4e快乐并最后加载它。以下有效:

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[margin=1in]{geometry}
\usepackage{tikz}
\usepackage{gb4e}
\begin{document}
test 
% \pgfmathsetmacro{\myx}{2^3}\myx % <-does not work
\pgfmathsetmacro{\myx}{pow(2,3)}\myx
\end{document}

但是如果你^用 pgf 解析其中的任何表达式,这行不通

 \pgfmathsetmacro{\myx}{2^3}

您可以通过将普通文本中的使用_和功能切换为来避免这种情况。然后您还可以加载 Ti^\noautomathZ 最后。

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[margin=1in]{geometry}
\usepackage{gb4e}
\noautomath
\usepackage{tikz}
\begin{document}
test 
\pgfmathsetmacro{\myx}{2^3}\myx % works now
\pgfmathsetmacro{\myx}{pow(2,3)}\myx
\end{document}

相关内容