Как центрировать пунктуацию в вертикальном тексте CJK? - PullRequest
0 голосов
/ 18 февраля 2019

У меня текст CJK (китайский) отображается вертикально с использованием CSS (body { writing-mode: vertical-rl; }).К сожалению, пунктуация по умолчанию не центрирована:

Chinese punctuation

Точки с запятой и запятые выровнены по верхнему правому краю, а не по центру.Я получаю одинаковый результат в Firefox 65.0 и Chromium 71.0.

Существует ли установленный метод центрирования знаков препинания?Я чувствую, что, должно быть, упускаю что-то очевидное.Мои физические книги на китайском языке напечатаны с центрированной пунктуацией, и все же чтение статьи W3C по вертикальному тексту , а документация MDN CSS ничего не дала о центрировании пунктуации для вертикальных текстов CJK.

1 Ответ

0 голосов
/ 18 февраля 2019

Похоже, что на выравнивание знаков препинания влияет атрибут языка lang;на китайском, например, это зависит от того, является ли значение атрибута простым "zh" или традиционным "zh-Hant".

Firefox screenshot

Вот документ HTMLРаньше я проверял его (мне приходилось сокращать текст на китайском, чтобы иметь возможность публиковать его в строке):

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Test Vertical Writing Punctuation</title>
    <style>
        body { writing-mode: vertical-rl; }
        .vertical-text { height: 9em; }
    </style>
</head>
<body>
<hr>
<div class="vertical-text" lang="zh">
「體也若有端」五字,張惠言謂為第二條之錯簡,孫從之。
</div>
<hr>
<div class="vertical-text" lang="zh-Hant">
「體也若有端」五字,張惠言謂為第二條之錯簡,孫從之。
</div>
<hr>
</body>
</html>

Кстати, я абсолютно не представляю, что означает текст на китайском, который я скопировал со случайногоsite ...

ОБНОВЛЕНИЕ :

Согласно Best Practices для китайской раскладки - Бобби Тунг , кажется, что китайская пунктуация центрируется только в том случае, еслитекст отображается шрифтом на традиционном китайском независимо от режима записи (горизонтальный или вертикальный).

Веб-браузеры, такие как Firefox или Safari, учитывают атрибут lang и автоматически присваивают соответствующийшрифт для отображения;кажется, однако, что Chrome игнорирует это.Затем требуется дополнительный CSS-селектор lang ...

Вот еще одна тестовая страница с центрированной пунктуацией как для горизонтального, так и для вертикального текста:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Test Centered Punctuation</title>
    <style>
        :lang(zh-Hant) { font-family: Verdana, Arial, Helvetica, sans-serif, times, Heiti TC, PMingLiU, PMingLiu-ExtB, SimSun, SimSun-ExtB, HanaMinA, HanaMinB; }
        .horizontal-text { width: 9em; writing-mode: horizontal-tb; }
        .vertical-text { height: 9em; writing-mode: vertical-rl; }
    </style>
</head>
<body lang="zh-Hant">
<hr>
<div class="horizontal-text">
「體也若有端」五字,張惠言謂為第二條之錯簡,孫從之。
</div>
<hr>
<div class="vertical-text">
「體也若有端」五字,張惠言謂為第二條之錯簡,孫從之。
</div>
<hr>
</body>
</html>

Примечание: стек шрифтов для традиционного китайскогоэто тот, который используется на веб-сайте Проекта китайского текста.

enter image description here

...