Spec-Zone .ru
спецификации, руководства, описания, API
|
Прежде, чем часть текста может быть выведена на экран, это должно быть должным образом сформировано и расположило использование соответствующих глифов и лигатур. Этот процесс упоминается как текстовое расположение. Текстовый процесс расположения включает следующее:
Информация, используемая, чтобы разметить текст, также необходима для того, чтобы выполнить текстовые операции, такие как расположение каре, обнаружение хита, и выделение. См. Работу с Двунаправленным текстом для получения дополнительной информации об этих текстовых операциях.
Чтобы разработать программное обеспечение, которое может быть развернуто на мировых рынках, текст должен быть размечен на различных языках в пути, который соответствует правилам соответствующей системы письменности.
Этот раздел затрагивает следующие темы:
Глиф является визуальным представлением одного или более символов. Форма, размер, и позиция глифа зависят от его контекста. Много различных глифов могут использоваться, чтобы представить единственный символ или комбинацию символов, в зависимости от шрифта и стиля.
Например, в рукописном рукописном тексте, определенный символ может взять различные формы в зависимости от того, как это соединяется со смежными символами.
В некоторых системах письменности, особенно арабских, должен всегда приниматься во внимание контекст глифа. В отличие от этого на английском языке, рукописные формы обязательны на арабском языке; недопустимо представить текст, не используя рукописные формы.
В зависимости от контекста эти рукописные формы могут отличаться радикально по форме. Например, у арабской буквы heh есть четыре рукописных формы, показанные в следующем числе:
Хотя эти четыре формы очень отличаются от друг друга, такое рукописное изменение формы не существенно отличается от скорописи на английском языке.
В некоторых контекстах два глифа могут изменить форму еще более радикально и объединиться, чтобы сформировать единственного глифа. Этот тип объединенного глифа вызывают лигатурой. Например, большинство английских шрифтов содержит лигатуру fi показанный в следующем числе:
Объединенный глиф принимает во внимание нависающий край на букве f и комбинирует символы естественно выглядящим способом, вместо того, чтобы просто позволить буквам сталкиваться.
Лигатуры также используются на арабском языке, и использование некоторых лигатур обязательно; недопустимо представить определенные символьные комбинации, не используя соответствующую лигатуру. Когда лигатуры формируются из арабских символов, формы изменяются еще более радикально, чем они делают на английском языке. Например, следующее число иллюстрирует, как два арабских символа объединяются в единственную лигатуру, когда они появляются вместе.
В языке программирования Java текст кодируется, используя кодировку символов Unicode. Текст, который использует кодировку символов Unicode, сохранен в памяти в логическом порядке. Логический порядок является порядком, в котором символы и слова читаются и пишутся. Логический порядок является не обязательно тем же самым как визуальным порядком, порядком, в котором выводятся на экран соответствующие глифы.
Визуальный порядок на глифов в определенной системе письменности (сценарий) вызывают порядком сценария. Например, порядок сценария на римский текст слева направо и порядок сценария на арабский язык, и иврит справа налево.
У некоторых систем письменности есть правила в дополнение к порядку сценария на расположение глифов и слов на строках текста. Например, арабские и еврейские числа работают слева направо, даже при том, что буквы, выполненные справа налево. Это означает, что арабский и иврит, даже без встроенного английского текста, действительно двунаправлены. См. Работу с Двунаправленным текстом для получения дополнительной информации.
Если Вы не работаете с моноширинным шрифтом, у различных символов в шрифте есть различные ширины. Это означает, что все расположение и измерение текста должны принять во внимание точно, какие символы используются, не только сколько. Например, к выравниванию по правому краю столбец чисел, выведенных на экран в пропорциональном шрифте, невозможно просто использовать дополнительные пространства, чтобы расположить текст. Чтобы должным образом выровнять столбец, Вы должны знать точный width каждого числа так, чтобы можно было корректироваться соответственно.
Текст часто выводится на экран, используя многократные шрифты и стили, такой как полужирный или курсив. В этом случае даже у того же самого символа могут быть различные формы и ширины, в зависимости от того, как он разрабатывается. К должным образом позиции, мере, и представляют текст, Вы должны отследить каждый отдельный символ и стиль, которому применяются к тот символ. К счастью, TextLayout
class делает это для Вас.
Чтобы должным образом вывести на экран текст на языках, таких как иврит и арабский язык, каждый отдельный символ должен быть измерен и расположен в пределах контекста соседних символов. Поскольку формы и позиции символов могут измениться в зависимости от контекста, измеряясь и расположение такого текста, не принимая контекст во внимание приводят к недопустимым результатам.
Кроме того, Java SE предоставляет Вам FontMetrics
Font