Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MacOS 平台字体识别问题 #136

Closed
6 of 19 tasks
Cyan27 opened this issue Jan 20, 2021 · 15 comments
Closed
6 of 19 tasks

MacOS 平台字体识别问题 #136

Cyan27 opened this issue Jan 20, 2021 · 15 comments
Labels
I need help I want to get help from developers

Comments

@Cyan27
Copy link

Cyan27 commented Jan 20, 2021

系统信息

操作系统

  • Windows
  • MacOS
  • Linux/Docker
  • Overleaf

TeX套件

  • TeXLive 2020 或更新的版本
  • TeXLive 2019
  • TeXLive 2018 或更早的版本
  • MikTex

TeX Compiler

  • XeTeX
  • LuaTeX

zjuthesis

版本号:6.3.4

Degree:

  • graduate
    • master
    • doctor
  • undergraduate

Major:

  • general
  • cs
  • isee
  • math
  • physics

编译日志

遇到的问题

现在正文的字体为宋体,请问如何修改为仿宋?

截图

其他信息

@Cyan27 Cyan27 added the I need help I want to get help from developers label Jan 20, 2021
@TheNetAdmin
Copy link
Owner

截图和编译log

@Cyan27
Copy link
Author

Cyan27 commented Jan 20, 2021

是不是我的字体没有显示正确?

image

[Compiling /Users/cyan/git/PhD-Thesis/zjuthesis.tex]

Basic Builder: running xelatex...done.

No errors. Warnings:

/usr/local/texlive/2020/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-fandol.def: Package fontspec Warning: Font "FandolSong-Regular" does not contain requested(fontspec) Script "CJK".
/Users/cyan/git/PhD-Thesis/zjuthesis.tex: LaTeX Warning: Unused global option(s): [ Attacks and Defenses of Sound Sensing].
/Users/cyan/git/PhD-Thesis/zjuthesis.bbl: Package fontspec Warning: Font "FandolSong-Regular" does not contain requested(fontspec) Script "CJK".
/Users/cyan/git/PhD-Thesis/zjuthesis.tex:141: Package todonotes Warning: The length marginparwidth is less than 2cm and will most likely cause issues with the appearance of inserted todonotes. The issue can be solved by adding a line like \setlength {\marginparwidth }{2cm} prior to loading the todonotes package. on input line 141.
/Users/cyan/git/PhD-Thesis/page/graduate/cover-chn.tex: Package fontspec Warning: Font "FandolFang-Regular" does not contain requested(fontspec) Script "CJK".
/Users/cyan/git/PhD-Thesis/page/graduate/auth-claim.tex: Package fontspec Warning: Font "FandolKai-Regular" does not contain requested(fontspec) Script "CJK".
/Users/cyan/git/PhD-Thesis/body/graduate/chapter4.tex:275: LaTeX Font Warning: Font shape TU/FandolSong-Regular(1)/m/it' undefined(Font) using TU/FandolSong-Regular(1)/m/n' instead on input line 275.
/Users/cyan/git/PhD-Thesis/body/graduate/chapter4.tex:560: LaTeX Font Warning: Font shape U/wasy/b/n' in size <10.53937> not available(Font) size <10.95> substituted on input line 560. /Users/cyan/git/PhD-Thesis/body/graduate/chapter4.tex:560: LaTeX Font Warning: Font shape U/wasy/b/n' in size <7> not available(Font) Font shape U/wasy/m/n' tried instead on input line 560. /Users/cyan/git/PhD-Thesis/body/graduate/chapter5.tex: LaTeX Warning: h' float specifier changed to `ht'.
/Users/cyan/git/PhD-Thesis/body/graduate/chapter6.tex: Package fontspec Warning: Font "FandolFang-Regular" does not contain requested(fontspec) Script "CJK".
/Users/cyan/git/PhD-Thesis/zjuthesis.tex: LaTeX Font Warning: Size substitutions with differences(Font) up to 1.22pt have occurred.
/Users/cyan/git/PhD-Thesis/zjuthesis.tex: LaTeX Font Warning: Some font shapes were not available, defaults substituted.

/Users/cyan/git/PhD-Thesis/zjuthesis.log:1: Double-click here to open the full log.

[Done!]

@TheNetAdmin
Copy link
Owner

这是命令行输出吗?直接把log文件拖拽进来。

Doctor 的 general 版用的是仿宋字体,样例 pdf 中有相关效果。你尝试下载一个新的模板代码,不做任何修改,直接编译 doctor general 呢?

@Cyan27
Copy link
Author

Cyan27 commented Jan 20, 2021

zjuthesis.log

@Cyan27
Copy link
Author

Cyan27 commented Jan 20, 2021

直接编译模版有error,我当时是把fonts.tex里 % Windows or other platform 下面那段注释掉才不报错的

这是直接编译模版的log
zjuthesis.log

@TheNetAdmin
Copy link
Owner

直接编译模版有error,我当时是把fonts.tex里 % Windows or other platform 下面那段注释掉才不报错的

这是直接编译模版的log
zjuthesis.log

未经修改的原始模板的log中,1167行


! Package fontspec Error: The font "FangSong" cannot be found.

For immediate help type H <return>.
 ...                                              
                                                  
l.46 }

似乎 font.tex 没有正确识别你的操作系统,而使用了 FangSong 字体。

% Windows or other platform
\setCJKfamilyfont{zhfs} {FangSong} [AutoFakeBold={\FakeBoldSize}]

我看到你在用 MacOS,请问是什么版本呢?

以及在系统中是否能找到这个文件 /System/Library/Fonts/PingFang.ttc

临时的修复方式是将这里

\ifthenelse{\equal{\csname g__ctex_fontset_tl\endcsname}{mac}}
{
\IfFileExists{ /System/Library/Fonts/PingFang.ttc }
{
% MacOS El Capitan and later version
% https://github.com/CTeX-org/ctex-kit/issues/351
% Fonts
% Fix songti font invocation in `ctex` package on MacOS old version, to enable bold font
% Detailes in: https://github.com/TheNetAdmin/zjuthesis/issues/48
% Similar implementation: https://github.com/xueruini/thuthesis/blob/a86b0824da527268645571cc5fe3096d65a665b3/thuthesis.dtx#L1447-L1461
\setCJKfamilyfont{zhfs} {STFangsong} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhhei} {Heiti SC Light} [BoldFont={Heiti SC Medium}]
\setCJKfamilyfont{zhkai} {Kaiti SC} [BoldFont={Kaiti SC Bold}]
\setCJKfamilyfont{zhsong} {Songti SC Light} [BoldFont={Songti SC Bold}]
\setCJKmainfont[AutoFakeBold={\FakeBoldSize}]{STFangsong}
}
{
% Older MacOS
% Fonts
\setCJKfamilyfont{zhfs} {STFangsong} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhhei} {STHeiti} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhkai} {STKaiti} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhsong} {STSong} [AutoFakeBold={\FakeBoldSize}]
\setCJKmainfont[AutoFakeBold={\FakeBoldSize}]{STFangsong}
}
}
{
% Windows or other platform
\setCJKfamilyfont{zhfs} {FangSong} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhhei} {SimHei} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhkai} {KaiTi} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhsong} {SimSun} [AutoFakeBold={\FakeBoldSize}]
\setCJKmainfont[AutoFakeBold={\FakeBoldSize}]{FangSong}
}

根据你的 MacOS 版本,改为

    % MacOS El Capitan and later version
    % https://github.com/CTeX-org/ctex-kit/issues/351

    % Fonts
    %   Fix songti font invocation in `ctex` package on MacOS old version, to enable bold font
    %   Detailes in: https://github.com/TheNetAdmin/zjuthesis/issues/48
    %   Similar implementation: https://github.com/xueruini/thuthesis/blob/a86b0824da527268645571cc5fe3096d65a665b3/thuthesis.dtx#L1447-L1461
    \setCJKfamilyfont{zhfs}   {STFangsong}      [AutoFakeBold={\FakeBoldSize}]
    \setCJKfamilyfont{zhhei}  {Heiti SC Light}  [BoldFont={Heiti SC Medium}]
    \setCJKfamilyfont{zhkai}  {Kaiti SC}        [BoldFont={Kaiti SC Bold}]
    \setCJKfamilyfont{zhsong} {Songti SC Light} [BoldFont={Songti SC Bold}]
    
    \setCJKmainfont[AutoFakeBold={\FakeBoldSize}]{STFangsong}

    % Older MacOS
    % Fonts
    \setCJKfamilyfont{zhfs}   {STFangsong} [AutoFakeBold={\FakeBoldSize}]
    \setCJKfamilyfont{zhhei}  {STHeiti}    [AutoFakeBold={\FakeBoldSize}]
    \setCJKfamilyfont{zhkai}  {STKaiti}    [AutoFakeBold={\FakeBoldSize}]
    \setCJKfamilyfont{zhsong} {STSong}     [AutoFakeBold={\FakeBoldSize}]

    \setCJKmainfont[AutoFakeBold={\FakeBoldSize}]{STFangsong}

即只保留第一部分或者第二部分的字体设置,删除其余两个字体设置

@TheNetAdmin TheNetAdmin changed the title 修改正文字体 MacOS 平台字体识别问题 Jan 20, 2021
@TheNetAdmin
Copy link
Owner

以及尝试 tlmgr update --self --all 升级 TeXLive 之后,能否编译未经修改的模板代码呢?

@muzimuzhi
Copy link

直接编译模版有error,我当时是把fonts.tex里 % Windows or other platform 下面那段注释掉才不报错的

这是直接编译模版的log
zjuthesis.log

根据 log 文件第 47 行

Document Class: ctexrep 2019/05/29 v2.4.16 Chinese adapter for class report (CT
EX)

猜测是问题 CTeX-org/ctex-kit#455 ,升级 ctex 宏集到 v2.5.x 能解决问题。另见文章 [过时] [LaTeX 使用] 升级 macOS 10.15 后 ctex 文档不显示中文的临时方案

@Cyan27
Copy link
Author

Cyan27 commented Jan 21, 2021

我的系统版本是MacOS 11.1,系统中可以找到 /System/Library/Fonts/PingFang.ttc

通过手动删除fonts.tex里第二和三部分的字体设置可以让正文显示仿宋字体了,随后发现参考文献无法显示,通过tlmgr update --self --all可以解决。感谢! @TheNetAdmin

但是编译原模版的时候还是会出现相似的字体warning
zjuthesis.log

@muzimuzhi 谢谢,还没来得及试升级 ctex ,试过之后再update

@TheNetAdmin
Copy link
Owner

我的系统版本是MacOS 11.1,系统中可以找到 /System/Library/Fonts/PingFang.ttc

通过手动删除fonts.tex里第二和三部分的字体设置可以让正文显示仿宋字体了,随后发现参考文献无法显示,通过tlmgr update --self --all可以解决。感谢! @TheNetAdmin

但是编译原模版的时候还是会出现相似的字体warning
zjuthesis.log

@muzimuzhi 谢谢,还没来得及试升级 ctex ,试过之后再update

看编译日志的第一行,你的 TeX Live 似乎是 2019 版的,建议升级到 2020 看还有没有类似的问题

@Cyan27
Copy link
Author

Cyan27 commented Jan 21, 2021

看编译日志的第一行,你的 TeX Live 似乎是 2019 版的,建议升级到 2020 看还有没有类似的问题

tex --version显示是TeX 3.14159265 (TeX Live 2020),是2020版的吧?

log第一行是This is XeTeX, Version 3.14159265-2.6-0.999992 (TeX Live 2020) (preloaded format=xelatex 2021.1.21) 21 JAN 2021 12:42

我安装了2018和2020版的texlive,texlive utility里已设置默认版本是2020

@TheNetAdmin
Copy link
Owner

看编译日志的第一行,你的 TeX Live 似乎是 2019 版的,建议升级到 2020 看还有没有类似的问题

tex --version显示是TeX 3.14159265 (TeX Live 2020),是2020版的吧?

log第一行是This is XeTeX, Version 3.14159265-2.6-0.999992 (TeX Live 2020) (preloaded format=xelatex 2021.1.21) 21 JAN 2021 12:42

我安装了2018和2020版的texlive,texlive utility里已设置默认版本是2020

额刚刚在手机上看 log,似乎手机上选错文件了,你的这个确实已经是 2020 了

@cxzhou35
Copy link

直接编译模版有error,我当时是把fonts.tex里 % Windows or other platform 下面那段注释掉才不报错的
这是直接编译模版的log
zjuthesis.log

未经修改的原始模板的log中,1167行


! Package fontspec Error: The font "FangSong" cannot be found.

For immediate help type H <return>.
 ...                                              
                                                  
l.46 }

似乎 font.tex 没有正确识别你的操作系统,而使用了 FangSong 字体。

% Windows or other platform
\setCJKfamilyfont{zhfs} {FangSong} [AutoFakeBold={\FakeBoldSize}]

我看到你在用 MacOS,请问是什么版本呢?

以及在系统中是否能找到这个文件 /System/Library/Fonts/PingFang.ttc

临时的修复方式是将这里

\ifthenelse{\equal{\csname g__ctex_fontset_tl\endcsname}{mac}}
{
\IfFileExists{ /System/Library/Fonts/PingFang.ttc }
{
% MacOS El Capitan and later version
% https://github.com/CTeX-org/ctex-kit/issues/351
% Fonts
% Fix songti font invocation in `ctex` package on MacOS old version, to enable bold font
% Detailes in: https://github.com/TheNetAdmin/zjuthesis/issues/48
% Similar implementation: https://github.com/xueruini/thuthesis/blob/a86b0824da527268645571cc5fe3096d65a665b3/thuthesis.dtx#L1447-L1461
\setCJKfamilyfont{zhfs} {STFangsong} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhhei} {Heiti SC Light} [BoldFont={Heiti SC Medium}]
\setCJKfamilyfont{zhkai} {Kaiti SC} [BoldFont={Kaiti SC Bold}]
\setCJKfamilyfont{zhsong} {Songti SC Light} [BoldFont={Songti SC Bold}]
\setCJKmainfont[AutoFakeBold={\FakeBoldSize}]{STFangsong}
}
{
% Older MacOS
% Fonts
\setCJKfamilyfont{zhfs} {STFangsong} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhhei} {STHeiti} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhkai} {STKaiti} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhsong} {STSong} [AutoFakeBold={\FakeBoldSize}]
\setCJKmainfont[AutoFakeBold={\FakeBoldSize}]{STFangsong}
}
}
{
% Windows or other platform
\setCJKfamilyfont{zhfs} {FangSong} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhhei} {SimHei} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhkai} {KaiTi} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhsong} {SimSun} [AutoFakeBold={\FakeBoldSize}]
\setCJKmainfont[AutoFakeBold={\FakeBoldSize}]{FangSong}
}

根据你的 MacOS 版本,改为

    % MacOS El Capitan and later version
    % https://github.com/CTeX-org/ctex-kit/issues/351

    % Fonts
    %   Fix songti font invocation in `ctex` package on MacOS old version, to enable bold font
    %   Detailes in: https://github.com/TheNetAdmin/zjuthesis/issues/48
    %   Similar implementation: https://github.com/xueruini/thuthesis/blob/a86b0824da527268645571cc5fe3096d65a665b3/thuthesis.dtx#L1447-L1461
    \setCJKfamilyfont{zhfs}   {STFangsong}      [AutoFakeBold={\FakeBoldSize}]
    \setCJKfamilyfont{zhhei}  {Heiti SC Light}  [BoldFont={Heiti SC Medium}]
    \setCJKfamilyfont{zhkai}  {Kaiti SC}        [BoldFont={Kaiti SC Bold}]
    \setCJKfamilyfont{zhsong} {Songti SC Light} [BoldFont={Songti SC Bold}]
    
    \setCJKmainfont[AutoFakeBold={\FakeBoldSize}]{STFangsong}

    % Older MacOS
    % Fonts
    \setCJKfamilyfont{zhfs}   {STFangsong} [AutoFakeBold={\FakeBoldSize}]
    \setCJKfamilyfont{zhhei}  {STHeiti}    [AutoFakeBold={\FakeBoldSize}]
    \setCJKfamilyfont{zhkai}  {STKaiti}    [AutoFakeBold={\FakeBoldSize}]
    \setCJKfamilyfont{zhsong} {STSong}     [AutoFakeBold={\FakeBoldSize}]

    \setCJKmainfont[AutoFakeBold={\FakeBoldSize}]{STFangsong}

即只保留第一部分或者第二部分的字体设置,删除其余两个字体设置

您好,我也在Mac上遇到了这个问题,用的editor是vscode,查到了这个类似的issue故在此回复,主要问题是找不到字体

image

编译完后log文件好像被清除了,贴一点报错信息在这里:
image

@cxzhou35
Copy link

直接编译模版有error,我当时是把fonts.tex里 % Windows or other platform 下面那段注释掉才不报错的
这是直接编译模版的log
zjuthesis.log

未经修改的原始模板的log中,1167行


! Package fontspec Error: The font "FangSong" cannot be found.

For immediate help type H <return>.
 ...                                              
                                                  
l.46 }

似乎 font.tex 没有正确识别你的操作系统,而使用了 FangSong 字体。

% Windows or other platform
\setCJKfamilyfont{zhfs} {FangSong} [AutoFakeBold={\FakeBoldSize}]

我看到你在用 MacOS,请问是什么版本呢?

以及在系统中是否能找到这个文件 /System/Library/Fonts/PingFang.ttc

临时的修复方式是将这里

\ifthenelse{\equal{\csname g__ctex_fontset_tl\endcsname}{mac}}
{
\IfFileExists{ /System/Library/Fonts/PingFang.ttc }
{
% MacOS El Capitan and later version
% https://github.com/CTeX-org/ctex-kit/issues/351
% Fonts
% Fix songti font invocation in `ctex` package on MacOS old version, to enable bold font
% Detailes in: https://github.com/TheNetAdmin/zjuthesis/issues/48
% Similar implementation: https://github.com/xueruini/thuthesis/blob/a86b0824da527268645571cc5fe3096d65a665b3/thuthesis.dtx#L1447-L1461
\setCJKfamilyfont{zhfs} {STFangsong} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhhei} {Heiti SC Light} [BoldFont={Heiti SC Medium}]
\setCJKfamilyfont{zhkai} {Kaiti SC} [BoldFont={Kaiti SC Bold}]
\setCJKfamilyfont{zhsong} {Songti SC Light} [BoldFont={Songti SC Bold}]
\setCJKmainfont[AutoFakeBold={\FakeBoldSize}]{STFangsong}
}
{
% Older MacOS
% Fonts
\setCJKfamilyfont{zhfs} {STFangsong} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhhei} {STHeiti} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhkai} {STKaiti} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhsong} {STSong} [AutoFakeBold={\FakeBoldSize}]
\setCJKmainfont[AutoFakeBold={\FakeBoldSize}]{STFangsong}
}
}
{
% Windows or other platform
\setCJKfamilyfont{zhfs} {FangSong} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhhei} {SimHei} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhkai} {KaiTi} [AutoFakeBold={\FakeBoldSize}]
\setCJKfamilyfont{zhsong} {SimSun} [AutoFakeBold={\FakeBoldSize}]
\setCJKmainfont[AutoFakeBold={\FakeBoldSize}]{FangSong}
}

根据你的 MacOS 版本,改为

    % MacOS El Capitan and later version
    % https://github.com/CTeX-org/ctex-kit/issues/351

    % Fonts
    %   Fix songti font invocation in `ctex` package on MacOS old version, to enable bold font
    %   Detailes in: https://github.com/TheNetAdmin/zjuthesis/issues/48
    %   Similar implementation: https://github.com/xueruini/thuthesis/blob/a86b0824da527268645571cc5fe3096d65a665b3/thuthesis.dtx#L1447-L1461
    \setCJKfamilyfont{zhfs}   {STFangsong}      [AutoFakeBold={\FakeBoldSize}]
    \setCJKfamilyfont{zhhei}  {Heiti SC Light}  [BoldFont={Heiti SC Medium}]
    \setCJKfamilyfont{zhkai}  {Kaiti SC}        [BoldFont={Kaiti SC Bold}]
    \setCJKfamilyfont{zhsong} {Songti SC Light} [BoldFont={Songti SC Bold}]
    
    \setCJKmainfont[AutoFakeBold={\FakeBoldSize}]{STFangsong}

    % Older MacOS
    % Fonts
    \setCJKfamilyfont{zhfs}   {STFangsong} [AutoFakeBold={\FakeBoldSize}]
    \setCJKfamilyfont{zhhei}  {STHeiti}    [AutoFakeBold={\FakeBoldSize}]
    \setCJKfamilyfont{zhkai}  {STKaiti}    [AutoFakeBold={\FakeBoldSize}]
    \setCJKfamilyfont{zhsong} {STSong}     [AutoFakeBold={\FakeBoldSize}]

    \setCJKmainfont[AutoFakeBold={\FakeBoldSize}]{STFangsong}

即只保留第一部分或者第二部分的字体设置,删除其余两个字体设置

您好,我也在mac上遇到了这个问题,查找之后找到了这个相关的issue,故在此留言,我用的editor是vscode,texlive版本如下:
image

遇到的问题是找不到字体,log好像被清除了,贴一些报错在这里:
image

所有的中文字符都无法显示了:
image

如果需要更多信息请联系我指出,非常感谢!

@muzimuzhi
Copy link

@cxzhou35 你好,请

  • 避免在已经关闭有一阵的 issue 下回复,除非非常确定讨论的是完全相同的问题。建议开一个新的 issue。
  • 避免无重点地全文或大段引用之前的评论内容(让每个 issue 的滚动条增长得慢一些)。只引用确切相关的部分、加上自己的回复即可。
  • 不用回复我这条评论,直接开新 issue。

编译完后log文件好像被清除了,贴一点报错信息在这里:

可以修改 latex-workshop 插件的设置,停止清理文件。https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#catching-errors-and-warnings

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I need help I want to get help from developers
Projects
None yet
Development

No branches or pull requests

4 participants