- Quiver adalah editor untuk membuat diagram komutatif dan diagram pasting secara grafis, dengan dukungan rendering berkualitas tinggi untuk tampilan layar serta ekspor ke LaTeX dan Typst
- Membuat dan mengubah diagram jauh lebih cepat daripada menulis LaTeX atau Typst secara manual, dan setelah terbiasa, kecepatan kerjanya bisa mendekati pena dan kertas
- Dapat menangani diagram kompleks seperti pullback, pushout, adjunction, dan higher cell, serta menyediakan grid fleksibel yang menyesuaikan dengan ukuran label dan gaya panah yang bisa dikombinasikan
- Dapat digunakan baik dengan drag mouse maupun shortcut keyboard, serta mendukung multi-select, undo·redo, makro pengguna, ekspor diagram yang dapat disematkan ke HTML, serta panning·zoom
- Saat mengekspor ke LaTeX atau Typst, tautan diagram juga dapat disisipkan agar nantinya bisa dibuka kembali untuk diedit atau dibagikan ke orang lain
Apa yang dilakukan Quiver
- Quiver adalah editor grafis modern untuk membuat diagram komutatif dan diagram pasting
- Dapat merender diagram berkualitas tinggi yang enak dilihat di layar, dan dapat diekspor ke LaTeX melalui tikz-cd, serta ke Typst melalui fletcher
- Bisa langsung dicoba di web melalui q.uiver.app
- Panduan penggunaan yang efisien dan cara membuat serta mengedit diagram hanya dengan keyboard dirangkum dalam tutorial Quiver
Fitur pembuatan diagram
- Menyediakan antarmuka yang efisien dan intuitif untuk membuat diagram komutatif kompleks dan diagram pasting
- Contoh yang didukung antara lain:
- diagram yang mencakup pullback dan pushout
- adjunction
- higher cell
- Penempatan objek didasarkan pada grid fleksibel yang menyesuaikan dengan ukuran label
- Panah dapat dikombinasikan dalam berbagai gaya
- Warna dapat digunakan pada label dan panah
- Dirancang agar tetap terlihat bagus di tangkapan layar, dan hasil ekspor ke LaTeX·Typst juga semirip mungkin dengan diagram aslinya
Metode input dan alur kerja pengeditan
- Diagram dapat dibuat dan diubah dengan klik·drag menggunakan mouse
- Menyediakan kumpulan shortcut keyboard untuk melakukan semua aksi, sehingga pengeditan berbasis keyboard juga dimungkinkan
- Beberapa elemen dapat dipilih sekaligus agar perubahan massal lebih mudah dan cepat
- Dengan sistem riwayat, pekerjaan dapat di-undo·redo
- Mendukung panning dan zoom untuk menangani diagram besar
- Menyediakan perataan label cerdas dan edge offset
Ekspor dan penggunaan ulang
- Diagram dapat diekspor ke LaTeX atau Typst
- Hasil ekspor menyertakan tautan untuk kembali ke diagram tersebut
- Dapat dibuka kembali nanti saat perlu diedit
- Dapat dibagikan ke orang lain
- Juga mendukung ekspor diagram yang dapat disisipkan ke HTML
- Makro kustom dapat digunakan dengan cara menempelkan URL file yang berisi
\newcommand - Integrasi editor dapat dilihat pada dokumen Editor integration dan Quiver wiki
Syarat build dan menjalankan
- Setelah menjalankan
makedi command line, hasil build dapat diperiksa dengan membukasrc/index.htmldi browser - Jika versi Make atau Bash tidak cocok, rilis KaTeX terbaru dapat diunduh secara manual lalu ditempatkan di bawah
src/KaTeX/ - Jika path KaTeX tidak benar, akan muncul error kegagalan memuat KaTeX
- Quiver harus dijalankan melalui localhost
- Jika Python terpasang, jalankan
make servedi direktori Quiver lalu bukalocalhost:8000di browser - Jika ada masalah build, Anda dapat membuka issue GitHub yang berisi detail masalah tersebut
1 komentar
Komentar Hacker News
Alat ini benar-benar luar biasa. Saya bisa membuat kubus Fourier-Poisson [0] dalam sekitar 10 menit, dan UI-nya juga sangat intuitif
Menurut saya, keputusan untuk fokus pada diagram komutatif alih-alih kanvas bebas adalah pilihan yang brilian karena membuatnya rapi dan mudah digunakan. Seandainya saya punya ini saat menulis paper, saya pasti akan menghemat banyak waktu
[0] https://q.uiver.app/#q=WzAsOCxbMCwxLCJnIFxcdGV4dHsgb24gfVxcb...
Dalam konteks yang mirip, baru-baru ini editor Petri net ini cukup mengesankan: https://pes.vsb.cz/petrineteditor/#/model
Petri net itu keren. Rasanya mirip jika mesin keadaan hingga dibuat multithreaded
Saya pertama kali mengenal Petri net saat membaca tulisan dari organisasi bernama “statebox”. Statebox tertarik pada Petri net, diagram komutatif, dan berbagai konsep teori kategori, dan setelah membaca beberapa paper saya jadi terpikat dan bermimpi bisa bekerja di sana. Sayangnya, sekarang situs webnya hanya menampilkan frasa “imagine being a category theorist” dan emoji tertawa-sampai-menangis, jadi saya tidak tahu apa yang terjadi
Beberapa hari lalu saya memakai ini untuk menggambar diagram sederhana [0] yang akan dimasukkan ke buku saya [1]
Sayangnya karena ini khusus untuk teori kategori, dukungannya untuk menghias node dengan cantik tidak banyak, tetapi tentu saja itu bisa ditangani dengan LaTeX
[0] https://q.uiver.app/#q=WzAsNSxbMSw2LCJcXHRleHR7TmF0dXJhbCBEZ...
[1] http://abstractionlogic.com
Tadi malam saya sedang memakai https://tikzcd.yichuanshen.de/, yang terasa seperti versi alat ini dengan fitur lebih sedikit. Meski begitu, itu cukup bagus untuk membuat diagram sederhana
Bisa jelaskan apa itu diagram komutatif dan diagram tempel kepada seorang pengembang perangkat lunak yang rendah hati dan tidak terlalu hebat?
Artikel Wikipedia terlalu abstrak untuk dipahami di tingkat dasar [0]
[0]: https://en.wikipedia.org/wiki/Commutative_diagram
Jika ada
fdi atasA → B, itu menyatakan fungsi f yang menerima masukan dari A dan menghasilkan keluaran di BDiagram dengan
A → Bsebagaif, laluB → Csebagaig, danA → Csebagaihberartig ∘ f = h, yaitu melakukan f lalu g sama dengan melakukan h. Karena domain dan kodomain tiap fungsi ditulis bersama, jadi mudah melihat apakah fungsi-fungsi itu bisa dikomposisikan, yaitu apakah lolos pemeriksaan tipeKarena lintasan di dalam diagram juga dikomposisikan seperti fungsi, notasi ini terasa sangat alami. Misalnya, sifat asosiatif sudah tertanam dalam notasinya, jadi
A→B→C→Dadalah satu-satunya cara menyatakan komposisi tiga fungsi, dan perbedaan antara(f∘g)∘hdanf∘(g∘h)bahkan tidak bisa dituliskanSecara umum, jika pada multigraf berarah ditambahkan penjelasan tentang lintasan mana yang setara dan mana yang tidak, lalu relasi kesetaraan ini memenuhi beberapa sifat dasar, itu disebut kategori. Konsep ini sangat sering muncul dalam matematika, logika abstrak, dan sebagainya. Diagram komutatif berguna dalam konteks ini untuk dengan cepat menalar kesetaraan lintasan secara visual
n(g(f(a))). Itulah diagram, dan ketika diagram dikatakan komutatif, artinya mengikuti sembarang dua lintasan dengan titik awal dan akhir yang sama akan memberikan hasil yang samaJadi
n(g(f(•))),s(r(l(•))), dans(m(f(•)))semuanya adalah lintasan dari A ke C' sekaligus pemanggilan fungsi, dan karena diagramnya komutatif, semua lintasan ini samaMonomorfisme, epimorfisme, dan isomorfisme semuanya adalah sifat penting dari fungsi, yang memungkinkan Anda “mencoret” suku tertentu di kedua sisi persamaan. Misalnya, secara umum dari
f(g(x))=f(h(x))Anda tidak bisa menyimpulkang(x)=h(x). Jika f bisa dicoret dengan cara ini, itu disebut monomorfisme. Demikian pula, jika darig(f(x))=h(f(x))Anda bisa mencoret f dan memperolehg(x)=h(x), maka f adalah epimorfisme. Isomorfisme memenuhi keduanya. Karena sifat-sifat ini, dalam situasi tertentu Anda bisa “berjalan mundur” pada sebagian lintasan diagramSalah satu bentuk teorema yang bisa dilihat dalam teori kategori adalah seperti pada contoh five lemma[0]: “lihat diagram ini. Jika g adalah epimorfisme dan h adalah monomorfisme, maka f adalah isomorfisme.” Artinya, jika Anda tahu bahwa pencoretan bisa dilakukan dari sisi ini dan sisi itu, maka Anda juga tahu bahwa itu bisa dilakukan di sisi yang lain
[0] https://en.wikipedia.org/wiki/Five_lemma
Untuk pemahaman sederhana, anggap saja objek sebagai tipe dan panah sebagai fungsi antar tipe
Mulailah dari sudut kiri atas dan telusuri dua lintasan sambil memeriksa tipenya. Jika diagramnya lolos pemeriksaan tipe, maka ia komutatif, dan kedua lintasan itu setara dalam suatu makna. Makna pastinya bergantung pada berbagai detail yang diabaikan di sini
Salah satu contoh kategori adalah kategori “himpunan dan fungsi”. Dalam kategori itu, semua himpunan yang bisa dibayangkan adalah objek, yaitu node, dan semua fungsi yang mungkin antara dua himpunan mana pun adalah panah di antara keduanya
Jadi jika Anda mengambil satu panah dari A ke B dan satu panah dari B ke C lalu mengomposisikannya seperti fungsi, Anda akan mendapatkan fungsi dari A ke C
Diagram komutatif bisa dipandang sebagai himpunan bagian dari seluruh kategori, dan jika Anda menelusuri semua lintasan yang digambar antara dua himpunan X dan Y lalu mengomposisikan panah-panah pada tiap lintasan, hasilnya adalah fungsi yang sama
Saya belum pernah membaca tentang kategori tingkat tinggi, jadi saya tidak yakin tentang diagram tempel, tetapi kemungkinan besar itu adalah semacam generalisasi dari ide ini
Apakah bisa diekspor ke format yang ramah web? Mungkin SVG adalah pilihan yang tepat. Jika menjalankan quiver di localhost, berbagi lewat tautan bukanlah opsi
Saat mengambil kelas teori kategori beberapa tahun lalu, Quiver benar-benar sangat penting. UI-nya rapi dan intuitif, dan fiturnya juga cukup. Dibandingkan harus bergulat dengan TikZ, ini jelas jauh lebih unggul
Produk yang sangat bagus. Dulu saya biasanya menulis kode TikZ dengan tangan dan cukup cepat melakukannya, tetapi sekarang sudah banyak lupa, jadi ini tampaknya sangat berguna untuk diagram komutatif
Di sini tersembunyi sebuah alat pembuat kode yang layak dibuat
Saya sudah beberapa kali memakai Quiver, dan setiap kali pengalamannya selalu bagus. Kerja bagus untuk para pembuatnya