Sunday, January 1st, 2023
Font
Meskipun secara teknis font bukanlah database dalam arti yang sebenarnya, namun font dapat diumpamakan sebagai database untuk menjelaskan kompleksitas dan struktur data di dalamnya.

Dalam konteks komputer dan desain grafis, font adalah file digital yang berisi informasi tentang tampilan dan bentuk setiap karakter dalam suatu jenis huruf. Memiliki informasi mengenai karakter huruf, angka, simbol, dan glif lainnya yang memiliki atribut dan gaya tertentu.

Ada aspek teknis dan artistik yang terlibat dalam menciptakan font yang berkualitas dan sesuai dengan kebutuhan desain. Ini melibatkan pembuatan glif karakter, pengaturan metrik (termasuk kerning dan penempatan karakter), pengkodean Unicode, dan implementasi fitur-fitur OpenType seperti ligatur, bentuk kontekstual, dan lainnya.


Analogi Font Sebagai Database

Seperti dalam database, font memiliki atribut-atribut tertentu yang dapat dikaitkan dengan setiap karakter. Atribut-atribut ini bisa mencakup informasi tentang gaya, ukuran, lebar, tinggi, dan atribut tipografi lainnya yang menentukan tampilan dan perilaku karakter tersebut.

Beberapa ahli menggunakan perumpamaan bahwa font adalah database untuk menjelaskan kompleksitas dan struktur data di dalamnya. Walaupun secara teknis font bukanlah database dalam arti yang sebenarnya, perumpamaan tersebut untuk membantu memahami sifat dan karakteristik font.

Contoh: Name Table Didalam File Font

Name Name ID 1 Name ID 2 Name ID 4 Name ID 16 Name ID 17
Font Family Font Subfamily Fullname Preferred Family Preferred Subfamily
Arial Narrow Arial Narrow Regular Arial Narrow Arial Narrow

Table di atas hanya berisi beberapa contoh name id. Pada font production ada 25 name id yang berbeda dan memiliki fungsinya masing-masing.

Contoh: Name Table Didalam User Database

Name Nickname 1 Nickname 2 Nickname 3 Nickname 4 Nickname 5
John Doe John Doe Doe, John Jodu Paling Indie

Note: User database di atas hanyalah simulasi model

Secara konseptual, terdapat beberapa persamaan antara font file dan database, meskipun keduanya memiliki fungsi yang berbeda. Berikut adalah beberapa persamaan tersebut:

  1. Organisasi data: Mengorganisasi data secara terstruktur. Font file menyimpan informasi tentang karakter-karakter dan atribut-atributnya, sedangkan database menyimpan data dalam bentuk tabel atau entitas yang terkait.

  2. Akses data: Sama seperti database yang dapat diakses untuk mengambil data berdasarkan kriteria tertentu, font file juga dapat diakses untuk mengambil karakter-karakter yang diperlukan. Pengguna dapat menggunakan kode Unicode atau kode khusus lainnya untuk mengakses karakter dalam font file.

  3. Manipulasi data: Memungkinkan manipulasi data. Dalam font file, ahli font dapat melakukan perubahan desain karakter, penyesuaian metrik, atau implementasi fitur-fitur OpenType. Sedangkan dalam database, pengguna dapat melakukan manipulasi data seperti menambah, menghapus, atau memperbaharui data dalam tabel.

  4. Konsistensi data: Memastikan konsistensi data yang disimpan. Font file memastikan bahwa karakter-karakter dalam font memiliki tampilan dan atribut yang konsisten, sedangkan database memastikan integritas data dalam tabel atau relasi yang terhubung.

Meskipun ada persamaan ini, penting untuk diingat bahwa font file dan database memiliki tujuan dan fungsi yang berbeda secara mendasar. Font file digunakan untuk menyimpan informasi tentang tampilan karakter-karakter dan digunakan dalam representasi visual teks. Sementara itu, database digunakan untuk menyimpan dan mengelola data terstruktur secara luas untuk keperluan penyimpanan dan manipulasi data.


