Misalkan bahwa saya memiliki font dalam format sederhana populer ( .ttf
, .otf
, dll), dan saya memiliki hak hukum untuk memodifikasinya. Seperti berdiri, itu adalah font normal dengan karakter yang berbeda (mesin terbang?) Bervariasi dalam lebar dan jarak. Bagaimana saya mengubah font tersebut menjadi font monospasi (misalnya semua karakter memiliki dimensi yang sama, dll.)?
Jika memungkinkan, apakah ada alat otomatis yang dapat melakukan beberapa tebakan untuk Anda? (Hasilnya tidak harus sempurna .) Font mungkin besar (banyak karakter), dan mengeditnya bisa membosankan.
Setiap saran tentang masalah sangat kami hargai! :)
Penafian: Maaf jika ini dianggap sebagai howto sederhana , tetapi Google memiliki sedikit informasi tentang subjek, dan untuk seorang programmer yang tidak banyak berurusan dengan grafik atau font, tentu tidak sederhana . Juga, maaf jika terminologi saya tidak aktif ...: P
Jawaban:
Jika Anda belum memiliki perangkat lunak pengedit font, kabar baiknya adalah Fontforge gratis dan open source. Berita buruknya adalah ia memiliki kurva belajar yang relatif tinggi dan antarmuka pengguna yang agak tidak biasa.
Pada dasarnya, untuk font yang dianggap monospace, setiap mesin terbang harus memiliki lebar yang sama, hingga jumlah unit yang sama persis. Ini termasuk bahkan mesin terbang yang biasanya harus nol lebar, atau lebar tertentu (seperti spasi em, tanda hubung em, dll).
Lihat entri FAQ "Bagaimana cara menandai font sebagai monospasi?"
Untuk benar-benar mengedit lebar semua mesin terbang sekaligus dalam satu batch, Anda bisa pergi ke "Metrik" -> "Atur Lebar" pada menu, tetapi saya tidak berharap itu berfungsi untuk semua karakter. Anda mungkin harus mengedit secara manual semua karakter lebar seperti 'W', 'M', '@', dll sehingga mereka tidak berakhir tumpang tindih. Dan menggabungkan diakritik (aksen yang dimaksudkan untuk "dikombinasikan" dengan huruf pada waktu render) mungkin memiliki semua posisi mereka kacau (yang sulit untuk menguji apakah Anda orang Amerika / Inggris dan Anda hampir tidak pernah menggunakannya).
Seseorang yang tahu cara membuat dan mengedit font akan dapat melakukan tugas ini tetapi masih tidak mudah.
sumber
Set Width
bawahMetrics
menu drop-down: mengatur semua mesin terbang untuk satu lebar rata-rata (ganti nanti jika perlu) dan akhirnya, pilihEqualise Sidebearings
juga di bawahMetrics
menu untuk memusatkan mesin terbang di em-square. Tentu saja: pelajari bagaimana orang lain telah mengatasi kesulitan-kesulitan khusus untuk merancang font dengan lebar tetap yang sukses.thomasrutter menawarkan lebih banyak jawaban teknis; Saya akan menunjukkan kepada Anda beberapa prinsip tipografi untuk mencegah Anda melakukan apa yang ingin Anda lakukan kecuali Anda benar-benar perlu.
Memperbesar 'i' dan 'm' di Consolas atau Courier lalu Corbel atau Verdana. Perhatikan betapa berbedanya huruf-huruf itu agar monospace berfungsi. Untuk benar mengkonversi font ke monospace dibutuhkan banyak pengetahuan dan pekerjaan. Gagasan umum untuk meregangkan font sama sekali tidak disukai oleh desainer mana pun yang layak mendapatkan garam mereka, itu sebabnya bahkan beralih dari normal ke varian yang kental membutuhkan penggambaran ulang semua mesin terbang.
Jadi, lihat Consolas vs Corbel di sini dan lihat bagaimana, ketika diperbesar, Anda dapat melihat 1) jarak antar huruf, 2) konsistensi ketebalan goresan, dan 3) bagaimana setiap huruf masuk ke dalam kotaknya. Lihatlah wajah monospasi (pertama) dibandingkan dengan variabel spasi wajah (kedua), lalu lihat ketiga dan keempat untuk melihat apa yang terjadi ketika Anda mencoba meregangkan dan ruang untuk membuatnya sama. Untuk yang keempat, saya membuat MS squish hingga 75% untuk masuk ke dalam kotak, tapi sekarang mereka jauh lebih kurus daripada Is. yang akan terlihat saat digunakan.
Jadi, singkatnya: jangan main-main dengan tipografi; mereka jauh lebih tangguh dari yang Anda harapkan!
sumber
Saya menemukan masalah ini sangat mencoba untuk mengedit kode sumber menggunakan simbol Unicode. Dalam konteks itu, sebagian besar kode sumber ditampilkan dalam satu font monospace, dan beberapa simbol yang tidak tercakup oleh font itu akhirnya merusak perataan.
Meskipun benar bahwa "monospacifying" font penuh akan menghasilkan hasil yang mengerikan (kerning, lebar goresan, dan keseimbangan umum semua akan sepenuhnya kacau), mengimpor hanya beberapa simbol dari font lebar-variabel ke dalam monospace yang menghasilkan hasil yang layak. Animasi di bawah ini menunjukkan penggunaan Consolas + Symbola sebagai mundur, dibandingkan menggunakan Consolas + versi monospasifikasi dari Symbola:
Ini tidak berguna untuk tipografi lanjutan, tetapi kompromi yang bagus jika Anda ingin menggunakan simbol dalam kode sumber Anda tanpa merusak lekukan. Ada beberapa peringatan:
Saya telah meluncurkan proyek GitHub untuk menangani transformasi font semacam ini secara otomatis. Ini termasuk font yang dibuat sebelumnya, dan kode menggunakan fontforge's Python binding.
Lihat juga pertanyaan emacs.se ini .
sumber
Dalam pengolah kata, I: (1) membuat tabel; (2) dibagi menjadi kolom - satu kolom untuk setiap huruf; (3) menempatkan huruf di tengah; dan (4) menjadikan semua batas, internal dan eksternal tidak terlihat.
sumber