如果我调用 gb4e.sty,则无法使用图像

如果我调用 gb4e.sty,则无法使用图像

我的标签如下:

\documentclass{book}

\usepackage{gb4e,qtree,skull}
\usepackage{graphicx}

\begin{document}

\begin{figure}
\includegraphics[width=\textwidth]{../74934_Art/Hackl.jpg}
\caption{Results of Hackl et~al. (2012)}
\end{figure}

\end{document}

如果我注释包“ gb4e.sty”,那么它就可以正常工作。如果我调用该包,则会出现以下错误:

! TeX capacity exceeded, sorry [parameter stack size=10000].
^#1->
     \gb@ifnextchar _{\automath@two ^{#1}}{\ensuremath {\sp {#1}}}
l.28  \catcode`\noexpand\^^A
                            \the\catcode`\^^A\relax
!  ==> Fatal error occurred, no output PDF file produced!
Transcript written on test.log.

但根据我的要求,我需要使用这两个包,请提出建议......

答案1

gb4e包使下划线和插入符号成为“活动”字符,以便它们可以在数学模式之外使用。这在许多情况下都很有用,但如果您不注意的话,很容易干扰其他事情。

最简单的解决方案是在加载包后立即关闭该功能:

\usepackage{gb4e}
\noautomath

如果您发现该功能很有用,那么在加载顺序中稍后加载包或有选择地启用它会很有帮助。如果您激活它,文件名中的下划线等内容将会导致问题,如您的示例中所示。

\documentclass{book}

\usepackage{gb4e}
\noautomath
\usepackage{qtree,skull}
\usepackage{graphicx}

\begin{document}

\begin{figure}
\includegraphics[width=\textwidth]{../74934_Art/Hackl.jpg}
\caption{Results of Hackl et~al. (2012)}
\end{figure}

\end{document}

答案2

这是需要更改包加载顺序的情况之一。

更新:作为艾伦·芒恩值得注意的是,gb4e 使下划线处于活动状态,而带有下划线的路径(我在测试中没有使用)会破坏此设置。因此,这只能避免加载时错误(如果您不打算在路径中使用下划线,这可能就足够了),但他的回答也解决了 OP 的问题。

\documentclass{book}

\usepackage{graphicx}
\usepackage{gb4e,qtree,skull}

\begin{document}

\begin{figure}
\includegraphics[width=\textwidth]{example-image}
\caption{Results of Hackl et~al. (2012)}
\end{figure}

\end{document}

相关内容