大家好 ![]()
我有个关于如何混合使用英语和从右向左(RTL)语言(如希伯来语)主题的小问题,特别是当这些主题使用 MathJax 插件时。在我们的 Discourse 论坛中,效果如下:
最终结果非常棒!唯一的问题是编写这些公式。如果要写较长的公式,可能会非常困难。我理解混合使用 RTL 和 LTR 可能会引发问题,但我想确认这是否可行?是否有办法解决?
你可以尝试启用“支持混合文本方向”站点设置。有关该设置的详细信息,请参阅 https://meta.discourse.org/t/what-does-the-support-mixed-text-direction-setting-do/91247。
启用后,该设置会在编辑器中添加一个“切换方向”按钮:
我尚未在 MathJax 插件上测试此功能,但它应该能让编写长公式变得容易得多。如果你尝试该设置后遇到任何问题,请告诉我们。
感谢您的回复!
我其实在发帖前就已经尝试过了,只是忘了提及。它确实有助于改善用 $$-$$ 分隔的公式的显示效果,但对单行公式没有帮助。此外,它还会将 RTL 语言转换为 LTR(因为无法为单行切换方向),这也导致显示效果混乱。您还有其他建议吗?
再次感谢您的回复 ![]()
是的,这确实会很困难。这不是一个完美的解决方案,但你可以通过主题组件为编辑器添加一个方向切换按钮。这样,当你编写代码时,可以将整个编辑器编辑区域的方向切换为从左向右(LTR)。下面的代码是从启用 支持混合文本方向 站点设置时所使用的代码中提取的。如果你的站点默认方向是 RTL,请保持代码不变。如果默认方向是 LTR,请将三元运算符中的 'rtl' 替换为 'ltr',以避免首次使用切换按钮时需要双击。
<script type="text/discourse-plugin" version="0.8.32">
api.onToolbarCreate(toolbar => {
toolbar.addButton({
id: "toggle-direction",
group: "extras",
icon: "exchange-alt",
shortcut: "Shift+6",
title: "切换方向",
perform: () => {
const $textArea = $(".d-editor-input");
let currentDir = $textArea.attr("dir") ? $textArea.attr("dir") : 'rtl', // 将默认值设置为你站点的默认文本方向。
newDir = currentDir === "ltr" ? "rtl" : "ltr";
$textArea.attr("dir", newDir).focus();
}
});
});
</script>
点击“切换方向”图标以更改编辑器的方向: