Dalam
artikel sebelumnya, saya berbicara tentang bagaimana saya menulis catatan matematika di LaTeX di Vim. Pada artikel ini, saya akan menunjukkan kepada Anda cara membuat gambar untuk abstrak ini menggunakan Inkscape, serta berbicara tentang manajer hotkey buatan Anda.
Beberapa contoh
Pertama, izinkan saya menunjukkan beberapa contoh angka. Mereka dibuat untuk analisis kompleks, geometri diferensial, elektrodinamika dan tesis sarjana saya tentang kurva eliptik. Saya menggambar mereka selama kuliah - kecuali, tentu saja, untuk disertasi saya - menggunakan Inkscape, jadi mari kita mulai dengan ini.





Apa itu Inkscape?
Inkscape adalah editor grafis vektor open source yang tersedia untuk semua platform utama. Ini adalah alternatif gratis, tetapi mungkin kurang fungsional untuk Adobe Illustrator. Ini dapat digunakan untuk merancang selebaran dan logo, seperti pada gambar di bawah ini, tetapi juga merupakan alat yang ampuh untuk menggambar bentuk geometris.

Mengapa inkscape?
Solusi paling umum untuk menambahkan gambar ke dokumen LaTeX adalah TikZ, PSTricks, dan Asymptote. Mereka memiliki satu kesamaan: mereka semua bekerja dalam tim, yaitu, Anda hanya menulis kode yang menentukan cara menggambar angka. Misalnya, kode TikZ:
\begin{tikzpicture} \coordinate (A) at (1, 3); \draw[thick, ->] (0, 0) -- (A); \node[above right] at (A) {$A = (1, 2)$}; \end{tikzpicture}
menampilkan gambar berikut:

