公式在阅读模式下无法正常显示

插入的公式在编辑模式下正常显示,但是在阅读模式下就只显示代码了,不知道怎么回事,我的是最新版1.8.4



遇到的问题

仔细叙述你的问题。最好附上自己使用的 Obsidian 版本及环境。

预期的效果

你认为没有问题时应该是怎样的。这里最好描述你的本质需求,而非解决方案。比如渴了是需求,但研究出一杯饮料来解渴并不是需求。

已尝试的解决方案

尝试了怎样的解决方法,为什么行不通等等。

各个部分之间空行空开试试

按你说的试了一下,也是不行

1 个赞

同样的问题,编辑模式下预览没有问题,切换成阅读视图无法显示公式

一般这种就是某个地方格式没写对,尤其是在 callout 中有公式的情况下。你可以打开源码模式看一下,或者截图发上来看看

提供一种思路,在网上复制的文章当中公式块当中可能存在不间断空格字符\u00a0,但是我们一般使用的空格字符为\u0020,而obs的公式渲染不支持不间断字符就会报错

下面提供一个脚本,用于替换所有不间断字符为空格,使用方式为python3 脚本名称 你要处理的文件或者文件夹

import os
import sys

def replace_nbsp(file_path):
    try:
        # 读取文件
        with open(file_path, 'r', encoding='utf-8') as f:
            content = f.read()
        
        # 替换不间断空格
        new_content = content.replace('\u00A0', ' ')
        
        # 写回原文件
        with open(file_path, 'w', encoding='utf-8') as f:
            f.write(new_content)
            
        print(f"已完成文件处理: {file_path}")
    except Exception as e:
        print(f"处理文件时出错: {str(e)}")

def process_directory(directory_path):
    """递归处理目录中的所有.md文件"""
    count = 0
    try:
        for root, dirs, files in os.walk(directory_path):
            for file in files:
                if file.lower().endswith('.md'):
                    file_path = os.path.join(root, file)
                    replace_nbsp(file_path)
                    count += 1
        print(f"\n共处理了 {count} 个.md文件")
    except Exception as e:
        print(f"处理目录时出错: {str(e)}")

def main():
    if len(sys.argv) < 2:
        print("使用方法: python 替换所有不间断空格.py <文件路径或文件夹路径>")
        return
        
    path = sys.argv[1]
    if not os.path.exists(path):
        print(f"错误: 路径 {path} 不存在")
        return
    
    if os.path.isfile(path):
        replace_nbsp(path)
    else:
        process_directory(path)

if __name__ == "__main__":
    main()

我也遇到了同样的问题,已经解决了.
callout的公式里的$$前面少打了一个">",图中白色符号所示