CTeX-org / ctex-kit

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

zhlineskip:字体笔形问题 #529

Closed tanukihee closed 4 years ago

tanukihee commented 4 years ago

zhlineskip 文档中,字体定义如下 https://github.com/CTeX-org/ctex-kit/blob/86c31c8e42ac9bcdcb0cae060aa7d3d4f87a825e/zhlineskip/zhlineskip.tex#L63-L67

使用思源黑体简中版本,但在实际效果上,Heavy 字重与 Bold、Medium 字重的笔形并不相同,试举例如下 Bold 字重: image Heavy 字重: image image 注意「西」的倒数第二笔,「文」的起笔,「距」的最后一笔

而使用地区版本与 OTC 版本均无法复现该问题

\documentclass{ctexart}

\setCJKmainfont{思源宋体 CN}
[
    UprightFont = * Medium,
    BoldFont = * Bold,
    ItalicFont = * Heavy,
    Language = Chinese Simplified 
]
\begin{document}

西文行距

\textbf{西文行距}

\emph{西文行距}

\end{document}

image

\documentclass{ctexart}

\setCJKmainfont{思源宋体}
[
    UprightFont = * Medium,
    BoldFont = * Bold,
    ItalicFont = * Heavy,
    Language = Chinese Simplified 
]
\begin{document}

西文行距

\textbf{西文行距}

\emph{西文行距}

\end{document}

image

RuixiZhang42 commented 4 years ago

「文」(U+6587)字第一笔的「竖点」的确不是大陆规范的写法。这个纯粹是本地字体文件的问题。官方的简中版本皆映射U+6587到第20481个glyph,第一笔是「斜点」。

https://github.com/adobe-fonts/source-han-serif/tree/release/OTF/SimplifiedChinese

\documentclass{article}
\usepackage{fontspec}
\begin{document}

\fontspec{[SourceHanSerifSC-Regular.otf]}[
  Script=CJK Ideographic,
  Language=Chinese Simplified
]
\char"6587 %

\fontspec{[SourceHanSerifSC-Heavy.otf]}[
  Script=CJK Ideographic,
  Language=Chinese Simplified
]
\char"6587 %

\end{document}

6587

RuixiZhang42 commented 4 years ago

LOL,另外发现 fontspec 居然开始允许必有变量和可选变量之间可以有空格或者换行了……之前是不可以的……

\setCJKmainfont{思源宋体} % <- 之前在这里换行,会在此处加空格,从而读取不到后续的可选参数
[
    UprightFont = * Medium,
    BoldFont = * Bold,
    ItalicFont = * Heavy,
    Language = Chinese Simplified 
]
tanukihee commented 4 years ago

还真是我本地的问题,而且现在打开已经没有了😓……像做梦一样

stone-zeng commented 4 years ago

LOL,另外发现 fontspec 居然开始允许必有变量和可选变量之间可以有空格或者换行了……之前是不可以的……

这个是两年前 xparse 做的修改:https://github.com/latex3/latex3/commit/63d4fba4e16fa6b0bae0dcfcd22be19c2650f14f

muzimuzhi commented 4 years ago

LOL,另外发现 fontspec 居然开始允许必有变量和可选变量之间可以有空格或者换行了……之前是不可以的……

这个是两年前 xparse 做的修改:latex3/latex3@63d4fba

xparse 在「是否忽略可选参数前的空格」的问题上有过反复,tcolorbox 的文档(sec. 23.4)里有小结,见 https://github.com/T-F-S/tcolorbox/blob/3957996cabb0e840cd1a077c28dd59d3a60d4332/doc/latex/tcolorbox/tcolorbox.doc.xparse.tex#L405-L418