Font Tables

Seperti yang sudah dijelaskan sebelumnya, file font memiliki atribut-atribut yang terstruktur yang dapat diakses oleh komputer. Font tables (tabel font) adalah struktur data yang terdapat dalam file font yang berisi informasi terperinci tentang karakter, metrik, pemetaan karakter ke glyph, pemformatan teks, dan fitur-fitur teks lainnya dalam font. Setiap tabel memiliki fungsi khusus dalam mendukung pemrosesan font.

Font tables memiliki format standar yang ditentukan oleh spesifikasi font seperti OpenType atau TrueType. Masing-masing tabel memiliki nama yang unik dan mendefinisikan jenis data yang terkandung di dalamnya. Tabel font penting dalam proses rendering dan penggunaan font dalam aplikasi atau sistem. Beberapa contoh tabel font yang umum termasuk:

Berikut adalah beberapa tabel font umum yang sering ditemukan dalam file font:

  1. CMAP (Character Mapping): digunakan untuk memetakan kode karakter ke indeks karakter dalam font.

  2. HMTX (Horizontal Metrics): menyimpan informasi metrik horisontal untuk setiap karakter dalam font, seperti lebar karakter dan posisi yang tepat ketika menggambarkan karakter sejajar (monospace).

  3. HEAD (Font Header): berisi informasi header font, seperti versi font, tata letak tabel, unit em, dan atribut lainnya yang penting untuk interpretasi font.

  4. NAME (Naming): berisi informasi tentang nama font, termasuk font family, postscript name, dan atribut lainnya yang digunakan untuk mengidentifikasi dan menggambarkan font.

  5. OS/2 (OS/2 Metrics): menyimpan informasi metrik tambahan tentang font, seperti tinggi huruf, lebar huruf, kecenderungan serif, dan atribut lainnya yang diperlukan oleh sistem operasi.

  6. POST (PostScript Information): berisi informasi yang diperlukan untuk menghasilkan representasi PostScript dari karakter dalam font, termasuk lebar karakter, nama karakter, dan kode karakter.

  7. GSUB dan GPOS (Glyph Substitution dan Glyph Positioning): menyimpan informasi tentang fitur substitusi dan penempatan karakter dalam font, seperti ligatur, alternatif, dan kerning.

  8. CVT (Control Value Table): berisi data yang digunakan dalam proses hinting untuk mengontrol penempatan dan penampilan karakter pada berbagai ukuran dan skala.

Ini hanya beberapa contoh tabel font yang umum digunakan. Terdapat juga tabel lainnya yang dapat ditemukan dalam file font tergantung pada jenis font dan format font yang digunakan. Setiap tabel menyimpan informasi yang penting untuk tampilan dan pemetaan karakter yang akurat dari font.


CMAP

Tabel CMAP Deskripsi
CMAP0 Pemetaan karakter menggunakan format indeks.
CMAP2 Pemetaan karakter menggunakan format indeks.
CMAP4 Pemetaan karakter menggunakan format segmen.
CMAP6 Pemetaan karakter menggunakan format segmen.

Setiap tabel CMAP memiliki metode pemetaan karakter yang berbeda. Berikut adalah penjelasan singkat untuk masing-masing tabel:

  • CMAP0: Tabel CMAP0 menggunakan format indeks tunggal. Setiap kode karakter diberi indeks yang langsung mengacu pada posisi karakter dalam font.
  • CMAP2: Tabel CMAP2 juga menggunakan format indeks tunggal, namun digunakan untuk karakter dengan kode Unicode di atas 16-bit.
  • CMAP4: Tabel CMAP4 menggunakan format segmen. Daftar segmen diberikan untuk pemetaan karakter, dengan setiap segmen memetakan serangkaian kode karakter ke serangkaian indeks karakter dalam font.
  • CMAP6: Tabel CMAP6 juga menggunakan format segmen, namun digunakan untuk karakter dengan kode Unicode di atas 16-bit.

