Способ выбора шрифта

Иллюстрации

Показать все

Изобретение относится к способам выбора шрифта, которые используют документы языка разметки для задания одного или нескольких критериев выбора. Способ выбора шрифта предусматривает: прием кода, указывающего, какой тип символа запрашивается компьютерной программой; направление информации, ассоциированной с установками принадлежности региону для клавиатуры, из операционной системы в модуль генерации глифов для использования в выборе шрифта для отображения, обращение к документу на расширяемом языке разметки, причем документ на расширяемом языке разметки связан с множеством файлов шрифтов; определение, на основе упомянутой направленной информации и содержания документа на расширяемом языке разметки, того, какой из множества шрифтов необходим компьютерной программе для показа символа типа, требуемого компьютерной программой, при этом если требуемый шрифт не доступен, использование резервного шрифта, заданного документом на расширяемом языке разметки. Для выполнения такого способа предусмотрен считываемый компьютером носитель, хранящий исполняемые компьютером команды. Способ определения, какой из множества шрифтов необходимо использовать в компьютерной программе, предусматривает: обращение к документу на расширяемом языке разметки, который определяет логическое условие для использования по меньшей мере одного шрифта из множества шрифтов; направление информации, ассоциированной с установками принадлежности региону для клавиатуры, из операционной системы в модуль генерации глифов для определения логического условия, для использования по меньшей мере одного шрифта из множества шрифтов, определение, удовлетворено ли упомянутое логическое условие, и, если логическое условие удовлетворено, извлечение глифа по меньшей мере одного шрифта, причем, если логическое условие не удовлетворено, использование заданного по умолчанию шрифта, заданного документом на расширяемом языке разметки. Для выполнения данного способа предусмотрен считываемый компьютером носитель, имеющий сохраняемые на нем исполняемые компьютером команды. Способ получения глифов из множества шрифтов предусматривает: направление информации, ассоциированной с установками принадлежности региону для клавиатуры, из операционной системы в модуль генерации глифов для определения логического условия, для использования в выборе одного или более шрифтов из множества шрифтов для отображения, обращение к документу на расширяемом языке разметки и направленной информации, которая определяет логическое условие для использования первого шрифта из множества шрифтов; определение, удовлетворено ли упомянутое логическое условие для использования первого шрифта из множества шрифтов; если упомянутое логическое условие для использования первого шрифта из множества шрифтов удовлетворено, то извлечение одного или нескольких глифов из первого шрифта; и, если упомянутое логическое условие для использования второго шрифта из множества шрифтов удовлетворено, извлечение одного или нескольких глифов из второго шрифта, причем, если упомянутые логическое условие для использования первого шрифта и логическое условие для второго шрифта не удовлетворены, использование заданного по умолчанию шрифта, заданного документом на расширяемом языке разметки. Для способа получения глифа из множества шрифтов предусмотрен считываемый компьютером носитель, имеющий сохраняемые на нем выполняемые компьютером команды. Считываемый компьютером носитель, имеющий сохраняемый на нем текст на языке разметки, причем текст на языке разметки содержит: данные, представляющие установки принадлежности региону для клавиатуры, для использования в выборе шрифтов для отображения, причем данные установок принадлежности региона для клавиатуры представляются из операционной системы в модуль генерации глифов, ссылку на первый шрифт в тексте на расширяемом языке разметки; данные, представляющие условие, при котором должен использоваться первый шрифт; масштабируемый коэффициент, который указывает, как размеры первого шрифта должны быть изменены, если удовлетворено условие, при котором должен использоваться первый шрифт, ссылку на второй шрифт в тексте на расширяемом языке разметки; и данные, представляющие условие, при котором должен использоваться второй шрифт. Изобретение позволяет разработчику шрифтов эффективным способом создавать международный шрифт с использованием нескольких предварительно существующих шрифтов и может применяться в распределенном вычислительном окружении, когда задания выполняются удаленными обрабатывающими устройствами, которые связаны через сеть связи. 7 н. и 12 з.п. ф-лы, 3 ил.

Реферат

ОБЛАСТЬ ТЕХНИКИ ИЗОБРЕТЕНИЯ

Изобретение, в общем, относится к способам выбора шрифта и более конкретно к способам выбора шрифта, которые используют документы языка разметки для задания одного или нескольких критериев выбора.

ПРЕДПОСЫЛКИ

Шрифтом является набор показываемых изображений, или «глифов», каждый из которых изображает букву, знак или символ. Каждый глиф может считаться компьютерным эквивалентом блока, типа используемого в печатной машине. Разработка шрифта является задачей квалифицированного, интенсивного труда. Художники-шрифтовики проводят много часов, рисуя каждый глиф в шрифте, и рассматривают не только форму самого глифа, но и то, как глиф будет выглядеть в вероятной комбинации с другими глифами. Хотя требуется разработка шрифта для единственного языка, разработка единственного шрифта, который предположительно охватывал бы множество языков, является даже более сложной. Например, шрифт для обыкновенного английского языка (США или Великобритания) может нуждаться менее чем в ста глифах, но шрифт для поддержки всех рукописных шрифтов, записанных на основе латинского алфавита, требует тысяч глифов. Подобным же образом, основной набор текста арабского языка может быть достигнут примерно сотней глифов, но набор всех языков, которые основаны на арабской системе письма, требует тысяч глифов. Многие другие системы письма, такие как кириллица, греческий язык, иврит и тайский язык, также использовались в качестве основы расширенных репертуаров глифов и таким образом обеспечивают подобное же требование в масштабе. Наконец, хотя и ограниченные в вариациях, восточно-азиатские рукописные шрифты, такие как китайский, японский и корейский, содержат десятки тысяч глифов. Таким образом, истинно международный шрифт требует порядка 50000-100000 глифов.

Для экономии памяти многие международные шрифты срезают углы, например, путем использования единственного глифа для множества письменных языков, даже если этот глиф является подходящим только для одного языка. Например, некоторые восточно-азиатские идеографические символы пишутся иначе людьми, говорящими на китайском языке, чем людьми, говорящими на японском языке. Однако система Юникода, которая образует основу для многих международных шрифтов, часто использует только один код для таких символов. Таким образом, художник-шрифтовик, который разрабатывает международный шрифт, может быть вынужден выбирать между построением китайской версии некоторого символа и построением японской версии этого символа. Кроме того, часто имеются стилистические различия между японскими и китайскими идеограммами, которые не объясняются Юникодом. Это представляет аналогичную проблему для художника-шрифтовика, так как хотя китайская и японская версия конкретной идеограммы могут быть одинаковыми в отношении числа и расположения штрихов, необязательно является подходящим представлять глиф из китайского шрифта в японском документе и наоборот.

Разработчик шрифтов может выбрать построение международного шрифта путем сбора вместе глифов из нескольких шрифтов единственной системы письма, позаботившись о соответствии цели международного шрифта и поддерживая глифы сбалансированными по весу и размеру. При подгонке шрифтов для этой цели разработчик шрифтов может найти, что некоторые группы систем письма имеют больше сходства, чем различий. Например, латинский, греческий рукописные шрифты и кириллица имеют много общих особенностей, таких как буквы верхнего и нижнего регистров, и использование стилей с засечками и без засечек. В противоположность этому, такие системы письма, как арабский язык, также имеют огромное разнообразие типографских стилей, хотя ни один не соответствует так непосредственно другим рукописным шрифтам, как это делают, например, латинский язык и кириллица. Таким образом, при создании ряда международных шрифтов для разнообразия целей разработчики шрифтов могут смешивать, и подбирать существующие шрифты различными способами, и даже встраивать шрифт для одной системы письма в несколько различных международных шрифтов. Например, шрифты «Arial» и «Times New Roman», используемые в продукции MICROSOFT®, содержат различные наборы латинских глифов, но используют один и тот же набор арабских глифов.

В итоге, разработчики международных шрифтов сталкиваются с множеством проблем при использовании современных способов разработки шрифтов. Одна проблема состоит в том, что затрачивается время на построение, тестирование и поддержание одних и тех же глифов во множественных шрифтах. Другая проблема состоит в том, что для правильной подгонки по размеру некоторые наборы глифов нуждаются в изменении размеров, что является дорогостоящим процессом. Еще одна проблема состоит в том, что количества глифов часто превышают максимум, допускаемый современными шрифтовыми технологиями (65536 для TrueType/OpenType). Наконец, как указывает предыдущее описание, представление одних и тех же глифов во множественных шрифтах избыточно затрачивает память.

Избыточно затрачиваемая память представляет особый интерес в контексте шрифтов принтеров. Большинство современных принтеров включают в себя встроенные шрифты. Таким образом, при использовании шрифта принтера компьютерной программе необходимо лишь посылать коды символов в принтер, а не посылать целые глифы. При использовании шрифта, не включенного в принтер, однако, компьютерной программе также необходимо загрузить этот шрифт в принтер. Это увеличивает размер временных файлов, создаваемых во время процесса печати, время, необходимое для печати документа на рабочей станции клиента, время, необходимое для передачи документа в принтер на сервере печати. Это также требует использования ценной памяти внутри принтера.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

