專利名稱:選擇字體的方法
技術領域:
本發(fā)明一般地涉及字體選擇技術,尤其涉及使用標記語言文檔來定義一種或多種選擇準則的字體選擇技術。
背景技術:
一種字體是一組可顯示的圖象,或“圖示符”,每個圖示符描繪一個字母,字符或符號。每個圖示符可以認為是用于印刷機的一塊鉛字的計算機時代的等價物。開發(fā)一種字體是一項需要技能的,勞動密集的工作。排印工人花費許多小時用手工精心制作字體中的每個圖示符,并且不僅考慮圖示符本身的形狀,而且考慮在與其它圖示符的任何可能組合中字符將看起來如何。雖然開發(fā)一種單語言的字體是有挑戰(zhàn)性的,開發(fā)一種單字體,期望其覆蓋多種語言更加困難。例如,一種純英語(US或UK)字體可能需要少于一百個圖示符,但是一種支持用基于拉丁文的字母表書寫的所有書寫體字母的字體需要成千上萬個圖示符。類似地,阿拉伯語的基本排字可以用大約一百個圖示符來實現(xiàn),但是設置基于阿拉伯語寫入系統(tǒng)的所有語言需要成千上萬個圖示符。許多其它的寫入系統(tǒng),例如西里爾字母,希臘語,希伯來語和泰國語,也被用作擴展圖示符庫的主要部分,從而在規(guī)模上給出類似的難題。最后,雖然在變化上有限,東亞書寫體字母,例如中文,日文和韓文,包含幾萬個圖示符。因此,一種真正的國際字體需要50,000~100,000圖示符的數(shù)量級。
為了節(jié)省存儲,許多國際字體用最簡捷經(jīng)濟的方式,例如,通過對多種文字使用單圖示符,即使該圖示符僅適合于一種語言。例如,一些東亞表意字符由講中文的人和由講日文的人寫出來是不同的。但是,統(tǒng)一字符編碼標準系統(tǒng),其形成許多國際字體的基礎,經(jīng)常對這些字符僅使用一個編碼。因此,開發(fā)一種國際字體的排印工人可能不得不在構(gòu)造一個字符的中文形式或者構(gòu)造該字符的日文形式之間選擇。而且,在沒有由統(tǒng)一字符編碼標準說明的日文和中文表意文字之間,經(jīng)常有格式上的差別。這對于排印工人提出類似的問題,因為即使個別表意文字的中文和日文形式可能在筆劃的數(shù)目和排列方面相同,但是在日文文檔中出現(xiàn)中文字體的圖示符不一定是適當?shù)模粗嗳弧?br>
字體開發(fā)者可能選擇通過從幾種單寫入系統(tǒng)字體中將圖示符收集到一起,注意符合國際字體的目的并保持圖示符在粗細和尺寸上的平衡來構(gòu)造一種國際字體。當出于這一目的匹配字體時,字體開發(fā)者可以發(fā)現(xiàn),一些組的寫入系統(tǒng)具有更多的相似處而不是差別。例如,拉丁文,希臘語和西里爾書寫體字母共享許多特征,例如大小寫字母,以及襯線和無襯線風格的使用。相反地,寫入系統(tǒng)例如阿拉伯語也具有大量的排印風格,雖然不象例如拉丁文和西里爾字母那樣與其它書寫體字母直接對應。因此,當出于多種目的創(chuàng)造一定范圍的國際字體時,字體開發(fā)者可以用不同的方式調(diào)配并匹配現(xiàn)有的字體,甚至將單寫入系統(tǒng)的字體并入幾種不同的國際字體。例如,用于MICROSOFT_產(chǎn)品中的‘Arial’和‘Times New Roman’字體包含不同的拉丁文圖示符集,但是使用相同的阿拉伯文圖示符集。
總而言之,當使用現(xiàn)有字體開發(fā)技術時,國際字體開發(fā)者面臨許多問題。一個問題是時間花費在構(gòu)造,測試保持相同的圖示符到多種字體中。另一個問題是,為了在尺寸上正確匹配,一些圖示符集需要調(diào)整大小,這通常是昂貴的工序。還有一個問題是圖示符數(shù)目經(jīng)常超出現(xiàn)有字體技術所允許的最大值(對于TrueType/OpenType是65535)。最后,如前面討論所指出的,在多種字體中提供相同的圖示符浪費存儲。
浪費的存儲在打印機字體環(huán)境中具有特殊的意義。大部分當今打印機包含內(nèi)置字體。因此,當使用打印機字體時,計算機程序僅需要向打印機發(fā)送字符編碼,而不是發(fā)送整個圖示符。但是,當使用不包含于打印機中的字體時,計算機程序也需要將字體下載到打印機。這增加了在打印過程中創(chuàng)建的臨時文件的大小,在客戶工作端打印文檔所需的時間,將文檔傳送到在打印服務器的打印機上所需的時間。這也消耗打印機內(nèi)部的寶貴存儲。
發(fā)明內(nèi)容
根據(jù)前述,在這里給出一種用于選擇字體的方法。根據(jù)本發(fā)明的各種實施方案,標記語言文檔包括用于確定多種字體中哪種字體在給定的一組環(huán)境中使用的規(guī)則。標記語言文檔也可以定義從所選字體獲得的圖示符是否或如何放大或縮小。確定使用哪種字體受這樣一些因素例如語言和與使用該字體的文檔相關聯(lián)的區(qū)域信息的影響。
本發(fā)明另外的方面將從下面參考附圖進行的說明性實施方案的詳細描述中變得明白。
雖然附加的權(quán)利要求書詳細陳述本發(fā)明的特征,本發(fā)明可以從下面結(jié)合附圖的詳細描述中最好地理解,其中圖1說明計算機網(wǎng)絡的一個實例,本發(fā)明可以在該計算機網(wǎng)絡中實施;圖2說明計算機的一個實例,至少本發(fā)明的一些部分可以在該計算機上實現(xiàn);圖3說明本發(fā)明的實施方案。
詳細描述本發(fā)明一般地涉及一種用于選擇字體的方法,其使用標記語言文檔將多種預先存在的字體組成在一起成為單字體族或“虛擬字體”。標記語言文檔包括關于使用族中各種字體的條件的規(guī)則。這允許,例如,字體開發(fā)者以有效的方式使用幾種預先存在字體創(chuàng)造一種國際字體。
在進行本發(fā)明各種實施方案的描述之前,現(xiàn)在將給出本發(fā)明各種實施方案可以在其中實施的計算機和網(wǎng)絡環(huán)境的描述。雖然不是必需的,本發(fā)明可以由計算機執(zhí)行的程序來實現(xiàn)。一般地,程序包括執(zhí)行特殊任務或者實現(xiàn)特殊抽象數(shù)據(jù)類型的例程,對象,成員,數(shù)據(jù)結(jié)構(gòu)等。在這里所使用的術語“程序”可以包含單程序模塊或者共同運作的多程序模塊。在這里所使用的術語“計算機”包括電子地執(zhí)行一個或多個程序的任何設備,例如個人計算機(PC),手提設備,多處理器系統(tǒng),基于微處理器的可編程用戶電子設備,網(wǎng)絡PC,小型計算機,大型計算機,具有微處理器或微控制器的用戶設備,路由器,網(wǎng)關,集線器等。本發(fā)明也可以在分布式計算環(huán)境中使用,其中任務由通過通信網(wǎng)絡鏈接的遠程處理設備執(zhí)行。在分布式計算環(huán)境中,程序可以位于本地和遠程存儲設備中。
本發(fā)明可以在其中使用的網(wǎng)絡環(huán)境的一個實例現(xiàn)在將參考圖1來描述。實例網(wǎng)絡包括在由云表示的網(wǎng)絡11上彼此通信的幾臺計算機10。網(wǎng)絡11可以包括許多眾所周知的組件,例如路由器,網(wǎng)關,集線器等,并且允許計算機10經(jīng)由有線和/或無線介質(zhì)來通信。當與網(wǎng)絡11的其它計算機相互作用時,一臺或多臺計算機可以充當對于其它計算機的客戶機,服務器或?qū)Φ润w。因此,本發(fā)明各種實施方案可以在客戶機,服務器,對等體或它們的組合上實施,即使在這里所包含的具體實例不涉及所有這些類型的計算機。
參考圖2,顯示計算機基本配置的實例,在這里所描述的本發(fā)明的所有或部分可以在該計算機上實現(xiàn)。在它的最基本配置中,計算機10典型地包括至少一個處理部件14和存儲器16。處理部件14執(zhí)行指令以執(zhí)行根據(jù)本發(fā)明各種實施方案的任務。在執(zhí)行這些任務中,處理部件14可以傳送電信號到計算機10的其它部分,并且傳送到計算機10外部的設備以促成某種結(jié)果。至少這些指令的一些由操作系統(tǒng)22產(chǎn)生。操作系統(tǒng)22可以包括幾個用戶模式和內(nèi)核模式程序。依賴于計算機10的具體配置和類型,存儲器16可以是易失性的(例如RAM),非易失性的(例如ROM或閃存)或者兩者的某種組合。這種最基本配置在圖2中由虛線18說明。另外,計算機也可以具有附加的特征/功能性。例如,計算機10也可以包括輔助存儲器(例如可移動存儲器21和/或不可移動存儲器23),輔助存儲器包括,但不局限于,磁或光盤或者磁帶。計算機存儲介質(zhì)包括以用于存儲信息的任何方法或技術實現(xiàn)的易失性和非易失性,可移動和不可移動的介質(zhì),信息包括計算機可執(zhí)行的指令,數(shù)據(jù)結(jié)構(gòu),程序模塊,或其它數(shù)據(jù)。計算機存儲介質(zhì)包括,但不局限于,RAM,ROM,EEPROM,閃存,CD-ROM,數(shù)字化通用光盤(DVD)或其它光存儲器,磁帶盒,磁帶,磁盤存儲器或其它磁存儲設備,或者可以用來存儲希望的信息并且可以由計算機10存取的任何其它介質(zhì)。任何這種計算機存儲介質(zhì)都可以是計算機10的一部分。
計算機10也可以包含允許設備與其它設備通信的通信連接。通信連接是通信介質(zhì)的一個實例。通信介質(zhì)典型地包括計算機可讀指令,數(shù)據(jù)結(jié)構(gòu),程序模塊或者在調(diào)制數(shù)據(jù)信號例如載波或其它傳送機制中的其它數(shù)據(jù),并且包括任何信息傳遞介質(zhì)。作為實例,但不是限制,通信介質(zhì)包括有線介質(zhì)例如有線網(wǎng)或直達單線連接,和無線介質(zhì)例如聲音,RF,紅外線和其它無線介質(zhì)。在這里使用的術語“計算機可讀介質(zhì)”包括計算機存儲介質(zhì)和通信介質(zhì)。
計算機10也可以具有輸入設備,例如鍵盤25,鼠標,筆,語音輸入設備,接觸式輸入設備等。也可以包括輸出設備,例如顯示器20,揚聲器,打印機27等。所有這些設備在本領域中是眾所周知的,無需在這里詳細論述。
現(xiàn)在將參考圖3來描述多種字體如何可以根據(jù)本發(fā)明實施方案組織成單虛擬字體的實例。在本實例中,計算機自動設計(CAD)程序26作為計算機10(從圖2)上的應用程序來執(zhí)行,而圖示符產(chǎn)生模塊28作為操作系統(tǒng)22的一部分來執(zhí)行。在執(zhí)行過程中,CAD程序26執(zhí)行CAD文件27上的操作,該文件包含CAD文檔和關于文檔的屬性信息。操作系統(tǒng)22獲得關于語言的數(shù)據(jù),計算機10的用戶以該語言操作,并且操作系統(tǒng)22將這一信息提供給圖示符產(chǎn)生模塊28。操作系統(tǒng)22可以從多種來源獲得用戶語言信息,但是在本實例中,假設操作系統(tǒng)22已經(jīng)基于包含于CAD文件27中的屬性信息確定用戶的語言。在其它的實施方案中,操作系統(tǒng)22可以從鍵盤25(圖2)的區(qū)域設置來獲得該信息。而且,當用戶打字時,操作系統(tǒng)22從鍵盤25接收指示每個按鍵的統(tǒng)一字符編碼值的輸入。
圖示符產(chǎn)生模塊28產(chǎn)生將在顯示器20上顯示的圖示符。圖示符產(chǎn)生模塊28從一個或多個字體文件中獲得這些圖示符。字體文件,例如圖3中所示的字體文件32,34,36和38存儲于計算機10(圖2)的存儲器和/或打印機27的存儲器中。為了確定從其中獲得圖示符的字體文件,圖示符產(chǎn)生模塊28分析虛擬字體文件30。使用它從操作系統(tǒng)22接收的數(shù)據(jù)(關于待顯示的語言),圖示符產(chǎn)生模塊28從虛擬字體文件30中選擇適當?shù)淖煮w文件。然后,圖示符產(chǎn)生模塊28從所選擇的字體文件中獲得適當?shù)膱D示符,并且將它們顯示在顯示器20上。
當文檔要在打印機27上打印時,圖示符產(chǎn)生模塊28以略微不同的方式操作。在打印的情況下,圖示符產(chǎn)生模塊28選擇待使用的字體,但是不真正地產(chǎn)生打印機圖示符。代替地,圖示符產(chǎn)生模塊28將待使用字體的名字,連同待打印圖示符的統(tǒng)一字符編碼值和所需的任何規(guī)格,例如縮放比例數(shù)據(jù)一起發(fā)送到打印機27。如果打印機27在它的存儲器中存儲有所選字體的字體文件,那么打印機27打印該圖示符。另一方面,如果打印機27不具有正確的字體,那么打印機27向圖示符產(chǎn)生模塊28指出這一事實。然后圖示符產(chǎn)生模塊28從虛擬字體文件30中選擇另一種字體,并且將新選擇字體的名字,連同待打印圖示符的統(tǒng)一字符編碼值及任何所需的縮放比例數(shù)據(jù)一起發(fā)送到打印機27。圖示符產(chǎn)生模塊28可以重復這一過程,直到它找到打印機27具有的一種字體。如果圖示符產(chǎn)生模塊28沒有找到打印機27具有的字體,那么圖示符產(chǎn)生模塊28選擇代用字體,該字體在虛擬字體文件30中指定并且存儲于計算機10的存儲器中。然后圖示符產(chǎn)生模塊28檢索代用字體的適當圖示符,并且將它們發(fā)送到打印機27。在本發(fā)明的各種實施方案中,代用字體具有大小適合于在打印機27上打印的圖示符。
繼續(xù)圖3的描述,微軟San Serif字體文件32,中文(繁體)#2字體文件34,數(shù)學符號#5字體文件36和日文#10字體文件38存儲于存儲器16,可移動存儲器21,和/或非可移動存儲器23(圖2)中。本實例中的虛擬字體文件30出于在CAD程序26的用戶接口上顯示拉丁文字符,傳統(tǒng)中文字符,日文字符和數(shù)學符號的目的而創(chuàng)建。因此,CAD程序26的程序設計者已經(jīng)選擇四種字體-微軟San Serif,中文(繁體)#2,數(shù)學符號#5和日文#10-作為用于這一目的的最適當?shù)淖煮w。字體文件32,34,36和38中每個都包含一組圖示符。虛擬字體文件30包含具有指令的標記語言文本,指令告訴圖示符產(chǎn)生模塊28四種字體中每種字體如何,什么時候以及在什么情況下在CAD程序26中顯示。在本實例中,假設虛擬字體文件30包含下面的可擴展標記語言(XML)文本<pre listing-type="program-listing"><Font Family <Name xml:lang=”en-US”>name=”MS International”</Name> <Name xml:lang=”zh-TW”>國際</Name> <Name xml:lang=”ja”>インタ—ナシヨナル</Name><Range UnicodeRange=”2200-22FF”TargetFontFamily=”Math Symbol#5”/> <Range xml:lang=”zh-TW”TargetFontFamily=”Chinese (traditional)#2”/> <Range xml:lang=”ja”TargetFontFamily=”Japanese#10”/> <Range xml:lang=”en-US”UnicodeRange=”4E00-9FAF” TargetFontFamily=”Chinese(traditional)#2”size=”1.1”/> <Range xml:lang=”en-US”family=”Microsoft San Serif”/> <Range TargetFontFamily=”Arial”/></Font Family></pre>如XML文本塊的開始和結(jié)束標簽所指出的,虛擬字體文件30,實際上,描述包括微軟San Serif,中文(繁體)#2,數(shù)學符號#5和日文#10字體的一族字體。XML文本的前三行-具有“NAME”標簽-包括關于什么名字將指定給由虛擬字體文件30表示的字體族的條件指令。例如,行<Name xml:lang=”en-US”>name=”MSInternational”</Name>表示如果用戶的語言是English-US(“en-US”),那么圖示符產(chǎn)生模塊28將字體族命名為“MSinternational”。下一行,<Name xml:lang=”zh-TW”>國際</Name>,表示如果用戶以中國-臺灣語言操作,那么指定給該虛擬字體族的名字將是“國際”(這在中文中近似于“國際”的意思)。下一行,<Namexml:lang=“ja”>インタ—ナシヨナル</Name>,表示如果用戶以日文操作,那么指定給該虛擬字體族的名字將是“インタ—ナシヨナル”(這是英文單詞“International”的日文發(fā)音)。字體族的名字不一定顯示給CAD程序26的用戶,但是可以顯示,如果例如,用戶有意地選擇“settings”菜單來看正在使用什么字體。
下一行,寫的是<Range UnicodeRange=”2200-22FF”TargetFontFamily=”Math Symbol#5”/>,指示圖示符產(chǎn)生模塊28如果字符從鍵盤接收,具有落入范圍2200-22FF內(nèi)的統(tǒng)一字符編碼值,那么用于提供該圖示符的字體是數(shù)學符號#5字體。接下來的三行基于用戶的語言來確定待使用的字體。例如,如果用戶的文字是中國-臺灣,那么待使用的字體是中國(傳統(tǒng))#2字體。另一方面,如果用戶的文字是日文,那么待使用的字體是日文#10字體。再次參考上面所示的XML文本塊和圖3,下一行,寫的是<Range xml:lang=”en-US”UnicodeRange=”4E00-9FAF”TargetFontFamily=”Chinese(traditional)#2”size=”1.1”/>,設置兩個條件一個基于用戶的語言,一個基于按鍵的統(tǒng)一字符編碼值。在這種情況下,如果用戶的語言是English-US并且按鍵所產(chǎn)生的統(tǒng)一字符編碼值在4E00和9FAF之間(這表示CJK統(tǒng)一的統(tǒng)一字符編碼值范圍-具有大部分中文,日文和韓文的表意字符),那么將由圖示符產(chǎn)生模塊28使用的字體是中文(繁體)#2字體。而且,圖示符的大小按比例放大到它們原始大小的110%。在這一實例中,字體族“MS International”的開發(fā)者確定,為了與微軟San Serif羅馬字體字符并排顯示中文, 日文或韓文表意圖示符,中文(繁體)#2字體,并且圖示符按比例放大到它們原始大小的110%,創(chuàng)造最佳的視覺效果。
這一行,寫的是<Range xml:lang=”en-US”family=”Microsoft SanSerif”/>,這表示如果用戶以英文-美國操作,那么將使用微軟San Serif字體。這一行指令充當缺省,如果待使用的適當語言是英文-美國,但是在先前行所指定的條件不滿足。最后,在</FontFaimly>標簽之前的最后一行是<Range TargetFontFamily=“Arial”/>,其指定如果先前行的明確條件都不適用時待使用的最終缺省字體。
再次參考圖3,現(xiàn)在將描述圖示符產(chǎn)生模塊28根據(jù)本發(fā)明實施方案產(chǎn)生圖示符的一系列情況。在第一種情況中,操作系統(tǒng)22檢測到鍵盤25產(chǎn)生統(tǒng)一字符編碼值0068,并且將該值傳遞給圖示符產(chǎn)生模塊28。操作系統(tǒng)22也告知圖示符產(chǎn)生模塊28,CAD文件27包含打算以英文-美國顯示的文檔。圖示符產(chǎn)生模塊28創(chuàng)建列表40作為待顯示圖示符的高速緩存。圖示符產(chǎn)生模塊28訪問虛擬字體文件30以確定如何處理統(tǒng)一字符編碼值0068?;谛?amp;lt;Range XML:Lang=”en-US”family=”Microsoft San Serif”/>,圖示符產(chǎn)生模塊28確定使用的適當字體是微軟San Serif字體,其包含于微軟San Serif字體文件32中。圖示符產(chǎn)生模塊28訪問字體文件32以定位與統(tǒng)一字符編碼值0068相對應的圖示符。在這種情況下,圖示符是-h-。然后圖示符產(chǎn)生模塊28將圖示符-h-拷貝到列表40,并且將該圖示符與值0068相關聯(lián)。然后圖示符產(chǎn)生模塊28將該圖示符傳遞給操作系統(tǒng)22以顯示。
在第二種情況中,操作系統(tǒng)22檢測到鍵盤25產(chǎn)生統(tǒng)一字符編碼值2264,并其將該值傳遞給圖示符產(chǎn)生模塊28。操作系統(tǒng)22也告知圖示符產(chǎn)生模塊28,CAD文件27包含打算以英文-美國顯示的文檔。圖示符產(chǎn)生模塊28訪問虛擬字體文件30以確定如何處理統(tǒng)一字符編碼值2264?;谛?amp;lt;Range UnicodeRange=”2200-22FF”TargetFontFamily=”Math Symbol#5”/>,圖示符產(chǎn)生模塊28確定使用的適當字體是數(shù)學符號#5字體,其包含于數(shù)學符號#5字體文件36中。圖示符產(chǎn)生模塊28訪問字體文件36以定位與統(tǒng)一字符編碼值2264相對應的圖示符。在這種情況下,圖示符是-≤-。然后圖示符產(chǎn)生模塊28將圖示符-≤-拷貝到列表40,并且將該圖示符與值2264相關聯(lián)。然后圖示符產(chǎn)生模塊28將該圖示符傳遞給操作系統(tǒng)22以顯示。
在第三種情況下,操作系統(tǒng)22檢測到鍵盤25產(chǎn)生統(tǒng)一字符編碼值76F4,并且將該值傳遞給圖示符產(chǎn)生模塊28。操作系統(tǒng)22也告知圖示符產(chǎn)生模塊28,CAD文件27包含打算以中文-臺灣顯示的文檔。圖示符產(chǎn)生模塊28訪問虛擬字體文件30以確定如何處理統(tǒng)一字符編碼值76F4?;谛?amp;lt;Range XML:Lang= ”ch-TW”family=”Chinese(traditional)#2”/>,圖示符產(chǎn)生模塊28確定使用的適當字體是中文(繁體)#2字體,其包含于中文(繁體)#2字體文件34中。圖示符產(chǎn)生模塊28訪問字體文件34以定位與統(tǒng)一字符編碼值76F4相對應的圖示符。在這種情況下,圖示符是直。這一特殊的圖示符表示“直”這一概念的表意文字,如在“直接”或“耿直”中。然后圖示符產(chǎn)生模塊28將該圖示符拷貝到列表42,并且將該圖示符與值76F4相關聯(lián)。然后圖示符產(chǎn)生模塊28將該圖示符傳遞給操作系統(tǒng)22以顯示。
在第四種情況下,操作系統(tǒng)22檢測到鍵盤25產(chǎn)生統(tǒng)一字符編碼值76F4,并且將該值傳遞給圖示符產(chǎn)生模塊28。操作系統(tǒng)22也告知圖示符產(chǎn)生模塊28,CAD文件27包含打算以日文顯示的文檔。圖示符產(chǎn)生模塊28訪問虛擬字體文件30以確定如何處理統(tǒng)一字符編碼值76F4?;谛?amp;lt;Range XML:Lang=”jp”family=”Japanese#10”/>,圖示符產(chǎn)生模塊28確定使用的適當字體是日文#10字體,其包含于日文#10字體文件38中。圖示符產(chǎn)生模塊28訪問字體文件34以定位與 的統(tǒng)一字符編碼值76F4相對應的圖示符。在這種情況下,圖示符是 這一圖示符也表示“直”這一概念的表意文字,但反映在它的日文變體中。然后圖示符產(chǎn)生模塊28將該圖示符拷貝到列表44,并且將該圖示符與值76F4相關聯(lián)。然后圖示符產(chǎn)生模塊28將該圖示符傳遞給操作系統(tǒng)22以顯示。
因此可以看到,已經(jīng)提供一種用于選擇字體的新的有用的方法。考慮到本發(fā)明的原理可以適用的許多可能實施方案,應該認識到,在這里參考附圖而描述的實施方案僅是說明性的,不應該理解為限制本發(fā)明的范疇。例如,本領域技術人員將認識到,以軟件顯示的說明性實施方案的組件可以用硬件實現(xiàn),反之亦然,或者說明性實施方案可以不背離本發(fā)明的精神而在配置和細節(jié)上作修改。因此,在這里所描述的本發(fā)明期望所有這樣的實施方案可以在下面的權(quán)利要求書及其等價物的范圍內(nèi)。
權(quán)利要求
1.一種用于選擇字體的方法,該方法包括接收指示計算機程序需要哪種類型字符的編碼;訪問標記語言文檔;基于標記語言文檔的內(nèi)容,確定計算機程序需要多種字體中哪種字體來顯示計算機程序所要求類型的字符。
2.一種在其上存儲有用于執(zhí)行權(quán)利要求1的方法的計算機可執(zhí)行指令的計算機可讀介質(zhì)。
3.權(quán)利要求1的方法,進一步包括從確定需要的字體中獲得圖示符,其中該圖示符可顯示以表示該字符。
4.權(quán)利要求1的方法,進一步包括從確定需要的字體中獲得圖示符;將該圖示符提供給計算機程序。
5.權(quán)利要求1的方法,其中計算機程序在計算機上執(zhí)行,該方法進一步包括確定文檔的語言,所選字體將在該文檔中顯示,其中確定計算機程序需要多種字體中哪種字體的步驟包括,基于已確定的語言來確定計算機需要多種字體中哪種字體。
6.權(quán)利要求1的方法,進一步包括將關于已確定的字體的信息發(fā)送到打印機。
7.一種用于確定多種字體中哪種字體在計算機程序中使用的方法,該方法包括訪問標記語言文檔,該文檔定義使用多種字體中至少一種字體的邏輯條件;響應于滿足的邏輯條件,檢索該字體的圖示符。
8.一種在其上存儲有用于執(zhí)行權(quán)利要求7的方法的計算機可執(zhí)行指令的計算機可讀介質(zhì)。
9.權(quán)利要求7的方法,其中程序在計算機上執(zhí)行,其中邏輯條件與文檔書寫所用的語言有關;其中檢索的圖示符來自適合于該語言的字體。
10.權(quán)利要求7的方法,其中程序與正在使用計算機的用戶交互,其中如果確定用戶與計算機以特定文字交互,則標記語言文檔定義待使用的字體,該方法進一步包括確定用戶正在使用該特定語言,以及響應該確定步驟執(zhí)行檢索步驟。
11.權(quán)利要求7的方法,其中計算機程序與正在使用計算機的用戶交互,該方法進一步包括確定計算機的鍵盤被設置為特定語言;基于訪問步驟,確定對那種語言所使用的字體;將圖示符提供給計算機程序。
12.一種用于從多種字體中獲得圖示符的方法,該方法包括訪問標記語言文檔以確定多種字體中第一字體的標識和多種字體中第二字體的標識;基于所確定的第一字體的標識檢索第一字體的一個或多個圖示符;基于所確定的第二字體的標識檢索第二字體的一個或多個圖示符。
13.一種在其上存儲有用于執(zhí)行權(quán)利要求12的方法的計算機可執(zhí)行指令的計算機可讀介質(zhì)。
14.權(quán)利要求12的方法,進一步包括基于包含于標記語言文檔中的縮放比例信息,調(diào)整第一和第二字體中至少一種字體的一個或多個圖示符的大小。
15.權(quán)利要求12的方法,其中第一字體包括第一文字的圖示符,而第二字體包括第二文字的圖示符,其中第一字體和第二字體的圖示符被調(diào)整以允許第一文字和第二文字彼此并排顯示。
16.權(quán)利要求12的方法,其中檢索第一字體的一個或多個圖示符的步驟和檢索第二字體的一個或多個圖示符的步驟只有當滿足標記語言文檔中預先定義的條件時才執(zhí)行。
17.一種在其上存儲有標記語言文本的計算機可讀介質(zhì),該標記語言文本包括到第一字體的索引;表示使用第一字體的條件的數(shù)據(jù);到第二字體的索引;表示使用第二字體的條件的數(shù)據(jù)。
18.權(quán)利要求17的計算機可讀介質(zhì),其中標記語言文本進一步包括指示如何調(diào)整第一字體大小的縮放比例因素。
19.權(quán)利要求17的計算機可讀介質(zhì),其中使用第一字體的條件至少部分基于計算機用戶喜歡的語言。
20.權(quán)利要求17的計算機可讀介質(zhì),其中使用第一字體的條件至少部分基于計算機的鍵盤所設置的語言。
21.權(quán)利要求18的計算機可讀介質(zhì),其中使用第一字體的條件涉及鍵入計算機的字符的統(tǒng)一字符編碼值所在的范圍。
22.權(quán)利要求17的計算機可讀介質(zhì),其中使用第一字體的條件涉及鍵入計算機的字符的統(tǒng)一字符編碼值所在的范圍以及計算機用戶喜歡的語言。
23.權(quán)利要求17的計算機可讀介質(zhì),其中使用第一字體的條件至少部分基于文檔所設置的語言,該文檔是其中使用第一或第二字體的介質(zhì)。
全文摘要
本發(fā)明一般地涉及一種用于選擇字體的方法,該方法使用標記語言文檔來將多種預先存在的字體組成在一起成為單字體族或“虛擬字體”。該標記語言文檔包括關于使用族中各種字體的條件的規(guī)則。這允許,例如,字體開發(fā)者以有效的方式使用幾種預先存在的字體來創(chuàng)造一種國際字體。
文檔編號G06F3/12GK1494020SQ0310765
公開日2004年5月5日 申請日期2003年3月24日 優(yōu)先權(quán)日2002年11月1日
發(fā)明者戴維·C·布朗, 沃拉采·喬維拉普瑞思特, 特瑞克·曼姆德·塞德, 喬維拉普瑞思特, 曼姆德 塞德, 戴維 C 布朗 申請人:微軟公司