latex2e 札记 -- No room for a new ‘thing’
来源:互联网 发布:众途汽修软件 编辑:程序博客网 时间:2024/06/04 18:26
Latex2e 经常碰到一个 error: No room for a new ‘thing’,下述网址提供了一个解决方法。
latex2e– No room for a new ‘thing’
The technology available to Knuth at the time TeX was written is said to have been particularly poor at managing dynamic storage; as a result much of the storage used within TeX is allocated as fixed arrays, in the reference implementations. Many of these fixed arrays are expandable in modern TeX implementations, but size of the arrays of “registers” is written into the specification as being 256 (usually); this number may not be changed if you still wish to call the result TeX (see testing TeX implementations).
If you fill up one of these register arrays, you get a TeX error message saying
! No room for a new .
The \things in question may be \count (the object underlying LaTeX’s \newcounter command), \skip (the object underlying LaTeX’s \newlength command), \box (the object underlying LaTeX’s \newsavebox command), or \dimen, \muskip, \toks, \read, \write or \language (all types of object whose use is “hidden” in LaTeX; the limit on the number of \read or \write objects is just 16).
There is nothing that can directly be done about this error, as you can’t extend the number of available registers without extending TeX itself. Of course, e-TeX, Omega and LuaTeX all do this, as does MicroPress Inc’s VTeX.
The commonest way to encounter one of these error messages is to have broken macros of some sort, or incorrect usage of macros (an example is discussed in epsf problems).
However, sometimes one just needs more than TeX can offer, and when this happens, you’ve just got to work out a different way of doing things. An example is the difficulty of loading PicTeX with LaTeX. The more modern drawing package, pgf with its higher-level interface TikZ is also a common source of such problems.
In such cases, it is usually possible to use the e-TeX extensions (all modern distributions provide them). The LaTeX package etex modifies the register allocation mechanism to make use of e-TeX’s extended register sets. Etex is a derivative of the Plain TeX macro file etex.src, which is used in building the e-TeX Plain format; both files are part of the e-TeX distribution and are available in current distributions.
It is possible that, even with etex loaded, you still find yourself running out of things. Problems can be caused by packages that use large numbers of “inserts” (inserts are combinations of counter, box, dimension and skip registers, used for storing floats and footnotes). Morefloats does this, of course (naturally enough, allocating new floats), and footnote packages such as manyfoot and bigfoot (which uses manyfoot) can also give problems. The etex extensions allow you to deal with these things: the command \reserveinserts{n} ensures there is room for ‹n› more inserts. Hint: by default morefloats adds 18 inserts (though it can be instructed to use more), and manyfoot seems to be happy with 10 reserved, but there are ‘hard’ limits that we cannot program around — the discussion of running out of floats has more about this. It is essential that you load etex before any other packages, and reserve any extra inserts immediately:
\documentclass[…]{…}
\usepackage{etex}
\reserveinserts{28}
The e-TeX extensions don’t help with \read or \write objects (and neither will the etex package), but the morewrites package can provide the illusion of large numbers of \write objects.
- latex2e 札记 -- No room for a new ‘thing’
- ok,do a new thing
- There is no such thing as something for nothing.
- Hope is a good thing, maybe the best of things and no good thing ever dies !
- trying new thing
- No important thing
- For a New Year
- A Useful Thing
- 《A Thing of Beauty》
- the new thing in webkit3
- The old new thing翻译
- 读《The Building a head thing Business When about there Are No》《创业维艰》
- A new world for me
- A new start for me
- clean room for ruby
- Error: No room left in memory section, Image is too large for defined regions
- A. Chat room
- A. Room Leader
- 深入解读Spring Framework Web MVC(第七弹:@ModelAttribute的使用)
- QT5 获取mac地址和cpu序列号
- Redis-cli命令最新总结
- java学习笔记-01
- C++将txt文件内容保存到数组
- latex2e 札记 -- No room for a new ‘thing’
- LeeCode 106. Construct Binary Tree from Inorder and Postorder Traversal
- java android 基础
- angularjs指令:replace与transclude的区别
- USB相关结构体
- JAVA何以做到“平台无关”以及JAVA的集合框架
- Tp的优缺点
- 快速Mockito教程
- 架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层