Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于 \CUSDependency\CUSLibraryDelayedUntil 的问题 #25

Closed
xkwxdyy opened this issue Apr 6, 2024 · 10 comments
Closed

关于 \CUSDependency\CUSLibraryDelayedUntil 的问题 #25

xkwxdyy opened this issue Apr 6, 2024 · 10 comments
Labels
bug Something isn't working

Comments

@xkwxdyy
Copy link
Contributor

xkwxdyy commented Apr 6, 2024

其实这个问题一直都有,果真遇到了问题,场景是我问您的这个
xkwxdyy/whuthesis@190619f#commitcomment-140694869

关于\CUSDependency

为了方便说明,下面假设我在 master 库里设置了 \CUSDependency{library={cover}}

  1. cover 库 和 master 库是什么关系?就是这个依赖的原理是什么呢?手册里就写了依赖库。我一开始的理解是 cover 库会在 master 之前加载。但是上面问您的这个问题又好像不是这样的,因为如果是的话不管 cover 有没有 delay 加载,都能保证 master 在 cover 后面加载,这样始终不会出问题。不过这样看来,delay 的优先级更高一些
  2. 其实 dependency 的 package 我也不太明白,因为我曾经 dependency 了 ctex 发现报错了,我一开始是想着我里面的设置里有 \ziju 命令,所以要保证这个库一定能运行的话就在 dependency 里加一个 ctex,报错之后只能去掉了。
  3. 我不太清楚要不要写这个 dependency,比如我有一个 master 库,和 math.master 库,后者是前者的基础上进行一些设置,应该要把 前者写进后者的 dependency 里吧?
  4. dependency 里的 library 的顺序有影响吗?

关于 \CUSLibraryDelayedUntil

  1. 手册里提到这个只能在宏包或者文档类载入后加载库,那么能否在某个库后面加载库呢?
    就比如我上面的这个问题里面,cover 其实一种模块类型的库,里面进行了一些 cs 和键值的 define,然后我在 master 里进行 set,从而达到一种模块搭建的效果。所以 master 理论上来说需要在 cover 后面加载,也就是需要不管 cover delay 不 delay,delay 在谁后面,都保证 master 能在 cover 后面加载的话,这样就不会出现我问的那个问题了应该。
  2. 我有点还是不太清楚什么时候该用这个 delay
@xkwxdyy
Copy link
Contributor Author

xkwxdyy commented Apr 6, 2024

比如 master 里面 dependency 加载了 cover,而 master.math 的 dependency 加载了 master,那是不是不需要在加载 cover 了呢

@Sophanatprime
Copy link
Owner

  1. \CUSDependency{library={cover}} 就是通知 cus 此刻需要加载 cover。目前库的依赖关系很简单,就是通知 cus 要加载这个库,而不管实际有没有加载。\CUSDependency{library={cover}} 就是通知 cus 此刻需要加载 cover。这是有问题的。应该设置为如果没有成功加载就自动 delay。
  2. 可能是在 \LoadClass 之前加载了这个库,ctex 好像不能在 \LoadClass 使用(没测试)。
  3. 如果加载这个库时,执行或展开了依赖库的命令,则需要在使用之前加载,对于 package,也是一样的。
  4. 同上,加载库时用到了它的功能就要加载它。
  5. 同 1。
  6. 同 3、4。

1 的问题这两天就会修复。

@Sophanatprime
Copy link
Owner

不过循环依赖是不允许的,只能把代码放在钩子中来避免。

@xkwxdyy
Copy link
Contributor Author

xkwxdyy commented Apr 6, 2024

  1. \CUSDependency{library={cover}} 就是通知 cus 此刻需要加载 cover。目前库的依赖关系很简单,就是通知 cus 要加载这个库,而不管实际有没有加载。\CUSDependency{library={cover}} 就是通知 cus 此刻需要加载 cover。这是有问题的。应该设置为如果没有成功加载就自动 delay。

通知?(远超我能力范畴了)那什么情况下会加载失败呢?

@xkwxdyy
Copy link
Contributor Author

xkwxdyy commented Apr 6, 2024

我上面忘记好像没有明确提,能否加一个命令来确保库在某个库之后载入呢?类似于 \CUSLibraryDelayedUntil 一样,需求就是上面提的那样,即使 cover 需要 until 到 tikz 后面,也可以保证 master 在 cover 后面载入

@Sophanatprime
Copy link
Owner

通知?

就是告诉 cus 现在需要加载某库。

能否加一个命令来确保库在某个库之后载入呢?

现在的版本 7695399 确保依赖的库总是在要依赖它的库之前加载,不论有没有 delay。不过还是有点问题,先不要更新。

@xkwxdyy
Copy link
Contributor Author

xkwxdyy commented Apr 7, 2024

现在的版本 7695399 确保依赖的库总是在要依赖它的库之前加载,不论有没有 delay。不过还是有点问题,先不要更新。

好的!期待完善这个新功能

@Sophanatprime
Copy link
Owner

3bb230a 应该修复了问题 1,whu 昨天的问题 xkwxdyy/whuthesis@190619f#commitcomment-140694869 应该也一并修复了,我测试没问题。但要注意 \CUSLibraryDelayedUntil 的参数不能带空格。

@xkwxdyy
Copy link
Contributor Author

xkwxdyy commented Apr 7, 2024

好的,我测试一下

@xkwxdyy
Copy link
Contributor Author

xkwxdyy commented Apr 7, 2024

测试了一下,我的那个whu 的问题解决了,但是 #27 的问题仍然存在

@Sophanatprime Sophanatprime added the bug Something isn't working label Apr 8, 2024
xkwxdyy added a commit to xkwxdyy/whuthesis that referenced this issue Apr 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants