惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
Microsoft Azure Blog
Microsoft Azure Blog
L
LangChain Blog
Y
Y Combinator Blog
Microsoft Security Blog
Microsoft Security Blog
宝玉的分享
宝玉的分享
B
Blog RSS Feed
MongoDB | Blog
MongoDB | Blog
Jina AI
Jina AI
D
Docker
B
Blog
Engineering at Meta
Engineering at Meta
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ
G
Google Developers Blog
博客园 - Franky
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The GitHub Blog
The GitHub Blog
T
The Blog of Author Tim Ferriss
大猫的无限游戏
大猫的无限游戏
阮一峰的网络日志
阮一峰的网络日志
U
Unit 42

如鱼饮水

2026年高联二试(A卷)几何题的解答 2026年CNMO的几何题的解答(一) 2026年CSMO的几何题的解答(二) 2026年CSMO的几何题的解答(一) 关于新课标初中数学教材的评价 2026年CWMI的几何题的解答(二) 2026年CWMI的几何题的解答(一) 2026年CGMO的几何题的解答 2026 年 IMO 的几何题的解答 本地部署Gemma4-26B-A4B模型 不间断空格的处理方法 一个VSCode插件:支持TikZ预览 在Neovim中支持LuaLaTeX高亮 2026年全国I卷压轴题的解答 2026年北京高联预赛的几何题的解答 垂足三角形、等角共轭点与「六点圆」 本地部署 Hy-MT2 翻译模型 Vibe Coding一个Python版本的pdf2svg 2026 年 USAMO 的几何题的解答(一) 使用天地图API进行坐标反查 使用 Vibe Coding 编写一个属于自己的 VSCode 插件 尝试使用 DeepSeek-OCR 2 尝试使用MinerU 使用VSCode编辑Markdown的几个常用设置 在WSL上挂载U盘 在使用LuaLaTeX时控制中英文字符的间距 使用vLLM框架加速PaddleOCR-VL 关于PaddleOCR-VL和PaddleOCR对数学类书籍识别的对比 尝试使用PaddleOCR-VL 关于DeepSeek-OCR和PaddleOCR对数学类书籍识别的对比
让过长的 KaTeX 公式支持横向滚动
西风冷香 · 2025-09-29 · via 如鱼饮水

在博客中,我一直使用 KaTeX 进行数学公式的渲染。但是有一个问题,当行间公式过长时,公式会超出边界,导致整个页面过宽。这点在电脑上没什么问题,但是在移动端就成了灾难,整个页面显示都有问题。

之前的解决方法是手动换行,但是不同的手机支持的最大宽度不同,而且有些公式实在是不方便换行(比如一个大长分式)。而且即使是能够换行,虽然在手机上没问题了,但是由于这些奇怪的换行,在电脑上看总觉得奇奇怪怪的。

找了一圈,最终的解决方法还是让 KaTeX 支持横向滚动,这样在公式过长的时候,会自动出现滚动条,这样就不会影响整个页面的宽度了。

官网给出了一个解决方法,即在 source/_data/styles.styl 中添加如下配置:

1
.katex-display { overflow: auto hidden }

但这带来了一个问题,就是在某些缩放比例下,生成的公式最上面和最底下有几个像素被吞掉。

例如,下面左侧是在 100% 缩放下的公式,右侧是在 110% 缩放下的公式。二者对比就可以明显发现,左侧最上面少了一些像素,其中字母 C 尤为明显。而两侧最下面都少了一些像素(还是字母 C 最为明显)。

100%缩放

110%缩放

问了一下 DeepSeek,给出的解决方法是给予额外的边距补偿:

1
2
3
4
.katex-display {
overflow: auto hidden;
padding: 1px 0;
}

这样显示的公式就是正常的了:

另外,在手机上显示滚动条还是比较丑的,我们可以把它隐藏掉:

1
2
3
4
5
6
7
8
@media (max-aspect-ratio: 2400/1850) {
.katex-display {
scrollbar-width: none;
}
.katex-display::-webkit-scrollbar {
display: none;
}
}

这样就可以隐藏 KaTeX 公式的水平滚动条(但保持可滚动)。