Berikut adalah contoh tabel yang menampilkan beberapa entri dalam tabel CMAP (Character Mapping) font, beserta deskripsi dan contoh:

Kode Karakter Indeks Karakter Deskripsi Contoh
U+0041 0 Huruf besar “A” A
U+0061 1 Huruf kecil “a” a
U+0020 2 Spasi (spasi)
U+0021 3 Tanda seru !
U+00A9 4 Simbol hak cipta ©
U+1F600 5 Emoji wajah tersenyum 😀

Tabel di atas menunjukkan beberapa contoh entri dalam tabel CMAP. Setiap entri mencakup korelasi antara kode karakter Unicode dan indeks karakter dalam font. Deskripsi memberikan informasi tentang karakter yang mewakili kode karakter tersebut, sedangkan kolom Contoh menampilkan contoh visual karakter tersebut.

Misalnya, pada baris pertama, kode karakter “U+0041” mewakili huruf besar “A” dalam Unicode, dan indeks karakternya adalah 0. Contohnya adalah huruf “A” sendiri.

Dengan menggunakan tabel CMAP, aplikasi atau sistem dapat melakukan pemetaan kode karakter ke indeks karakter yang sesuai dalam font, sehingga karakter yang tepat dapat ditampilkan ketika teks diolah atau dirender menggunakan font tersebut.

Perlu dicatat bahwa terdapat variasi lain dalam tabel CMAP tergantung pada jenis font dan format font yang digunakan. Tabel CMAP memainkan peran penting dalam pemetaan karakter yang akurat saat merender teks dengan font yang sesuai.


HMTX

Tabel HMTX, juga dikenal sebagai metrik horisontal, adalah tabel dalam file font yang menyimpan informasi metrik terkait lebar karakter dan jarak sisi kiri dan sisi kanan setiap karakter. Tabel ini penting untuk mengatur penempatan karakter saat menggambar teks.

Informasi dalam Tabel HMTX memastikan penempatan yang tepat dan keseragaman lebar karakter saat menggambar teks menggunakan font tersebut.

Tabel Metrik Horizontal (HMTX) dalam file font menyimpan informasi metrik horizontal untuk setiap karakter dalam font. Berikut adalah contoh tabel HMTX untuk huruf A:

Karakter Advance Width LSB RSB
A 600 50 100

Dalam contoh di atas, huruf A memiliki lebar karakter (Advance Width) sebesar 600 unit, Left Side Bearing (jarak dari tepi karakter ke titik awal karakter) sebesar 50 unit, dan Right Side Bearing (jarak dari tepi karakter ke titik akhir karakter) sebesar 100 unit.

Informasi ini digunakan oleh aplikasi atau sistem untuk mengatur dan menampilkan huruf A dengan benar, mengatur jarak antara huruf-huruf lain dalam kata atau kalimat. Dengan informasi metrik horizontal yang tepat, huruf-huruf dapat ditampilkan dengan jarak yang sesuai dan menjaga tata letak yang konsisten dalam teks yang ditampilkan menggunakan font tersebut.


Tabel HEAD (Font Header Table) dalam file font menyimpan informasi header font yang penting untuk interpretasi dan penggunaan font. Tabel ini memberikan detail tentang versi font, tata letak tabel, unit em, dan atribut lainnya. Berikut adalah contoh tabel HEAD font:

Field Deskripsi Contoh
Version Versi font 1.0
Font Revision Revisi font 002.000
Checksum Adjustment Penyesuaian checksum 0x5F0C
Magic Number Identifikasi file font 0x5F0F3CF5
Flags Flags yang memberikan informasi tentang font 0x0003
Units Per Em Jumlah unit per em 1000
Created Timestamp Waktu pembuatan 2021-06-15 09:30:00
Modified Timestamp Waktu terakhir 2022-03-20 14:45:00
xMin X minimum dari bounding box font -50
yMin Y minimum dari bounding box font -100
xMax X maksimum dari bounding box font 550
yMax Y maksimum dari bounding box font 800
Mac Style Gaya font yang kompatibel dengan sistem operasi Macintosh 0x0000
Font Direction Arah tulisan font 0
Index To Loc Format Format indeks untuk tabel ‘loca’ 0
Glyph Data Format Format data glyph dalam tabel ‘glyf’ 0

Tabel HEAD font menyediakan informasi penting tentang atribut dan metadata font. Informasi seperti versi font, tata letak tabel, unit em, dan atribut lainnya membantu dalam interpretasi dan penggunaan font dengan benar dalam aplikasi dan sistem.


NAME

Berfungsi untuk menyimpan informasi tentang nama-nama yang terkait dengan font tersebut. Tabel ini mengandung metadata yang memberikan informasi tentang nama font, desainer, vendor, bahasa yang didukung, dan informasi lainnya.

Berikut adalah contoh beberapa Name ID umum dalam Name Table beserta deskripsinya:

Name ID Deskripsi Contoh
0 Copyright (c)2023 The Olig Family Project
1 Font Family Olig
2 Font SubFamily Bold
3 Unique Font ID UFCB:OLig Bold:2023
4 Font Fullname Olig Bold
5 Version String 2.005
6 Postrcript Name Olig-Bold
7 Trademark -
8 Manufacturer Unforma Club
9 Designer Taufik Oktama
10 Description Olig is a bla bla bla…
11 URL Manufacturer https://unforma.club
12 URL Designer https://unforma.club/team/oktama-taufik
13 License Description This font software is a bla bla bla bla…
14 License URL https://unforma.club/typeface/olig/license
19 Sample Text The quick brown fox jumps over the lazy dog

Tabel di atas hanya menampilkan beberapa Name ID umum. Name Table sesungguhnya dapat memiliki lebih banyak Name ID dengan deskripsi yang lebih spesifik tergantung pada format font yang digunakan.

Name table pada font memungkinkan aplikasi dan sistem operasi untuk mengenali dan menggunakan font dengan benar. Informasi yang disimpan memainkan peran penting dalam pemilihan dan penggunaan font di berbagai perangkat dan platform.


POST

Tabel POST (PostScript Information) adalah sebuah tabel dalam file font yang menyimpan informasi yang diperlukan untuk menghasilkan representasi PostScript dari karakter dalam font. Berikut adalah contoh deskripsi dan contoh penggunaan dari tabel POST:

Deskripsi: Tabel POST menyediakan informasi yang diperlukan untuk menghasilkan representasi PostScript dari karakter dalam font. Ini termasuk lebar karakter (width), nama karakter (name), dan kode karakter (code). Tabel ini digunakan dalam lingkungan yang menggunakan format PostScript untuk rendering teks, seperti pemrosesan dokumen cetak atau pengaturan halaman.

Contoh:

Karakter Lebar Karakter Nama Karakter Kode Karakter
A 500 A 65
B 550 B 66
C 525 C 67

Dalam contoh di atas, tabel POST menyimpan informasi untuk tiga karakter: “A”, “B”, dan “C”. Setiap karakter memiliki lebar karakter yang berbeda, nama karakter yang sesuai dengan kode ASCII, dan kode karakter yang mewakili karakter tersebut.

Tabel POST memungkinkan aplikasi dan sistem yang menggunakan representasi PostScript untuk mengakses informasi yang diperlukan untuk menggambarkan dan memanipulasi karakter dalam font. Informasi ini membantu dalam rendering teks yang akurat dan konsisten ketika menggunakan font tersebut dalam lingkungan PostScript.

Pengertian PostScript