В соответствии с вышеизложенным обеспечен способ для выбора шрифта. Согласно различным вариантам осуществления изобретения документ на языке разметки включает в себя правила для определения того, какой из множества шрифтов должен быть использован при заданном наборе обстоятельств. Документ языка разметки может также определять то, должны ли и как должны увеличиваться или уменьшаться глифы, полученные из выбранного шрифта. На определение того, какой шрифт должен использоваться, влияют такие факторы, как язык или информация о локализации, связанные с документом, в котором должен быть использован данный шрифт.

Согласно первому аспекту настоящего изобретения раскрыт способ выбора шрифта, содержащий этапы приема кода, указывающего, какой тип символа запрашивается компьютерной программой; направление информации, ассоциированной с установками принадлежности региону для клавиатуры, из операционной системы в модуль генерации глифов для использования в выборе шрифта для отображения; обращение к документу на расширяемом языке разметки, причем документ на расширяемом языке разметки связан с множеством файлов шрифтов; и определение, на основе упомянутой направленной информации и содержания документа на расширяемом языке разметки, того, какой из множества шрифтов необходим компьютерной программе для показа символа типа, требуемого компьютерной программой, при этом если требуемый шрифт не доступен, использование резервного шрифта, заданного документом на расширяемом языке разметки. При этом глиф, отображаемый.для представления символа, извлекают из необходимого шрифта и предоставляют его компьютерной программе и, возможно, принтеру.

Согласно второму аспекту настоящего изобретения раскрыт способ определения, какой из множества шрифтов необходимо использовать в компьютерной программе, содержащий этапы обращения к документу на расширяемом языке разметки, который определяет логическое условие для использования по меньшей мере одного шрифта из множества шрифтов; направления информации, ассоциированной с установками принадлежности региону для клавиатуры, из операционной системы в модуль генерации глифов для определения логического условия для использования по меньшей мере одного шрифта из множества шрифтов; определения, удовлетворено ли упомянутое логическое условие, и если логическое условие удовлетворено, извлечения глифа по меньшей мере одного шрифта, причем, если логическое условие не удовлетворено, использования заданного по умолчанию шрифта, заданного документом на расширяемом языке разметки. При этом глиф извлекается из шрифта, который является подходящим для языка, на котором написан документ.

Согласно следующему аспекту раскрыт способ получения глифов из множества шрифтов, предусматривающий этапы: направление информации, ассоциированной с установками принадлежности региону для клавиатуры, из операционной системы в модуль генерации глифов для использования в выборе одного или более шрифтов из множества шрифтов для отображения; обращение к документу на расширяемом языке разметки и направленной информации, которая определяет логическое условие для использования первого шрифта из множества шрифтов и логическое условие для использования второго шрифта из множества шрифтов; определение, удовлетворено ли упомянутое логическое условие для использования первого шрифта из множества шрифтов, и если упомянутое логическое условие для использования первого шрифта из множества шрифтов удовлетворено, извлечение одного или нескольких глифов первого шрифта; и, если упомянутое логическое условие для использования второго шрифта из множества шрифтов удовлетворено, 1 извлечение одного или нескольких глифов второго шрифта, причем, если упомянутые логическое условие для использования первого шрифта и логическое условие для использования второго шрифта не удовлетворены, использование заданного по умолчанию шрифта, заданного документом на расширяемом языке разметки.

Размер одного или нескольких глифов шрифтов изменяют на основе информации масштабирования, содержащейся в документе на языке разметки.

Согласно еще одному аспекту изобретения представлен считываемый компьютером носитель, имеющий сохраняемый на нем текст на расширяемом языке разметки и содержащий данные, представляющие установки принадлежности региону для клавиатуры, для использования в выборе шрифта для отображения, причем данные установок принадлежности региону для клавиатуры направляются из операционной системы в модуль генерации глифов; ссылку на первый шрифт в тексте на расширяемом языке разметки; данные, представляющие условие, при котором должен использоваться первый шрифт; масштабирующий коэффициент, который указывает, как размеры первого шрифта должны быть изменены, если удовлетворено условие, при котором должен быть использован первый шрифт, ссылку на второй шрифт в тексте на расширяемом языке разметки; и данные, представляющие условие, при котором должен использоваться второй шрифт. При этом условие для использования шрифта относится к диапазону, в который попадает значение Юникода печатаемого символа, или диапазону, в который попадает значение Юникода печатаемого символа, на языке, который предпочитает пользователь компьютера, или на языке, для которого установлен документ.

Кроме того, раскрыты считываемые компьютером носители данных, содержащие исполняемые компьютером команды для реализации способов согласно упомянутым аспектам изобретения.

Дополнительные аспекты изобретения очевидны из следующего подробного описания иллюстративных вариантов осуществления, которые приводятся со ссылкой на сопроводительные чертежи.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

