我目前正在使用 tex 生成我所在公司的渗透测试报告。
我偶然发现了计数器我用于调查结果概览表的包。我在表中为每个主机添加了三个计数器:
...
\newtotcounter{1.2.3.4-high}
\newtotcounter{1.2.3.4-middle}
\newtotcounter{1.2.3.4-low}
...
该文本表由读取 nmap 报告的 ruby 脚本生成。因此我得到了很多计数器......
我现在遇到的问题是出现错误:
No room for a new \counter ...
TeX 中的计数器数量有上限吗?
答案1
计数寄存器的最大数量:
- TeX:0 到 255(2 8 -1)
- e-TeX:0 至 32767(2 15 -1)
- LuaTeX:0 到 65535(2 16 -1)
评论:
该软件包
etex
为 LaTeX 提供了额外的计数寄存器:\usepackage{etex}
在 LaTeX 中,100 个或更多计数寄存器已被分配或保留,不可用于
\newcount
/ 。因此,在类加载\newcounter
后,大约 147 个计数寄存器是空闲的。report
概览表问题
可能的解决方案/解决方法:
\usepackage{etex}
如果概览表后表格,那么最大值也可以存储在宏中,而无需
.aux
文件和额外的 LaTeX 运行。然后可以为不同的表格重复使用一组有限的计数器。可以将概览所需的值写入
.aux
文件中。然后它们将在下次运行 LaTeX 时可用。