PostScript adalah bahasa pemrograman yang digunakan untuk menggambarkan gambar dan tata letak dokumen dalam bentuk vektor. Dikembangkan oleh Adobe Systems, PostScript awalnya dirancang sebagai bahasa printer untuk mengendalikan tampilan grafis pada perangkat output cetak. PostScript adalah bahasa pemrograman yang digunakan untuk:

  • Menggambarkan objek-objek grafis seperti garis, lingkaran, dan kurva.
  • Mendefinisikan atribut-atribut seperti warna dan tebal garis.
  • Menghasilkan gambar dan tata letak berkualitas tinggi pada berbagai perangkat.

Kelebihan PostScript

Kelebihan menggunakan PostScript adalah:

  • Menghasilkan gambar dan tata letak yang akurat dan berkualitas tinggi.
  • Cocok untuk mencetak dokumen kompleks dengan teks, grafik, dan gambar.
  • Memungkinkan transformasi pada objek grafis seperti rotasi, penskalaan, dan penggeseran.
  • Dapat digunakan dalam industri pencetakan, publikasi, pemrosesan gambar, tampilan grafis, dan simulasi grafis.

Contoh Penggunaan

Berikut ini adalah contoh penggunaan PostScript untuk menggambar garis:

%!PS
newpath
100 100 moveto
300 300 lineto
2 setlinewidth
0 0 1 setrgbcolor
stroke
showpage

Dalam contoh di atas, kode PostScript diawali dengan %!PS. Kemudian, garis diawali dengan newpath, dan koordinat titik awal dan titik akhir garis ditentukan dengan moveto dan lineto. Selanjutnya, ketebalan garis dan warna garis diatur dengan setlinewidth dan setrgbcolor. Terakhir, stroke digunakan untuk menggambar garis, dan showpage untuk menampilkan hasilnya pada halaman.

PostScript memungkinkan berbagai manipulasi grafis lainnya, seperti menggambar lingkaran, kurva, serta mengatur atribut lainnya seperti font, teks, dan gambar.

Catatan: Untuk menggunakan PostScript, diperlukan editor teks atau perangkat lunak yang mendukung format dan interpretasi bahasa ini.

Untuk informasi lebih lanjut tentang PostScript, Anda dapat merujuk ke dokumentasi resmi Adobe PostScript.


CVT

Tabel CVT (Control Value Table) adalah sebuah tabel dalam file font yang menyimpan serangkaian nilai yang digunakan dalam proses hinting untuk mengontrol penempatan dan penampilan karakter pada berbagai ukuran dan skala. Tabel CVT digunakan untuk memberikan instruksi tentang bagaimana karakter harus ditempatkan dan diperbesar dalam konteks rendering teks.

Tabel CVT berisi kumpulan angka yang merepresentasikan offset vertikal relatif terhadap baseline, yang disesuaikan dengan ukuran karakter dan perubahan skala yang mungkin terjadi saat rendering. Angka dalam tabel CVT dipanggil oleh program hinting yang kemudian menggunakannya untuk mengatur parameter seperti tinggi x-height, ketinggian garis dasar, kontrol overshoot, dan banyak lagi.

Contoh dari beberapa nilai dalam tabel CVT mungkin seperti ini:

No. Nilai CVT
1 0
2 10
3 -5
4 20
5 -15

Dalam contoh ini, terdapat beberapa entri dalam tabel CVT. Misalnya, nilai CVT 1 adalah 0, nilai CVT 2 adalah 10, nilai CVT 3 adalah -5, dan seterusnya. Setiap nilai CVT ini akan digunakan dalam proses hinting untuk mengatur penempatan karakter dan pengontrolan parameter tertentu.

Tabel CVT berperan penting dalam meningkatkan kejelasan dan keindahan karakter dalam font, terutama pada ukuran kecil atau saat perubahan skala. Dengan menggunakan tabel CVT, penyesuaian karakter dapat dilakukan dengan cermat untuk menghasilkan penampilan teks yang optimal dalam berbagai kondisi rendering.

Tabel CVT adalah salah satu komponen penting dalam file font yang memberikan petunjuk tentang cara karakter harus ditempatkan dan diatur dalam konteks yang berbeda.

Feedback
Submit your feedback to [email protected]