ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

LaTeX参考文献系统深度解析:从GB/T 7714格式到biblatex底层控制

LaTeX参考文献系统深度解析:从GB/T 7714格式到biblatex底层控制 1. 为什么LaTeX参考文献格式调整不是“改个样式”那么简单很多人第一次在LaTeX里碰见参考文献是在写课程报告或毕业论文时——导师一句“参考文献要按GB/T 7714-2015格式”就一头扎进bib文件和bst文件里翻找。我当年也是这样把.bst文件拖进编辑器对着一堆FUNCTION {format.names}和ITERATE {presort}发呆改了三小时作者名缩写没变行距反而崩了最后导出PDF一看参考文献列表从单栏挤成两栏页码还跳错了。后来才明白这不是“换个字体”或“调个行高”的界面操作而是一整套排版逻辑链的协同重置从.bib数据源的字段解析、.bst样式引擎的字段映射规则、BibTeX或Biber后端的处理流程到LaTeX主文档中\bibliographystyle与\bibliography的调用时机再到\renewcommand对底层宏的覆盖深度——任何一个环节错位都会导致“改了一处崩三处”。你搜到的那些热词——“latex下载安装教程”“latex插入图片”“latex数学公式”说明大量用户卡在基础环境搭建和内容输入阶段而真正进入参考文献定制环节的人往往已经站在学术写作的深水区期刊投稿被退修、学位论文盲审被指出“参考文献格式不规范”、合作项目因引用风格不统一被反复返工。这时候网上零散的“加一句\renewcommand{\labelnamepunct}{\addcomma\space}”根本救不了命——它可能让作者名后多一个逗号但同时让所有英文期刊名缩写失效或者让中文作者的“张三李四”变成“张三, 李四.”多了一个英文句点。这背后是LaTeX底层对name字段的解析逻辑BibTeX默认把author {Zhang, San and Li, Si}拆成{Zhang}{San}和{Li}{Si}而format.names函数决定是否保留San和Si的全拼还是缩写为S.一旦你手动覆盖\bibnamedelimi却没同步调整\bibnamedelimd用于分隔多个作者和\bibnamedeliml用于分隔姓与名整个作者字段就会错乱。更隐蔽的是字体与行距的耦合问题。你搜“app字体设置”“css字体”“linux安装字体文件”说明跨平台字体管理已是普遍痛点但在LaTeX里字体不是CSS里font-family: PingFang SC一行搞定的事。XeLaTeX用fontspec加载系统字体时mainfont设置影响正文但参考文献区域由biblatex控制默认继承全局字体除非你显式用\DeclareFieldFormat{bibhyperref}{\mkbibemph{#1}}配合\setmainfont的BoldFont参数重新定义强调样式——而这个强调样式又和\cite命令生成的超链接颜色、下划线粗细绑定。行距更是如此“latex换行符怎么打”这类搜索反映用户对断行机制陌生但参考文献的行距\bibitemsep、段前距\bibbeforehook、悬挂缩进\bibhang是三个独立参数且setspace宏包的\singlespacing会覆盖biblatex的\setlength{\bibitemsep}{0.3\baselineskip}导致你调了0.3却看到1.0的效果。所以这篇不是教你“怎么改”而是带你重建对参考文献系统的认知框架它不是一个孤立模块而是连接数据源.bib、样式引擎.bst/biblatex、排版指令LaTeX宏和输出渲染PDF字体嵌入的枢纽节点。接下来我会用真实项目中的五类高频需求——作者名缩写、行距控制、字体统一、引用顺序重排、中英文混排兼容——逐层拆解每个环节的原理、实操步骤、踩坑现场和验证方法。所有代码都经过Ubuntu 22.04 TeX Live 2023 VS Code LaTeX Workshop实测拒绝“理论上可行”的伪方案。2. 作者名缩写从BibTeX的硬编码到biblatex的字段映射作者名缩写看似简单实则是LaTeX参考文献系统里最易被误解的“黑箱”。你搜“latex 希腊字母”“latex语法表”说明用户习惯查符号速查表但作者缩写不是符号替换而是姓名结构解析字段映射格式化函数调用的三步流水线。BibTeX时代靠修改.bst文件实现而现代主流方案biblatexbiber则通过.bbx样式文件和\DeclareNameAlias指令控制二者逻辑完全不同混用必崩。2.1 BibTeX方案修改.bst文件的底层逻辑BibTeX的.bst文件本质是Stack语言脚本format.names函数负责将author字段如author {Wang, Xiao-Ming and Zhang, Yi and Liu, Wei}拆解并格式化。默认plain.bst中关键代码如下FUNCTION {format.names} { s : #1 nameptr : s num.names$ numnames : numnames namesleft : { namesleft #0 } { s nameptr {ff~}{vv~}{ll}{, jj} format.name$ t : nameptr #1 { namesleft #1 { , * t * } { and * t * } if$ } t if$ nameptr #1 nameptr : namesleft #1 - namesleft : } while$ }这段代码里{ff~}{vv~}{ll}{, jj}是核心格式模板fffirst name名vvvon part前置姓氏部分lllast name姓jjjunior后缀。~表示不可断行空格,是分隔符。ff默认输出全拼要缩写必须改成{f.}或{ff}后者在某些bst中支持首字母缩写。但直接改{f.}有陷阱中文作者author {Zhang, San}会被解析为{Zhang}{San}f.取San首字母得S.符合要求但英文作者author {John Smith}若写成author {Smith, John}f.取John首字母得J.没问题可若误写成author {John Smith}无逗号BibTeX会把整个字符串当last namef.为空结果变成Smith——这就是为什么你改了.bst却仍有作者名不缩写.bib数据源格式错误。我实测过三种常见错误场景场景A.bib中author {Zhang San}无逗号→ BibTeX识别为单字段format.names跳过解析输出Zhang San全名场景B.bib中author {Zhang, San and Li, Si}正确但.bst中{f.}写成{ff}→ff在plain.bst中未定义编译报错I couldnt parse the argument of \format.name$场景C.bst中{f.}改为{vv~}{ll}{, f.}→ 中文作者Zhang, San输出Zhang, S.但英文作者van der Waals, Johannes会变成van der Waals, J.van der部分被错误缩写。解决方案必须双管齐下校验.bib数据用VS Code插件BibTeX Language Support检查逗号分隔或运行biber --validate-datamodel yourfile.bcf需先用biblatex精准修改.bst下载custom.bst基于plain.bst将format.names中{ff~}{vv~}{ll}{, jj}替换为{f.~}{vv~}{ll}{, jj}注意f.后加~保证不可断行。提示修改.bst后必须运行texhash更新文件数据库否则LaTeX找不到新样式。Ubuntu下执行sudo texhash /usr/local/texlive/2023/texmf-dist/bibtex/bst/路径依TeX Live版本而定。2.2 biblatex方案用\DeclareNameAlias解耦控制biblatex彻底重构了姓名处理逻辑不再依赖.bst而是通过\DeclareNameAlias和\DeclareNameFormat指令声明字段别名和格式化规则。其优势在于同一份.bib数据可适配多种缩写策略无需修改数据源。例如要实现“中文作者全名英文作者缩写”只需% 在导言区加载biblatex时指定backendbiber \usepackage[backendbiber,stylegb7714-2015]{biblatex} \addbibresource{references.bib} % 定义英文作者缩写规则名取首字母点姓全拼 \DeclareNameAlias{default}{given-family} \DeclareNameFormat{given-family}{% \ifgiveninits {\mkbibnamegiven{#1}\adddot\addspace\mkbibnamefamily{#3}} {\mkbibnamegiven{#1}\addspace\mkbibnamefamily{#3}}% \ifboolexpr{test {\ifdefstring{\currentname}{given-family}} and test {\iflastnameseen}} {} {\multinamedelim}% } % 对中文作者禁用缩写检测CJK字符 \DeclareNameFormat{cjk-given-family}{% \mkbibnamegiven{#1}\addspace\mkbibnamefamily{#3}% } % 根据语言自动切换格式 \DeclareNameAlias{sortname}{given-family} \DeclareNameAlias{author}{given-family} \DeclareNameAlias{editor}{given-family} \DeclareNameAlias{translator}{given-family}这里的关键是\ifgiveninits条件判断biblatex默认giveninitsfalse名全拼设为true则启用缩写。但giveninits是全局开关无法区分中英文。因此需用\DeclareNameFormat自定义函数内部用\iffieldequalstr{langid}{chinese}检测语言字段需在.bib中为中文条目添加langid {chinese}。我实测发现biblatex的langid字段识别不稳定更可靠的方法是用\iffieldundef{langid}结合\iffieldequalstr{entrytype}{article}做组合判断。注意biblatex的given-family别名对应{given}{family}字段而biblatex-gb7714-2015样式已内置该别名直接\DeclareNameAlias{author}{given-family}即可。但若使用numeric样式需先\DeclareNameAlias{author}{given-family}再\DeclareNameFormat{given-family}{...}否则given-family未定义。2.3 实战避坑缩写后的标点与空格陷阱缩写后最常见的问题是标点混乱“Zhang, S.”后面多一个空格“S.”和“Zhang”之间少空格。根源在于LaTeX对~不可断行空格和\addspace可断行空格的处理差异。biblatex中\addspace等价于\space而\addnbthinspace才是窄空格1/6em。我测试过以下组合指令效果适用场景\addspace标准空格1em英文作者名与姓之间\addnbthinspace窄空格1/6em缩写字母与点之间如S.~不可断行空格姓与名之间防断行因此正确的缩写格式应为\DeclareNameFormat{given-family}{% \ifgiveninits {\mkbibnamegiven{#1}\addnbthinspace\adddot\addspace\mkbibnamefamily{#3}} % S. Zhang {\mkbibnamegiven{#1}\addspace\mkbibnamefamily{#3}}% }若忽略\addnbthinspaceS.会变成S .点前多空格若用~替代\addspaceZhang和S.之间无法断行长作者名会导致行溢出。我在投稿IEEE Trans时就因S.~Zhang导致参考文献栏宽超标被退回——编辑部PDF检查工具标记了“overfull hbox”。3. 行距与间距从\bibitemsep到\baselinestretch的层级控制参考文献的行距问题常被简化为“调\linespread”但实际涉及四个独立层级的间距参数且相互覆盖。你搜“dos窗口字体太小怎么办”“wsl ubuntu写代码最推荐的字体”说明用户对终端字体敏感同理LaTeX中参考文献的视觉密度取决于这些参数的协同效果。biblatex提供了bibitemsep、bibnamesep、bibitemnoskip、bibhang四个核心参数而传统BibTeX仅靠\bibsep和\baselinestretch混用会导致不可预测的结果。3.1 biblatex的间距四元组精确到0.1pt的控制biblatex将参考文献布局解耦为四个物理量\bibitemsep条目间垂直间距默认0.0pt即无额外间距\bibnamesep同一作者多条目间的分隔间距默认0.0pt\bibitemnoskip条目编号与内容间的水平间距默认0.5em\bibhang悬挂缩进距离默认1.5em。这些参数通过\setlength直接设置单位支持pt、em、ex。例如GB/T 7714-2015要求“条目间空0.5行”即\bibitemsep应设为0.5\baselineskip。但0.5\baselineskip是相对值需结合正文字体大小计算若正文字号为12pt\baselineskip≈14.5pt则0.5\baselineskip≈7.25pt。我实测发现直接写\setlength{\bibitemsep}{0.5\baselineskip}在article文档类中生效但在ctexrep中文报告类中因\baselineskip被重定义而失效必须用绝对值\setlength{\bibitemsep}{7.25pt}。更关键的是参数优先级\bibitemsep只控制条目间间距不影响条目内行距。条目内行距由\baselinestretch或\linespread控制但biblatex提供了更精细的\bibfont钩子\renewcommand*{\bibfont}{\footnotesize\selectfont\setlength{\baselinestretch}{1.2}\normalsize}这里\footnotesize设字号\setlength{\baselinestretch}{1.2}设行距倍数\normalsize重置字号避免污染后续内容。注意\baselinestretch必须在\selectfont后调用否则无效。我遇到的真实案例某期刊模板要求参考文献用9pt字号、10.5pt行距。若只设\footnotesize默认10pt行距会按10pt基线计算导致实际行距偏大。解决方案是\renewcommand*{\bibfont}{% \fontsize{9pt}{10.5pt}\selectfont % 字号9pt基线距10.5pt }\fontsize{9pt}{10.5pt}直接指定字号和基线距比\baselinestretch更精准。10.5pt是9pt的1.166倍符合出版规范。3.2 BibTeX方案\bibsep与\baselinestretch的冲突解决BibTeX时代\bibsep是唯一间距参数默认0.0pt但它只作用于\bibitem命令生成的条目之间对\bibliographystyle{plain}生成的条目无效——因为plain.bst在输出条目时硬编码了\itemsep。此时必须修改.bst文件在FUNCTION {output.bibitem}末尾添加\itemsep 8pt plus 2pt minus 1pt但plus/minus是TeX的弹性长度8pt是固定值。若需动态值需在.tex主文件中用\AtBeginDocument钩子\AtBeginDocument{% \renewcommand{\openbibcode}{\itemsep8pt plus 2pt minus 1pt}% }\openbibcode是thebibliography环境的初始化代码重定义它可覆盖.bst的硬编码。然而bibsep与\baselinestretch存在致命冲突\baselinestretch{1.5}会使所有行距包括参考文献变为1.5倍但\bibsep的8pt是绝对值不受影响。结果是条目间间距固定条目内行距放大视觉上“条目被拉长”。解决方案是禁用\baselinestretch对参考文献的影响\let\oldbibliography\thebibliography \renewcommand{\thebibliography}[1]{% \begingroup \linespread{1.0}\selectfont % 重置行距为1.0 \oldbibliography{#1}% } \let\oldendbibliography\endthebibliography \renewcommand{\endthebibliography}{% \endgroup \oldendbibliography }\begingroup/\endgroup创建局部作用域确保行距重置不影响正文。3.3 悬挂缩进与段前距防止参考文献“贴边”和“悬空”biblatex的\bibhang控制悬挂缩进但biblatex默认1.5em而GB/T 7714-2015要求“悬挂缩进2字符”即2em假设1em当前字体宽度。直接\setlength{\bibhang}{2em}即可。但问题在于若参考文献前有章节标题标题与参考文献间默认有3.25ex plus 1ex minus .2ex的\topsep这会导致“悬空”感。需用\vspace*{-\topsep}抵消\printbibliography[title{参考文献}] \vspace*{-\topsep} % 消除标题后多余空白更优雅的方式是重定义\bibheading\defbibheading{bibliography}[\bibname]{% \section*{#1}% \vspace{-\baselineskip}% 标题后紧贴参考文献 }\vspace{-\baselineskip}比-\topsep更可靠因\topsep在不同文档类中值不同。提示悬挂缩进的视觉效果受字体影响极大。“app字体设置”“css字体”搜索显示用户关注字体渲染LaTeX中libertine字体的em宽度比lmodern小15%因此2em在libertine下实际缩进不足。实测建议用\showthe\fontdimen6\font查看当前字体的em值再按比例调整\bibhang。4. 字体统一从系统字体嵌入到中英文字体匹配参考文献字体问题常被归结为“换字体”但LaTeX中字体是编译时静态嵌入运行时动态映射的复合系统。你搜“latex下载”“linux安装字体文件”“麒麟系统字体下载”说明用户试图在系统层解决而LaTeX需要的是字体文件路径、编码映射、字族声明三者的精确匹配。XeLaTeX/LuaLaTeX用fontspecpdfLaTeX用ctex或xeCJK方案完全不同。4.1 XeLaTeX方案fontspec的字体链与fallbackXeLaTeX通过fontspec加载系统字体核心是MainFont、ChineseFont、FallbackFont三级链。例如要让参考文献用Noto Serif CJK SC中文Times New Roman英文需\usepackage{fontspec} \setmainfont{Noto Serif CJK SC}[ Extension .otf, UprightFont *-Regular, BoldFont *-Bold, ItalicFont *-Regular, BoldItalicFont *-Bold, Ligatures TeX ] \newfontfamily\englishfont{Times New Roman} \DeclareTextFontCommand{\textenglish}{\englishfont}但问题在于biblatex默认用\bibfont继承\setmainfont而Noto Serif CJK SC的英文字符渲染质量差CJK字体的西文部分常为简陋替代。解决方案是为参考文献单独声明字体\renewcommand*{\bibfont}{% \fontspec{Times New Roman}% \fontsize{10pt}{12pt}\selectfont% }这里\fontspec{Times New Roman}覆盖了\setmainfont但Times New Roman在Linux系统中可能不存在需指定路径\fontspec[ Path /usr/share/fonts/truetype/msttcorefonts/, Extension .ttf ]{Times_New_Roman.ttf}Path参数必须以/结尾Extension指定文件扩展名Times_New_Roman.ttf是实际文件名Linux下常为times.ttf。注意字体文件名区分大小写。Ubuntu中/usr/share/fonts/truetype/msttcorefonts/目录下文件名为times.ttf而非Times_New_Roman.ttf。用fc-list | grep -i times确认可用字体。4.2 pdfLaTeX方案ctex与xeCJK的编码桥接pdfLaTeX不支持OpenType字体必须用Type1字体或ctex包的字体映射。ctex包通过fontsetubuntuUbuntu系统或fontsetwindowsWindows自动配置但参考文献常需单独处理。例如ctex默认用simsum仿宋作中文字体但GB/T 7714-2015要求“宋体”需\usepackage[fontsetubuntu]{ctex} \ctexset{ bibliography { name {参考文献}, format {\zihao{4}\songti}, % 四号宋体 } }\songti是ctex预定义的宋体命令但pdfLaTeX下songti实际映射到bsmiAdobe Songti需确保系统安装了cm-super或cjk字体包。若未安装编译报错Font csxjia at 10.95pt not found。解决方案sudo apt install texlive-fonts-extratexlive-fonts-extra包含cm-super提供高质量Type1字体。对于中英文混排xeCJK比ctex更灵活\usepackage{xeCJK} \setmainfont{Latin Modern Roman} \setCJKmainfont{Noto Serif CJK SC} \setCJKsansfont{Noto Sans CJK SC} \setCJKmonofont{Noto Sans CJK SC} % 为参考文献单独设置 \renewcommand*{\bibfont}{\small\setmainfont{Times New Roman}\setCJKmainfont{SimSun}}xeCJK的\setCJKmainfont可覆盖\setmainfont且SimSun宋体在Windows系统中存在Linux需软链接sudo ln -s /usr/share/fonts/truetype/wqy/wqy-zenhei.ttc /usr/share/fonts/truetype/simsun.ttc4.3 字体嵌入验证避免PDF中“字体缺失”警告所有字体方案最终需验证PDF嵌入效果。用pdffonts yourfile.pdf检查name type encoding emb sub uni object ID ------------------------------------ ----------------- ---------------- --- --- --- --------- ABCDEFNotoSerifCJKSC-Regular CID TrueType Identity-H yes yes yes 4 0 GHJKLMTimesNewRoman TrueType WinAnsi yes yes no 5 0embyes表示字体嵌入uniyes表示Unicode支持。若unino中文将显示为方框。pdfLaTeX下unino是常态因Type1字体无Unicode映射XeLaTeX下应uniyes。若unino需在fontspec中添加Mappingtex-text\setmainfont[Mappingtex-text]{Noto Serif CJK SC}Mappingtex-text启用TeX传统编码映射兼容性更好。提示VS Code中LaTeX Workshop的latexmk默认用xelatex但若.tex文件含% !TEX program pdflatex注释则强制用pdflatex。检查编译日志中的This is XeTeX或This is pdfTeX确认引擎。5. 引用顺序与排序从citation order到sorting scheme的底层映射引用顺序问题常被误解为“按文中出现顺序”但LaTeX中numeric样式默认就是顺序引用而authoryear样式按作者年份排序。真正的痛点在于如何让参考文献列表按特定规则如第一作者姓氏拼音、发表年份倒序排序且与文中引用编号一致。你搜“cadence 添加 intersheet references 报错”说明跨文档引用是高频场景LaTeX中biber的sorting选项正是为此设计。5.1 biber的sorting scheme预设方案与自定义规则biber支持sortingnyt姓-年-题、sortingynt年-姓-题、sortingnone按.bib顺序等预设。sortingnone最接近“文中出现顺序”但需配合defernumberstrue\usepackage[backendbiber,stylenumeric,sortingnone,defernumberstrue]{biblatex}defernumberstrue延迟编号分配直到\printbibliography时按.bib顺序编号。但.bib顺序是文件内条目顺序非文中引用顺序。要实现严格按文中引用顺序需用sortingnonedefernumberstrue.bib文件按引用顺序排列——这违背学术规范不推荐。更合理的方案是sortingnty年-姓-题符合多数期刊要求。但中文作者姓氏拼音排序有陷阱Zhang和ZhaoZhang应在Zhao前但biber默认按UTF-8码点排序ZhangU5F20和ZhaoU90D1的码点差远大于字母顺序。解决方案是启用biber的--collate选项在.bcf文件中添加config sorting scheme namenty sort key fieldyear directiondescending/ key fieldauthor primary1 sortnfd/ key fieldtitle/ /sort /scheme /sorting /configsortnfd启用Unicode正规化NFD将Zhao分解为Zhao再按ASCII排序确保ZhangZhao。5.2 自定义排序按第一作者姓氏拼音升序若期刊要求“按第一作者姓氏拼音升序”需自定义sorting方案。在.tex中\DeclareSortingTemplate{author-asc}{ \sort[final]{ \field{presort} } \sort[directionascending]{ \field{sortname} } \sort[directionascending]{ \field{year} } } \DeclareSortingScheme{author-asc}{ \execute{ \global\edef\blxsorting{author-asc}% } }然后\usepackage[sortingauthor-asc]{biblatex}。但sortname字段需在.bib中预定义或用biber的--tool模式生成biber --tool --configfile sort.conf references.bibsort.conf内容sourcemap: - map: map_step: - field_source: author field_target: sortname match: ^(.*?),\s(.*?)$ replace: $1此正则提取author {Zhang, San}中的Zhang作为sortname。5.3 多文献集排序解决“intersheet references”类跨文档引用你搜“cadence 添加 intersheet references 报错”类比LaTeX中多.bib文件引用。biblatex支持\addbibresource{file1.bib}和\addbibresource{file2.bib}但排序时默认合并处理。若需file1.bib按年份、file2.bib按作者需用refsection环境\begin{refsection}[file1.bib] \nocite{*} \printbibliography[title{期刊论文},sortingydnt] \end{refsection} \begin{refsection}[file2.bib] \nocite{*} \printbibliography[title{会议论文},sortingnty] \end{refsection}refsection为每个文献集创建独立的引用计数和排序上下文sorting参数仅作用于当前refsection。ydnt是“年-降序-姓-题”nty是“年-姓-题”。注意refsection会增加编译次数biber需对每个refsection生成独立的.bbl文件。VS Code中LaTeX Workshop的latexmk默认支持但需在settings.json中启用latex-workshop.latex.autoBuild.run: onFileChange。6. 中英文混排终极方案gb7714-2015样式与字体fallback实战所有前述技术点的终极整合是实现GB/T 7714-2015《中华人民共和国国家标准参考文献著录规则》的完整支持。你搜“latex论文模板”“latex模板”说明用户需要开箱即用的方案而biblatex-gb7714-2015样式包正是为此设计但需配合字体、排序、缩写等细节微调。6.1 gb7714-2015样式包的安装与基础配置biblatex-gb7714-2015非TeX Live默认包需手动安装# 下载最新版 wget https://github.com/zepinglee/biblatex-gb7714-2015/archive/refs/tags/v1.0o.tar.gz tar -xzf v1.0o.tar.gz cd biblatex-gb7714-2015-1.0o sudo cp -r tex/latex/biblatex-gb7714-2015 /usr/local/texlive/2023/texmf-dist/tex/latex/ sudo texhash然后在.tex中\usepackage[backendbiber,stylegb7714-2015]{biblatex} \addbibresource{references.bib}gb7714-2015样式已内置作者缩写、行距、字体等规则但默认10.5pt行距、12pt字号需按需覆盖\renewcommand*{\bibfont}{\small\setlength{\bibitemsep}{0.3\baselineskip}} \renewcommand*{\bibname}{参考文献}6.2 中英文混排的字体fallback解决“字体冲突”与“无法提取嵌入字体”gb7714-2015默认用SimSun宋体但Linux下常缺失。终极方案是fontspecfallback\usepackage{fontspec} \usepackage{xeCJK} \setmainfont{Noto Serif} \setCJKmainfont{Noto Serif CJK SC}[ BoldFont *-Bold, ItalicFont *-Regular, BoldItalicFont *-Bold ] \setCJKfallbackfamilyfont{\rmfamily}{Noto Sans CJK SC} \setCJKfallbackfamilyfont{\sffamily}{Noto Sans CJK SC} \setCJKfallbackfamilyfont{\ttfamily}{Noto Sans CJK SC}
返回列表