我使用的是gb4e
和tikz
包。似乎只要我在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}
答案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^
\noautomath
钾Z 最后。
\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}