lthooks

使用 hyperref 的包钩子来避免包冲突
lthooks

使用 hyperref 的包钩子来避免包冲突

到目前为止,只有少数包需要在之后加载hyperref。考虑下面的代码,它创建了一个clist包含这些包algorithm1algorithmic和arydshln的chappg代码。到目前为止,代码运行良好,在 之后加载这些包hyperref。代码使用doc,它使用了hypdoc很多重新定义等。 代码使用\disable@package@load两个参数,第一个是包名称,第二个,根据手册可用于添加消息。但是它使用 \日志,似乎被忽略了(看起来第二个参数被吞噬了)。我该如何解决这个问题?无论是否使用地图,都会出现这个问题。代码旨在由类加载。 %\listfi...

Admin

命令钩子与包钩子,哪个更好?
lthooks

命令钩子与包钩子,哪个更好?

在为我的包设计钩子接口时,我发现我有两种定义钩子的方法: \documentclass{article} \begin{document} \section*{Method 1: Use Command Hooks} \NewDocumentCommand\MyPkgSomeHook{}{} \AddToHook{cmd/MyPkgSomeHook/before}{hello} \AddToHook{cmd/MyPkgSomeHook/before}{world} \UseHook{cmd/MyPkgSomeHook/before} \secti...

Admin

我应该如何诊断这个问题?弄清楚何时将代码插入钩子以改变第三方包的行为
lthooks

我应该如何诊断这个问题?弄清楚何时将代码插入钩子以改变第三方包的行为

这个问题对我来说似乎很令人困惑,所以我不确定你是否能够理解它。 我知道如何解决这个问题(现在)。我想知道的是我应该如何诊断和解决这个问题。解决这个问题花了我大约 24 小时(诚然,这个问题不是我唯一的工作)。考虑到我相对容易地隔离了问题,并且解决方案相对有据可查,这似乎是一个过长的时间。花时间的是弄清楚在哪里--- 或者更准确地说,什么时候放它。 我的实际代码相当复杂,但更大的复杂性并没有真正使发现问题变得更加困难。 基本问题是需要生成一个或多个词汇表,但不能glossaries在顶层创建标题、目录条目和分页符。但我确实想glossaries为子词汇表创建标...

Admin

当前最佳实践与最后一页的交叉引用
lthooks

当前最佳实践与最后一页的交叉引用

我正在/曾经使用pageslts,我知道它不应该与当前的 LaTeX 兼容。据我所知,没有其他替代方案提供相同的功能,但我至少想找到一种方法来获取对文档最后一页的引用。 无论是否hyperref加载以及是否fancyref使用cleveref,我都需要它能够工作。 我一直在尝试将标签放入或中enddocument。shipout/lastpage在这两者中,shipout/lastpage似乎效果更好一些,但我完全不相信我的方法。 还有\g_shipout_readonly_int/\ReadOnlyShipoutCounter和\g_shipout_tot...

Admin

如何使用钩子来改变 minipage 中的 \parskip?
lthooks

如何使用钩子来改变 minipage 中的 \parskip?