Хотя прилагаемая формула изобретения излагает признаки данного изобретения в подробностях, изобретение может быть лучше всего понято из следующего подробного описания, взятого в связи с сопроводительными чертежами, в которых:

фиг.1 иллюстрирует пример компьютерной сети, в которой может применяться изобретение;

фиг.2 иллюстрирует пример компьютера, в котором могут быть реализованы по меньшей мере некоторые части изобретения;

фиг.3 иллюстрирует вариант осуществления изобретения.

ПОДРОБНОЕ ОПИСАНИЕ

Изобретение, в целом, относится к способу выбора шрифта, который использует документ на языке разметки для группировки множественных предварительно существующих шрифтов вместе в единое семейство шрифтов или «виртуальный шрифт». Документ на языке разметки включает в себя правила, рассматривающие условия, при которых должны использоваться индивидуальные шрифты в этом семействе. Это позволяет, например, разработчику шрифтов эффективным способом создавать международный шрифт с использованием нескольких предварительно существующих шрифтов.

Перед переходом к описанию различных вариантов осуществления изобретения сначала приводится описание компьютерного и сетевого окружения, в котором могут использоваться различные варианты осуществления изобретения. Хотя это и не требуется, данное изобретение может быть реализовано программами, которые выполняются компьютером. Обычно, программы включают в себя подпрограммы, объекты, компоненты, структуры данных и т.п., которые выполняют конкретные задачи или реализуют конкретные типы абстрактных данных. Термин «программа», используемый здесь, может иметь дополнительное значение единственного программного модуля или множества программных модулей, действующих совместно. Термин «компьютер», используемый здесь, включает в себя любое устройство, которое электронным способом выполняет одну или несколько программ, такое как персональные компьютеры (ПК), карманные устройства, многопроцессорные системы, основанные на микропроцессорах программируемые потребительские электронные схемы, сетевые ПК, миникомпьютеры, основные компьютеры, потребительские приспособления, имеющие микропроцессор или микроконтроллер, маршрутизаторы, шлюзы, концентраторы и т.п. Изобретение может также применяться в распределенном вычислительном окружении, когда задания выполняются удаленными обрабатывающими устройствами, которые связаны через сеть связи. В распределенном вычислительном окружении программы могут быть расположены как в локальных, так и в удаленных запоминающих устройствах.

Пример сетевого окружения (сетевой среды), в котором может быть использовано изобретение, описан со ссылкой на фиг. 1. Примерная сеть включает в себя несколько компьютеров 10, связанных друг с другом через сеть 11, представленную «облаком». Сеть 11 может включать в себя хорошо известные компоненты, такие как маршрутизаторы, шлюзы, концентраторы и т.д., и позволяет компьютерам 10 устанавливать связь через проводники или беспроводную связь. При взаимодействии друг с другом в сети 11 один или несколько компьютеров могут действовать как клиенты, серверы или одноранговые узлы сети по отношению к другим компьютерам. Соответственно, различные варианты осуществления изобретения могут использоваться на клиентах, серверах, одноранговых узлах сети или их комбинациях, даже хотя конкретные варианты, содержащиеся здесь, не ссылаются на все эти типы компьютеров.

На фиг. 2 показан пример основной конфигурации для компьютера, в которой могут быть реализованы все части изобретения, описываемого здесь. В своей наиболее основной конфигурации компьютер 10 обычно включает в себя по меньшей мере один процессор 14 и память 16. Процессор 14 выполняет команды для выполнения заданий в соответствии с различными вариантами осуществления изобретения. При выполнении таких заданий процессор 14 может передавать электронные сигналы к другим частям компьютера 10 и к устройствам вне компьютера 10 для получения некоторого результата. По меньшей мере некоторые из этих команд генерируются операционной системой 22. Операционная система 22 может включать в себя программы режима нескольких пользователей и программы режима ядра. В зависимости от точной конфигурации и типа компьютера 10 память 16 может быть энергозависимой (такой как ОЗУ), энергонезависимой (такой как ПЗУ или флэш-память) или некоторой комбинацией этих двух типов. Эта наиболее основная конфигурация показана на фиг. 2 пунктирной линией 18. Кроме того, компьютер может также характеризоваться дополнительными признаками/функциональными возможностями. Например, компьютер 10 может также включать в себя дополнительную память (такую как сменное устройство хранения 21 и/или несменное устройство хранения 23), включающую в себя магнитные или оптические диски или ленту, но не ограниченную ими. Компьютерный носитель записи включает в себя энергозависимые и энергонезависимые, сменные и несменные носители, реализованные в любом способе, или технологии для хранения информации, включая выполняемые компьютером команды, структуры данных, программные модули и другие данные. Компьютерный носитель записи включает в себя, не ограничиваясь этим, ОЗУ, ПЗУ, ЭСППЗУ, флэш-память, ПЗУ на компакт-диске, цифровой универсальный диск (DVD) или другую оптическую память, магнитные кассеты, магнитную ленту, память на магнитном диске, или другие магнитные запоминающие устройства, или любой другой носитель, который может использоваться для хранения желательной информации и который может быть доступен компьютеру 10. Любой такой компьютерный носитель записи может быть частью компьютера 10.

Компьютер 10 может также содержать соединения связи, которые позволяют устройству устанавливать связь с другими устройствами. Соединение связи является примером среды передачи данных. Среда передачи данных обычно воплощает в себя считываемые компьютером команды, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как сигнал несущей или в другой механизм переноса, и включает в себя любую среду распространения информации. Посредством примера, а не ограничения, среда передачи данных включает в себя проводную среду, такую как проводная сеть или прямое проводное соединение, и беспроводную среду, такую как акустическая, радиочастотная, инфракрасная и другие беспроводные среды. Термин «считываемый компьютером носитель», используемый здесь, включает в себя как компьютерный носитель записи, так и среду передачи данных.

Компьютер 10 может также иметь устройства ввода, такие как клавиатура 25, мышь, перо, устройство речевого ввода, устройство сенсорного ввода и т.д. Устройства вывода, такие как дисплей 20, громкоговорители, принтер 27 и т.д. могут также быть включены. Все эти устройства хорошо известны в данной области техники и не нуждаются в подробном обсуждении здесь.

Пример того, как множественные шрифты могут быть организованы в единственный виртуальный шрифт согласно варианту осуществления изобретения, описан со ссылкой на фиг. 3. В этом примере программа 26 автоматизированного проектирования (CAD) выполняется как прикладная программа в компьютере 10 (из фиг. 2), тогда как модуль 28 генерации глифов выполняется как часть операционной системы 22. Во время выполнения CAD программа 26 производит операции над CAD файлом 27, который содержит CAD документ вместе с информацией о свойствах, касающейся этого документа. Операционная система 22 получает данные относительно языка, на котором работает пользователь компьютера 10, и представляет эту информацию для модуля 28 генерации глифов. Операционная система 22 может получать информацию о языке пользователя из множества источников, но в этом примере предполагается, что операционная система определила язык пользователя на основе информации о свойствах, содержащейся в CAD файле 27. В других вариантах осуществления операционная система 22 может получать эту информацию из установки принадлежности региону для клавиатуры 25 (фиг. 2). Кроме того, когда пользователь ударяет по клавишам клавиатуры, операционная система 22 принимает ввод от клавиатуры 25, указывающей значение Юникода для каждого нажатия клавиши.

Модуль 28 генерации глифов генерирует глифы, которые должны быть показаны на дисплее 20. Модуль 28 генерации глифов получает эти глифы от одного или нескольких файлов шрифтов. Файлы шрифтов, такие как файлы шрифтов 32, 34, 36 и 38, показанные на фиг. 3, хранятся в памяти компьютера 10 (фиг. 2) и/или в памяти принтера 27. Для определения файла или файлов шрифтов, из которых необходимо получать глифы, модуль 28 генерации глифов детально анализирует файл 30 виртуального шрифта. Используя данные, которые он получил от операционной системы 22 (относительно языка, подлежащего показу), модуль 28 генерации глифов выбирает соответствующий файл шрифта из файла 30 виртуального шрифта. Модуль 28 генерации глифов затем получает соответствующие глифы из выбранного файла шрифта и отображает их на дисплее 20.

Когда документ должен быть напечатан на принтере 27, модуль 28 генерации глифов ведет себя несколько другим образом. В случае печати модуль 28 генерации глифов выбирает шрифт, подлежащий использованию, но фактически не генерирует глифы принтера. Вместо этого модуль 28 генерации глифов посылает название шрифта, который должен использоваться, к принтеру 27 вместе со значениями Юникода глифов, которые должны быть напечатаны, и любыми показателями (атрибутами), такими как данные масштабирования, которые необходимы. Если принтер 27 имеет файл шрифтов выбранного шрифта, хранимого в его памяти, то принтер 27 печатает глифы. Если, с другой стороны, принтер 27 не имеет правильного шрифта, то принтер 27 указывает на этот факт модулю 28 генерации глифов. Модуль 28 генерации глифов затем выбирает другой шрифт из файла 30 виртуальных шрифтов и посылает название заново выбранного шрифта к принтеру 27 вместе со значениями Юникода глифов, подлежащих печати, и любые требуемые данные масштабирования. Модуль 28 генерации глифов может повторять эту процедуру, пока он не найдет шрифт, которым владеет принтер 27, затем модуль 28 генерации глифов выбирает резервный шрифт, который определен в файле 30 виртуальных шрифтов и хранится в памяти компьютера 10. Модуль 28 генерации глифов затем извлекает соответствующие глифы резервного шрифта и посылает их к принтеру 27. В различных вариантах осуществления изобретения, резервный шрифт имеет глифы, которые имеют соответствующие размеры для печати на принтере 27.

