Program LyX yang misterius. Bagian 5

Disalin dari blog saya untuk membuat sumber informasi berbahasa Rusia lainnya tentang topik ini.

Artikel ini merupakan kelanjutan dari artikel berikut dalam satu siklus:

artikel 1
artikel 2
artikel 3
artikel 4

LYX; penggunaan file .js


Fitur utama file dengan ekstensi .js , yang membuatnya menarik dalam hal aplikasi mereka dalam program LyX, adalah kemampuan untuk mensimulasikan penekanan tombol pada file-file ini. Misalnya, pertimbangkan, misalnya, bagaimana memungkinkan untuk memasukkan foto yang terletak di folder yang sama dengan file .lyx ini .lyx file .lyx (jika file ini belum disimpan, jendelanya dibuka melalui File> Baru , baik, jendelanya dibuka untuk pertama kalinya secara harfiah ketika menggunakan program LyX kali ini, maka foto yang dimasukkan harus dalam folder yang ditentukan dalam Alat> Pengaturan ...> Paths , dalam kotak teks direktori Pengguna ) tanpa menggunakan mouse, tanpa melepaskan tangan Anda Claudia. Gagasan utama dalam memecahkan masalah ini adalah sebagai berikut. Misalkan, dalam folder yang saya sebutkan di atas, ada foto photo.png . Untuk menyisipkannya pada posisi kursor saat ini di jendela program LyX, Anda dapat menjalankan perintah berikut di Command Buffer:

 inset-apply graphics filename photo.png 

Jadi, dalam file .js , sebut saja vstavka-grafiki.js , Anda perlu mensimulasikan menekan Alt + X (sehingga kursor mulai berkedip di buffer perintah) dan menekan i , n , s , e , t , - , a , p , p , l , y , , g , r , a , p , h , i , c , s , , f , i , l , e , n , a , m , e , Spasi . Setelah itu, jendela program LyX mulai terlihat seperti ini:



Pada saat yang sama, jika saya mulai memasukkan sesuatu dari keyboard, ini akan dimasukkan bukan di jendela program LyX utama, tetapi di buffer perintah, dan selain itu, huruf tidak akan dimasukkan dari tombol yang ditekan ketika tombol ini ditekan saat Tata letak Rusia, dan yang dimasukkan saat tombol ini ditekan saat tata letak keyboard dialihkan ke Bahasa Inggris. Bagus, apa yang kamu butuhkan! Tapi di sini, ternyata kemudian, ada satu tangkapan, yaitu: pada awalnya saya pikir untuk mengacaukan file .js ini ke LyX melalui file default.def , menulis baris di dalamnya

 \define "vstgr" "vc-command U \"$$p\" \"vstavka-grafiki.js\"" 

dan, membuat di LyX tombol pintas untuk call vstgr frasa call vstgr . Semuanya akan baik-baik saja, tetapi ternyata file .js tidak dapat diluncurkan dari LyX. Tapi dari situ ternyata menjalankan file dengan ekstensi .bat (file batch dangkal). Itu sebabnya saya menulis di file default.def

 \define "vstgr" "vc-command U \"$$p\" \"vstavka-grafiki.bat\"" 

dengan membuat file vstavka-grafiki.bat sebagai berikut:

 start vstavka-grafiki.js 

Dan secara langsung untuk menyederhanakan panggilan perintah yang saya buat di jendela LyX, saya, seperti yang saya maksudkan, ketika saya belum tahu bahwa saya juga perlu menggunakan file batch, membuat hotkey untuk frase panggilan vstgr . Pada saat yang sama, file vstavka-grafiki.bat dan file vstavka-grafiki.js harus ada di folder yang ditambahkan ke PATH. Jadi, lanjutkan. Saat membuat format ekspor pdflatex-v-papke , saya menemukan ini. Ketika Anda memasukkan grafik, misalnya, dengan nama yang disebutkan di atas dengan photo.png ekstensi di bagian jendela program LyX yang muncul setelah mengklik Lihat> Lihat Sumber (atau Lihat> Lihat kode - nama item menu yang sesuai Lihat tergantung pada lokalisasi. .mo digunakan) di tempat , sesuai dengan posisi gambar yang disisipkan di jendela program LyX utama, kode berikut akan menjadi:

 \includegraphics{photo} 

