LaTeX Fonts and More
本意是想让博客看起来像是$\LaTeX$文档。 1. 使用$\LaTeX$字体 1.1 换个字体 如果仅仅是想更换字体,那么只需要先找到这部分内容对应的css样式文件修改即可。比如我的主题中正文部分的样式文件位于assets/css/common/main.css,接下来指定font-family参数: .main { font-family: default_font_1, default_font_2, serif; } 之后Hugo会首先尝试使用第一种字体,如果系统中不存在该字体,则会使用第二种字体,以此类推。最后的serif指使用系统默认的衬线字体。 1.2 使用自定义字体 其实使用自定义字体最快的方式就是选择使用自己喜欢字体的主题,比如我一开始就想用texify3这个$\LaTeX$风格的主题,但是后来发现魔改难度比较大于是换了现在的主题。所以我就想是不是只要把texify3主题中的字体和样式文件复制到我的主题的对应位置就行了? texify3主题中正文部分的结构文件位于layouts/_default/baseof.html,样式文件位于assets/sass/layouts/common.scss,字体调用的样式文件位于assets/sass/fonts.scss,字体文件位于static/fonts/,具体来说 baseof.html: <div id="wrapper"> {{ block "main" . }}{{ end }} </div> common.scss: @import "../fonts"; #wrapper { font-family: "Latin Modern Roman", "Times New Roman", serif; } fonts.scss: @font-face { font-display: swap; font-family: 'Latin Modern Roman'; font-style: normal; font-weight: normal; src: url('../fonts/lmroman-normal.woff'); } 有趣的事情发生了,fonts.scss中使用的路径十分奇怪,既不是相对结构文件的路径,也不是相对样式文件的路径,但却可行! ChatGPT对于src参数的解释是相对样式文件的路径,但是如果使用“正确”的路径../../static/fonts/lmroman-normal.woff会发现不可行。 另外使用绝对路径/Users/.../fonts/lmroman-normal.woff或是{{ lmroman-normal.woff | absURL}}也都不可行。 更糟糕的是,复制到我的主题后,连一开始的../fonts/lmroman-normal.woff也不可行了。 起初我以为是scss格式的问题,因为在texify3中使用scss样式文件时有转译为css格式的逻辑 {{ $options := dict "transpiler" "dartsass" "targetPath" "css/common....