TeX 不会应用本地 texmf.cnf 中更改的内存设置

TeX 不会应用本地 texmf.cnf 中更改的内存设置

我添加了自己的textmf.cnf,并设置为在 中TEXMFCNF指向它。 可以正确找到它。我的:export TEXMFCNF=path:.zshrckpsewhichtexmf.cnf

stack_size=150000

当我跑步时latexmk -synctex=1 -interaction=nonstopmode -file-line-error -xelatex main.tex

我有./main.tex:6: TeX capacity exceeded, sorry [parameter stack size=20000].

当我在包中使用此功能并导入到 TeX 文件中时,出现错误:

\renewcommand*{\titlepage}[2]{
    \begin{titlepage}
        \newgeometry{
            top=10mm,
            bottom=10mm,
            left=10mm,
            right=10mm
        }
        \begin{center}
            Федеральное государственное автономное\\
            образовательное учреждение\\
            высшего образования\\
            <<СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ>>\\[5mm]
            Институт космических и информационных технологий\\
            кафедра <<Прикладная информатика>>\\
            \vfill
            {\Large\textbf{ОТЧЁТ ПО ЛАБОРАТОРНОЙ РАБОТЕ}}\\[3mm]
            #1\\
        \end{center}
        \vfill
        
        \begin{tabular}{l c m{0.01\textwidth} l}
            Преподаватель                           & \rule{3cm}{0.1pt} &  & #2 \\[20mm]
            Студент группы КИ 20-14б, № з/к 1234567 & \rule{3cm}{0.1pt} &  & С.~С.~Студентов  \\
            
        \end{tabular}
        
        \vfill
        \begin{center}
            Красноярск {\the\year}
        \end{center}
        
    \end{titlepage}
    
    \restoregeometry    
}

答案1

该错误与param_size以下内容无关stack_size

param_size = 20000      % simultaneous macro parameters, also applies to MP

你是非常除非你有一个无限循环会消耗掉所有可用的堆栈空间,否则不太可能需要这么大的堆栈。在这种情况下,扩大堆栈不​​会有帮助。

答案2

这是使用 LaTeX 编程时的基本概念\begin{env},即在某个时候执行命令\env

你基本上是在做

\renewcommand{\titlepage}{...\titlepage...}

\titlepage这将超出任何给定的内存量,因为它是一个无限循环,在内存中积累标记并且永不结束;在文档中执行时进入循环。

改为做\newcommand{\mytitlepage}{...}

相关内容