Dan kode yang sama akan direkam dalam file .tex sesuai yang muncul di direktori sementara terkait sebagai hasil dari tindakan file batch yang dipilih sebagai mesin format ini di salah satu tahap pertama dari file batch ini. Akibatnya, sebagai hasil dari mengeksekusi salah satu perintah selanjutnya dari file batch ini - memproses file .tex diterima - kesalahan akan terjadi dan tidak ada yang akan berfungsi. Dan masalahnya di sini adalah bahwa dalam file .tex dihasilkan nama file grafik yang dimasukkan (argumen dari perintah \includegraphics ) ditulis tanpa ekstensi. Apa yang harus dilakukan Hmm, karena selain menerima file .tex , pemrosesan yang oleh pdflatex tidak akan menyebabkan kesalahan tunggal, saya juga ingin menjaga visibilitas di jendela program LyX. Di sisi lain, ketika Anda memasukkan grafik di jendela program LyX dalam case berbahasa Rusia kami, karakter yang dimasukkan saat Anda menekan tombol keyboard kemungkinan besar adalah Cyrillic, sedangkan ekstensi file pada umumnya, khususnya yang grafis, ditulis dalam bahasa Inggris. Di sisi lain, pembaca yang telah membaca blog ini ke tempat ini, kemungkinan besar sudah tahu tentang fungsi program LyX yang sangat lezat - Gunakan tata letak keyboard dan gunakan dengan kuat dan utama. Nah, jika demikian, maka tugasnya sangat disederhanakan. Yaitu, di sini kita membuka file dalam program LyX, beralih tata letak ke Bahasa Inggris, dan kami mulai menulis dengan menekan huruf yang kita butuhkan, seolah-olah tata letak diatur ke Rusia, karakter yang dimasukkan ke dalam jendela program LyX adalah karakter Cyrillic, terletak pada tombol yang ditekan. Semuanya baik-baik saja di sini. Jadi kami menulis, menulis, hop, kami perlu memasukkan grafik. Hingga saat ini, karakter Cyrillic diperkenalkan, dan sekarang menjadi penting bagi kita untuk memasukkan huruf Inggris (untuk memasukkan ekstensi). Jadi kita ambil saja dan masuk ke mode matematika, di mana kita menulis nama foto yang dimasukkan bersama dengan ekstensi, setelah itu kita meluncurkan hotkey yang kita buat khusus untuk ini (saya punya Ctrl + 0 + V + G ( karena penyisipan gambar)) perintah vstgr1 secara khusus didefinisikan dalam file default.def .
Perintah ini didefinisikan sebagai berikut:

 \define "vstgr1" "vc-command U \"$$p\" \"vstavka-grafiki1.bat\"" 

(dan hotkey sebelumnya ditugaskan ke frase panggilan vstgr1 ). Seperti yang Anda duga, perintah ini meluncurkan file batch vstavka-grafiki1.bat dengan konten berikut:

 start vstavka-grafiki1.js 

Seperti yang Anda duga, file batch ini menjalankan file vstavka-grafiki1.js , yang, pada dasarnya, melakukan semuanya. Apa yang dia lakukan Mari kita jelaskan konstruk apa yang kita inginkan dalam file .lyx sedang diedit. Kami ingin ada di sana dari baris baru (jika kami sudah menulis sesuatu di sana sebelumnya, jika tidak, kami tidak perlu baris baru, lihat di bawah) foto yang kami butuhkan dimasukkan, kemudian, lagi dari baris baru, itu akan dimasukkan blok kode TeX (apa yang biasanya muncul di jendela program LyX ketika menekan Ctrl + L ) dan di blok ini ia akan mengatakan \includegraphics{} , di mana nama foto yang dimasukkan, lalu titik, kemudian ekstensi foto yang dimasukkan akan di kurung kurawal . Faktanya, kita membuat foto yang dimasukkan di jendela program LyX hanya ditampilkan untuk hiasan di jendela program LyX, kita tidak perlu foto ini ditampilkan di final .pdf : foto yang muncul di sana sebagai hasil dari perintah akan ditampilkan di final .pdf Oleh karena itu, terletak di blok TeX, untuk mencegah tampilan grafik .pdf akhir yang dihasilkan dari pemrosesan grafik visual dari jendela program LyX, kami akan mengomentari grafik visual ini di jendela program LyX ini, menempatkan tanda persen di depan grafik ini tertanam di blok kode teX. Singkatnya, kami ingin mendapatkan, misalnya, konstruksi berikut:



Saya pada dasarnya melakukan hal yang sama seperti pada kasus pertama: dengan cara yang sama saya mengacaukan file vstavka-grafiki1.bat ke LyX melalui file default.def , membuat perintah vstgr1 baru di file ini, dan kemudian membuat perintah panas di jendela program LyX pada frasa panggilan vstgr1 , semuanya jelas. Perbedaannya hanya akan ada di file vstavka-grafiki1.js , yang diluncurkan oleh file vstavka-grafiki1.bat . Sebelum mencantumkan konten file vstavka-grafiki1.js , saya akan membuat daftar isi dari dua file tambahan yang digunakan dalam file ini. Yaitu, untuk melakukan semua ini, kita perlu mensimulasikan menekan tanda persen di file vstavka-grafiki1.js juga . Dan, karena kita menggunakan tata letak keyboard Kazakh (saya menggunakan tata letak keyboard Kazakh, karena itu saya menulis berdasarkan fakta bahwa pembaca saya juga menggunakannya) dan, karena dengan tata letak keyboard ini, karakter dimasukkan, misalnya, di buku catatan, ketika Anda menekan tombol di mana tanda persen ini berada, adalah huruf alfabet Kazakh, maka pada perintah yang mensimulasikan tanda persen file vstavka-grafiki1.js , kita perlu menulis surat Kazakh ini, yang, seperti yang saya tulis di beberapa posting lain di posting blog ini menyebabkan kesalahan. Oleh karena itu, file vstavka-grafiki1.js menggunakan file batch procent.bat dengan konten berikut:

 echo LYXCMD:vvod:command-sequence:self-insert %%> \\.\pipe\lyxpipe.in 

Mengingat kisah tentang \\. \ Pipe \ lyxpipe.in, mudah dipahami bahwa file batch ini benar-benar memasukkan tanda persen pada posisi kursor saat ini dalam program LyX (tentu saja, untuk dapat menggunakan ini, di Tools> Settings ...> Paths in text bidang saluran server LyX: harus \\.\pipe\lyxpipe , dan ketika mencoba menggunakan file procent.bat seperti yang diterapkan pada LyX di luar file vstavka-grafiki1.js, Anda harus mengikuti urutan yang benar untuk meluncurkan jendela prompt perintah dari mana file vstavka- akan dipanggil grafiki1.js dan windows dari program LyX, di mana tanda persen yang sama ini akan seluruhnya Untuk lebih jelasnya, saya merujuk pembaca ke narasi yang baru saja disebutkan di atas. Namun, ketika memanggil procent.bat dari vstavka-grafiki1.js semuanya berjalan sebagaimana mestinya). File tambahan lain yang digunakan dalam file vstavka-grafiki1.js adalah file Ostanovka.js dengan konten berikut:

 WshShell=WScript.CreateObject("WScript.Shell") WshShell.Popup("      ,   \"\",  \"\"", 0, " ",1); 

