假设我有...
\documentclass{article}
\errorcontextlines=10000
\def\c{1 \errorerror 2}
\def\b{3 \c 4}
\def\a{5 \b 6}
7 \a 8
我可以
查看控制台上的回溯......
! Undefined control sequence. \c ->1 \errorerror 2 <argument> 3 \c 4 \b #1->7 #1 8 \a ->5 \b {3 \c 4} 6 l.13 7 \a 8
发生错误时运行一些代码(
show_error_hook
回调)...访问错误消息的字符串内容
status.lasterrorcontext
,status.lasterrormessage
通过重复调用获取以下令牌
token.get_next()
然而我可以做以下事情吗:
- 获取未定义标记的 csname(以编程方式)?解析错误消息不可靠。
- 获取周围的内容(例如“before is
5 3 1
”)? - 获取实际的回溯中的宏(在本例中为 a、b、c)以及它们当前位于定义中的什么位置?
就上下文而言,有时错误消息无法在终端上很好地显示(仅限于文本输出,因此例如无法区分活动空间和正常空间/a小的列数),所以我想获取标记并将其格式化为更漂亮的格式。