\pgfkeys 超出 TeX 容量

\pgfkeys 超出 TeX 容量

我正在尝试创建代码列表并使用设置自定义选项pgfkeys。下面提供的代码运行良好。标题选项的样式处理程序(当前已注释掉)引发错误,从而破坏了 TeX 编译capacity exceeded。标题样式处理程序有什么问题?

\documentclass[12pt]{book}
\usepackage{tcolorbox}
\usepackage{hyperref}

\tcbuselibrary{breakable}
\tcbuselibrary{skins}
\tcbuselibrary{listings}

\pgfkeys{%
  /code listing/.cd,%
  title/.initial = {},%
  label/.initial = {},%
  %% title/.style = \pgfkeys{%
  %%   /tcb/.cd,%
  %%   title=#1,%
  %% }%
}

\newtcbinputlisting{\CodeListing}[2][]{%
  beamer, breakable, listing only,%
  colback=red!5!white, fonttitle=\ttfamily,%
  listing file=#2%
}

\newcommand{\IncludeCodeFromFile}[2][]{%
  \pgfqkeys{/code listing}{#1}%
  \CodeListing{#2}%
}

\begin{document}
\IncludeCodeFromFile[title=Some Code]{somefile.cxx}
\end{document}

答案1

您应该删除\pgfkeys中的调用.style,只留下其参数中的键列表。请注意,.style处理程序是一种.code,它会隐式地将其参数传递给\pgfkeysalso。基本上,它是一个\pgfkeys“扩展”到您给它的键的宏。

相关内容