Java Runtime Environment fonts (Русский) - ArchWiki

Jump to content
From ArchWiki

Ссылки по теме

- Шрифты
- Настройка шрифтов
- Шрифты Microsoft
- X Logical Font Description

Состояние перевода: На этой странице представлен перевод статьи Java Runtime Environment fonts. Дата последней синхронизации: 25 апреля 2019. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Некоторые пользователи могут заметить, что шрифты в приложениях Java отображаются неприятно. Доступно несколько методов, чтобы улучшить отображение шрифтов в приложениях, работающих с Java Runtime Environment (JRE). Эти методы могут использоваться по отдельности, но многие пользователи предпочтут использовать их вместе, чтобы получить лучший результат.

Для использования с Java лучшим поддерживаемым форматом шрифтов будет TrueType.

## Anti-aliasing (Сглаживание)

### Запуск демона xsettings

Java устанавливает свои настройки по умолчанию при помощи xsettings. В GNOME автоматически работает демон `gnome-settings-daemon`, но в качестве альтернативы можно использовать утилиту Xsettingsd.

### Базовые настройки

Сглаживание доступно с версии Java 1.6. Чтобы активировать его для всей системы, добавьте следующую строку в `/etc/environment`:

    _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=setting'

Где `setting` это одно из значений:

Установка | Описание
--- | ---
`off`, `false`, `default` | Без сглаживания
`on` | Полное сглаживание
`gasp` | Использовать встроенные в шрифт инструкции хинтинга
`lcd`, `lcd_hrgb` | Сглаживание настроенное для большинства популярных ЖК-мониторов
`lcd_hbgr`, `lcd_vrgb`, `lcd_vbgr` | Альтернативные настройки для ЖК-мониторов

Параметры `gasp` и `lcd` в большинстве случаев хорошо работают.

Чтобы приложения Java ощущались и выглядели как приложения, использующие GTK, используйте следующую строку:

    _JAVA_OPTIONS='-Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel'

Примечание:

- Описанные варианты работают только для приложений, которые используют графический интерфейс, основанный на Java, таких как например JDownloader, а не для приложений, которые используют Java только в качестве бэкэнда, как OpenOffice.org или Matlab.
- Шрифты TrueType содержат grid-fitting and scan-conversion procedure (GASP) — таблицу с рекомендациями дизайнера для отображения шрифта в разных размерах pt. Для некоторых размеров рекомендуется использовать полное сглаживание, другим требуется только хинтинг, а некоторые будут отображаться только в виде растровых изображений. Для некоторых размеров шрифта могут быть использованы комбинации.

Чтобы изменения вступили в силу, требуется выполнить перелогин, но можно указать переменную в командной строке перед выполнением, чтобы попробовать новую настройку сразу:

    _JAVA_OPTIONS=настройка java Main

### Патч OpenJDK

В результате сглаживание может выглядеть хуже нативных приложений, даже с опциями, но это может быть исправлено с помощью патча в OpenJRE, доступному в AUR:

- Исправленный OpenJRE 7 доступен как jre7-openjdk-infinalityAUR[ссылка недействительна: package not found]; используется с ключом `--enable-infinality=yes`
- Исправленный OpenJRE 8 доступен как jre8-openjdk-infinalityAUR[ссылка недействительна: package not found]

Исправленные версии хорошо сочетаются с патчами fontconfig и freetype, однако стоит заметить, что используют только API от fontconfig.

## Выбор шрифта

### Шрифты TrueType

Некоторые приложения Java могут требовать определенного шрифта TrueType. Эти приложения должны быть в курсе пути каталога с нужным шрифтом. TrueType шрифты устанавливаются в каталог `/usr/share/fonts/TTF`. Добавьте следующую строку в `/etc/environment` чтобы включить эти шрифты в приложениях.

    JAVA_FONTS=/usr/share/fonts/TTF

Перелогинтесь, чтобы изменения вступили в силу.

### Исправление Mojibake (для JRE8)

Поместите файлы шрифтов в подкаталог. Создайте каталог, если он не существует.

    $JAVA_HOME/jre/lib/fonts/fallback/

Этот функционал удалён начиная с Oracle JDK 9, так как Oracle посчитала это ошибкой, заставляющей пользователей перемещать каталог lib, и поэтому переместила эти файлы в каталог conf, назвав поведение до этого ошибочным. Вместо этого следует использовать вызов `sun.awt.FontConfiguration.getInstalledFallbackFonts()`, что заставит Java всегда добавлять шрифты оттуда в качестве запасной последовательности глифов — то есть не зависимо, какие шрифты запрашивает приложение, недостающие глифы этих шрифтов берутся из указанной директории.

## Смотрите также

- Font Configuration Files в руководстве по интернационализации приложений Java
- Font Configuration Files для Java 8

Category:

- Fonts (Русский)

Hidden category:

- Pages with broken package links