我正在尝试创建代码列表并使用设置自定义选项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
“扩展”到您给它的键的宏。