Sedikit latar belakang.
Saya mencoba untuk mengontrol versi dokumen lateks saya, dan keefektifan inisiatif ini akan sangat meningkat jika saya mengadopsi pendekatan satu kalimat per baris .
Sebagai contoh, berikut ini adalah seperti apa dokumen saya nantinya.
Some text here.
New stencence on the same paragraph.
Some more text, still on the same paragraph.
This is another paragraph.
Pertanyaan saya sederhana.
Berapa banyak dari itu yang dapat sayaotomatiskan / tingkatkan dengan Emacs?
Dua poin berikut adalah apa yang ada dalam pikiran saya.
Kalimat saya panjang , jadi saya harus membungkus garis tanpa benar-benar mengisinya. Artinya, kalimat yang sangat panjang perlu ditampilkan pada beberapa baris di layar saya, tetapi perlu satu baris dalam file ".tex" . Ini lebih disukai dilakukan dengan cara yang tidak membungkus persamaan.
visual-line-mode
membungkus lebar jendela, itu terlalu lebar. Saya perlu sesuatu yang membungkus garis dan membatasi lebarnya hingga 80 karakter. Sama sepertifill-paragraph
biasanya, tetapi tanpa benar-benar melanggar garis dalam file.- Saya dapat mematahkan baris secara manual setelah setiap kalimat, tetapi akan sangat disukai jika saya dapat mengkonfigurasi
fill-paragraph
(atau bahkan mungkinauto-fill-mode
) untuk meletakkan satu kalimat per baris juga.
sumber
visual-line-mode
. Namun selain pembungkus baris itu, Anda juga perlu menyisipkan karakter baris baru setelah setiap kalimat juga, benar?Jawaban:
Jika Anda hanya ingin sesuatu seperti
visual-line-mode
tetapi dapat dikonfigurasi, Anda dapat mencobalonglines-mode
apa yang saya gunakan untuk sebagian besar prosa saya.longlines-mode
membungkus teks Anda dengan cara yang samavisual-line-mode
dengan lebar dikonfigurasi olehfill-column
.Berikut screenshot dengan
fill-column
set to70
(jendela sebenarnya meluas lebih ke kanan).Konfigurasi
fill-paragraph
akan rapi, tetapi saya tidak yakin bagaimana melakukannya. Alih-alih, inilah peretasan sementara yang masuk akal: menjadikan.
karakter Anda elektrik dalam mode TeX, menyisipkan baris baru. Ini hanya melibatkan rebinding dalam apa pun mode hook yang sesuai:sumber
Untuk (1), saya akan menggunakan margin yang diperbesar, sehingga
visual-line-mode
membungkus garis pada yang diinginkanfill-column
. Ini akan memengaruhi garis teks dan persamaan.Adapun (2), seseorang dapat mendefinisikan perintah pengisian kustom untuk terikat
M-q
dan benar mengisi paragraf. Saya belum berhasil menulis perintah dengan perilaku yang benar untuk pengisian otomatis.Membungkus ini semua dalam mode minor bisa terlihat seperti berikut. Ini bukan kode yang sangat indah, tetapi harus berfungsi dalam banyak kasus. (Saya telah memiliki
unfill-paragraph
fungsi di sayainit.el
selama beberapa waktu tanpa memperhatikan masalah).sumber
unfill-paragraph
denganospl/unfill-paragraph
. Marginnya juga berfungsi, tetapi teks lekukan terlihat buruk dan mereka juga membungkus persamaan, sedangkan saya berhasil meretas metode garis panjang di bawah ini memperbaiki dua masalah ini.unfill-paragraph
(tidak diperbaiki) di sayainit.el
untuk waktu yang lama. Saya baru saja mengawalnya kemarin untuk konsistensi dan memperkenalkan bug ....(let ((fill-column 1000000)) (fill-pragraph))
. Belum mengujinya.Apakah masalah kontrol versi Anda akan dihindari / diselesaikan jika Anda menggunakan git diff --color-words atau latexdiff? Kemudian Anda bisa melihat kata-kata yang diubah.
sumber
Salah satu cara untuk meningkatkan ini yang telah saya gunakan (kadang-kadang) selama beberapa tahun adalah dengan menampilkan kalimat dengan jeda baris yang saling mengalir dengan melipat jeda baris menggunakan fasilitas
tex-fold
(bagian dari AUCTeX).Ini artinya begini
dilipat ke
Saya baru-baru ini menempatkan ini bersama sebagai mode minor dalam sebuah paket. Mungkin orang lain juga akan menemukan ini berguna: https://github.com/andersjohansson/tex-fold-linebreaks
sumber