我发现了一个宏,计算子字符串出现的次数,如下对另一个问题的回答。这确实满足了我的要求,至少,当仅将其输出打印到文档时。我想使用输出,并将其传递给不同的命令——具体来说,传递给值\bookmark[level=]
。我无法弄清楚如何让它扩展,或如何捕获其输出。我确信这非常简单,也许我只是缺少搜索它的词汇表——但我将不胜感激任何帮助。
有问题的代码:
\ExplSyntaxOn
% \CountSubStr{<substring>}{<string>}
\NewDocumentCommand{\CountSubStr}{ m m }{
\seq_set_split:Nnn \l_tmpa_seq { #1 } { #2 }
\int_eval:n {(\seq_count:N \l_tmpa_seq) - 1 }
}
\ExplSyntaxOff
答案1
不确定你想如何\bookmark
使用\CountSubStr
但这应该可行:
\documentclass{article}
\usepackage{bookmark}
\newcounter{substringcount}
\ExplSyntaxOn
% \CountSubStr{<substring>}{<string>}
\NewDocumentCommand{\CountSubStr}{ m m }
{
\seq_set_split:Nnn \l_tmpa_seq { #1 } { #2 }
\setcounter{substringcount}{ \int_eval:n {(\seq_count:N \l_tmpa_seq) - 1 } }
}
\ExplSyntaxOff
\bookmark[level=\thesubstringcount]{Last page}
\begin{document}
Hello
\CountSubStr{ab}{abcdeab}
\end{document}