© 1997–2019 Adobe.
Permission is hereby granted, free of charge, to any person obtaining a copy of this documentation file to use, copy, publish, distribute, sublicense, and/or sell copies of the documentation, and to permit others to do the same, provided that:
Tidak ada modifikasi, pengeditan, atau perubahan lain dari dokumen ini diizinkan; Dan
Pemberitahuan hak cipta di atas dan pemberitahuan izin ini harus dimasukkan dalam semua salinan dokumentasi.
Izin dengan ini diberikan, gratis, kepada siapa pun yang mendapatkan salinan file dokumentasi ini, untuk membuat karya turunannya sendiri dari konten dokumen ini untuk digunakan, menyalin, menerbitkan, mendistribusikan, sublisensi, dan/atau menjual karya turunan, dan untuk mengizinkan orang lain untuk melakukan hal yang sama, asalkan karya turunan tidak diwakili sebagai salinan atau versi dari dokumen ini.
Adobe tidak akan bertanggung jawab kepada pihak mana pun atas kehilangan pendapatan atau laba atau untuk tidak langsung, insidental, khusus, konsekuensial, atau kerusakan serupa lainnya, apakah berdasarkan gugatan (termasuk tanpa batasan kelalaian atau tanggung jawab yang ketat), kontrak atau landasan hukum atau adil lainnya bahkan jika Adobe telah disarankan atau memiliki alasan untuk mengetahui kemungkinan kerusakan. Bahan adobe disediakan berdasarkan "sebagaimana adanya". Adobe secara khusus menyangkal semua jaminan tersurat, wajib, atau tersirat yang berkaitan dengan bahan adobe, termasuk tetapi tidak terbatas pada yang terkait dengan dapat diperjualbelikan atau kebugaran untuk tujuan tertentu atau tidak ada pelanggaran hak-hak pihak ketiga mengenai materi Adobe.
Adobe tidak memiliki paten pada subjek dari spesifikasi ini.
Versi Dokumen 2.9. Terakhir diperbarui 21 Agustus 2019
Tujuan dari spesifikasi daftar glyph adobe adalah untuk menggambarkan perhitungan string karakter unicode dari urutan nama mesin terbang. Ini dicapai dengan menentukan pemetaan dari nama mesin terbang ke string karakter Unicode.
Pemetaan dimaksudkan untuk mengubah urutan nama mesin terbang menjadi teks biasa sambil melestarikan semantik yang mendasarinya. Misalnya, nama mesin terbang untuk 'A', nama mesin terbang untuk 'modal kecil A', dan nama mesin terbang untuk varian swash 'a' semua akan dipetakan ke UV yang sama ( nilai unicode ). Ini berguna dalam menyalin teks di beberapa lingkungan, dan juga berguna untuk melakukan pencarian teks yang akan cocok dengan semua nama mesin terbang dalam string asli yang sesuai dengan 'A'.
Di luar ruang lingkup spesifikasi ini untuk menentukan set nama mesin terbang legal. Nama mesin terbang terjadi dalam banyak konteks yang berbeda, masing -masing memiliki definisi sendiri tentang apa yang merupakan nama hukum. Spesifikasi ini hanya mengasumsikan bahwa nama mesin terbang sesuai dengan urutan karakter unicode yang terbatas secara sewenang -wenang.
Spesifikasi terdiri dari AGL ( Adobe Glyph List ), yang menyediakan pemetaan nama mesin terbang spesifik untuk nilai -nilai unicode, bersama dengan aturan untuk menguraikan dan menafsirkan nama mesin terbang. Karena diantisipasi bahwa spesifikasi ini akan diimplementasikan dalam banyak perangkat lunak, dan bahwa merevisi semua implementasi yang menggunakannya tidak mungkin, spesifikasi ini dimaksudkan untuk stabil, artinya tidak pernah direvisi secara substantif. Secara khusus, dimaksudkan bahwa tidak ada pemetaan yang akan ditambahkan ke AGL. Juga, AGL tidak dimaksudkan sebagai panduan untuk memilih nama mesin terbang untuk font baru. Untuk tujuan itu, AGLFN ( daftar Adobe Glyph untuk font baru ) ada (lihat Bagian 6).
Spesifikasi ini mendukung berbagai nilai skalar unicode, U+0000 hingga U+10FFFF. Itu tidak tergantung pada repertoar karakter dari versi unicode tertentu; Dengan demikian, ini berlaku untuk standar masa lalu, saat ini, dan masa depan dari standar Unicode.
Produsen font sangat dianjurkan untuk menghormati spesifikasi ini ketika menamai mesin terbang untuk font mereka. Konsumen font didorong untuk mengikuti spesifikasi ini ketika mencoba memperoleh konten dari nama mesin terbang.
Untuk memetakan nama mesin terbang ke string karakter, ikuti tiga langkah di bawah ini:
Jatuhkan semua karakter dari nama mesin terbang dimulai dengan kejadian pertama suatu periode (u+002e berhenti penuh), jika ada.
Pisahkan string yang tersisa menjadi urutan komponen, menggunakan garis bawah (U+005F garis rendah) sebagai pembatas.
Peta setiap komponen ke string karakter sesuai dengan prosedur di bawah ini, dan gabungkan string tersebut; Hasilnya adalah string karakter tempat nama mesin terbang dipetakan.
Jika font adalah ZAPF DingBats (PostScript FontName: Zapfdingbats ), dan komponennya ada di daftar ITC ZAPF Dingbats Glyph , lalu petakan ke karakter yang sesuai dalam daftar itu.
Kalau tidak, jika komponen ada di AGL, maka petakan ke karakter yang sesuai dalam daftar itu.
Otherwise, if the component is of the form 'uni' (U+0075, U+006E, and U+0069) followed by a sequence of uppercase hexadecimal digits (0–9 and A–F, meaning U+0030 through U+0039 and U+0041 through U+0046), if the length of that sequence is a multiple of four, and if each group of four digits represents a value Dalam rentang 0000 hingga D7FF atau E000 hingga FFFF, kemudian menafsirkan masing -masing sebagai nilai skalar unicode dan memetakan komponen ke string yang terbuat dari nilai skalar tersebut. Perhatikan bahwa pembatasan rentang dan panjang digit berarti bahwa awalan nama mesin terbang 'uni' hanya dapat digunakan dengan UV dalam bidang multibahasa dasar (BMP).
Otherwise, if the component is of the form 'u' (U+0075) followed by a sequence of four to six uppercase hexadecimal digits (0–9 and A–F, meaning U+0030 through U+0039 and U+0041 through U+0046), and those digits represents a value in the ranges 0000 through D7FF or E000 through 10FFFF, then interpret it as a Unicode scalar Nilai dan peta komponen ke string yang terbuat dari nilai skalar ini.
Jika tidak, peta komponen ke string kosong.
Nama 'LComMaaccent' memiliki satu komponen, yang dipetakan ke string U+013B oleh AGL.
Nama 'uni20ac0308' memiliki satu komponen, yang dipetakan ke string U+20AC U+0308.
Nama 'U1040C' memiliki satu komponen, yang dipetakan ke string U+1040C.
Nama 'UNID801DC0C' memiliki satu komponen, yang dipetakan ke string kosong. Baik D801 maupun DC0C tidak ada dalam set yang sesuai. Bentuk ini tidak dapat digunakan untuk memetakan ke karakter yang dinyatakan sebagai D801 DC0C di UTF-16, khususnya U+1040C. Karakter ini dapat dipetakan dengan benar dengan menggunakan nama mesin terbang 'U1040C'.
Nama 'uni20ac' memiliki satu komponen, yang dipetakan ke string kosong (perhatikan huruf kecil 'a' dan 'c').
Nama 'LComMaaccent_Uni20AC0308_U1040C.Alternate' memiliki tiga komponen, yang merupakan 'lCommaaccent', 'uni20ac0308', dan 'u1040c'. Ini dipetakan ke string U+013B U+20AC U+0308 U+1040C.
Secara umum, beberapa nama dapat dipetakan ke string yang sama. Misalnya, komponen 'lcommaaccent', 'uni013b', dan 'u013b' semua peta ke string u+013b.
Nama 'foo' memetakan ke string kosong, karena 'foo' tidak ada dalam agl, dan karena tidak dimulai dengan 'u'.
Nama '.notdef' direduksi menjadi string kosong pada langkah pertama, dan dipetakan ke string kosong oleh klausa terakhir dari langkah ketiga.
Spesifikasi ini mendukung pemetaan nama mesin terbang ke string yang berisi nilai PUA. Misalnya, nama 'Ogoneksmall' dan 'Unif6fb' keduanya memetakan ke string yang sesuai dengan U+F6FB.
Spesifikasi ini tidak termasuk, menyiratkan, atau menganggap penggunaan PUA tertentu; Ini hanya mengizinkan penamaan mesin terbang sehingga string karakter yang dipulihkan termasuk poin kode PUA. Terserah produsen dan konsumen nama mesin terbang untuk menetapkan kesepakatan tentang penggunaan PUA.
Desainer font harus mencatat bahwa menetapkan perjanjian ini dengan pengguna font tujuan umum bisa sulit. Kemungkinan tidak semua alat memanipulasi string karakter yang dibangun dari nama mesin terbang akan dengan benar menerapkan penggunaan PUA, dan ini dapat menyebabkan fungsionalitas yang salah atau tidak terduga. Oleh karena itu direkomendasikan, untuk font tujuan umum, bahwa semua nama mesin terbang dikonversi ke string yang tidak berisi poin kode PUA.
Spesifikasi ini telah berkembang dari waktu ke waktu. Silakan merujuk ke bagian 7 ( perubahan dokumen ) untuk perubahan.
Untuk mesin terbang yang sesuai dengan karakter dalam standar unicode, disarankan untuk menentukan nama dengan menggunakan awalan 'uni' untuk karakter dalam bidang multibahasa dasar (BMP), dan awalan 'U' yang lebih pendek untuk karakter dalam 16 bidang tambahan, menurut aturan pada bagian 2.
Ini tidak berarti bahwa font tidak valid jika dibuat tanpa menggunakan awalan 'uni' dan 'u' untuk nama mesin terbang mereka. Dengan satu kelompok pengecualian, semua nama mesin terbang di AGL saat ini bekerja di semua lingkungan yang diketahui, serta nama dengan awalan 'uni'. Pengecualian adalah nama AGL Glyph yang terkait dengan poin kode PUA. Ini termasuk semua atasan dan nama topi kecil. Penggunaan nama -nama ini, untuk tujuan mencari teks, memimpin beberapa implementasi saat ini untuk memetakan nama -nama seperti 'asmall' dengan nilai PUA yang ditentukan dalam AGL, daripada ke UV untuk 'A'. Kami sekarang merekomendasikan penamaan mesin terbang ini sesuai dengan aturan yang ditentukan dalam bagian ini. Subset AGL yang mengecualikan nama -nama yang terkait dengan PUA disediakan oleh AGLFN ( daftar Adobe Glyph untuk font baru ).
Jika glyph glyph dalam font mewakili karakter yang sama dalam standar unicode, seperti 'a' dan 'a.swash', mereka dapat dibedakan dengan menggunakan nama dasar yang sama dengan sufiks yang berbeda. Suffix (bagian dari nama mesin terbang yang mengikuti periode pertama) tidak berpartisipasi dalam perhitungan urutan karakter. Ini dapat digunakan oleh desainer font untuk menunjukkan karakteristik khusus mesin terbang. Suffix dapat berisi periode atau karakter yang diizinkan lainnya. Misalnya, topi kecil 'a' dapat dinamai 'uni0041.sc' atau 'a.sc'.
Jika ada beberapa varian dari mesin terbang dasar yang sama, maka sufiks varian harus mencakup angka panjang-panjang yang ditanam nol sehingga jika dan ketika nama mesin terbang diurutkan, pesanan yang dimaksud dapat dipertahankan. Misalnya, jika mesin terbang 'ampersand' memiliki 23 bentuk alternatif, mereka akan dinamai 'ampersand.alt01' melalui 'ampersand.alt23', daripada 'ampersand.alt', bersama dengan 'ampersand.alt1' melalui 'ampersand.alt22'. Aturan ini hanya memberikan kenyamanan kecil untuk pengembangan dan pengujian font. Seperti disebutkan di atas, sufiks nama mesin terbang ini tidak berpartisipasi dalam perhitungan urutan karakter.
Spesifikasi ini tidak menstandarkan sufiks apa pun. Setiap akhiran sewenang -wenang akan bekerja untuk keperluan pencarian teks. Untuk kenyamanan selama pengembangan dan pengujian, Adobe menggunakan nama fitur tata letak OpenType yang paling tepat sebagai akhiran. Misalnya, topi kecil 'a' dapat dinamai 'a.smcp', bentuk awal 'a.init', bentuk terakhir 'a.fina', dan bentuk swash 'a.swsh'. Jika ada bentuk swash tambahan, mereka bisa dinamai 'a.swsh1', 'a.swsh2', dan sebagainya. Berikut ini adalah contoh sufiks yang digunakan dalam font Adobe:
Untuk mesin terbang yang tidak sesuai dengan karakter apa pun dalam standar Unicode, nama tidak akan memiliki kegunaan teknis. Nama apa pun dapat diberikan, selama nama tidak akan ditafsirkan memiliki nilai semantik sesuai dengan aturan dalam dokumen ini. Praktek tim pengembangan tipe di Adobe adalah bahwa jika ada tag deskriptif yang berguna untuk mesin terbang, sebut saja, seperti 'mouse', 'Signforsale', 'Christmastreeball12', dan sebagainya. Kalau tidak, beri nama sebagai varian 'orn' (kependekan dari ornamen), seperti 'orn001', 'orn123', dan sebagainya.
Untuk mesin terbang yang mewakili ligatur karakter unicode standar, ada dua format yang disarankan untuk nama mesin terbang mereka, sebagai berikut:
Deskriptif Dekomposisi diekspresikan dengan bergabung dengan nama mesin terbang dari karakter unicode standar, secara berurutan, menggunakan garis bawah (U+005F line line). Nama mesin terbang dari karakter harus menentukan awalan 'uni' atau 'u' dan menggunakan angka heksadesimal huruf besar, seperti dijelaskan di atas, atau dengan nama dari AGL. Misalnya, ligatur 'off i' harus dinamai 'o_f_f_i'.
UV dengan awalan 'uni' nama mesin terbang dinyatakan sebagai awalan 'uni' diikuti oleh dua atau lebih urutan dari empat digit heksadesimal huruf besar. Setiap urutan dari empat digit heksadesimal huruf besar menentukan nilai skalar unicode dalam BMP, secara berurutan. Misalnya, karakter huruf kapital Latin EZH dengan sirkumflex dan kuburan, yang tidak ada dalam unicode, harus dinamai 'uni01b703020300', karena huruf besar bahasa Latin Ezh adalah u+01b7, menggabungkan aksen sirkumflex adalah U+0302, dan menggabungkan aksen kuburan adalah U+0300. Sebuah ligatur dari mesin terbang bernama 'T.Swash' dan 'H' dapat dinamai 't_h.swash'. 'T.swash_h' akan salah karena ini akan ditafsirkan sebagai varian glifik dari 'T'. Semua nama mesin terbang tunduk pada batas panjang 63 karakter, dan mengharuskan mereka sepenuhnya terdiri dari karakter dari set berikut: A-Z, A-Z, 0–9, '.' (periode; u+002e berhenti penuh), dan '_' (garis bawah; U+005f garis rendah). Beberapa implementasi yang lebih tua dapat memaksakan batas panjang 31 karakter.
Tinjauan singkat tentang beberapa masalah implementasi masa lalu dan batasan konsekuensial pada nama mesin terbang disediakan dalam nama dokumen nama mesin terbang dan implementasi saat ini (berdasarkan versi 1.1, tertanggal 2003-01-31) yang disediakan sebaris di bawah ini:
Pendahuluan Artikel ini sangat tanggal, karena berisi komentar tentang implementasi saat ini. Harap diingat ini jika membacanya banyak setelah Oktober 2002.
Di mana dan mengapa nama mesin terbang digunakan mengikuti konvensi penamaan dari artikel (tidak tersedia) Unicode dan nama mesin terbang saat ini akan memungkinkan menyalin teks dan mencari teks dalam dokumen PDF ( format dokumen portabel ) di bawah berbagai keadaan yang lebih luas daripada tidak memiliki nama, atau nama yang tidak mengikuti konvensi ini. Di era Internet, di mana banyak dokumen harus dapat dicari agar berguna, ini sangat penting.
Banyak file PDF dibuat dari file printer PostScript, ketika font asli yang dirujuk oleh dokumen tidak tersedia, dan data font tertanam harus digunakan. Dalam hal ini, tabel unicode 'CMAP' dari font openType tidak tersedia, dan satu -satunya petunjuk yang mungkin dimiliki produsen PDF tentang semantik mesin terbang adalah namanya.
Bahkan ketika file font asli tersedia, mesin terbang yang tidak secara langsung sesuai dengan karakter dalam Unicode mungkin masih terhubung dengan bermanfaat ke karakter Unicode melalui namanya. Misalnya, penamaan varian dekoratif 'T' sebagai 'T.Alt' memungkinkan produsen PDF untuk mencatat bahwa 'T.Alt' membawa semantik yang sama dengan 'T' untuk pencarian dan tujuan lain.
Di masa depan, diharapkan bahwa lebih banyak produk daripada yang Adobe sendiri akan mendukung pencarian string teks berbasis unicode dari mesin terbang, yang berarti bahwa ruang lingkup kegunaan aturan ini akan menjadi lebih luas.
Untuk font truetype, yang mungkin hilang nama mesin terbang sama sekali, adanya nilai unicode untuk mesin terbang di tabel 'CMAP' masih akan menyebabkan mesin terbang dengan benar terkait dengan karakter unicode dalam kebanyakan kasus. Namun, untuk mesin terbang yang tidak memetakan dari titik kode unicode, komentar sebelumnya berlaku.
Mengapa awalan 'U' belum direkomendasikan untuk mesin terbang yang dikodekan dalam BMP Unicode? Awalan 'U' tidak didukung oleh Acrobat Versions 4 dan 5. Itu menjadi didukung oleh Acrobat versi 6 dan yang lebih baru, yang juga ketika dukungan untuk karakter Unicode di luar BMP ( bidang multibahasa dasar ) diperkenalkan. Nama AGL dan nama mesin terbang yang menggunakan awalan 'uni', bersama dengan '.' dan aturan parsing '_', sudah didukung oleh Acrobat Versions 4 dan 5.
Keterbatasan panjang dan karakter pada nama Glyphs dari font OpenType/CFF dan Truetype Barat masih harus dirujuk dalam banyak alur kerja sebagai data font nama-kunci. Akibatnya, nama mesin terbang masih tunduk pada batasan dan batasan karakter yang dikenakan oleh spesifikasi Tipe 1 dan implementasi interpreter postscript. Meskipun keduanya menentukan bahwa nama mesin terbang tidak lebih dari 31 karakter, dalam praktiknya, terutama di lingkungan modern, nama mesin terbang bisa selama 63 karakter, tetapi tidak boleh dimulai dengan digit atau periode, dan harus sepenuhnya terdiri dari karakter dari set terbatas berikut:
Satu -satunya pengecualian untuk persyaratan ini adalah mesin terbang 'notdef' khusus.
Misalnya, 'twocents', 'a1', dan '_' adalah nama mesin terbang yang valid, tetapi '2cents' dan '.twocents' tidak.
Penyaringan ATM dan Kerning Pair untuk banyak aplikasi, dukungan untuk Kerning in OpenType disediakan sampai batas terbatas oleh versi Windows dan Macintosh dari ATM ( Adobe Type Manager ). Keterbatasan ini muncul karena sebagian besar aplikasi yang tidak disadari OpenType diasumsikan bahwa semua pasangan kerning dalam font dapat masuk akal adalah satu meja, dan bahwa tidak akan ada lebih dari beberapa ribu pasangan kerning. Memberikan lebih banyak pasangan kering daripada yang menyebabkan aplikasi seperti itu macet. Dengan kerning berbasis kelas yang didukung oleh tata letak OpenType, bahkan font dengan hanya 220 mesin terbang biasanya akan melebihi batas ini, jika dipercaya. Untuk memungkinkan penggunaan font opentyoe seperti itu tanpa menabrak banyak aplikasi saat ini, ATM mendukung KERNING melalui API berbasis OS Legacy dengan terlebih dahulu memperluas Kerning berbasis kelas ke daftar pasangan nama terbang terbang tunggal, dan kemudian memfilter daftar ini melalui daftar nama-nama ulang-nama berkode keras. Jika nama mesin terbang di kedua sisi pasangan kerning tidak ada dalam daftar filter, seluruh pasangan kerning dihilangkan. Daftar pemfilteran pasangan kerning untuk Windows 95 dan Mac OS 9, bersama dengan Windows NT dan Windows 2000, tidak lagi tersedia.
Versi 2.9 (21 Agustus 2019) Pembaruan Editorial.
Versi 2.8 (9 Agustus 2018) Limit panjang nama mesin terbang disesuaikan dari 31 hingga 63 karakter untuk mencerminkan praktik dan implementasi saat ini, bersama dengan catatan bahwa beberapa implementasi yang lebih tua dapat memaksakan batas 31 karakter.
Versi 2.7 (12 Agustus 2017) Dokumen Eksternal berjudul Nama Bersenang Lambang dan Implementasi Saat Ini , dengan perubahan editorial, ditambahkan ke Bagian 6.
Versi 2.6 (28 Maret 2015) Revisi editorial minor terkait dengan migrasi ke GitHub.
Versi 2.5 (10 November 2010) Revisi editorial minor terkait dengan menjadikannya spesifikasi terbuka.
Versi 2.4 (24 September 2003) Revisi minor. URL runcing untuk nama Adobe Glyph untuk font baru ke revisi baru.
Versi 2.3 (17 April 2003) Revisi Minor. Menambahkan kalimat pendek untuk memperjelas bahwa awalan 'uni' hanya dapat digunakan dengan nilai BMP Unicode.
Versi 2.2 (31 Januari 2003) Revisi minor. Menambahkan tautan ke daftar nama mesin terbang untuk digunakan saat membuat font baru, dan menekankan bahwa AGL Versi 2.0 tidak dimaksudkan untuk tujuan ini, juga bukan tentang mengkode mesin terbang dalam font.
Versi 2.1 (4 November 2002) Revisi minor, memperluas bagian tentang penetapan nama mesin terbang di font baru.
Versi 2.0 (20 September 2002) Revisi utama, yang memfokuskan dokumen pada konversi nama mesin terbang ke nilai skalar unicode; penambahan banyak nama ke AGL; Pembaruan Daftar ZapfdingBats ke Unicode Versi 3.2.
Versi 1.1 (17 Desember 1998) umumnya merevisi seluruh dokumen. Diperbarui sebagian besar tabel dan file data. Bagian yang ditambahkan pada pemilihan nama mesin terbang. Kode pseudo untuk mengekstraksi semantik yang diperluas untuk memasukkan ligatur non-unicode dan varian glifik. Bagian yang ditambahkan pada penyediaan desain terpisah untuk pembongkaran ganda. Bagian yang dihapus tentang perbedaan dengan WGL4 (tidak lagi berlaku; WGL4 diperbarui).
Versi 1.0 (10 November 1997) Versi pertama.