overleaf 支持中文

基本操作

左上角menu中,切换compiler 到xelatex
然后在\documentclass声明下面加一个
\usepackage{ctex}

使用\usepackage{xecjk}可能也可以,但会有警告。

警告分析

Font “FandolSong-Regular” does not contain requested Script “CJK”。

网上搜到的解法是 \documentclass中间加一个字符集设置[fontset=windows]
比如

\documentclass[fontset=windows]{article}

寻找一下报错原因。

根据ctex文档, http://mirrors.ctan.org/language/chinese/ctex/ctex.pdf ,
ctex在无法识别系统类型(即otherwise)的时候使用fandol字体。
在这里插入图片描述
这说明

  1. 在overleaf运行环境中ctex无法检测系统类型。
  2. 因为无法检测系统类型,启用了保底模式,默认使用了fandol字体。

为什么用fandol就有警告呢?

这有一个讲原因的文章 https://zhuanlan.zhihu.com/p/145429470

摘录如下

  • xeCJK 为每个 CJK 字体默认添加特性 Script=CJK
  • 部分(中文)字体没有声明对应的特性。
  • xeCJK 的设定是合理的(luatex-ja 默认添加了相同特性),这是字体文件的问题,和 LaTeX 无关。
  • LaTeX 能做的,最多是抑制这类警告,假装问题不存在。

我的理解大概就是fandol字体里没有包含声明信息。因为fandol字体不是为了ctex发明的,没想过去兼容ctex的设计。
既然如此为什么ctex还要使用fandol呢,因为fandol是一个免费的,兼容大部分样式,环境的,中文字体包。找不到别的免费开放许可的更好更全的中文字体了。

综上来看,最好的方式就是不使用fandol。
改成别的ctex支持的字体。

根据github 讨论 https://github.com/CTeX-org/forum/issues/34
ctex可以支持下面的字体:

ctex-fontset-adobe.def,
ctex-fontset-fandol.def,
ctex-fontset-founder.def,
ctex-fontset-mac.def,
ctex-fontset-macnew.def,
ctex-fontset-macold.def,
ctex-fontset-ubuntu.def,
ctex-fontset-windows.def,

特别注意到,ctex是因为在overloeaf环境中无法识别系统类型才启用了保底策略fandol。
我们只需要显式地告知ctex这是一个ubuntu类型的环境就好了。
(overleaf的编译环境显然是一个linux环境)

经过测试overleaf上, mac, macnew, macold都不能用。
adobe不能用。windows不能用。founder不能用。
fandol 可以用但报警告。

ubuntu才是正确答案。

总结

在overleaf上使用ctex + 中文。
应该设置fontset=ubuntu

示例

\documentclass[fontset=founder, 10pt,twocolumn,letterpaper]{article}
\usepackage{ctex}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值