总结了一些使用中文字体的经验,踩在前辈们的肩膀上
使用环境为Overleaf,如果是本地的latex编译器的话应该不会出什么问题,本文选择循序渐进地解释,确保理解每条命令的作用
中文
首先使用XeLaTex
编译,点进左上角Menu更改
\usepackage{xeCJK}
\setCJKmainfont[AutoFakeBold={4}]{AR PL UKai CN}
Overleaf默认支持的字体见手册,但是可惜的是默认的字体大多都很丑很细,很多还缺失,好不容易有好看的但是标点符号不符合简体中文的习惯,譬如上面用的这个,标点符号都在中间
于是我们使用自己喜欢的字体,将自己下载好的ttf、otf文件拖拽至新建的fonts文件夹。
在\documentclass
类中添加cjk-font=none
,例子如下
\documentclass[a4paper,11pt,cjk-font=none]{article}
接下来设置字体路径和中文字体
\defaultfontfeatures{Path=fonts/}
\setCJKmainfont[AutoFakeBold={4}]{LXGWWenKaiScreen.ttf}
\setCJKmonofont{simfang.ttf} % 设置等宽字体
AutoFakeBold
是为了实现伪粗体,自由调节想要的视觉效果。
但是这样有个问题,就是我们整篇文章都是一种字体,连衬线都没有。以下以我想让所有\section
显示衬线字体为例
\setCJKfamilyfont{stkaiti}{STKaiti-regular.ttf}[AutoFakeBold={4}]
% Sections formatting
\titleformat{\section}{
\CJKfamily{stkaiti}\vspace{-4pt}\scshape\raggedright\large
}{}{0em}{}[\color{black}\titlerule \vspace{-7pt}]
这样就和正文区分开来了,同理可以用在任何一段文字上\CJKfamily{stkaiti}\textbf{xxxx}
英文
另外如果你想精准控制英文的显示效果,可以在对应的段落前添加\fontfamily{lmss}\selectfont
默认的有以下十几种
\documentclass{article}
\begin{document}
\begin{enumerate}\fontencoding{T1}
\fontfamily{pag}\selectfont \item Avant Garde
\fontfamily{fvs}\selectfont \item Bitstream Vera Sans
\fontfamily{pbk}\selectfont \item Bookman
\fontfamily{bch}\selectfont \item Charter
\fontfamily{ccr}\selectfont \item Computer Concrete
\fontfamily{cmr}\selectfont \item Computer Modern
\fontfamily{pcr}\selectfont \item Courier
\fontfamily{phv}\selectfont \item Helvetica
\fontfamily{fi4}\selectfont \item Inconsolata
\fontfamily{lmr}\selectfont \item Latin Modern
\fontfamily{lmss}\selectfont\item Latin Modern Sans
\fontfamily{lmtt}\selectfont\item Latin Modern Typewriter
\fontfamily{pnc}\selectfont \item New Century Schoolbook
\fontfamily{ppl}\selectfont \item Palatino
\fontfamily{ptm}\selectfont \item Times
\fontfamily{uncl}\selectfont\item Uncial
\fontfamily{put}\selectfont \item Utopia
\fontfamily{pzc}\selectfont \item Zapf Chancery
\end{enumerate}
\end{document}
效果如下
但是XeLaTex下还有坑,如果没有效果需要用\fontencoding{T1}
显式指定字体编码
这样几乎所有的坑都踩完了,鬼知道我经历了多少折磨
上述操作未考虑字体版权问题,如涉及出版请仔细辨认
前几天出了个叫ANIMAL WELL的解谜神作,只有32MB!!!银河城的又一里程碑,没空玩啊
好想去看邓紫棋、老织的演唱会┭┮﹏┭┮,但是这次应该没机会了
至于我什么时候把春节广州和五一南京的游记补上,只能说有缘再见:)
最近没怎么听歌,这首还不错
致谢
Cover:@liyuliyuzhou
Package fontspec Error: The Font SimSun can’t be found
SJTUThesis
\fontfamily{…}\selectfont does not work with XeLaTeX engine
开源书和开源技术-PDF中蛋疼的中文字体