В продолжение описания фиг. 3, файл 32 шрифтов Microsoft San Serif, файл 34 шрифтов Chinese (традиционный) #2, файл 36 шрифтов Math Symbol #5 и файл 38 шрифтов Japanese #10 хранятся в памяти 16, сменной памяти 21 и/или в несменяемой памяти 23 (фиг. 2). Файл 30 виртуальных шрифтов в этом примере был создан с целью показа латинских символов, традиционных китайских символов, японских символов и математических символов на интерфейсе пользователя CAD программы 26. Соответственно, автор CAD программы 26 выбрал эти четыре шрифта - Microsoft San Serif, Chinese (традиционный) #2, Math Symbol #5 и Japanese #10 - как наиболее подходящие шрифты, подлежащие использованию с этой целью. Каждый из файлов 32, 34, 36 и 38 шрифтов содержит набор глифов. Файл 30 виртуальных шрифтов содержит текст на языке разметки, имеющий команды, которые сообщают модулю 28 генерации глифов, когда и при каких условиях каждый из этих четырех шрифтов должен быть показан в CAD программе 26. В этом примере, предполагается, что файл 30 виртуальных шрифтов содержит следующий текст расширяемого языка разметки (XML):

Как указывают дескрипторы начала и окончания блока текста XML, файл 30 виртуальных шрифтов фактически содержит семейство шрифтов, которое включает в себя шрифты Microsoft San Serif, Chinese (традиционный) #2, Math Symbol #5 и Japanese #10. Первые три строки текста XML - с дескрипторами «Name» - включают в себя условные команды относительно того, какое название будет дано семейству шрифтов, представленному виртуальным файлом шрифтов 30. Например, строка <Name xml:lang="en-US"> name="MS International"</Name> указывает, что если языком пользователя является англо-американский («en-US»), то модуль 28 генерации глифов должен называть семейство шрифтов «MS international». Следующая строка

указывает, что если пользователь работает на китайско-тайваньском, то названием, данным виртуальному семейству шрифтов, должно быть

(что означает «международный» на китайском). Следующая строка

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

(что является японским произношением английского слова «international»). Название семейства шрифтов необязательно появляется перед пользователем CAD программы 26, но может появиться, например, если пользователь целенаправленно выбирает меню «Установки» для того, чтобы увидеть, какой шрифт используется.

Следующая строка, читаемая как <Range UnicodeRange="2200-22FF" TargetFontFamily="Math Symbol #5"/>, указывает модулю 28 генерации глифов, что если от клавиатуры принят символ, имеющий Юникод, попадающий в диапазон 2200-22FF, то шрифтом, подлежащим использованию для визуализации глифа, является шрифт Math Symbol #5. Следующие три строки задают шрифт, подлежащий использованию на основе языка пользователя. Например, если пользовательским языком письма является китайско-тайваньский язык, то шрифтом, подлежащим использованию, является шрифт Chinese #2 (традиционный). Если, с другой стороны, пользовательским языком письма является японский язык, то шрифтом, подлежащим использованию, является шрифт Japanese #10. С повторной ссылкой на блок текста XML, показанный выше, и на фиг. 3, следующая строка, читаемая как <Range xml:lang="en-US" UnicodeRange="4E00-9FAF" TargetFontFamily="Chinese (traditional) #2" size="1.1"/>, устанавливает два условия: одно, основанное на языке пользователя, и одно, основанное на значении Юникода нажатий клавиш. В этом случае, если языком пользователя является англо-американский язык и значение Юникода, генерируемое нажатием клавиши, попадает в диапазон 4Е00-9FAF (который представляет собой диапазон Юникода для унифицированного CJK - имеющий большинство из китайских, японских и корейских идеографических символов), то шрифтом, подлежащим использованию модулем 28 генерации глифов, является шрифт Chinese #2 (традиционный). Кроме того, размер глифов должен быть масштабирован вплоть до 110% от их первоначального размера. В этом примере, разработчик семейства шрифтов «MS International» определил, что для показа китайских, японских и корейских идеографических глифов вместе с символами прямого светлого шрифта Microsoft San Serif шрифт Chinese #2 (традиционный) с глифами, масштабированными до 110% от их первоначального размера, создает наиболее оптимальный визуальный эффект.

