我对如何管理 LaTeX 内存有些困惑。我使用麦金塔电脑2011 发行版未经过任何修改(cad 仅适用于 TeXLive 2011)。
我在网上和这个非常好的论坛(有类似的主题)上搜索了很多。无论如何,我找到并测试过的所有方法都没有用。
我想我应该修改的文件是位于此路径上的文件:
/usr/local/texlive/2011/texmf.cnf
该文件原本包含:
% (Public domain.)
% This texmf.cnf file should contain only your personal changes from the
% original texmf.cnf (for example, as chosen in the installer).
%
% That is, if you need to make changes to texmf.cnf, put your custom
% settings in this file, which is .../texlive/YYYY/texmf.cnf, rather than
% the distributed file (which is .../texlive/YYYY/texmf/web2c/texmf.cnf).
% And include *only* your changed values, not a copy of the whole thing!
%
TEXMFHOME = ~/Library/texmf
TEXMFVAR = ~/Library/texlive/2011/texmf-var
TEXMFCONFIG = ~/Library/texlive/2011/texmf-config
然后我应该在这个文件的末尾写下我的修改(例如buf_size = 250000
:)。
无论如何,这似乎不起作用(错误日志告诉我TeX capacity exceeded, sorry [buffer size=200000]
)。如果修改有效,我会得到 250000 而不是 200000。
我也测试过将 放入texmf.cnf
或~/Library/texmf
或~/Library/texlive/2011
(~/texmf/mytexcnf/texmf.cnf
按照包 pgfplots 手册中的建议)和其他类似路径最后我尝试在终端上输入texhash
或但仍然没有成功。fmtutil --all
我想我完全迷失了,非常感谢专家的帮助。
提前致谢
答案1
要更改内存分配,您应该编辑/usr/local/texlive/2011/texmf.cnf
。在 Mac 上,这些是系统拥有的文件,您必须以管理员用户身份进行身份验证才能编辑它们。
有两种方法可以做到这一点。如果您熟悉命令行编辑器,例如 vi、emacs、pico 或 nano(MacOS 中均已标准安装),则可以使用其中一种编辑器来编辑文件。为此,您可以使用sudo
管理员帐户调用编辑器。(下面的示例,使用emacs
)。
sudo emacs /usr/local/texlive/2011/texmf.cnf
系统将提示您输入密码。
如果你不熟悉这些编辑器,并且更愿意从常规 GUI 界面执行此操作,则可以使用优质的文本编辑器,例如免费的文本管理工具这将允许您在身份验证后保存系统文件。要从 Finder 中执行此操作,您可以执行以下操作:
- 在前往菜单中,选择前往文件夹
- 进入
/usr/local/texlive/2011/
- 按住 Control 键单击
texmf.cnf
并选择打开方式,然后选择 TextWrangler
现在您可以编辑该文件,当您保存它时,TextWrangler 将对您进行身份验证。
要将主内存增加到例如 7000000,请添加以下行:
main_memory = 7000000
修改后/usr/local/texlive/2011/texmf.cnf
你需要运行
sudo fmtutil-sys --all
这应该用新的值重建格式。
重要的是你要跑sudo fmtutil-sys
,而不是fmtutil
。
如果你之前错误地运行过fmtutil
,你应该从你的当地的图书馆(即〜/ Library /)
~/Library/texlive/2011/texmf-var
您可以通过导航到该~/Library/texlive/2011/
文件夹并将该texmf-var
文件夹拖到垃圾箱来执行此操作。或者,您也可以在命令行中输入:
rm -rf ~/Library/texlive/2011/texmf-var
当然,如果此目录中已有内容,则不应删除所有内容,而应删除web2c
其中的目录:
rm -rf ~/Library/texlive/2011/texmf-var/web2c