forum icon indicating copy to clipboard operation
forum copied to clipboard

xeCJK:同一字体无法分别使用横排和竖排

Open zepinglee opened this issue 5 years ago • 3 comments

检查

  • [x] 已在 issues 中进行搜索(包括已关闭的问题)

编译环境

  • 操作系统

    • [ ] Windows 10
    • [ ] Windows 8/8.1
    • [ ] Windows 7
    • [ ] 更早版本的 Windows
    • [x] macOS
    • [ ] Linux(请附发行版)
  • TeX 发行版

    • [x] TeX Live 2020
    • [ ] MiKTeX
    • [ ] CTeX 套装 2.9.2.164
    • [ ] 更早版本的 CTeX 套装

描述问题

问题来源于尝试用仿宋在文档的不同位置分别使用横排和竖排。

\documentclass{article}
\usepackage{xeCJK}

\newCJKfontfamily\fangsong{FandolFang-Regular.otf}
\newCJKfontfamily\fangsongvert{FandolFang-Regular.otf}[RawFeature={vertical}]

\newcommand\testa{%
  \begingroup
    \fangsong
    劳仑衣普桑\par
  \endgroup
}

\newcommand\testb{%
  \begingroup
    \fangsongvert
    % \fangsong\addCJKfontfeatures*{RawFeature={vertical}}%
    认至将指点\par
  \endgroup
}

\begin{document}
\testa
\testb
\end{document}

编译的结果是 Screen Shot 2020-06-10 at 22 56 17

但是如果交换 \testa\textb 的位置,结果是: Screen Shot 2020-06-10 at 22 57 52

所以在同一字体上定义的两个命令,虽然设置了不同的 RawFeature,但是只有第一个才会启用。 那么有没有办法在两处分别使用横排和竖排?

zepinglee avatar Jun 10 '20 15:06 zepinglee

我将 FandolFang-Regular.otf 换成 macOS 的 STFangsong 居然正常工作: Screen Shot 2020-06-10 at 23 18 21 另外换成 Noto Serif CJK SC、Windows 的 FangSong 也正常,但是换成 FandolFang(文件名换成字体名) 却不行。

zepinglee avatar Jun 10 '20 15:06 zepinglee

应该是 XeTeX 的问题。

% !TeX program = XeTeX
% !TeX encoding = UTF-8

\font\fnth="[FandolFang-Regular.otf]"\relax
\font\fntv="[FandolFang-Regular.otf]:vertical"\relax

\fnth 劳仑衣普桑

\fntv 劳仑衣普桑

\bye

image

qinglee avatar Jun 10 '20 15:06 qinglee

这个问题应该已经修复了,我用 This is XeTeX, Version 3.141592653-2.6-0.999994 (TeX Live 2022) 这个版本的 xelatex 编译,效果是正确的。 图片

sikouhjw avatar Oct 15 '22 10:10 sikouhjw

这个问题应该已经修复了,我用 This is XeTeX, Version 3.141592653-2.6-0.999994 (TeX Live 2022) 这个版本的 xelatex 编译,效果是正确的。 图片

确实已经修复。

zepinglee avatar May 19 '23 07:05 zepinglee

没找到是哪个提交修复的…… https://github.com/TeX-Live/texlive-source/commits/trunk/texk/web2c/xetexdir

在 overleaf.com 上测试,

  • texlive 2020 (This is XeTeX, Version 3.14159265-2.6-0.999992 (TeX Live 2020)) 能复现
  • texlive 2021 (This is XeTeX, Version 3.141592653-2.6-0.999993 (TeX Live 2021)) 不能

XeTeX 0.999993 的主要修改是 opentype math kerning, https://github.com/TeX-Live/texlive-source/commit/026abdcdb1a7fde4a034ef2f9c2b2f621630c2e9 .

muzimuzhi avatar May 19 '23 07:05 muzimuzhi