banana-space / btex

MIT License
39 stars 3 forks source link

cd 环境中打斜箭头真的只能这样操作吗? #30

Open ice1000 opened 1 year ago

ice1000 commented 1 year ago
    \ar[ur, phantom, pos=.55, shift left=.5, "\htmlStyle{
        display: inherit;
        transform: rotate(-45deg);
    }{\Longrightarrow}"]

这也太 hack 了,cd 环境本身有计划扩展以支持这种旋转的情况吗?

ice1000 commented 1 year ago

如果我现在想打斜箭头,我是应该用 html 写还是直接 tikzcd 一把梭?

ice1000 commented 1 year ago

有没有考虑过直接使用 https://github.com/varkor/quiver 的渲染器进行渲染呢 🤔

abccsss commented 1 year ago

可以考虑在未来增加这个功能。可能最便捷的方法是加个 rotate 属性,像 tikz 里一样。

quiver 有几个缺点,一是没法画自己到自己的箭头,二是也没法控制这种斜箭头的角度。我感觉自己实现比从 quiver 搬过来容易。

ice1000 commented 1 year ago

最便捷的方法是加个 rotate 属性,像 tikz 里一样。

还有 bend 呢。我现在觉得可以魔改一下 quiver 的生成器,生成 cd 环境风格的语法. 具体需要魔改的地方在 https://github.com/varkor/quiver/blob/05870d009e0197361e2144321d580c5a8ca44e3a/src/quiver.js#L302-L723

abccsss commented 1 year ago

现在是支持 bend 的啊。

另外由于 quiver 不能画某个点自己到自己的箭头,所以用它渲染是不行的。如果能做 quiver 转换器那很好,不过应该是独立的项目。

ice1000 commented 1 year ago

我意识到了支持 bend,这其实已经解决了我大部分问题。我也清楚 quiver 不能画自循环,但我记得 quiver 作者说这不是一个渲染方面的技术问题,而是一个 UI 交互的问题:作者希望能有非常直观的画自循环的方法,比如先拉一条箭头出来,再把箭头的终点拖拽到出发点,然后箭头自动变成一个自循环。所以我对这个事情是乐观态度(但看 quiver 那么久不更新了感觉让作者自己写是没啥希望了)