Latex中文配置中修复Package fontspec Error

使用texlive+texstudio,编译简单.tex文件,出现Package fontspec Error。

.tex代码如下:

\documentclass{article}

\usepackage{ctex}

\begin{document}
	hello. 
	
	你好
\end{document}

error信息如下:

name = SimSun/OT, rootname = SimSun/OT, pointsize = mktexmf: empty or non-existent rootfile!

kpathsea: Running mktexmf SimSun/OT.mf The command name is D:\texlive2020\installfiles_texlive\texlive\2020\bin\win32\mktexmf Cannot find SimSun/OT.mf.

name = SimSun/OT, rootname = SimSun/OT, pointsize = mktexmf: empty or non-existent rootfile!

kpathsea: Running mktexmf SimSun/OT.mf The command name is D:\texlive2020\installfiles_texlive\texlive\2020\bin\win32\mktexmf Cannot find SimSun/OT.mf.

name = KaiTi/OT, rootname = KaiTi/OT, pointsize = mktexmf: empty or non-existent rootfile!

kpathsea: Running mktexmf KaiTi/OT.mf The command name is D:\texlive2020\installfiles_texlive\texlive\2020\bin\win32\mktexmf Cannot find KaiTi/OT.mf.

name = KaiTi/B/OT, rootname = KaiTi/B/OT, pointsize = mktexmf: empty or non-existent rootfile!

kpathsea: Running mktexmf KaiTi/B/OT.mf The command name is D:\texlive2020\installfiles_texlive\texlive\2020\bin\win32\mktexmf Cannot find KaiTi/B/OT.mf.

name = SimHei/OT, rootname = SimHei/OT, pointsize = mktexmf: empty or non-existent rootfile!

kpathsea: Running mktexmf SimHei/OT.mf The command name is D:\texlive2020\installfiles_texlive\texlive\2020\bin\win32\mktexmf Cannot find SimHei/OT.mf.

name = SimHei/I/OT, rootname = SimHei/I/OT, pointsize = mktexmf: empty or non-existent rootfile!

kpathsea: Running mktexmf SimHei/I/OT.mf The command name is D:\texlive2020\installfiles_texlive\texlive\2020\bin\win32\mktexmf Cannot find SimHei/I/OT.mf.

name = SimSun/OT, rootname = SimSun/OT, pointsize = mktexmf: empty or non-existent rootfile!

kpathsea: Running mktexmf SimSun/OT.mf The command name is D:\texlive2020\installfiles_texlive\texlive\2020\bin\win32\mktexmf Cannot find SimSun/OT.mf.

name = SimSun/BI/OT, rootname = SimSun/BI/OT, pointsize = mktexmf: empty or non-existent rootfile!

kpathsea: Running mktexmf SimSun/BI/OT.mf The command name is D:\texlive2020\installfiles_texlive\texlive\2020\bin\win32\mktexmf Cannot find SimSun/BI/OT.mf.

name = SimSun/OT, rootname = SimSun/OT, pointsize = mktexmf: empty or non-existent rootfile! kpathsea: Running mktexmf SimSun/OT.mf The command name is D:\texlive2020\installfiles_texlive\texlive\2020\bin\win32\mktexmf Cannot find SimSun/OT.mf.

name = SimSun/OT, rootname = SimSun/OT, pointsize = mktexmf: empty or non-existent rootfile! kpathsea: Running mktexmf SimSun/OT.mf The command name is D:\texlive2020\installfiles_texlive\texlive\2020\bin\win32\mktexmf Cannot find SimSun/OT.mf.

name = SimHei/OT, rootname = SimHei/OT, pointsize = mktexmf: empty or non-existent rootfile!

kpathsea: Running mktexmf SimHei/OT.mf The command name is D:\texlive2020\installfiles_texlive\texlive\2020\bin\win32\mktexmf Cannot find SimHei/OT.mf.

name = SimHei/OT, rootname = SimHei/OT, pointsize = mktexmf: empty or non-existent rootfile!

kpathsea: Running mktexmf SimHei/OT.mf The command name is D:\texlive2020\installfiles_texlive\texlive\2020\bin\win32\mktexmf Cannot find SimHei/OT.mf.

name = KaiTi/OT, rootname = KaiTi/OT, pointsize = mktexmf: empty or non-existent rootfile!

