在特定情况下更改字体

遇到的问题

更换公式字体

公式中的字体与正文中的不太相同(中文更明显),看起来不太统一、协调.应当更改 css 文件中的什么值才能使公式中的字体与正文中的保持一致?就像这样(该图截自 TeXLive 生成的 PDF,图中各处的数字和拉丁字母均为 Palatino):

根据语言更改字体

为区分英语和德语,我一般分别使用 Palatino 和 Unifraktur 两种字体.不知是否有方法能简洁地设置何处使用何种字体?

不知是否有方法能简洁地设置何处使用何种字体?

据我所知, 在 css 样式里, 没有对同个段落自动推断哪个单词是哪个语种的办法,
这类信息应该都是用户自己标记的,
可以给目标词加区分格式, 之后用样式改字体

正常中英上下文 en cn <span class="lang-de">Deutsche Wörter</span> 正常中英上下文

这个span语法可用任何自动化方案快捷输入


懒得麻烦, 可以约定专门的md格式字符, 在所有笔记里只用来包裹德文

正常中英上下文 en cn ***Deutsche Wörter*** 正常中英上下文

三个星号是 Bold and italic, 其实它有自己的语义,
但就当他不常用, 只用于切换字体吧

那么保证全库里没有别的场景也用到三个星号加重,
之后 css 里写

.lang-de, span.cm-em.cm-strong, strong>em {
    color: skyblue; /* 确认无误后可删掉 */
    font-family: "Palatino Linotype";
    font-style: normal;
    font-weight: normal;
}

就能把对应单词换成想要的样式



公式字体研究了一下不会改, 虽然能挨个设 mjx-container 里的元素, 但不是正路
MathJax 的改字体文档也没看明白怎么运用到 obsidian 里
也许可以调正文部分的字体?

PS: TeXLive 里好像也不是全统一字体吧, 那个 “2.3” 明显不齐线数字, 更像 Georgia 之类, 跟左侧 x^2 / x^3 的处理并不相同

1 个赞

latex字体替换

mjx-container mjx-utext {
  font-family: var(--font-text) !important;
}
2 个赞

感谢!试了一下,效果挺不错的.另外,那个 TeXLive 里可能算是同一种字体吧?因为我在导言区写的是

\setmainfont[Numbers=OldStyle]{TeX Gyre Pagella}
\setmathfont{TeX Gyre Pagella Math}

其中的 TeX Gyre Pagella Math 是 Palatino 的复刻.