Typora伪装LaTeX中文样式主题简介

哇,我大一在干什么。转眼两年过去,这个项目获得了4.1k star,至少19k次下载,这篇文章阅读量都有近5000了,我却在大四生活中累死累活,哈哈。 过了这么久,我觉得这篇文章是需要一些更新了,所以……我更新了一下。

Keldos
2023.11.19


这篇文章是对我开发和维护的 typora-latex-theme 项目的介绍和说明。如果能帮助到你,欢迎前往GitHub地址给我一个 Star⭐️~


本项目的初衷是为了简化中国大陆本科生小型通识课论文(或实验报告)撰写的负担。这里基本采用了浙江大学要求的格式(字体较小,页边距较小),但大部分同学都可以自行在css中修改适合自己学校的格式。

markdown 的轻量化特性,使您可以专注于论文内容而不用担心格式。书写时仅通过简单的标记,并通过替换样例模板中的个人信息,您就可以输出媲美卷王由 \(\LaTeX\) 排版的精美论文与报告。

总之,这是一个 Typora 的 markdown 主题样式,支持 Windows, macOS 和 Linux 三大平台的 Typora。CSS也适用于部分其他编辑器。macOS 和 Windows 中的个别特性可能不同。

预览

  • 您可以通过在线 PDF 预览器预览完整的导出结果(不过注意,该项目更新之后,部分效果可能与当初不同)。

  • up主 @大啊好我r中之 为这个项目制作了一个介绍视频,其中简洁清晰地介绍了主题外观和安装方法~

  • 或者,您也可以看下方的表格:

code light mode dark mode
封面,摘要和关键词
预览模式
编辑模式
层级标题
表格
项目列表
代码块
Mermaid
公式

本文如果使用该主题导出,效果是这样的:

安装

  1. 安装前,请确保您已经安装 Typora(也可以用某些IDLE),并拥有基本的markdown语法知识;

    • 什么是TyporaTypora是一个超级好用的实时预览markdown编辑器;
    • 什么是markdownmarkdown 是一种轻量级标记语言,用于使用纯文本创建格式化文本。 约翰·格鲁伯和亚伦·斯沃茨于2004年创建了Markdown,作为一种以源代码形式吸引人类读者的标记语言。 Markdown排版语法简洁,让人们更多地关注内容本身而非排版。它可与HTML混编,可导出 HTML、PDF 以及本身的 .md 格式等文件。 Markdown广泛用于博客、即时消息、在线论坛、协作软件、文档页面和阅读文件。 参考:
  2. 前往本项目的 release 页面,下载适合您操作系统的最新版本压缩包。比如,如果您在使用 Windows 操作系统,您就应该下载 latex-theme-windows.zip

    • 当然你也可以使用命令行下载最新版(虽然没用,只是可能酷一点?):
      1
      2
      $ cd <你常用的下载文件夹>
      $ git clone https://github.com/Keldos-Li/typora-latex-theme.git
  3. 解压这个文件,然后您将可以选择手动安装还是自动安装(cool~)!

    请您打开安装包的 target 文件夹,按照官方教程(英文),将这个文件夹里的所有 CSS 文件复制到指定的 Typora 主题文件夹中。

    • 如果您在使用 Windows ,请运行 install.ps1 文件。具体的运行方式是:右键点击 install.ps1 文件,然后点击“使用 PowerShell 运行”。
      若您看到了以下提示,请输入Y,然后按下回车enter

      1
      2
      3
      > 执行策略更改  
      > 执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?
      > [Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“N”):
    • 如果您在使用 macOS 或 Linux ,只需在终端执行 sh ./install.sh 即可完成安装。

      什么?你是 mac 用户却不知道怎么用终端?好吧。打开终端,将 install.sh 文件拖入终端窗口中也是可以执行的。什么?你不知道怎么打开终端?请参考以下步骤:打开启动台;在启动台顶部的搜索栏里,搜索“终端”,然后点击搜索结果中的终端图标。

  4. 安装字体。以上步骤执行完毕后, Typora 显示的结果可能并不符合您的预期。比如,中文字体缺少衬线,或中文字体是点阵字体等。这时,您需要安装本主题依赖的所有字体。 对于 macOS 和 Windows 用户,您可以在 Keldos-Li/typora-latex-theme-fonts 仓库下载并安装您需要的字体; Linux 用户应确保相关字体在您的发行版上被正确安装。具体而言:

    • macOS 用户可以前往 /macOS/General platform 获取适用于 macOS 的额外字体。
    • Windows 用户可以前往 /Windows/General platform 获取适用于 Windows 的额外字体。
    • Linux 用户请去查看github项目地址中的wiki,我懒得写了。这年头还有人用Linux写文档?

    对字体再做一点补充吧。 Latin Modern 家族是常规 LaTeX 发行版文档使用的英文字体,请所有用户安装。(大家都会喜欢这个字体的,所以安装吧,就不把它们放在主题文件夹下再 import 了。绝不是因为我懒);

    其他文件夹存放了一些中文字体和代码字体,可以选择性安装。其中 家族宋通过将楷体重新映射为宋体的斜体,拥有了完整的常规体(宋体)、斜体(楷体)、黑体(粗宋体)、黑斜体(粗楷体),并且可以在 Typora 中直接通过 * 的输入,以媲美西文的方式调整字体风格。本字体文件仅供个人本地试用,不得将其用于商业出版领域,请勿传播

    请注意,如果您不拥有这些字体也不希望安装的话,请到CSS文件中自行更改选用的字体:

    • 如果您选用自己的其他字体,请尽量使用有完整字体系列的字体集作为正文字体。对于中文字体,一个完整的字体系列应该包括:常规体(regular)、粗体(bold),如果您希望粗体风格更强,它应当还包含黑体(Heavy)
    • 本项目还包含了一些方正公文系列字体,选用它们是因为它们已经存在粗体效果,可以直接应用为标题字体而跳过Typora的伪粗体机制。
    • 所有的字体文件请自行获取授权,本人不对您使用字体造成的法律纠纷负责。(当然,本项目包含的部分字体是免费可商用的和非商业使用免费的。)
  5. 重新启动 Typora,然后在菜单栏的主题下拉菜单中选择 LatexLatex Dark 选项。如果您在手动安装字体后,依然出现与字体相关的问题,请尝试重启您的计算机。