kpathsea: Running mktexmf KaiTi/OT.mf The command name is D:\texlive2020\installfiles_texlive\texlive\2020\bin\win32\mktexmf Cannot find KaiTi/OT.mf.

name = KaiTi/OT, rootname = KaiTi/OT, pointsize = mktexmf: empty or non-existent rootfile!

kpathsea: Running mktexmf KaiTi/OT.mf The command name is D:\texlive2020\installfiles_texlive\texlive\2020\bin\win32\mktexmf Cannot find KaiTi/OT.mf.

name = SimSun/OT, rootname = SimSun/OT, pointsize = mktexmf: empty or non-existent rootfile!

kpathsea: Running mktexmf SimSun/OT.mf The command name is D:\texlive2020\installfiles_texlive\texlive\2020\bin\win32\mktexmf Cannot find SimSun/OT.mf.


出现错误

error日志如下:

行 101: Package fontspec Error: The font "SimSun" cannot be found. }
行 101: Package fontspec Error: The font "SimSun" cannot be found. }
行 101: Package fontspec Error: The font "SimSun" cannot be found. }
行 101: Package fontspec Error: The font "SimHei" cannot be found. }
行 101: Package fontspec Error: The font "SimHei" cannot be found. }
行 101: Package fontspec Error: The font "KaiTi" cannot be found. }
行 101: Package fontspec Error: The font "KaiTi" cannot be found. }
行 12: Font TU/SimSun(0)/m/n/10.53937=SimSun/OT at 10.53937pt not loadable: Metric (TFM) file or installed font not found. ^^I你
: Font "SimSun" does not contain requested Script(fontspec) "CJK".

解决方法:根据报错的文件,修改字体名字,使之与电脑上字体名字统一。

报错文件通常为:ctex-fontset-windows.def 或者 ctex-fontset-windowsnew.def。修改示例如下:

改动前:

\ctex_fontset_case:nnn
  {
    \ctex_zhmap_case:nnn
      {
        \ctex_punct_set:n { windows }
        \setCJKmainfont { simsun.ttc }
          [ BoldFont = simhei.ttf, ItalicFont = simkai.ttf ]
        \setCJKsansfont { msyh.\c__ctex_msyh_suffix_tl }
          [ BoldFont = msyhbd.\c__ctex_msyh_suffix_tl ]
        \setCJKmonofont { simfang.ttf }
        \setCJKfamilyfont { zhsong  } { simsun.ttc  }
        \setCJKfamilyfont { zhhei   } { simhei.ttf  }
        \setCJKfamilyfont { zhfs    } { simfang.ttf }
        \setCJKfamilyfont { zhkai   } { simkai.ttf  }
        \setCJKfamilyfont { zhyahei } { msyh.\c__ctex_msyh_suffix_tl }
          [ BoldFont = msyhbd.\c__ctex_msyh_suffix_tl ]
        \setCJKfamilyfont { zhli    } { simli.ttf   }
        \setCJKfamilyfont { zhyou   } { simyou.ttf  }
        \ctex_punct_map_family:nn   { \CJKrmdefault          } { zhsong   }
        \ctex_punct_map_bfseries:nn { \CJKrmdefault          } { zhhei    }
        \ctex_punct_map_itshape:nn  { \CJKrmdefault          } { zhkai    }
        \ctex_punct_map_family:nn   { \CJKsfdefault          } { zhyahei  }
        \ctex_punct_map_bfseries:nn { \CJKsfdefault, zhyahei } { zhyaheib }
        \ctex_punct_map_family:nn   { \CJKttdefault          } { zhfs     }
      }
      {
        \ctex_load_zhmap:nnnn { rm } { zhhei } { zhfs } { windows }
        \ctex_punct_set:n { windows }
        \ctex_punct_map_family:nn   { \CJKrmdefault } { zhsong }
        \ctex_punct_map_bfseries:nn { \CJKrmdefault } { zhhei  }
        \ctex_punct_map_itshape:nn  { \CJKrmdefault } { zhkai  }
      }
      { }
  }
  {
    \ctex_set_upfonts:nnnnnn
      { simsun.ttc                   }
      { simhei.ttf                   }
      { simkai.ttf                   }
      { msyh.\c__ctex_msyh_suffix_tl    }
      { msyhbd.\c__ctex_msyh_suffix_tl  }
      { simfang.ttf                  }
    \ctex_set_upfamily:nnn { zhsong  } { upzhserif   } {}
    \ctex_set_upfamily:nnn { zhhei   } { upzhserifb  } {}
    \ctex_set_upfamily:nnn { zhfs    } { upzhmono    } {}
    \ctex_set_upfamily:nnn { zhkai   } { upzhserifit } {}
    \ctex_set_upfamily:nnn { zhyahei } { upzhsans    } { upzhsansb }
    \ctex_set_upfamily:nnn { zhli    } { upschrm     } {}
    \ctex_set_upfamily:nnn { zhyou   } { upschgt     } {}
    \ctex_set_upmap:nnn { upstsl } { simli.ttf  } {}
    \ctex_set_upmap:nnn { upstht } { simyou.ttf } {}
  }
  {
    \setCJKmainfont   { SimSun } [ BoldFont = SimHei , ItalicFont = KaiTi ]
    \setCJKsansfont   { Microsoft~YaHei } [ BoldFont = *~Bold ]
    \setCJKmonofont   { FangSong }
    \setCJKfamilyfont { zhsong  } { SimSun          }
    \setCJKfamilyfont { zhhei   } { SimHei          }
    \setCJKfamilyfont { zhfs    } { FangSong        }
    \setCJKfamilyfont { zhkai   } { KaiTi           }
    \setCJKfamilyfont { zhyahei } { Microsoft~YaHei } [ BoldFont = *~Bold ]
    \setCJKfamilyfont { zhli    } { LiSu            }
    \setCJKfamilyfont { zhyou   } { YouYuan         }
  }