Строка, читаемая как <Range xml:lang="en-US" family="Microsoft San Serif"/>, указывает, что если пользователь работает на англо-американском языке, то будет использоваться шрифт Microsoft San Serif. Эта строка команд действует по умолчанию в случае, если соответствующим языком, подлежащим использованию, является англо-американский язык, но условия, заданные в предыдущих строках, не выполнены. Наконец, последней строкой перед дескриптором </FontFamily> является <Range TargetFontFamily="Arial"/>, которая определяет последний шрифт, подлежащий использованию заданный по умолчанию в случае, если не применяется ни одно из явных условий предыдущих строк.

С повторной ссылкой на фиг. 3 будет описан ряд сценариев, в которых модуль 28 генерации глифов генерирует глифы согласно варианту осуществления изобретения. В первом сценарии операционная система 22 определяет, что клавиатура 25 генерировала значение Юникода 0068, и передает это значение к модулю 28 генерации глифов. Операционная система 22 также информирует модуль 28 генерации глифов, что CAD файл 27 содержит документ, предназначенный для показа на англо-американском языке. Модуль 28 генерации глифов создает список 40 для работы в качестве кэша для глифов, подлежащих показу. Модуль 28 генерации глифов ссылается на файл 30 виртуальных шрифтов для определения того, как обращаться со значением Юникода 0068. На основе строки "<Range XML:Lang="en-US" family="Microsoft San Serif"/>" модуль 28 генерации глифов определяет, что правильным шрифтом для использования является шрифт Microsoft San Serif, который содержится в файле 32 шрифтов Microsoft Sans Serif. Модуль 28 генерации глифов ссылается на файл 32 шрифтов для нахождения глифа, соответствующего значению Юникода 0068. В этом случае таким глифом является - h -. Модуль 28 генерации глифов затем копирует глиф - h - в список 40 и связывает глиф со значением 0068. Модуль 28 генерации глифов затем передает этот глиф к операционной системе 22 для показа.

Во втором сценарии операционная система 22 определяет, что клавиатура 25 генерировала значение Юникода 2264, и передает это значение модулю 28 генерации глифов. Операционная система 22 также информирует модуль 28 генерации глифов, что CAD файл 27 содержит документ, предназначенный для показа на англо-американском языке. Модуль 28 генерации глифов ссылается на файл 30 виртуальных шрифтов для определения того, как обращаться со значением Юникода 2264. На основе строки "<Range UnicodeRange="2200-22FF" family="Math Symbol #5"/>"модуль 28 генерации глифов определяет, что правильным шрифтом для использования является шрифт Math Symbol #5, который содержится в файле 36 шрифтов Math Symbol #5. Модуль 28 генерации глифов ссылается на файл 36 шрифтов для нахождения глифа, соответствующего значению Юникода 2264. В этом случае, этим глифом является - ≤ -. Модуль 28 генерации глифов затем копирует глиф - ≤ - в список 40 и связывает этот глиф со значением 2264. Модуль 28 генерации глифов затем передает этот глиф операционной системе 22 для показа.

В третьем сценарии, операционная система 22 определяет, что клавиатура 25 генерировала значение Юникода 76F4, и передает это значение модулю 28 генерации глифов. Операционная система 22 также информирует модуль 28 генерации глифов, что CAD файл 27 содержит документ, предназначенный для показа на китайско-тайваньском языке. Модуль 28 генерации глифов ссылается на файл 30 виртуальных шрифтов для определения, как обращаться со значением Юникода 76F4. На основе строки "<Range XML:Lang="ch-TW" family="Chinese (traditional) #2"/>" модуль 28 генерации глифов определяет, что правильным шрифтом для использования является шрифт Chinese #2 (традиционный), который содержится в файле 34 шрифтов Chinese #2 (традиционный). Модуль 28 генерации глифов ссылается на файл 34 шрифтов для нахождения глифа, соответствующего значению Юникода 76F4. В этом случае этим глифом является Этот конкретный глиф представляет собой идеограмму для понятия «ровный», «прямой» или «честный». Модуль 28 генерации глифов затем копирует этот глиф в список 42 и связывает этот глиф со значением 76F4. Модуль 28 генерации глифов затем передает глиф операционной системе 22 для показа.

