我读到过,不应该使用,\everypar
而应该\AddToHook{para/begin}
使用自动段落枚举和相关操作。原则上,这很好用(mwe 不计数,只打印一个简单的符号):
\documentclass{scrartcl}
\usepackage{lipsum}
\begin{document}
\AddToHook{para/begin}{*}
\lipsum
\end{document}
一旦scrlayer-scrpage
加载,事情就会变得糟糕(见下文)。文档的页眉和页脚中似乎有更多段落现在应用了新para/begin
设置。 不会出现此问题\everypar
。
我的问题是:如何scrlayer-scrpage
管理\everypar
,为什么这对不起作用\AddToHook
?是否有可以使用的排除模式来\RemoveFromHook
避免此问题?
答案1
scrlayer
并且scrlayer-scrpage
不使用\everypar
也不使用据我所知的通用钩子。但是,例如,对页眉和页脚scrlayer-scrpage
使用几个命令。因此,页眉和页脚内也有几个逻辑段落。\parbox
如果您不想计算页眉和页脚中的段落,则可以使用例如开关:
\documentclass{scrartcl}
\newif\ifatpageheadfoot
\usepackage[onpsinit=\protect\atpageheadfoottrue]{scrlayer-scrpage}
\usepackage{lipsum}
\begin{document}
\AddToHook{para/begin}{\ifatpageheadfoot \else *\fi}
\lipsum
\end{document}