"Beberapa barang antik aneh yang ditulis oleh kulibin Irlandia pada tahun 1847, yah, bagus bahwa ini terjadi, tentu saja" Misha VerbitskyPada tahun ke-16, "Permulaan" Euclid dalam
penafsiran Oliver Byrne menarik perhatian saya. Fitur buku ini adalah bahwa alih-alih menulis huruf seperti "segitiga ABC", ada yang ditempatkan langsung di thumbnail teks bagian konstruksi, yaitu, misalnya, gambar dengan segitiga yang sesuai. Sejauh mungkin untuk membayangkan buku seperti itu, itu adalah pekerjaan neraka di pertengahan abad ke-19, sama mudahnya, dengan alat yang tepat, seharusnya sekarang. Dan, secara umum, saya memutuskan untuk yakin akan hal ini.

Pilihan untuk hanya menggambar ilustrasi di ilustrator dan membuat tata letak dalam desain dengan cepat ditandai sebagai dekaden. Untuk melakukan dan mengedit konstruksi geometris di Illustrator bukan untuk mengatakan bahwa itu sangat nyaman, tetapi saya bahkan tidak pernah memikirkan cara yang indah untuk secara otomatis menghubungkan thumbnail ke konstruksi utama. Desainnya, meskipun sangat cocok untuk jenis tata letak ini, berjanji akan menekan tampilan bilah tautan dengan begitu banyak gambar. Jadi, setelah menyimpulkan apa-apa, saya beralih ke MetaPost yang sudah akrab di mana konstruksi geometris cukup mudah dilakukan (tapi tidak seperti dalam geogebra, tentu saja) dan lateks di mana relatif jelas bagaimana mengatasinya. Latech, bagaimanapun, karena tidak dapat dimengerti dengan perpustakaan untuk meta-post, digantikan oleh ConTeXt, yang rukun dengan meta-post langsung dari kotak.
Bagaimana cara kerjanya secara umum?
"Memulai" secara umum 13 bagian - buku, tetapi Byrne hanya memproses 6. buku pertama terutama terdiri dari "kalimat" - teorema dan masalah. Masing-masing terbuat dari konstruksi (lebih sering dari satu) dan teks yang merujuk pada konstruksi ini.
Untuk menggambarkan konstruksi, saya memperkenalkan makro di ConTeXt, yang menciptakan contoh baru dari meta-post. Dalam meta-post, ada segala macam fungsi untuk menggambarkan konstruksi. Ini terlihat seperti ini:
\defineNewPicture{ % pair A, B, C, D; % numeric d; d := 2u; A := (0, 0); % B := A shifted (d, 0); % C := A shifted (0, -d); % D := A shifted (d, -d); % byAngleDefine(B, A, C, byblack, 0); % byAngleDefine(D, B, A, byblue, 0); % , byAngleDefine(C, D, B, byred, 0); % , byAngleDefine(A, C, D, byyellow, 0); % draw byNamedAngleResized(); % byLineDefine(A, B, byred, 0, 0); % byLineDefine(B, D, byyellow, 0, 0); % , byLineDefine(D, C, byblack, 0, 0); % , byLineDefine(C, A, byblue, 0, 0); % draw byNamedLineSeq(0)(AB,BD,DC,CA); % } \drawCurrentPicture

Untuk teks kalimat, saya menulis makro yang menggambar dan menampilkan gambar dalam contoh yang sama dengan konstruksi utama. Mereka mengeksekusi, dalam kasus umum, kode metapost yang sewenang-wenang, tetapi paling sering mereka mengambil argumen nama-nama elemen yang diperlukan - sudut, segmen, dll. Misalnya, seperti ini:

Inilah cara kerjanya bersama:

Beberapa fitur
Gambar-gambar dalam buku itu bersahaja, tetapi beberapa hal memerlukan perhatian khusus.
Jika bagian-bagian tersebut saling bersentuhan dengan ujungnya, entah bagaimana harus diatur dengan baik. Sekarang, senyawa hanya terdiri dari dua segmen yang diproses secara khusus, sisanya dapat diletakkan di bawah koneksi tersebut. Setidaknya ada dua cara untuk menghubungkan garis-garis yang ditemukan dalam aslinya, tetapi bagi saya sepertinya tidak perlu mereproduksi mereka.

Sudut digambar menggunakan sektor. Jika sudutnya cukup kecil, maka dengan jari-jari yang sama, sektor ini akan terlihat terlalu pendek, dan masuk akal untuk meningkatkannya. Sekarang jari-jari tetap konstan pada sudut 60 derajat, dan untuk sudut yang lebih kecil rumusnya adalah sebagai berikut:
.

Garis putus-putus, agar menjadi cantik, harus dimulai dan diakhiri dengan bagian yang terisi, sehingga penetasan sedikit diskalakan agar sesuai dengan bilangan bulat beberapa kali ke dalam suatu segmen (ada hal yang serupa pada ilustrator, tetapi ada goresan setengah panjang di awal dan di akhir baris).

Anda dapat menampilkan segmen dalam teks dengan cara yang berbeda: Anda dapat membuat semuanya dengan panjang yang sama, hanya mengubah warna, tetapi Anda dapat memainkan panjangnya dengan satu cara atau lainnya. Di Byrne, ada ini dan itu. Saya punya rumus ini untuk ini:
dimana
- panjang segmen dalam teks,
Apakah panjang segmen awal,
- panjang segmen yang diinginkan dan
- angka tertentu dari 0 hingga 1. Jika
lalu
, yaitu, setiap segmen akan digambarkan dengan panjang
. Jika
,
. Jika
lalu pada
,
dan dengan
,
, yaitu, segmen pendek diperpanjang, dan yang panjang dipersingkat. Ini diperlukan jika Anda ingin mempertahankan ukuran relatif segmen, tetapi tidak ingin mendapatkan segmen setengah milimeter di sebelah segmen dua sentimeter. (Sebenarnya, semuanya sedikit lebih rumit, tetapi artinya adalah ini).

Meskipun Byrne menolak surat itu, Edward Tufte yang terkenal itu dalam salah satu
bukunya berbicara tentang masalah bahwa Byrne baik-baik saja, tetapi akan menyenangkan untuk mengembalikan surat-surat itu. Dan karena semua sama, hampir semuanya otomatis, maka ada tempat untuk surat-surat itu. Secara default, titik diberi nama dengan cara yang sama dengan variabel tempat koordinatnya disimpan. Label dapat ditempatkan di simpul poligon, atau di ujung segmen, atau dengan cara lain. Mereka, tentu saja, dapat dinyalakan dan dimatikan sesuka hati (tata letak pada saat yang sama, tentu saja, merayap).

Tetapi sebagian besar kode masih didedikasikan untuk hal-hal yang lebih terlihat oleh penulis / editor daripada pembaca. Ini, misalnya, pengakuan yang benar atas nama sudut dan segmen yang identik, pengaturan huruf secara otomatis di sekitar beberapa poligon, gambar otomatis potongan segmen pada sudut tertentu dalam teks, dan sebagainya.
Dalam aslinya ada huruf awal dan sketsa. Di satu sisi, mereka dapat digambar tanpa banyak pekerjaan (mental, setidaknya), tetapi saya memutuskan untuk mengambil tugas yang lebih menarik (walaupun tanpa harapan) - untuk menghasilkan huruf awal dan sketsa dengan pola acak secara otomatis. Pertama, ini hanya menyenangkan, dan kedua, terjemahan ke dalam bahasa Rusia (yang dijelaskan di bawah) akan memerlukan adaptasi gaya awal huruf ke alfabet Cyrillic, yang aktivitasnya tidak termasuk dalam rencana saya. Jadi ketika Anda membuat buku, daftar semua huruf dan sketsa dibuat, dan dari daftar ini skrip metapost terpisah menarik (sangat lambat) satu set lengkap semua hal ini. Huruf awal semuanya berbeda dan polanya tidak berulang.

Prinsipnya sederhana: ikal, sebesar mungkin, ditempatkan di bagian surat dan di bingkai. Ini terjadi beberapa kali, dan lengkungan yang sudah ditarik dimasukkan dalam iterasi berikut. Kemudian "pergi" muncul dengan cara yang sama. Bentuk dan sifat berbagai jenis proses dapat diubah.

Saya tidak bisa mengatakan bahwa saya cukup senang dengan hasilnya, tetapi saya secara bertahap meningkatkan algoritme dan berharap untuk yang terbaik (namun, Anda dapat meludah dan menyelipkan gambar dengan huruf apa pun alih-alih yang dibuat). Sebagai bonus, skrip dapat menghasilkan petak acak dari ikal.

Terjemahan
Untuk menangkap kesalahan, dan memang, saya mulai menerjemahkan ke dalam bahasa Rusia. Poin referensi saya adalah terjemahan dari "Awal" Morducai-Boltovsky, tetapi dengan cepat menjadi jelas bahwa Byrne telah mengubah terlalu banyak bukti untuk sangat membantu. Sejujurnya, pada awalnya saya menerjemahkan semuanya sepenuhnya setelah lengan baju, terutama pengantar, hanya untuk membuatnya, dan hanya baru-baru ini tangan saya meraih untuk menghaluskan sedikit kekasaran.
Terlepas dari buku kelima yang tidak menyenangkan (yang, ternyata, dibingkai
secara terpisah dari yang lain dan agak lebih awal), itu tidak terlalu sulit. Penerjemahan (prosesnya sendiri) benar-benar membantu untuk menangkap banyak tiang kayu yang berbeda, baik milik saya maupun penulis. Misalnya,
konstruksi Proposisi 9 dari buku keenam oleh Byrne tidak sesuai dengan teks, itulah sebabnya buktinya tidak berfungsi, jadi saya harus mengulang semuanya di sana.
Dari keingintahuan: dalam pengantar, di mana penulis memuji metodenya, ia pertama kali merujuk pada Horace,
mengutip puisinya tentang keunggulan penglihatan atas perasaan lain sebagai argumen. Dan beberapa halaman kemudian dia memutuskan untuk menambah demi meyakinkan juga "penyair modern", yang ayat-ayatnya juga dia kutip. Sebenarnya, "puisi-puisi penyair modern" ternyata merupakan
terjemahan lain dari baris-baris Horace yang sama. Di sini, tentu saja, perlu untuk meninggalkan segala sesuatu sebagaimana adanya dan dalam catatan kaki menunjukkan kesalahan penulis, tetapi untungnya sang istri menemukan
puisi bahasa Inggris yang cocok dan jauh lebih modern oleh penulis Byrne, yang mulai beraksi (walaupun mereka mengatakan bahwa tidak mungkin untuk melakukan ini). Dalam versi bahasa Inggris dibiarkan apa adanya.

Versi Rusia juga berbeda karena huruf kecil di dalamnya disertakan secara default dan perubahan umumnya lebih kecil dibandingkan dengan aslinya daripada dalam bahasa Inggris. Benar, di sini seseorang
meminta saya
untuk membuat versi bahasa Inggris juga dengan surat-surat, dan saya berpikir untuk memasukkannya di sana juga: tanpa mereka, buku ini sudah ada.
Teman lain
mulai menerjemahkan buku ke dalam bahasa Polandia dan menulis banyak hal berharga dalam perjalanan dalam masalah (misalnya, tentang skala sudut - ini adalah
sarannya ). Bagus jika Anda menerjemahkan.
Subtotal
Setelah mengutak-atik buku ini, saya memiliki yang berikut untuk dikatakan. Gambar dalam teks sangat mudah dibaca, sekarang saya menggunakan teknik ini di tempat lain. Mempertimbangkan bahwa saya terlibat dalam proyek di malam hari setelah pekerjaan utama selama satu hari penuh, ternyata cukup cepat: sekitar enam bulan untuk versi bahasa Inggris pertama, dengan semua perencanaan dan pemrograman, tiga bulan untuk edisi pertama terjemahan Rusia. Benar, saya masih memperbaiki beting di sana-sini (dan baru-baru ini, istri saya mulai membaca bahasa Rusia untuk kesalahan ketik, dan saya memerah, hampir seperti dari
permintaan tarik pertama ).
Sejak versi pertama diterbitkan di github,
kampanye kickstarter untuk mengumpulkan dana untuk "menyelesaikan karya Byrne" dimulai, yaitu, seperti yang penulis pahami, desain ke-13 buku "Awal" dengan nada yang sama. Rupanya, tata letak dalam desain, apa yang mereka gambar, tidak jelas. Sejauh ini, buku-buku belum dikirim, tetapi mereka harus segera. Saya harap ini berhasil dengan baik. Dan baru-baru ini, seorang desainer Amerika merilis
versi web bagus
dari enam buku pertama. Dilihat oleh artikel dengan cerita tentang karya itu, ia melukis semuanya dengan tangan di ilustrator.
Paket
Byrne tidak memiliki stereometri sama sekali, jadi saya tidak memberikan instrumen apa pun untuknya sejak awal, tetapi sekarang saya memutuskan untuk secara perlahan memesan buku-buku "Permulaan" dari 11 hingga 13 sehingga saya dapat mengerjakan alat-alatnya. Sejauh ini, sedikit lebih dari setengah dari buku ke-11 telah siap dan, karenanya, sudah ada beberapa fungsi untuk menggambarkan konstruksi tiga dimensi dan proyeksi mereka ke sebuah pesawat. Namun, konstruksi yang rata-rata jauh lebih rumit daripada yang rata, dan sejauh ini saya tidak memiliki gagasan yang jelas tentang seberapa banyak pendekatan Byrne akan bekerja untuk mereka, atau apakah akan cukup nyaman untuk membuatnya dalam meta-post.

Gambar dalam teks sering membutuhkan kerning. Mirip, tetapi lebih rumit: gambar berukuran besar pada garis yang berdekatan menyebarkan garis sangat lebar, yang hanya dibenarkan jika saling tumpang tindih. Saya belum menemukan cara mengotomatiskan hal-hal ini, dan secara manual menangkap semua ini sangat membosankan.

Metapost dapat diluncurkan baik dari lateks maupun secara terpisah. Jadi di masa depan saya berencana membuat makro untuk lateks, sama seperti untuk ConTeXt, sehingga Anda dapat melakukan hal yang sama di lingkungan yang lebih umum. Secara teori, tidak ada yang mengganggu untuk menggunakan metapost, misalnya, dengan desain. Ini dapat dilakukan sekarang, hanya dengan mengumpulkan gambar secara terpisah dan menautkannya secara manual, tetapi meminta untuk menulis beberapa skrip untuk ID sehingga ini terjadi dengan sendirinya. Yang terakhir ini terlihat seperti semacam penyimpangan, tetapi terlalu sering terlintas dalam pikiran untuk tidak mempertimbangkan kemungkinan seperti itu.
Nah dan yang paling penting - saya ingin mencoba menerapkan semua mesin ini ke sesuatu yang lebih modern dan praktis daripada "Awal".
Semua kebohongan baik di
sini , pdf siap dalam rilis.