В четвертом сценарии операционная система определяет, что клавиатура 25 генерировала значение Юникода 76F4, и передает это значение модулю 28 генерации глифов. Операционная система 22 также информирует модуль 28 генерации глифов, что CAD файл 27 содержит документ, предназначенный для показа на японском языке. Модуль 28 генерации глифов ссылается на файл 30 виртуальных шрифтов для определения, как обращаться со значением Юникода 76F4. На основе строки "<Range XML:Lang="jp" family="Japanese #10"/>" модуль 28 генерации глифов определяет, что правильным шрифтом для использования является шрифт Japanese #10, который содержится в файле 38 шрифтов Japanese #10. Модуль 28 генерации глифов ссылается на файл 34 шрифтов для нахождения глифа, соответствующего значению Юникода 76F4. В этом случае этим глифом является Этот глиф представляет собой идеограмму для понятия «прямой», но визуализируется в своем японском варианте. Модуль 28 генерации глифов затем копирует этот глиф в список 44 и связывает этот глиф со значением 76F4. Модуль 28 генерации глифов затем передает глиф к операционной системе 22 для показа.

Таким образом, может быть видно, что был обеспечен новый и полезный способ для выбора шрифта. Ввиду многих возможных вариантов, к которым могут быть применены принципы данного изобретения, следует признать, что варианты осуществления, описанные здесь по отношению к чертежу, понимаются как только иллюстративные, а не должны пониматься как ограничивающие объем изобретения. Например, специалистам в данной области техники будет понятно, что элементы иллюстрированных вариантов осуществления, показанные в программном обеспечении, могут быть реализованы в аппаратном обеспечении, и наоборот, или что иллюстрированные варианты осуществления могут быть модифицированы в схеме организации и подробностях без выхода за рамки сущности изобретения. Следовательно, описанное здесь изобретение рассматривает все такие варианты, которые могут появиться в пределах объема следующей формулы изобретения и ее эквивалентов.

1. Способ выбора шрифта, причем этот способ предусматривает прием кода, указывающего, какой тип символа запрашивается компьютерной программой; направление информации, ассоциированной с установками принадлежности региону для клавиатуры, из операционной системы в модуль генерации глифов для использования в выборе шрифта для отображения, обращение к документу на расширяемом языке разметки, причем документ на расширяемом языке разметки связан с множеством файлов шрифтов; определение на основе упомянутой направленной информации и содержания документа на расширяемом языке разметки того, какой из множества шрифтов необходим компьютерной программе для показа символа типа, требуемого компьютерной программой, при этом если требуемый шрифт не доступен, использование резервного шрифта, заданного документом на расширяемом языке разметки.

2. Способ по п.1, дополнительно предусматривающий извлечение глифа из шрифта, который определен как необходимый, в котором глиф является отображаемым для представления символа.

3. Способ по п.1, дополнительно предусматривающий извлечение глифа из шрифта, который определен как необходимый, и

предоставление этого глифа компьютерной программе.

4. Способ по п.1, в котором компьютерная программа выполняется на компьютере, причем в этом способе дополнительно этап определения того, какой из множества шрифтов является необходимым для компьютерной программы, предусматривает определение на основе определенного языка того, какой из множества шрифтов является необходимым для компьютера.

5. Способ по п.1, дополнительно предусматривающий посылку информации относительно определенного шрифта к принтеру.

6. Считываемый компьютером носитель, хранящий исполняемые компьютером команды для выполнения способа по п.1.

7. Способ определения того, какой из множества шрифтов необходимо использовать в компьютерной программе, причем этот способ предусматривает обращение к документу на расширяемом языке разметки, который определяет логическое условие для использования по меньшей мере одного шрифта из множества шрифтов; направление информации, ассоциированной с установками принадлежности региону для клавиатуры, из операционной системы в модуль генерации глифов для определения логического условия, для использования по меньшей мере одного шрифта из множества шрифтов, определение, удовлетворено ли упомянутое логическое условие, и если логическое условие удовлетворено, извлечение глифа по меньшей мере одного шрифта, причем, если логическое условие не удовлетворено, использование заданного по умолчанию шрифта, заданного документом на расширяемом языке разметки.

8. Способ по п.7, в котором программа выполняется на компьютере, логическое условие относится к языку, на котором написан документ, и глиф извлекается из шрифта, который является подходящим для этого языка.

9. Способ по п.7, в котором программа взаимодействует с пользователем, который использует компьютер, где документ на расширяемом языке разметки задает шрифт, который должен быть использован, если определено, что пользователь взаимодействует с компьютером с использованием конкретного языка написания, причем этот способ дополнительно предусматривает определение того, что пользователь использует конкретный язык, и

выполнение стадии поиска в ответ на стадию определения.

10. Способ по п.7, в котором компьютерная программа взаимодействует с пользователем, который использует компьютер, причем этот способ дополнительно предусматривает обеспечение глифа