Saat mengedit file org, saya merasa sangat nyaman bagaimana Anda bisa menyembunyikan dan menampilkan tajuk utama dan kontennya hanya dengan menekan TAB
tajuk utama.
Misalnya, pertimbangkan buffer berikut
* Headline 1
Some text here.
* Headline 2
Some more text here.
Jika saya menempatkan poin pada yang pertama *
, dan menekan TAB
, saya akan mendapatkan yang berikut:
* Headline 1...
* Headline 2
Some more text here.
Apakah ada cara untuk mencapainya dengan bagian LaTeX?
yaitu, bagaimana saya bisa menyembunyikan dan menampilkan konten bagian / bab / etc LaTeX, sambil menjaga judul tetap terlihat? Saya menggunakan AucTeX untuk LaTeX-mode tapi saya belum menemukan apa pun yang tampaknya mengisi peran ini.
latex
code-folding
Malabarba
sumber
sumber
Jawaban:
NB: banyak dari teks ini berasal dari jawaban atas pertanyaan yang ternyata merupakan duplikat dari pertanyaan ini . Beberapa materi cukup berbeda sehingga tampaknya bermanfaat untuk menambahkannya ke pertanyaan ini.
Mode outline dan fasilitas lipat AUCTeX adalah dua binatang buas yang berbeda yang dimaksudkan untuk melakukan hal yang sama secara luas: sembunyikan dan perlihatkan bagian buffer yang dipilih.
outline-minor-mode
Elemen kunci untuk dikenali saat digunakan
outline-minor-mode
adalah bahwa ia memiliki kunci awalan yang berbeda darioutline-mode
(yaitu, mode utama ) - tepatnya untuk menghindari konflik kunci dengan tombol gerak, dll. Awalan itu default ke tipe canggungC-c @
(walaupun Anda bisa ubah itu dengan menyesuaikanoutline-minor-mode-prefix
). Semua ikatan kunci yang tercantum pada simpul manual ini masih harus bekerja, tetapi dengan twist yang Anda ganti awalan mode utamaC-c
dengan awalan mode minorC-c @
. Karenanya,C-c @ C-c
larihide-entry
,C-c @ C-e
larishow-entry
, dan sebagainya.Untuk menggunakan fasilitas ini, Anda harus mengaktifkannya
outline-minor-mode
. Cara paling sederhana adalah dengan hook mode:berubah
outline-minor-mode-prefix
Ini harus menjadi hal yang sederhana untuk perubahan
outline-minor-mode-prefix
(itu dulu kembali pada hari). Tapi ternyata tidak. Apanya yang seru!Docstring sekarang memberikan catatan samar bahwa:
Ya, sangat membantu. Anehnya, bahkan
customize
tidak mengatur variabel ini dalam waktu untuk menghindari "memanipulasi keymaps" (meskipun didefinisikan dengandefcustom
dalam kode sumber). Cara kerja praktis: setel variabel ini dalam file init Anda sebelum Anda memuatoutline
atau apa pun yang dibangun darinya (misalnya,org-mode
).Misalnya, Anda mungkin menginginkan awalannya
C-o
(yang berarti Anda kalahopen-line
, tetapi Anda dapat mengubahnya kembali jika Anda memang menginginkannya). Menempatkan yang berikut di awal file init Anda akan melakukan trik:Sekarang, Anda harus dapat mengakses semua fungsionalitas mode garis besar menggunakan
C-o
awalan -C-o C-c
untuk meneleponhide-entry
,C-o C-e
meneleponshow-entry
, dan sebagainya.menambahkan judul garis besar baru
Sebagai bonus tambahan, Anda juga dapat menyesuaikan header garis besar mana yang bisa dilipat, dan ke level apa. Saya, misalnya, ingin dapat membuat header bagian "palsu" untuk menyembunyikan teks yang tidak memiliki header LaTeX yang sebenarnya, tetapi secara logis disimpan pada tingkat dokumen yang sama. Dengan kode berikut, Anda dapat menggunakan:
Dan Anda akan dapat memanipulasi bagian palsu seperti yang lainnya, tetapi LaTeX akan mengabaikannya ketika Anda menyusun dokumen:
outline-magic
outline-magic
memperluas mode outline untuk menggunakanorg-mode
-sembunyikan / ditampilkan dengan tombol tab ajaib. Dengan kata lain, Anda mungkin dapat menambahkan ini ke dalam alur kerja Anda dan membuat dokumen LaTeX Anda berperilaku lebih sepertiorg
dokumen. (Saya tidak menggunakannya sendiri, jadi tidak bisa mengomentari fungsionalitas.)Fasilitas lipat AUCTeX
Fasilitas lipat AUCTeX bekerja pada lingkungan dan apa yang mereka sebut makro , bukan bagian. Untuk menggunakan fungsi ini, Anda harus mengaktifkannya dengan
TeX-fold-mode
.Misalnya,
itemize
lingkungan , yang terbuka, mungkin terlihat seperti:Memanggil
TeX-fold-env
(default:)C-c C-o C-e
di dalam lingkungan melipatnya menjadi seperti:Menempatkan kursor di suatu tempat di dalam
[itemize]
untuk sementara waktu akan memperluas lagi saat Anda mengeditnya, dan kemudian akan kembali ke bawah[itemize]
ketika Anda memindahkan kursor keluar dari lingkungan.Dengan "makro," AUCTeX berarti hal-hal seperti
\footnote{...}
. Oleh karena itu, memanggilTeX-fold-macro
(default:)C-c C-o C-m
ketika di dalam\footnote{This is a footnote}
akan melipatnya ke[f]
; itu akan berkembang dan berkontraksi secara analog dengan apa yang terjadi dengan lingkungan.Anda dapat menggunakan keduanya
outline-minor-mode
dan fasilitas lipat AUCTeX dalam dokumen yang sama: mereka melakukan hal yang berbeda pada bagian yang berbeda.sumber
TAB
, dan ini mungkin bisa dibuat untuk AUCTeX. Melipat makro denganTAB
akan mengganggu menurut saya (itu akan mirip dengan melipat spesifikasi penurunan harga inline ...).outline-minor-mode
harus bekerja di luar kotak dengan AUCTeX: gnu.org/software/auctex/manual/auctex/Outline.html . Begitulah, sampai Anda mulai mendefinisikan macro heading baru di LaTeX ...Apa yang Anda inginkan disebut lipat, dan ada 2 cara Anda bisa melakukannya.
Outline-minor-mode
Ini adalah mode minor bawaan yang persis digunakan oleh mode-org untuk menyembunyikan dan menampilkan tajuk utama. Anda dapat memastikan itu selalu diaktifkan pada
latex-mode
denganKata kunci yang didefinisikannya agak sulit digunakan, jadi Anda mungkin ingin mengubahnya.
Lateks-ekstra
latex-extra adalah mode minor yang tersedia pada Melpa dan Melpa-stable. Anda dapat menginstalnya
M-x package-install RET latex-extra
dan mengaktifkannyaIni menambah serangkaian kenyamanan
latex-mode
, salah satunya adalah bagian lipat.latex-extra
juga menggunakan dioutline-minor-mode
belakang layar, tetapi keuntungannya adalah ia meniru perilaku mode-org lebih dekat (meskipun tidak identik).Dari readme nya :
sumber