LaTeX eklentileri arasındaki farklar nelerdir?


Yanıtlar:


28

Farklı eklentilerle sınırlı bir deneyime sahip olduğum için derinlemesine bir karşılaştırma sunmayacağım. Birkaç eklentiyi iyi tanırım ( LaTeX-Box ve LaTeX-Suite ) ve bir eklentiyi çok iyi biliyorum çünkü kendim geliştiriyorum: vimtex . Böylece, çoğunlukla vimtex hakkında yazacağım. Ancak, ilk önce başkaları için ilgi çekici olabilecek bazı referansları işaret edeceğim.

Bazı genel bakış ve referanslar

Vardır sürü Vim için eklentileri. Bunlar en azından yarı popüler olarak tanıdıklarım:

On tex.stackexchange.com , bir orada büyük liste LaTeX editörler ve IDE. Genel olarak güzel bir genel bakış sağlar, ancak Vim için eklentilere genel bir bakış sağlar:

vimtex

vimtex LaTeX-Box'a dayanır. Bir süredir hata düzeltmeleri ve LaTeX-Box güncellemelerine katkıda bulunduktan sonra başladı. Eğer sıfırdan yazarsam, eklentinin çok daha modern bir şekilde yazılabileceğini fark ettim. İlk önce birçok özelliği çıkardım ve daha sağlam ve modüler bir "motor" yaptım. Daha sonra özellikler ekledim ve bugün LaTeX-Box'ın özelliklerinin çoğuna ve sonra bazılarına sahip olduğunu düşünüyorum.

Özelliklerin tam bir listesini vermek yerine ( bunun için buraya bakınız ), vimtex ve diğer eklentiler arasındaki farkların bir kısmını işaret etmeye çalışacağım. Ancak, bazı cesur iddialarda bulunmak istiyorum:

  • vimtex bugün mevcut LaTeX için en modern Vim eklentisidir.
  • Kod yüksek kalitede ve şu anda aktif olarak kendim tarafından tutuluyor
  • Eklenti, bazı özellikler hala geliştirilmekte olsa da, çoğunlukla kararlıdır (ve bu nedenle değişikliklere ve güncellemelere tabi olabilir).

vimtex vs LaTeX-Box

Vimtex LaTeX-Box'a dayandığından, kesinlikle benzer prensiplere sahiptir. Fikir, işleri basit tutmak ve sorunları çözmek için, daha iyi, diğer eklentiler tarafından çözülmedi. LaTeX belgelerini derlemek için lateks kullanır ve sözdizimi vurgulaması için dahili Vim eklentisini kullanır.

LaTeX-Box'ta vimtex'te eksik olan bir önemli özellik var: Geri arama ile tek çekimli derleme . Bu özelliğin vimtex'te bulunmamasının nedeni, karmaşık olması ve kendi tercihlerime göre yeterince basit bir uygulama bulamamış olmamamdır (öneriler açıktır, lütfen sorunları açmak veya istekleri almaktan çekinmeyin) ).

vimtex vs LaTeX-Suite

Vimtex ve LaTeX-Suite arasındaki temel fark, muhtemelen vimtex'in Vim'de LaTeX için tam teşekküllü bir IDE uygulamaya çalışmadığıdır. Örneğin:

  • vimtex tam bir snippet özelliği sağlamaz, çünkü bu daha iyi UltiSnips veya neosnippet veya benzer snippet motorları tarafından kullanılır.
  • vimtex Vim prensiplerine dayanır: Ortamlar için metin nesneleri, satır içi matematik, bölümler ve paragraflar için hareketler sağlar
  • vimtex latexmk, derleme hataları hakkında anında geri bildirim almak için geri çağırma özelliğine sahip derleme için kullanılır
  • vimtex çok modüler: bir özelliği beğenmezseniz, kapatabilirsiniz.

Sadece açıklığa kavuşturmak istiyorum: vimtexyan yana çalışabilir Latex-Suite, bu da iki eklentiden aynı anda en iyi sonucu alabileceğiniz anlamına gelir . :)
llinfeng

12

Karşılaştırma yapamam, çünkü Vim-LaTeX kullandığım tek LaTeX eklentisi. Neredeyse bir yıldır Vim-LaTeX kullanıyorum. Bu yüzden sadece Vim-LaTeX hakkında konuşacağım.

Orada birçok Vim-LaTeX mevcut özellikler. Hepsini hatırlamıyorum. Sadece sürekli bildiğim ve kullandığım özelliklerden bahsedeceğim.

Not: Bunlar sınırlı kullanıcı deneyimimdir ve bu çok yanıltıcı olabilir . Ben tecrübeli bir Vim kullanıcısı değilim. Ve vimscript hakkında hiçbir şey bilmiyorum.