使用

在完成安装后,您可以选择按照学校的要求进行个性化设置。在 CSS 文件中,您可以根据代码中的注释提示修改变量取值,轻松地更换正文、标题等不同元素的字体、字号、行距、页边距等:

1
2
3
4
5
6
/* 代码字体(代码中的中文会调用ui-font) */
--code-font: "Latin Modern Mono", "Latin Modern Mono 10"; /* 您可以修改这里的值 */
/* 侧边栏字体 */
--ui-font: "阿里巴巴普惠体 2.0"; /* 您可以修改这里的值 */
/* source mode 字体 */
--sourceMode-font: "SF Mono", "阿里巴巴普惠体 2.0"; /* 您可以修改这里的值 */

进行个性化设置有两种方案:

  1. 您可以直接在您下载的安装包中进行修改。在完成修改后,请重新执行与您操作系统相匹配的脚本(install.ps1install.sh),并重新启动 Typora,以应用您的更改
  2. 您也可以直接更改 Typora 主题文件夹的文件。进入这个文件夹后,与本主题相关的两个文件分别是 latex.csslatex-dark.css,请您按需修改。在完成修改后,请重新启动 Typora,以应用您的更改

蛤?你不知道咋打开 CSS 文件?请考虑使用 记事本(Windows)或文本编辑(macOS)打开它。

您可能已经注意到,我们已经将主要的个性化设置变量放置在主题文件的最前面(:root {})。对大部分普通用户来说,您只需要关注最前面(约前70行)的代码即可:

1
2
3
4
5
6
@charset "UTF-8";
:root {
/* == 字体设置 == */
……(其他设置)
……(其他设置)
}
当然,如果你是个 Pro User,有更多的修改需求,请直接在 latex.csslatex-dark.css 中编辑(或者,你也可以编辑我们的 .scss 源文件然后编译为 CSS)。但请记得在未来更新本主题时重新编写您做过的修改。

如果您看不懂注释,或不知道修改代码会造成什么效果,请首先尝试百度/谷歌/必应,然后尝试联系开发者。