Keuntungan dari paket-paket ini adalah menggambar sangat mirip dengan pemrograman: Anda dapat menggunakan variabel, melakukan perhitungan, menggunakan
for
loop, dll. Selain itu, gambar sesuai dengan dokumen, karena semua teks diketik langsung ke LaTeX. Ini artinya mudah untuk mengetik formula, dan jika Anda kemudian memutuskan untuk mengubah font dokumen, semua gambar akan secara otomatis berubah sesuai dengan font baru.
Namun, untuk kelebihan ini Anda harus membayar untuk kurangnya umpan balik visual dan kecepatan rendah. Menggambar bentuk kompleks pada dasarnya adalah tugas grafis dan tanpa antarmuka grafis bisa sangat memakan waktu. Tidak mungkin untuk mengklik dan menarik objek, menggambar kurva dengan tangan, atau menarik titik kontrol dari kurva Bezier. Karena itu, TikZ jauh lebih rumit dan lebih lambat daripada Inkscape. Meskipun saya terkadang menggunakan TikZ untuk gambar yang kompleks, dalam banyak kasus kelebihan Inkscape jauh lebih besar daripada kelebihan TikZ, terutama jika Anda berada di bawah tekanan waktu selama kuliah.
Sudah selesai, mari kita mulai.
Sematkan gambar Inkscape dalam dokumen LaTeX
Seperti TikZ, Inkscape memiliki kemampuan untuk menampilkan teks dalam gambar menggunakan LaTeX. Untuk melakukan ini, editor mengekspor angka dalam pdf dan file LaTeX. Pada gambar pertama dengan teks terpisah, dan dalam file LaTeX - kode yang diperlukan untuk penempatan teks yang benar. Misalnya, Anda bekerja di Inkscape pada gambar seperti ini:
Teorema RiemannUntuk memasukkan angka ini dalam dokumen LaTeX, buka menu
File ›Save As , pilih 'pdf' sebagai ekstensi, lalu klik
Simpan , dan kotak dialog berikut akan muncul:
Memilih 'Hapus teks dalam pdf dan buat file LaTeX' menyimpan gambar sebagai pdf + LaTeX. Untuk menyisipkan gambar Inkscape ke dalam dokumen LaTeX, Anda dapat menambahkan kode berikut ke pembukaan:
\usepackage{import} \usepackage{xifthen} \usepackage{pdfpages} \usepackage{transparent} \newcommand{\incfig}[1]{
Dengan asumsi angka tersebut ada dalam file
figures/riemmans-theorem.svg
, Anda dapat memasukkannya dengan kode sederhana:
\begin{figure}[ht] \centering \incfig{riemmans-theorem} \caption{Riemmans theorem} \label{fig:riemmans-theorem} \end{figure}
Setelah menyusun dokumen, Anda akan melihatnya:

Seperti yang Anda lihat, teks dirender menggunakan LaTeX, yang terlihat sangat bagus. Jika nanti Anda memutuskan untuk mengubah font, font itu akan diperbarui sesuai:

Sistem seperti ini memungkinkan Anda untuk menggambar di Inkscape, sambil terus mengetikkan LaTeX.
Buat dan masukkan gambar dengan cepat
Ketika saya menulis ringkasan selama kuliah, saya perlu menambahkan gambar dengan cepat tanpa mengganggu alirannya, yaitu, tidak membuang waktu membuka Inkscape, menemukan direktori yang tepat, memasukkan kode LaTeX untuk memasukkan angka secara manual, dan sebagainya. Untuk menghindari ini, saya menambahkan beberapa pintasan keyboard ke Vim untuk mengelola gambar. Misalnya, ketika saya mengetik judul gambar dan
Ctrl+F
, yang berikut ini terjadi:
- Script menemukan katalog gambar tergantung pada lokasi file root LaTeX.
- Itu kemudian memeriksa untuk melihat apakah gambar dengan nama yang sama ada. Jika demikian, skrip tidak melakukan apa pun.
- Jika tidak, templat pola disalin ke direktori
/figures
.
- Baris saat ini dengan judul gambar diganti oleh kode LaTeX untuk menyisipkannya.
- Gambar baru terbuka di Inkscape.
- Pemantauan file dikonfigurasi sedemikian rupa sehingga setiap kali Anda menyimpan gambar ke file svg dengan menekan
Ctrl+S
itu juga disimpan sebagai pdf + LaTeX. Dengan demikian, dialog pdf save yang kita bahas sebelumnya tidak lagi muncul.
Skema dalam aksi:

Ketika saya ingin mengedit gambar, saya
Ctrl+F
dalam mode normal. Dialog pemilihan terbuka yang memungkinkan Anda mencari pola di dokumen saat ini. Setelah dipilih, ini akan membuka gambar di Inkscape. Ketika saya menyimpannya, kode tempel disalin ke clipboard. Dengan demikian, saya dapat memasukkan kembali jika saya menghapus sumbernya.

Tombol pintas ini memungkinkan Anda untuk menambah dan membuka gambar dengan cepat. Anda tidak perlu mengingat bahwa untuk setiap Anda perlu menentukan pdf + LaTeX, pilih direktori yang benar atau tulis kode untuk dimasukkan. Hambatan untuk menambahkan gambar baru jauh lebih rendah daripada jika Anda melakukannya secara manual. Skrip manajemen gambar saya diterbitkan
di Github .
Setelah memahami manajemen, mari kita bicara tentang cara menggambar bentuk di Inkscape.
Menggambar
Meskipun menggambar di Inkscape biasanya lebih cepat daripada di TikZ, itu masih lebih lambat daripada menggambar dengan tangan. Proses ini dipercepat dengan pintasan keyboard bawaan Inkscape, tetapi masih belum cukup.
Jadi saya memutuskan untuk memprogram di Python pengelola pintas buatan sendiri yang memungkinkan Anda untuk mencegat semua acara keyboard sebelum mencapai Inkscape. Jadi saya memiliki kendali penuh atas bagaimana masing-masing tombol ditekan, yang memberikan fleksibilitas besar.
Menggambar bentuk
Mari kita mulai dengan pintasan keyboard bawaan Inkscape. Misalnya,
r
mengaktifkan alat menggambar persegi panjang,
e
menggambar elips, dll. Dari sudut pandang implementasi, ini berarti bahwa manajer kombinasi akan "memainkan" peristiwa keyboard ini, yaitu, cukup mentransfernya ke Inkscape.
Namun, alih-alih pintasan default
p
untuk pensil dan
b
untuk kurva Bezier, saya menggunakan
w
dan
f
, karena mereka sedikit lebih nyaman untuk mengklik dengan tangan kiri, jika di mouse kanan. Dalam semangat kombinasi kidal, saya juga mencocokkan
z
untuk membatalkan,
Shift+z
untuk menghapus, dan
x
untuk beralih gertakan, yang biasanya ditugaskan untuk% yang sulit dijangkau.
Kombinasi tombol untuk gaya yang umum digunakan
Objek gaya adalah hal paling umum kedua yang saya lakukan di Inkscape. Gaya untuk menggambar cukup sederhana:
- Bentuk seperti persegi panjang dan lingkaran biasanya hitam, abu-abu muda, putih atau transparan, mungkin. dengan kontur.
- Garis (termasuk kontur) sebagian besar padat, putus-putus, atau putus-putus. Mereka bisa (sangat) tebal atau lebar normal, dan kadang-kadang dengan panah di satu atau kedua sisi.
Kombinasi opsi-opsi ini memberikan tabel gaya yang umum digunakan berikut:

Karena saya sering menggunakan style ini, saya ingin melakukannya dengan cepat, tetapi menggunakan pintasan default Inkscape membutuhkan terlalu banyak waktu. Misalnya, Anda ingin mengubah gaya beberapa objek sebagai berikut:

Anda harus menekan
Ctrl+Shift+F
untuk membuka panel gaya dan memperbarui gaya setiap objek dengan mengkliknya, karena Anda tidak dapat melakukan ini menggunakan pintasan keyboard di Inkscape. Ini melelahkan. Idealnya, saya ingin melakukan operasi seperti itu dalam sepersekian detik.

Di sinilah pintasan keyboard masuk, yang terdiri dari dua atau lebih penekanan tombol secara bersamaan. Misalnya, ketika saya menekan
s
dan
f
pada saat yang sama, manajer kombinasi saya akan menerapkan garis besar yang solid dan isian abu-abu ke pilihan saat ini. Saat Anda membutuhkan garis tebal, saya menekan
s+f+g
bersamaan, di mana
g
berarti tebal.
Jadi, setiap properti berhubungan dengan kunci:
s
menunjukkan kontur normal,
f
menunjukkan isian abu-abu,
g
menunjukkan ketebalan,
a
menunjukkan panah,
d
menunjukkan titik,
e
menunjukkan garis putus-putus, dan seterusnya. Berikut adalah tabel lengkap opsi yang mungkin:

Beberapa gaya dalam tabel ini hanya sesuai dengan satu tombol, misalnya, gaya di sudut kiri atas: abu-abu diisi tanpa garis besar. Ini bisa menjadi masalah karena menekan satu
f
meluncurkan alat kurva Bezier. Solusinya adalah dengan menekan
+ f
, di mana ruang bertindak sebagai pengganti.
Dengan kombinasi seperti itu, masalah sebelumnya diselesaikan dalam beberapa ketukan:
f
+ s
membuat persegi panjang abu-abu dan menambahkan garis besar;
f
+ h
+ e
berarti padding dan bold bertitik
a
+ g
+ d
menambahkan panah dan mengubah garis menjadi garis putus-putus yang tebal.

Menambahkan Teks
Karena rumus matematika sering ditemukan dalam gambar, saya ingin menggunakan
potongan saya di Vim. Untuk melakukan ini, saya tekan
t
, yang membuka jendela Vim kecil, tempat saya memasukkan kode LaTeX. Setelah keluar, fragmen teks dimasukkan ke Inkscape:

Seperti yang saya katakan, teks ini akan ditampilkan oleh LaTeX ketika Anda memasukkan gambar ke dalam dokumen. Tapi kadang-kadang saya ingin segera menampilkan LaTeX, yang bisa dilakukan dengan
Shift+T
:

Kedua opsi memiliki kelebihan dan kekurangan. Pada dasarnya, saya menggunakan metode pertama karena teks ditampilkan dalam dokumen LaTeX. Ini berarti font selalu cocok dan Anda dapat menggunakan makro yang ditentukan dalam pembukaan dokumen. Namun ada kekurangannya: terkadang agak sulit untuk melakukan pemosisian teks. Karena Anda tidak melihat hasil akhirnya di Inkscape, terkadang Anda harus beralih dari Inkscape ke penampil pdf dan kembali untuk menyempurnakan hasilnya.
Menyimpan dan menggunakan gaya yang lebih jarang
Meskipun gaya dasar sudah cukup dalam 90% kasus, kadang-kadang Anda ingin menggunakan gaya khusus. Misalnya, untuk menggambar diagram pada optik, berguna untuk memiliki gaya kaca dan balok. Untuk melakukan ini, Anda harus terlebih dahulu membuat gaya di Inkscape menggunakan kombinasi default:

Untuk menyimpan gaya ini, saya memilih salah satu objek dan tekan
Shift + s
. Lalu saya masukkan nama gaya baru, dalam hal ini 'kaca', dan tekan Enter untuk konfirmasi. Sekarang gaya disimpan, dan nanti saya bisa menggunakannya.
Sekarang, ketika saya memilih objek, tekan
s
dan masukkan 'kaca', gaya yang sesuai akan diterapkan pada objek. Namun, tidak perlu memasukkan nama lengkap, karena gaya diterapkan segera jika cocok dengan karakter yang dimasukkan. Misalnya, jika saya hanya memiliki satu gaya dimulai dengan 'g', memasukkan salah satu huruf ini cukup untuk menerapkan gaya. Jika Anda memiliki beberapa gaya, Anda harus memasukkan 'gl' atau bahkan 'gla'.
Dalam situasi seperti itu, crash ketika Anda memasukkan terlalu banyak karakter menjengkelkan: anggaplah input 'gl' akan bergaya, tetapi Anda mengetik 'gla' - dan kemudian
a
akan ditafsirkan sebagai perintah lain. Oleh karena itu, manajer kombinasi menunggu 500 ms sebelum kembali ke mode default. Kali ini cukup bagi seseorang untuk melihat bahwa gaya tersebut telah diterapkan dan berhenti mencetak.

Menambah dan menyimpan objek
Elemen terakhir dari pengaturan saya adalah menambahkan dan menyimpan objek, yang masing-masing dilakukan dengan tombol
a
dan
Shift+a
. Misalnya, menekan
a
dan mengetik 'ec' menambahkan kurva elips:

Sebagai contoh lain: menekan
a
dan memasukkan 'dg' menambah lubang kunci, lubang kunci ('dg' adalah gambar cermin dari 'kh' pada keyboard). Menggunakan
Ctrl+-
angka tersebut dapat dikurangkan dari bentuk yang diberikan:

Beberapa contoh lain: gumpalan dan 2D, sumbu 3D, yang sering saya gunakan dalam analisis kompleks dan geometri diferensial.

Kode
Jika Anda ingin mencobanya sendiri,
skrip untuk mengelola gambar di Vim dan
manajer pintas keyboard Inkscape diterbitkan di Github. Kedua skrip hanya berfungsi pada sistem Linux. Yang pertama harus bekerja di luar kotak, yang kedua mungkin akan memerlukan konfigurasi tambahan.
Kesimpulan
Dengan Inkscape, Anda dapat dengan mudah dan cepat membuat ilustrasi untuk artikel, buku, dan presentasi. Mereka terlihat profesional dan cocok dengan dokumen. Meskipun ini lebih lambat daripada menggambar dengan tangan, dalam banyak kasus Inkscape lebih cepat daripada TikZ. Pintasan keyboard saya dan skrip untuk mengelola gambar di Vim mempercepat pekerjaan bahkan lebih, memungkinkan Anda untuk menggambar angka selama kuliah, mengikuti dosen.