IMAP () ve <C-j>Atlama

IMAP()fonksiyonu ve <C-j>jumpping fonksiyonları bir eklentisi olarak ayrıca temin edilmektedir imaps.vimVim-Lateks paket. Bunlar güçlü özelliklerdir ve LaTeX yazmıyor olsanız bile çok faydalı olabilirler.

  • IMAP()işlev, ekleme modu eşlemeleri yapmak ve yerleşik imapve iabbrevIMO'dan genel olarak ayarlanması için daha doğal bir yol sağlar .

  • <C-j>atlama, birçok Vim-LaTeX tamamlama özelliği tarafından kullanılır. Bir atlama noktası ile gösterilir <++>.

  • Yerleşik ekleme modu tuşu eşlemeleri IMAP()aramalar olarak uygulanır . Örneğin, uzun bir yararlı IMAP()arama listesini main.vimdosyada bulabilirsiniz:

    call IMAP ('__', '_{<++>}<++>', "tex")
    call IMAP ('()', '(<++>)<++>', "tex")
    call IMAP ('[]', '[<++>]<++>', "tex")
    call IMAP ('{}', '{<++>}<++>', "tex")
    ...
    call IMAP ('((', '\left( <++> \right)<++>', "tex")
    call IMAP ('[[', '\left[ <++> \right]<++>', "tex")
    call IMAP ('{{', '\left\{ <++> \right\}<++>', "tex")
    ...
    

Ardından, şunu yazdığınızda (), imleç parantez arasında otomatik olarak yer değiştirecek ve ilkini değiştirecektir <++>. İçine yazmayı tamamladıktan sonra, tekmeleyip <C-j>vurursun, imleç parantezden dışarı çıkar ve yazmaya devam edersin. Bir kere alıştıysanız, bağımlılık yaratan bir yazma akışı oluşturmaya başlar ...

Yukarıda gördüğünüz bir \left \rightçift, açma dirseğinin iki vuruşuyla kolayca yazılabilir. Ve <C-j>jumpping yazarak akış yapar.

Bir büyük aksaklık IMAP()ve <C-j>bir şey olduğunu onlar son değişiklik geçmişini karıştıran biridir . (Uzun süredir düzeltmek istediğim bir hata.) Bu nedenle, ."sözde son değişiklik" iniz bu işlev çağrıları içeriyorsa , son değişikliklerinizi yinelemeye çalışırken beklenmeyen davranışlarla karşılaşabilirsiniz .

  • IMAP()Basit anahtar eşlemelerden daha karmaşık şablonlara kadar her türlü eşlemeyi yapabilirsiniz . Haritalarımın ( ftplugin/tex.vim) bazı örnekleri :

    call IMAP('*EEQ',"\\begin{equation*}\<CR><++>\<CR>\\end{equation*}<++>",'tex')
    call IMAP('DEF',"\\begin{definition}[<++>]\<CR><++>\<CR>\\end{definition}<++>",'tex')
    call IMAP('BIC','\binom{<++>}{<++>}<++>','tex')
    call IMAP('PVERB','\PVerb{<++>}<++>','tex')
    call IMAP('VERB','\verb|<++>|<++>','tex')
    
  • imaps.vimEklenti ile ilgili ilginç bir gerçek , LaTeX'in ötesinde potansiyel kullanımı anlamına gelen küresel bir eklenti olmasıdır. Aslında, C kod kod şablonları oluşturmak için kullanıyorum <++>ve <C-j>jumppings (diğer eklentileri ile birleştirerek).

<F5> <F7> Komutların ve Ortamların Eklenmesi

