CTeX-org / ctex-kit

Macro Packages and Scripts for Chinese TeX users
972 stars 124 forks source link

伪粗体的设定 #568

Closed zoushucai closed 3 years ago

zoushucai commented 3 years ago

您好,请教两个问题, 第一个: 开启伪粗体使用 AutoFakeBold 选项,我看了说明,AutoFakeBold 默认值为0.4。请问,这个0.4 是指在原来的基础上加粗0.4吗?还有, 我想达到win中word的粗体大小(宋体),应该设置多少? (试验过, 同一个数值,在mac 中的大小 和 win中的粗体大小不一样,猜测应该是使用不同字体造成的, 故打印出来的粗细不一样)

第二个:我已设置在ctex中设置fontset=none。按照下面这样设置字体,正确吗? (PS: 我把win上的字体拷贝到了mac的当前目录下)

\let\lishu\relax % 清除旧定义
\let\songti\relax % 清除旧定义
\let\heiti\relax % 清除旧定义, 
\setCJKmainfont[Path=./fontset/,AutoFakeBold=0.4,AutoFakeSlant=0.4]{simsun.ttc}
\newCJKfontfamily\songti{simsun.ttc}[Path=./fontset/,AutoFakeBold=0.4]
\newCJKfontfamily\heiti{simhei.ttf}[Path=./fontset/,AutoFakeBold=0.4]
\newCJKfontfamily\lishu{SIMLI.TTF}[Path=./fontset/,AutoFakeBold=0.4]

不过有警告,应该是我有一个字体族没设置,请问如何解决

Unknown CJK family `\CJKsfdefault' is being ignored.
sikouhjw commented 3 years ago

第二个:我已设置在ctex中设置fontset=none。按照下面这样设置字体,正确吗? (PS: 我把win上的字体拷贝到了mac的当前目录下)

\let\lishu\relax % 清除旧定义
\let\songti\relax % 清除旧定义
\let\heiti\relax % 清除旧定义, 
\setCJKmainfont[Path=./fontset/,AutoFakeBold=0.4,AutoFakeSlant=0.4]{simsun.ttc}
\newCJKfontfamily\songti{simsun.ttc}[Path=./fontset/,AutoFakeBold=0.4]
\newCJKfontfamily\heiti{simhei.ttf}[Path=./fontset/,AutoFakeBold=0.4]
\newCJKfontfamily\lishu{SIMLI.TTF}[Path=./fontset/,AutoFakeBold=0.4]

你可以直接 fontset=windows,如果你不打算安装字体,设置字体参考 kpsewhich ctex-fontset-windows.def 或者 texdoc ctex, sec 14.15.2 预定义字库

不过有警告,应该是我有一个字体族没设置,请问如何解决

Unknown CJK family `\CJKsfdefault' is being ignored.

他是告诉你,你没有定义无衬线字体,解决方法同上

zoushucai commented 3 years ago

第二个:我已设置在ctex中设置fontset=none。按照下面这样设置字体,正确吗? (PS: 我把win上的字体拷贝到了mac的当前目录下)

\let\lishu\relax % 清除旧定义
\let\songti\relax % 清除旧定义
\let\heiti\relax % 清除旧定义, 
\setCJKmainfont[Path=./fontset/,AutoFakeBold=0.4,AutoFakeSlant=0.4]{simsun.ttc}
\newCJKfontfamily\songti{simsun.ttc}[Path=./fontset/,AutoFakeBold=0.4]
\newCJKfontfamily\heiti{simhei.ttf}[Path=./fontset/,AutoFakeBold=0.4]
\newCJKfontfamily\lishu{SIMLI.TTF}[Path=./fontset/,AutoFakeBold=0.4]

你可以直接 fontset=windows,如果你不打算安装字体,设置字体参考 kpsewhich ctex-fontset-windows.def 或者 texdoc ctex, sec 14.15.2 预定义字库

不过有警告,应该是我有一个字体族没设置,请问如何解决

Unknown CJK family `\CJKsfdefault' is being ignored.

他是告诉你,你没有定义无衬线字体,解决方法同上

谢谢,第二个问题解决了, 没办法,mac系统,把win的字体拷贝过来的, 发现自己的论文和别人的word不一样,太粗了,打印出来是一坨黑(当时设置的是3)。现在不知道理论上应该设置多少,后面试了2 ,效果还不错。

zepinglee commented 3 years ago

AutoFakeBold 默认是 EmboldenFactor,默认值是 4 不是 0.4。

我之前放大 PDF 比较过,AutoFakeBold = 3 相当于中易宋体在 Word 中的伪粗效果。

zoushucai commented 3 years ago

AutoFakeBold 默认是 EmboldenFactor,默认值是 4 不是 0.4。

我之前放大 PDF 比较过,AutoFakeBold = 3 相当于中易宋体在 Word 中的伪粗效果。

好的, 我去试试。 谢谢

muzimuzhi commented 3 years ago

试了一个 office 365 上加粗宋体后另存为的 PDF,伪粗部分用的是 2 Tr 0.4 w,也就是 0.4bp 的轮廓线宽。xeCJK 默认设置得到的是 2 Tr 0.399994 w,应该相差无几。

* 对压缩过的PDF,执行 mutool clean -ad input.pdf output.pdf文档)可获得 "editable" 的版本。以文本文件形式打开,搜索 BT 找到文本对象的开始……

zepinglee commented 3 years ago

诶?难道是我的 pdf 阅读器的渲染有误

zoushucai commented 3 years ago

打印下来看了,对于宋体好像粗细没感觉, 而黑体差距大,但是等于0.4 与0.2 感觉不出来,如果是3 就有差别了。。

muzimuzhi commented 3 years ago

请问,这个0.4 是指在原来的基础上加粗0.4吗?

@zoushucai 根据 https://github.com/CTeX-org/ctex-kit/issues/568#issuecomment-808716250 里的信息,

PDF 的屏幕阅读效果差异,可能受显示器、操作系统、字体、(la)tex 及其宏包、PDF 阅读器等多种因素影响,最好能提供相应的 pdf 文件(作为基准)。