LaTeX调用自定义宏报TeX capacity exceeded错误如何解决?
问题排查与解决方法
1 错误根因定位
- 宏定义语法错误:你写的
\href{#3}{\underline \small#1}中,\underline命令需要显式用大括号包裹待添加下划线的内容,否则它会将紧邻的\small作为唯一参数处理,后续字符解析逻辑混乱触发无限递归,最终占满输入栈。 - 宏调用参数不匹配:你定义的
\resumeProjectUrlHeading要求传入3个参数,实际调用时你把第三个参数(GitHub链接)错误写到了第一个参数的大括号内部,导致宏只能接收到2个参数,参数解析逻辑异常进一步触发栈溢出报错。
2 修复方案
第一步:修正宏定义
把\underline \small#1改成\underline{\small #1},修正后的完整宏代码如下:
\newcommand{\resumeProjectUrlHeading}[3]{ \item \begin{tabular*}{1.001\textwidth}{l@{\extracolsep{\fill}}r} \href{#3}{\underline{\small #1}} & \textbf{\small #2}\\ \end{tabular*}\vspace{-7pt} }
第二步:修正宏调用
把链接从第一个参数中提出来作为独立的第三个参数,修正后的调用代码如下:
\resumeProjectUrlHeading {\textbf{Project\_Name} $|$ \emph{Python}}{Jan. 2021 -- Present}{https://github.com}
内容的提问来源于stack exchange,提问作者Mandke
相关产品推荐
相关产品推荐