Bunun bir dezavantajı IMAP(), tuş kombinasyonunun artık normal metinde kullanılamamasıdır (eşlemeyi geri almadığınız sürece u). Durumlarda sadece istediğiniz tetiklemek istediğiniz gibi eşleme <F5>ve <F7>kullanışlı. Bu iki tuş , sırasıyla ortamları ve satır içi komutları yerleştirmeyi tetiklemek için kullanılır . Ve kullanıcının modunu ve özelleştirmelerini temel alarak farklı davranırlar.

  • Ekle / Normal Mod'da, imleç bir kelime eklerken veya kelime içindeyken, tuşuna basmak <F5>varsayılan olarak formun temel bir ortamını ekleyecektir.

    \begin{word}
    <Cursor>
    \end{word}<++>
    

    kelimeye göre; tuşuna basarak <F7>varsayılan \word{}<++>olarak kelimeye göre formun basit bir satır içi komutunu ekleyiniz .

  • "Varsayılan olarak", <F5>/ tarafından tetiklendiğinde belirli bir kelimenin davranışını özelleştirebileceğiniz anlamına gelir <F7>. İşte ayarlarımdan bazıları ( .vimrc):

    let g:Tex_Com_newcommand = "\\newcommand{<++>}[<++>]{<++>}<++>"
    let g:Tex_Com_latex = "{\\LaTeX}<++>"
    let g:Tex_Com_D = "\\D{<++>}{<++>}<++>"
    
  • İmleç edilir Ekle / Normal Mod, içinde değil (aka şey takılı yalnız ), pres <F5>/ <F7>ekleme çevre / komutu seçmek için bir menü size isteyecektir. Veya en alttaki istediğiniz ortam / komutun adını yazabilirsiniz. Şahsen, nadiren kullanırım <F5>/ <F7>bu şekilde.

  • Görsel olarak bir metin parçasını seçtikten sonra <F5>/ tuşuna basıldığında <F7>, metin sarma için bir menü görüntülenir . Ardından seçilen metin seçtiğiniz veya yazdığınız ortama / komuta sarılır.

  • Insert / Normal Mode'da, imleç bir ortam / komutun kapsamı içindeyken, tuşuna basın <Shift>+<F5>/<F7>, ortam / komutun değiştirilmesi için bir menü soracaktır .

Çeşitli Anahtar Eşlemeleri

  • Yunan harfleri. `aiçin `zve karşılık gelen harfler.
  • Semboller gibi `8için \infty, `<için \le, `Iiçin \int_{<++>}^{<++>}<++>, vs.
  • "İki kez basmak bir çift TeX çift tırnak alır. Yani edebi "karakter yazmak için kullanmanız gerekir.
  • Birkaç numaralandırma ortamına basmak uygun \itemetiketi ekleyecektir .
  • Sen de matematik görsel seçilen bölümünü sarabilirsiniz \left \righttarafından çifti `(, `[ve `{.
  • Katlama özelleştirilebilir. Katlanabilir neler Üç küresel değişken kontrolü: Tex_FoldedSections, Tex_FoldedMisc, ve Tex_FoldedEnvironments.

Bazen yerleşik eşlemeler çok fazla ileri gitti veya istediğinizi bırakmıyor. Yerleşik eşlemeleri, içinde yeniden tanımlayarak geçersiz kılabilirsiniz after/ftplugin/tex.vim:

call IMAP('`|','\abs{<++>}<++>','tex')
call IMAP('ETE',"\\begin{table}\<CR>\\centering\<CR>\\caption{<+Caption text+>}\<CR>\\label{tab:<+label+>}\<CR>\\begin{tabular}{<+dimensions+>}\<CR><++>\<CR>\\end{tabular}\<CR>\\end{table}<++>",'tex')
call IMAP('==','==','tex')
call IMAP('`\','`\','tex')

Çoklu Derleme Motorunu Ayarla

Her zaman motor pdflatexile xelatexmotor arasında geçiş yapmam gerekiyor . Böylece, benim içinde aşağıdaki satırları var .vimrc:

"switch to pdflatex
function SetpdfLaTeX()
    let g:Tex_CompileRule_pdf = 'pdflatex --interaction=nonstopmode -synctex=1 -src-specials $*'
endfunction
noremap <Leader>lp :<C-U>call SetpdfLaTeX()<CR>

"switch to xelatex
function SetXeLaTeX()
    let g:Tex_CompileRule_pdf = 'xelatex --interaction=nonstopmode -synctex=1 -src-specials $*'
endfunction
noremap <Leader>lx :<C-U>call SetXeLaTeX()<CR>

Vim ve PDF görüntüleyici arasında PDF'yi Görüntüleme, İleri ve Geri Arama

Bu dağınık ve karmaşık bir konudur. Belirli PDF görüntüleyicileri ve belirli bir miktardaki şansları ile çok kolay olabilir. Ama bu esas olarak google arama meselesi.

Öneriler

  • LaTeX yolu ile Vim-LaTeX yolu arasındaki dengeyi bulmalısın.
  • Vim-LaTeX hiç hafif değil. Muhtemelen asla kullanmayacağınız bazı özellikler ve / veya önemli eşlemeler var ve bunları manuel olarak geçersiz kılmanız gerekiyor.
  • Vim kullanıyorsun. Sabrın ne demek olduğunu biliyorsun . :-)

Genel olarak, canavarı evcilleştirmek için zaman ayırmaya istekli olmanız durumunda işe yarayacağını düşünüyorum. Söylendiği gibi, zamanım ve yeterli bilgim olsaydı, genel gider özelliklerini kesinlikle gözden geçireceğim ve diğer eklentilerle entegrasyon potansiyellerini keşfedeceğim.

Referanslar

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.