\NewDocumentCommand \songti   { } { \CJKfamily { zhsong  } }
\NewDocumentCommand \heiti    { } { \CJKfamily { zhhei   } }
\NewDocumentCommand \fangsong { } { \CJKfamily { zhfs    } }
\NewDocumentCommand \kaishu   { } { \CJKfamily { zhkai   } }
\NewDocumentCommand \lishu    { } { \CJKfamily { zhli    } }
\NewDocumentCommand \youyuan  { } { \CJKfamily { zhyou   } }
\NewDocumentCommand \yahei    { } { \CJKfamily { zhyahei } }
%% 
%%
%% End of file `ctex-fontset-windows.def'.

改动后:

\ctex_fontset_case:nnn
  {
    \ctex_zhmap_case:nnn
      {
        \ctex_punct_set:n { windows }
        \setCJKmainfont { simsun.ttc }
          [ BoldFont = simhei.ttf, ItalicFont = simkai.ttf ]
        \setCJKsansfont { msyh.\c__ctex_msyh_suffix_tl }
          [ BoldFont = msyhbd.\c__ctex_msyh_suffix_tl ]
        \setCJKmonofont { simfang.ttf }
        \setCJKfamilyfont { zhsong  } { simsun.ttc  }
        \setCJKfamilyfont { zhhei   } { simhei.ttf  }
        \setCJKfamilyfont { zhfs    } { simfang.ttf }
        \setCJKfamilyfont { zhkai   } { simkai.ttf  }
        \setCJKfamilyfont { zhyahei } { msyh.\c__ctex_msyh_suffix_tl }
          [ BoldFont = msyhbd.\c__ctex_msyh_suffix_tl ]
        \setCJKfamilyfont { zhli    } { simli.ttf   }
        \setCJKfamilyfont { zhyou   } { simyou.ttf  }
        \ctex_punct_map_family:nn   { \CJKrmdefault          } { zhsong   }
        \ctex_punct_map_bfseries:nn { \CJKrmdefault          } { zhhei    }
        \ctex_punct_map_itshape:nn  { \CJKrmdefault          } { zhkai    }
        \ctex_punct_map_family:nn   { \CJKsfdefault          } { zhyahei  }
        \ctex_punct_map_bfseries:nn { \CJKsfdefault, zhyahei } { zhyaheib }
        \ctex_punct_map_family:nn   { \CJKttdefault          } { zhfs     }
      }
      {
        \ctex_load_zhmap:nnnn { rm } { zhhei } { zhfs } { windows }
        \ctex_punct_set:n { windows }
        \ctex_punct_map_family:nn   { \CJKrmdefault } { zhsong }
        \ctex_punct_map_bfseries:nn { \CJKrmdefault } { zhhei  }
        \ctex_punct_map_itshape:nn  { \CJKrmdefault } { zhkai  }
      }
      { }
  }
  {
    \ctex_set_upfonts:nnnnnn
      { simsun.ttc                   }
      { simhei.ttf                   }
      { simkai.ttf                   }
      { msyh.\c__ctex_msyh_suffix_tl    }
      { msyhbd.\c__ctex_msyh_suffix_tl  }
      { simfang.ttf                  }
    \ctex_set_upfamily:nnn { zhsong  } { upzhserif   } {}
    \ctex_set_upfamily:nnn { zhhei   } { upzhserifb  } {}
    \ctex_set_upfamily:nnn { zhfs    } { upzhmono    } {}
    \ctex_set_upfamily:nnn { zhkai   } { upzhserifit } {}
    \ctex_set_upfamily:nnn { zhyahei } { upzhsans    } { upzhsansb }
    \ctex_set_upfamily:nnn { zhli    } { upschrm     } {}
    \ctex_set_upfamily:nnn { zhyou   } { upschgt     } {}
    \ctex_set_upmap:nnn { upstsl } { simli.ttf  } {}
    \ctex_set_upmap:nnn { upstht } { simyou.ttf } {}
  }
  {
    \setCJKmainfont   { simsun.ttc } [ BoldFont = simhei.ttf , ItalicFont = simkai.ttf ]
    \setCJKsansfont   { Microsoft~YaHei } [ BoldFont = *~Bold ]
    \setCJKmonofont   { FangSong }
    \setCJKfamilyfont { zhsong  } { simsun.ttc          }
    \setCJKfamilyfont { zhhei   } { simhei.ttf          }
    \setCJKfamilyfont { zhfs    } { FangSong        }
    \setCJKfamilyfont { zhkai   } { simkai.ttf           }
    \setCJKfamilyfont { zhyahei } { Microsoft~YaHei } [ BoldFont = *~Bold ]
    \setCJKfamilyfont { zhli    } { LiSu            }
    \setCJKfamilyfont { zhyou   } { YouYuan         }
  }
\NewDocumentCommand \songti   { } { \CJKfamily { zhsong  } }
\NewDocumentCommand \heiti    { } { \CJKfamily { zhhei   } }
\NewDocumentCommand \fangsong { } { \CJKfamily { zhfs    } }
\NewDocumentCommand \kaishu   { } { \CJKfamily { zhkai   } }
\NewDocumentCommand \lishu    { } { \CJKfamily { zhli    } }
\NewDocumentCommand \youyuan  { } { \CJKfamily { zhyou   } }
\NewDocumentCommand \yahei    { } { \CJKfamily { zhyahei } }
%% 
%%
%% End of file `ctex-fontset-windows.def'.

 

 

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
当出现错误信息:"package fontspec error: the font \"simsun\" cannot be found."时,意味着无法找到字体"simsun"。 "simsun" 是指宋体字体,通常在Windows操作系统默认安装的一个字体。该字体在TeX或LaTeX文档常用于中文排版。 出现这个错误可能有以下几种原因: 1. 未正确安装字体:"simsun" 字体可能没有正确安装在系统,或者在安装LaTeX发行版时该字体未被包含。在这种情况下,需要手动安装 "simsun" 字体。 2. 字体名称错误:有些操作系统字体名称可能与其他操作系统不同。在一些发行版,"simsun" 字体可能被命名为 "宋体",所以需要使用正确的字体名称来解决这个问题。 3. LaTeX环境配置错误:在某些LaTeX发行版,需要手动配置TeX系统以识别中文字体。这通常包括设置CJK(Chinese, Japanese, Korean,日韩)字体设置。确保LaTeX环境正确配置,以使其能够找到正确的中文字体。 为解决这个问题,可以尝试以下几个步骤: 1. 检查系统或LaTeX发行版的字体目录,确认是否包含 "simsun" 字体或类似的字体文件。 2. 确保在LaTeX文档顶部正确导入 "fontspec" 宏包,并设置中文字体为 "simsun" 或其他可用字体。 3. 在TeX系统配置文件添加正确的字体设置,以使系统能够正确识别和使用中文宋体字体。 通过以上步骤,应该能够解决 "package fontspec error: the font \"simsun\" cannot be found." 这个错误。如果问题仍然存在,可能需要进一步检查和配置系统环境以支持中文字体。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值