调整字号

从 v0.3.0 开始,本主题支持根据 --base-font-size(正文字号)全局调整各元素(如小标题、脚注、代码,甚至行距)大小。

一般而言,如果需要调整正文字号大小,您只需要更改 CSS 文件中这一行(可能是第8行)中“9.5pt”这一数值:

1
--base-font-size: 9.5pt;
您只需要调整这一项数值,其他元素的大小会自动根据该基准字号进行合适倍率的缩放,以达成美观的效果。例如,在 v0.3.0 的主题文件中,默认的引文的字号设置为:
1
--quote-font-size: 1.05em;
在这里,em单位为一个正文字符(--base-font-size)大小,此时 1.05em = 1.05x9.5pt ≈ 10pt。其他元素也遵循相应的规则。

当然,如果学校或您有明确的要求,您也可以直接设置以 pt 或 px 为单位的数值,将元素的大小固定下来,如 --quote-font-size: 10pt;

参阅:字号对照表

中文字号 英文字号(磅)/pt 毫米/mm 像素/px
初号 42 14.82 56
小初 36 12.7 48
一号 26 9.17 34.7
小一 24 8.47 32
二号 22 7.76 29.3
小二 18 6.35 24
三号 16 5.64 21.3
小三 15 5.29 20
四号 14 4.94 18.7
小四 12 4.23 16
五号 10.5 3.7 14
小五 9 3.18 12
六号 7.5 2.56 10
小六 6.5 2.29 8.7
七号 5.5 1.94 7.3
八号 5 1.76 6.7

更改编辑模式中的页面大小

在 Typora 中,您可以使用以下两个快捷键将页面进行放大或缩小:

  • ctrl shift = 放大
  • ctrl shift - 缩小

对于 macOS 用户,请将上面快捷键中的 ctrl 替换为 command。如果您的 Typora 有菜单栏,您也可以选择 视图 中的 放大缩小 功能。

使用封面

resources 文件夹中的 essay-template.mdessay-template.pdf 展示了一篇小论文在该主题下的效果(其中文字来源于我本人的课程作业以及一些拼凑,请不要在意过多细节),其中论文封面(也单独放置在 cover-template.md 文件中)、摘要、关键词和其他一些特别的元素使用 HTML 代码来编写。您可以自行取用修改它们的文字内容部分和代码部分来完成您的课程论文。

  • 如果您还是看不懂HTML代码,请先自行百度/谷歌/必应,然后尝试联系您在计算机系的同学;
  • 或者您还是用Word来写文档吧。

我后面自己用的时候,把浙江大学的图标又缩小了一些hhh:

改后自用的封面

取消额外行距

如果您不希望论文有段后的额外行距,可以在 Typora 的偏好设置Markdown 中选取保留连续的空格与单个换行

页边距

若要修改页边距,您首先需要打开您想要修改的 CSS 文件。您需要在这个 CSS 文件中,分别找到两段类似这样的代码:

1
2
3
/* == 页面设置 == */
/* 打印页边距 */
--set-margin: 1.8cm 2cm 1.2cm 2cm !important;
1
2
3
4
5
@media print {
@page {
/* size: A4; 强制A4大小 */
margin: 1.8cm 2cm 1.2cm 2cm !important;
/* 按次序为 上 右 下 左 的页边距 */

真实的代码内容可能与以上描述不完全相同,但是嵌套关系一定是相同的。推荐您搜索页边距这个关键词,从而快速找到这两段代码。
以上的第一处的设置调整了 Typora 预览界面包括导出 HTML 时的页面边距,第二处调整了 Typora 导出 PDF 时的页边距。

在 Windows 中,您在两个 CSS 文件中同时修改页边距后即可导出正确的页面。

但对于 macOS 用户,因为 Typora 本身的问题 ,第二处设置无效。也就是说,第一处设置能够保证编辑预览时的页面边距正确,但直接导出时的页面边距无法精确修改。只能通过以下的办法:

  • 在 Typora 的导出设置里自定义页边距。
  • 先导出为 HTML ,然后在 Chrome 中打开打印。请注意,不能用 Safari!Safari 会自行设置它认为的最小边距,这会导致您无法精确控制页边距;另一方面,在某次更新后 Safari 取消了对 CSS 本地字体读取的支持(理由是隐私问题),会导致您无法显示很多字体!
  • 直接用 pandoc 的命令行导出。

导出时超链接样式

对于文章中的超链接,本主题在导出PDF时默认保留超链接颜色和下划线。如果您需要导出为打印版本(超链接为黑色且无下划线),请在您想要修改的 CSS 文件中找到下面的代码段:

1
2
3
4
5
6
7
8
9
10
11
/* ========== VERY IMPORTANT 请注意看下面的几行: ================
如果您需要在输出PDF时隐藏超链接的颜色和下划线,请取消注释下面的代码块,即删去下面的 Ln.1 和 Ln.2
如果您需要在输出PDF时保持超链接的显示效果,则不用更改 ============= */
/* 如要取消注释代码,请把本行删去 Ln.1
@media print {
#write a {
color: inherit !important;
text-decoration: none;
}
}
如要取消注释代码,请把本行删去 Ln.2 */

您只需要删去 /* 如要取消注释代码,请把本行删去 Ln.1/* 如要取消注释代码,请把本行删去 Ln.1 这两整行即可。

如果您之后重新需要导出时保留超链接颜色和下划线,您可以将您删去的两行之间的代码块重新注释掉。

多级列表

预设的多级列表样式参考了 CTeX 的风格。如果需要,您可以在代码中自行更改多级列表(无论是有序还是无序)的样式。

另外,在 v0.3.0 及之前的版本中,在二级有序列表之后混用 有序列表无序列表 以及核对清单,仍有概率出现一些 bug。(虽然感觉会这么干的人应该不多。)我应该已经修复了这个bug,马上发新版本!但如果还有问题,请及时提 issue。

页眉和页脚

由于 Typora 的限制,目前似乎不能直接定义,请在 Typora 的导出设置里设置好您需要的页眉和页脚文字,导出后在 PDF 编辑器中调整您喜欢的样式风格。

引用参考文献

目前没有更好的方式,请您主动编号(或许小型课程论文不需要大量参考文献……?maybe我之后想想要不要重新定义一个新的列表样式)。

专注模式和打字机模式

还没写这部分的代码。本主题样式初衷不在于此,如果您有需求,可以提交 issue 或进入讨论区讨论。我可能也懒得写

其他有的没的

  • 如果可以的话(大概不可以),或许您可以在论文致谢中提到这个项目(bushi。(/ω\)
  • 这本质是一个适用于所有markdown编辑器的CSS样式(但对Typora编辑器做了额外的优化),您也可以将其用于其他您喜欢的markdown编辑器的自定义样式(尚未经过完整测试)。

反馈与贡献

wiki里写了贡献指南

如果您在使用过程中遇到任何问题,或想为本项目做出任何贡献,请优先考虑:

  • 前往 GitHub Discussions 发起讨论
  • 前往 GitHub Issues 报告故障
  • 前往 GitHub Issues 请求新功能
  • 如果您希望在本地修改这个项目的代码,推荐您在 fork 后使用 git clone ${target} --depth 1 进行克隆。这是因为,本仓库的历史中有大量二进制文件,而这些二进制文件对当前开发并无作用,可以舍弃。设置较浅的克隆深度可帮助您更快地获取到此项目的最新代码。在完成您的修改后,请向我们的 develop 分支提出拉取请求

如果还是不行…

  • 联系 RalXYZ.
  • 或者 加入交流反馈QQ群之后和大家一起讨论

鸣谢

本项目是在下面两个开源项目的基础上完成的:

感谢 大啊好我r中之 制作介绍视频。


BTW,看到有个所谓的电子笔记大赛,顺便投一下,临时挂个自己的名字:李京蔚。

网页是基于hexo的NexT主题制作的,无法说这完全是我的设计。我想活动组织者在策划的时候没考虑吧,大部分文档都是基于模板做的,现在谁完全自己从头设计制作啊?不可能的。如果有谁用我的主题导出的文档拿奖了,岂不是也该把奖励分我一份?

求鼓励求支持QAQ
Keldos 支付宝

支付宝