我尝试使用钩子来改变环境\parskip中的内容minipage。但我的代码不起作用。 这是一个 MWE。 \documentclass{article} \AddToHook{env/minipage/begin}{\setlength{\parskip}{2em}} \begin{document} \begin{minipage}[t]{0.5\linewidth} paragraph 1. paragraph 2. paragraph 3. \end{minipa...

Admin

在每页开头设置宏的值
lthooks

在每页开头设置宏的值

我正在尝试使用钩子在每个页面的开头设置宏的值shipout。请考虑以下示例: \documentclass{article} \ExplSyntaxOn \tl_new:N \g_mymodule_test_tl \hook_gput_code:nnn { shipout/firstpage } { mymodule } { \tl_gset:Nn \g_mymodule_test_tl { BEGIN-OF-PAGE } } \hook_gput_code:nnn { shipout/before } { mymodule } { ...

Admin

跟踪输入 .tex 文件内的所有宏调用(通过 luatex?)
lthooks

跟踪输入 .tex 文件内的所有宏调用(通过 luatex?)

如果我们有一个输入.tex 文件,如何在其中找到所有的宏调用? \documentclass{article} \newcommand{\samplemacro}{This is a sample macro.} \begin{document} \samplemacro \begin{itemize} \item \samplemacro \end{itemize} \section[\samplemacro]{\samplemacro} \tableofcontents \end{document} 任何类型的位置都可以,例如命令开始/结束...

Admin

既然 LaTeX 有了钩子,那么推荐使用 \everypar 的方法是什么?
lthooks

既然 LaTeX 有了钩子,那么推荐使用 \everypar 的方法是什么?

既然 LaTeX 有钩子,那么建议使用 everypar 的钩子接口吗?在 l3 程序中应该如何做到这一点? \documentclass{article} \ExplSyntaxOn \newcounter{eplinenumber} \setcounter{eplinenumber}{0} \def\epindent{3cm} \def\inscriptionprefix{Line:\hskip3pt} \cs_set:Npn \mymod #1 #2 {\int_mod:nn{#1}{#2}} \def\step_mod{5} \NewDocumen...

Admin

向环境添加钩子时删除空格的正确方法
lthooks

向环境添加钩子时删除空格的正确方法

阅读问题之前,请先查看附录。我没有删除或对其进行重大编辑,以免使@cfr 的答案无效。 我正在尝试向定理环境添加一些钩子,我注意到它们在周围和正文旁边添加了不必要的空格。这是第一次简单的尝试,它定义了\ExplSyntaxOn和之间的环境\ExplSyntaxOff以避免任何意外的空格: \documentclass{article} \usepackage{amsthm} \NewHook{mythm/prehead} \NewHook{mythm/posthead} \NewHook{mythm/prefoot} \NewHook{mythm/post...

Admin

测试用户命令是否位于文档末尾
lthooks

测试用户命令是否位于文档末尾

命令是否有机会\testcommand测试它是否是 之前的最后一个用户命令\end{document}?由于 处仍有钩子enddocument,这似乎有点棘手。 我正在考虑放置一个空命令\somethingempty并让它\testcommand检测它\peek_meaning:N(TF)。但是,如果我将它放在钩子中,首先\testcommand看到的将是某种\UseHook。 提出这个问题的动机是,在我的包中,有一些间距调整命令应该只在文档中间完成。 下面是 MWE。 \documentclass{article} \ExplSyntaxOn \def...

Admin

在加载后添加到包钩子
lthooks

在加载后添加到包钩子

我对内核钩子的理解是,添加到钩子只会影响添加后的实例。对于文档内钩子来说,这似乎是正确的。例如, \begin{quote} some text \end{quote} \AddToHook{env/quote/before}{HOOK CODE} \begin{quote} some text \end{quote} 仅HOOK CODE出现在第二个quote环境之前。 在一个包文件中,我试图找出在加载另一个包时产生错误的最佳方式。为了解决之前加载的不兼容包的问题,​​可以等到begindocument,但我想知道错误是否可以更快出现(节省加载其他包...

Admin

如何测试带有特定标签的钩子是否存在
lthooks

如何测试带有特定标签的钩子是否存在

文档lthooks说: 但是,如何提前知道带有此给定标签的钩子是否存在?在我的包中,我希望在添加带有该标签的新代码之前清除钩子中带有给定标签的代码,以确保添加的代码不重复。我该如何做到这一点而不触发警告? ...

Admin

使用 lthooks 在本地挂载命令
lthooks

使用 lthooks 在本地挂载命令

跟随上一个问题作为我的练习,我尝试使用 l3keys 和 lthooks 模仿 thmtools 与 amsthm 的行为。现在我被困在钩子部分。thmtools 为每个定理环境和通用(应用于所有定理)定义了 prehead、posthead、prefoot 和 postfoot 钩子。prehead 和 postfoot 钩子很简单。对于 posthead 钩子,我发现应该在 amsthm 命令之后添加代码\deferred@thm@head。(或者也许是\@begintheorem?区别在于\ignorespaces。) 对于通用钩子,只需执行 \New...

Admin

ltpara 的新钩子管理和 scrlayer-scrpage(用于自动段落计数等)
lthooks

ltpara 的新钩子管理和 scrlayer-scrpage(用于自动段落计数等)

我读到过,不应该使用,\everypar而应该\AddToHook{para/begin}使用自动段落枚举和相关操作。原则上,这很好用(mwe 不计数,只打印一个简单的符号): \documentclass{scrartcl} \usepackage{lipsum} \begin{document} \AddToHook{para/begin}{*} \lipsum \end{document} 一旦scrlayer-scrpage加载,事情就会变得糟糕(见下文)。文档的页眉和页脚中似乎有更多段落现在应用了新para/begin设置。 不会出现此问题\ev...

Admin