Tapi bagaimana dengan keajaiban judo? Faktanya adalah bahwa ketika saya membuat file vstavka-grafiki1.js yang berjalan tanpa henti, selama operasinya, tampaknya, juga karena peluncuran file lain darinya dengan perintah yang harus dijalankan pada jendela program LyX yang sama , di mana file vstavka-grafiki1.js sendiri mengeksekusi perintah, kesalahan terjadi di tempat yang berbeda, perintah-perintah ini dari file vstavka-grafiki1.js tidak secara kolektif melakukan apa yang diperlukan. Untuk memperbaikinya, saya datang dengan ini. Diidentifikasi secara eksperimental tempat-tempat seperti itu di file vstavka-grafiki1.js . Yaitu, perintah dalam file ini yang menyebabkan kesalahan. Dan di depan tempat-tempat ini, saya ingin menjeda file vstavka-grafiki1.js sampai saya menekan tombol. Yang - belum tahu. Saya pikir, saya pikir, dan ingat bahwa tim bukan tim, tidak masalah, secara umum, WshShell.Run( ada argumen bahwa jika nilainya ditentukan sebagai benar , maka ketika perintah ini dieksekusi, pekerjaan utama dari mana perintah ini dieksekusi file berhenti tepat sampai file dibuka oleh perintah ini ditutup. Yah, sesuatu sudah ... Di sisi lain, saya ingat bahwa di jscript ada perintah yang membuka kotak dialog dengan tombol yang benar-benar berfungsi. Menyatukan semuanya, saya saya memutuskan sebelum file area masalah vstavka-grafiki1.js menyisipkan perintah zap File ska Ostanovka.js dengan harapan akhir dari pengoperasian File sebagai Ostanovka.js akan membuat kotak dialog dengan dua tombol -. Ok dan Cancel pada saat yang sama setelah vyplyvaniya jendela ini fokus akan pada tombol Ok, sehingga untuk menutup dialog ini sebuah jendela, itu akan cukup untuk menekan Enter . Jadi, saya membuat file Ostanovka.js dari konten di atas. Saya juga ingin menutup tombol Cancel dan membatalkan semua tindakan yang dilakukan oleh file vstavka-grafiki1.js setelah menjalankan file Ostanovka.js terakhir , tetapi untuk sekarang Saya tidak tahu bagaimana melakukannya. Jadi, yah, itu saja, setelah pernyataan pendahuluan dibuat, pembaca dapat memahami proses file vstavka-grafiki1.js . Saya akan menulis di komentar pada setiap baris apa yang dilakukannya. Jangan lupa bahwa sebelum memulai file vstavka-grafiki1.js, kursor di jendela program LyX berada dalam mode matematika, setelah nama file grafik yang disisipkan, titik yang memisahkan namanya dari ekstensi dan ekstensi itu sendiri. Yaitu, saya membuatnya sebagai berikut:

 WshShell=WScript.CreateObject("WScript.Shell") WshShell.SendKeys("%"); WshShell.SendKeys("+{HOME}"); //   .   // ,      WshShell.SendKeys("^"); // ,     WshShell.SendKeys("{LEFT}"); //    . , //         WshShell.SendKeys("{END}"); //     //. ,          WshShell.SendKeys("{ENTER}"); //    . , //         WshShell.Run("Ostanovka.js",1,true); //   //vstavka-grafiki1.js WshShell.SendKeys("^"); //  TeX WshShell.SendKeys("^"); //  TeX WshShell.Run("Ostanovka.js",1,true); //   WshShell.Run("Ostanovka.js",1,true); //   //vstavka-grafiki1.js WshShell.Run("procent.bat"); //       TeX WshShell.Run("Ostanovka.js",1,true); //   //vstavka-grafiki1.js WshShell.SendKeys("{RIGHT}"); //      //  TeX WshShell.SendKeys("%"); //    WshShell.SendKeys("-   "); //  //       //inset-apply graphics filename     filename WshShell.SendKeys("^"); //        //         , //    WshShell.SendKeys("{ENTER}"); //   ENTER,  //       //  LyX     //WshShell.SendKeys("{UP}"); //      LyX // ,         , //  . ,         , //  .  WshShell.SendKeys("{LEFT}"); //   . ,    //      WshShell.SendKeys("+{HOME}"); //   , //   ,      WshShell.SendKeys("^"); // ,     WshShell.SendKeys("^"); // ,     WshShell.SendKeys("{LEFT}"); //      WshShell.SendKeys("{DELETE}"); //    //       ,  //   ,   WshShell.SendKeys("{DELETE}"); //    //   WshShell.SendKeys("{END}"); //     //       ,    //.  ,       //    ,      //   LyX   WshShell.SendKeys("{ENTER}"); //   WshShell.SendKeys("^"); //       //  WshShell.SendKeys("\"); //   ,   //, \includegraphics WshShell.SendKeys("+"); //       //  WshShell.SendKeys("^"); //        //     , //     WshShell.SendKeys("+"); //       //  WshShell.SendKeys("{RIGHT}"); //      

Saya akan mengatakan beberapa kata tentang kode di atas. Pertama, komentar dalam jscript ditunjukkan oleh tanda // dan segala sesuatu yang muncul di baris setelah tanda ini diabaikan oleh pelaksana kode ini, ini dimaksudkan untuk menjelaskan kepada orang tersebut tindakan yang dilakukan oleh baris ini. Dan jika tidak ada apa-apa sebelum // dalam baris, maka baris ini melanjutkan komentar yang dimulai di suatu tempat di atas. Kedua, pertama kali saya menyalin nama foto yang dimasukkan bersama dengan ekstensi, dipisahkan oleh sebuah titik dari namanya, dan kedua kalinya saya memotong desain ini alih-alih apa yang tampaknya mungkin untuk memotongnya sekali. Mengapa Ya, karena ketika saya mencoba melakukan ini, sebelum menempelkan desain ini dari clipboard untuk kedua kalinya ke posisi saat ini, itu secara misterius menjadi kosong dan tidak ada yang datang kepada saya. Saya tidak dapat menjelaskan mengapa ini terjadi, namun saya menemukan jalan keluar dari masalah yang muncul. Saya ingin mengingatkan sekali lagi bahwa selama pengoperasian vstavka-grafiki1.js ketika kotak dialog muncul dengan judul Process Control, untuk melanjutkan pengoperasian file vstavka-grafiki1.js, Anda harus menekan Enter (atau klik kiri tombol apa saja di kotak dialog pop-up) yang menurut saya kurang nyaman).

Lix: Huruf besar e


Sekarang, ketika dalam program LyX, digunakan dalam bentuk di mana ia dibuat, Anda menekan Shift + E (ini adalah kasus ketika, ketika fungsi Gunakan tata letak keyboard diaktifkan, tata letak keyboard dialihkan ke bahasa Inggris), alih-alih huruf kapital yang diharapkan “ Uh, ”kutipan teratas terbalik muncul di jendela program LyX. Solusi untuk masalah ini adalah dengan menetapkan hotkey Shift + " ke frase -urutan self-insert E.

LyX: Cara menambah / menghapus pesan dari grup pesan di Lihat Pesan


Di sini, ketika melalui View> View Meseages (atau melalui View> View messages - tergantung pada file lokalisasi yang digunakan LyX2.0.mo ) Anda membuka area pesan Progress / Debug di bagian bawah jendela program LyX, ada terlalu banyak pesan yang ditampilkan di bagian jendela ini, kebetulan Anda hanya menggerakkan mouse, dan di sana menampilkan urutan garis sepanjang satu kilometer untuk menemukan sesuatu yang Anda butuhkan (misalnya, untuk mendapatkan petunjuk tentang cara memasukkan perintah ini atau itu melalui Command Buffer, di sana ia akan, tentu saja, tidak dalam bentuk literal, tetapi sebuah petunjuk itu bisa memberi, aku, mungkin sebentar lagi saya akan memberi tahu Anda sedikit tentang apa yang berhasil saya gali tentang ini) itu bisa sangat sulit. Untuk mengurangi (atau, sebaliknya, menambahkan pesan ke grup pesan mana saja), kami melakukan ini. Di bagian bawah jendela itu, klik Pengaturan kiri, di sana kami mengatur sakelar Pesan debug ke Disorot :



Dan kemudian di sisi kanan kita klik dua kali (pada kecepatan yang dilakukan saat membuka file, kecepatan ini dapat diubah jika perlu dalam pengaturan komputer itu sendiri, di luar program LyX) oleh kelompok pesan, pesan dari mana kita inginkan membuatnya tidak ditampilkan di area Progress / debug messages atau, sebaliknya, pesan dari grup pesan ini yang ingin kami tampilkan di area ini. , , , , : , LyX . , , , .

LyX: -


> ... . , Preview … , , , .tex - , , pstricks. , , pstricks, .tex , , LyX, - « LaTeX», , TeXworks, .. \begin{pspicture} , \end{pspicture} , , \begin{pspicture} - \psset{xunit=1.0cm,yunit=1.0cm,algebraic=true,dimen=middle,dotstyle=o,dotsize=3pt … , , pstricks, , . , .tex , . LyX. - >...> LaTeX , , .tex , - « LaTeX», LyX > ( >Preview .mo ). . . > , .... . : .tex , . , , . , OK :



, OK : , , , .tex . — ini dia - dengan file .lyxdan .texterkait satu sama lain, seperti dijelaskan dalam posting ini. Perlu dicatat bahwa ada kasus-kasus ketika, setelah mengklik tombol OKdan memindahkan kursor keluar dari kotak Preview , saya tidak dapat memaksa grafik yang sesuai dengan file yang digunakan untuk .texditampilkan di jendela program LyX. Kenapa begitu, saya tidak tahu ???

LyX: Menunda pop-up add-on


, , - , :



, . , >...> , , (.) , , (.) , , , , , . ( , ) :



LyX: Local layout,


, LyX. , , , , , , , , , , , , , LyX , , , . , . ? . >> ( .mo Local layout ), :

 Provides amsmath 0 PageStyle plain Style Standard Font Color blue EndFont End Style Enumerate Font Color red EndFont End Style Theorem Font Color green Shape ital EndFont End 

Klik tombol Periksa , setelah beberapa saat, jika semuanya ditulis sebagaimana mestinya, Tata Letak prasasti tanpa kesalahan muncul di sebelah kanan tombol ini ! , semua, klik OK (baik, atau Terapkan ). Jendela program LyX mulai terlihat seperti ini:

Source: https://habr.com/ru/post/id485428/


All Articles