O misterioso programa LyX. Parte 5

Copiado do meu blog para criar outra fonte de informações em russo sobre este tópico.

Este artigo é uma continuação dos seguintes artigos em um único ciclo:

artigo 1
artigo 2
artigo 3
artigo 4

LyX; uso de arquivos .js


A principal característica dos arquivos com a extensão .js , o que os torna interessantes em termos de aplicação no programa LyX, é a capacidade de simular pressionamentos de tecla nesses arquivos. Por exemplo, considere, por exemplo, como possibilitar a inserção de uma foto localizada na mesma pasta com esse arquivo .lyx arquivo .lyx (se esse arquivo ainda não tiver sido salvo, sua janela será aberta em Arquivo> Novo , bem, sua janela é aberta pela primeira vez literalmente ao usar o programa LyX, desta vez, a foto inserida deve estar na pasta especificada em Ferramentas> Configurações ...> Caminhos , na caixa de texto Diretório do usuário ) sem usar o mouse, sem tirar as mãos Claudia. A principal idéia para resolver esse problema é a seguinte. Suponha que, na pasta que mencionei acima, haja uma foto photo.png . Para inseri-lo na posição atual do cursor na janela do programa LyX, você pode executar o seguinte comando no Buffer de Comando:

 inset-apply graphics filename photo.png 

Portanto, no arquivo .js , vamos chamá-lo de vstavka-grafiki.js , você precisará simular pressionando Alt + X (para que o cursor comece a piscar no buffer de comando) e pressionando 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 , Espaço . Depois disso, a janela do programa LyX começa a ter a seguinte aparência:



Ao mesmo tempo, se eu começar a digitar algo do teclado, ele será digitado não na janela principal do programa LyX, mas no buffer de comando e, além disso, as letras não serão digitadas nas teclas que são pressionadas quando essas teclas são pressionadas quando Layout em russo e os inseridos quando essas teclas são pressionadas quando o layout do teclado é alternado para inglês. Ótimo, o que você precisa! Mas aqui, como aconteceu mais tarde, há um problema: a princípio, pensei em parafusar esse arquivo .js no LyX através do arquivo default.def , escrevendo a linha nele

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

e, criando no LyX a tecla de atalho para a frase call vstgr . Tudo ficaria bem, mas aconteceu que os arquivos .js não puderam ser iniciados no LyX. Mas, a partir dele, os arquivos são executados com a extensão .bat (arquivos em lote banais). Por isso escrevi no arquivo default.def

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

criando o arquivo vstavka-grafiki.bat da seguinte maneira:

 start vstavka-grafiki.js 

E diretamente para simplificar a chamada do comando que criei na janela LyX, eu, como pretendia, quando ainda não sabia que também precisaria usar um arquivo em lotes, criei uma tecla de atalho para a frase chamada vstgr . Ao mesmo tempo, os arquivos vstavka-grafiki.bat e vstavka-grafiki.js devem estar localizados na pasta adicionada ao PATH. Então, siga em frente. Ao criar o formato de exportação pdflatex-v-papke , me deparei com isso. Quando você insere gráficos, por exemplo, com o nome mencionado acima com a extensão photo.png na parte da janela do programa LyX que aparece após clicar em Exibir> Visualizar fonte (ou Exibir> Exibir código - o nome do item de menu correspondente, Ver depende do arquivo .mo localização usado) no local , correspondendo à posição dos gráficos inseridos na janela principal do programa LyX, o seguinte código será:

 \includegraphics{photo} 

E o mesmo código será registrado no arquivo .tex correspondente que aparece no diretório temporário correspondente como resultado da ação do arquivo em lotes selecionado como um mecanismo desse formato em um dos primeiros estágios desse arquivo em lotes. Como resultado, como resultado da execução de um dos comandos subseqüentes deste arquivo em lotes - processando o arquivo .tex recebido - ocorrerá um erro e nada funcionará. E o problema aqui é que, no arquivo .tex resultante, o nome do arquivo gráfico inserido (o argumento do comando \includegraphics ) é gravado sem uma extensão. O que fazer? Hmm, porque além de receber o arquivo .tex , cujo processamento pelo pdflatex não causaria um único erro, eu também gostaria de manter a visibilidade na janela do programa LyX. Por outro lado, quando você insere gráficos na janela do programa LyX em nosso caso de língua russa, os caracteres inseridos ao pressionar as teclas do teclado provavelmente serão cirílicos, enquanto as extensões de arquivo em geral, em particular as gráficas, são escritas em inglês. Por outro lado, o leitor que leu este blog neste local, provavelmente já conhece a função do programa LyX, muito saborosa - Use o layout do teclado e use-o com poder e principal. Bem, se sim, então a tarefa é bastante simplificada. Nomeadamente, aqui abrimos o arquivo no programa LyX, mudamos o layout para inglês e começamos a escrever pressionando as letras necessárias, como se o layout estivesse definido para russo, os caracteres inseridos na janela do programa LyX são caracteres cirílicos, localizado nas teclas pressionadas. Está tudo bem aqui. Então escrevemos, escrevemos, pulamos, precisávamos inserir gráficos. Até esse momento, caracteres cirílicos foram introduzidos e agora foi necessário inserir as letras em inglês (inserir a extensão). Então, nós apenas o pegamos e entramos no modo matemático, no qual escrevemos o nome da foto inserida junto com sua extensão e a iniciamos usando a tecla de atalho que criamos especialmente para isso (eu tenho este Ctrl + 0 + V + G ( devido à inserção de gráficos)) o comando vstgr1 definido especificamente no arquivo default.def .
Este comando é definido da seguinte maneira:

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

(e a tecla de atalho anterior é atribuída à chamada de frase vstgr1 ). Como você pode imaginar, esse comando inicia o arquivo em lotes vstavka-grafiki1.bat com o seguinte conteúdo:

 start vstavka-grafiki1.js 

Como você pode imaginar, esse arquivo em lotes executa o arquivo vstavka-grafiki1.js , que, em essência, faz tudo. O que ele esta fazendo? Vamos primeiro descrever qual construção queremos no arquivo .lyx atualmente editado. Queremos que a partir de uma nova linha (se já escrevemos algo lá antes, se não, não precisamos de uma nova linha, veja abaixo), a foto que precisamos é inserida e, novamente, a partir de uma nova linha, ela será inserida um bloco de código TeX (o que geralmente aparece na janela do programa LyX ao pressionar Ctrl + L ) e, nesse bloco, seria \includegraphics{} , onde o nome da foto inserida, o ponto e a extensão da foto inserida seriam parênteses . De fato, fazemos com que a foto inserida na janela do programa LyX seja exibida apenas para decoração na janela do programa LyX, não precisamos que essa foto seja exibida no .pdf final .pdf : a foto que aparece como resultado do comando será exibida no final .pdf localizado no bloco TeX, portanto, para impedir a aparência dos gráficos finais em .pdf resultantes do processamento de gráficos visuais a partir da janela do programa LyX, comentaremos esse gráfico visual nesta janela do programa LyX, colocando um sinal de porcentagem na frente desse gráfico incorporado no bloco de código teX. Em uma palavra, queremos obter, por exemplo, a seguinte construção:



Basicamente, faço o mesmo que no primeiro caso: da mesma maneira , danifico o arquivo vstavka-grafiki1.bat no LyX através do arquivo default.def , criando um novo comando vstgr1 nesse arquivo e, em seguida, criando um comando quente na janela do programa LyX chave na frase chamada vstgr1 , está tudo claro. A diferença estará apenas no arquivo vstavka-grafiki1.js , que é iniciado pelo arquivo vstavka-grafiki1.bat . Antes de listar o conteúdo do arquivo vstavka-grafiki1.js , listarei o conteúdo dos dois arquivos auxiliares usados ​​neste arquivo. Ou seja, para fazer tudo isso, precisaríamos simular pressionando o sinal de porcentagem no arquivo vstavka-grafiki1.js também . E, como usamos o layout do teclado cazaque (eu uso o layout do teclado cazaque, escrevo com base no fato de que meu leitor também o usa) e, porque com esse layout do teclado, o caractere digitado, por exemplo, no bloco de anotações, quando você pressiona a tecla na qual esse sinal de porcentagem está localizado, é a letra do alfabeto cazaque e, em seguida, no comando que simula o sinal de porcentagem do arquivo vstavka-grafiki1.js , precisaríamos escrever essa carta cazaque, que, como escrevi em alguma outra postagem neste blog está causando um erro. Portanto, o arquivo vstavka-grafiki1.js usa o arquivo em lote procent.bat com o seguinte conteúdo:

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

Lembrando a história sobre \\. \ Pipe \ lyxpipe.in, é fácil entender que esse arquivo em lote realmente insere um sinal de porcentagem na posição atual do cursor no programa LyX (naturalmente, para poder usá-lo, em Ferramentas> Configurações ...> Caminhos no texto o campo do canal do servidor LyX: deve ser \\.\pipe\lyxpipe e, ao tentar usar o arquivo procent.bat aplicado ao LyX fora do arquivo vstavka-grafiki1.js, você deve seguir o procedimento adequado de inicialização da janela da linha de comando a partir da qual o arquivo vstavka- será chamado grafiki1.js e janelas do programa LyX, em que esse mesmo sinal de porcentagem será totalmente Para detalhes, refiro o leitor à narração acima mencionada, mas, ao chamar procent.bat do vstavka-grafiki1.js, tudo corre como deveria). Outro arquivo auxiliar usado no arquivo vstavka-grafiki1.js é o arquivo Ostanovka.js com o seguinte conteúdo:

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

Mas e o judô milagroso? O fato é que, quando criei o arquivo vstavka-grafiki1.js, que é executado sem interrupções, durante sua operação, aparentemente, também devido ao lançamento de outros arquivos com comandos que devem ser executados na mesma janela do programa LyX , em que o próprio arquivo vstavka-grafiki1.js executa comandos, ocorreram erros em locais diferentes, esses comandos do arquivo vstavka-grafiki1.js não fizeram coletivamente o que era necessário. Para consertar isso, eu vim com isso. Identificou experimentalmente esses lugares no arquivo vstavka-grafiki1.js . Ou seja, os comandos neste arquivo que causam erros. E na frente desses lugares, eu queria pausar o arquivo vstavka-grafiki1.js até pressionar uma tecla. O que - ainda não sabia. Pensei, pensei e lembrei que uma equipe não é uma equipe, não importa, em geral, WshShell.Run( existe um argumento que se seu valor for especificado como true , quando esse comando for executado, o trabalho principal a partir do qual esse comando será executado o arquivo é pausado até que o arquivo aberto por este comando seja fechado. Bem, algo já ... Por outro lado, lembrei que em jscript existe um comando que abre uma caixa de diálogo com botões realmente funcionais. eu decidi antes do arquivo áreas problemáticas vstavka-grafiki1.js colar zap comando arquivo ska Ostanovka.js com as expectativas do fim da operação do arquivo como Ostanovka.js irá criar uma caixa de diálogo com dois botões -. OK e Cancelar ao mesmo tempo após vyplyvaniya esta janela, o foco será no botão Ok, então para fechar esta janela uma janela, basta pressionar Enter . Então, criei o arquivo Ostanovka.js com o conteúdo acima. Também queria desligar o botão Cancelar e cancelar todas as ações executadas pelo arquivo vstavka-grafiki1.js após a última execução do arquivo Ostanovka.js , mas por enquanto Não sei como fazer Então, é isso, depois que as observações preliminares são feitas, o leitor é capaz de entender o processo do arquivo vstavka-grafiki1.js . Escreverei no comentário em cada linha o que ele executa. Não esqueça que antes de iniciar o arquivo vstavka-grafiki1.js, o cursor na janela do programa LyX está no modo matemático, após o nome do arquivo gráfico a ser inserido, o ponto que separa seu nome da extensão e a própria extensão. Ou seja, eu fiz o seguinte:

 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}"); //      

Vou dizer algumas palavras sobre o código acima. Primeiramente, os comentários em jscript são indicados pelo sinal // e tudo o que aparece na linha após esse sinal ser ignorado pelo executor desse código, pretende explicar à pessoa as ações executadas por esta linha. E se não houver nada antes de // na linha, essa linha continuará o comentário iniciado em algum lugar acima. Em segundo lugar, na primeira vez que copiei o nome da foto inserida, juntamente com sua extensão, separada por um ponto do nome, e na segunda vez que recortei esse design, em vez do que parece possível recortá-lo uma vez. Porque Sim, porque quando tentei fazer isso, antes de colar esse design da área de transferência pela segunda vez na posição atual, ele misteriosamente ficou vazio e nada aconteceu comigo. Não sei explicar por que isso acontece, porém, encontrei uma maneira de sair do problema que surgiu. Quero lembrar mais uma vez que, durante a operação do vstavka-grafiki1.js quando uma caixa de diálogo aparecer com o título Process Control, para continuar a operação do arquivo vstavka-grafiki1.js, pressione Enter (ou clique com o botão esquerdo em qualquer botão da caixa de diálogo pop-up). o que me parece menos conveniente).

LyX: Letra grande e


Agora, quando no programa LyX, usado no formato em que foi criado, você pressiona Shift + E (esse é o caso quando, quando a função Usar layout do teclado está ativada, o layout do teclado é alternado para inglês), em vez da letra maiúscula esperada " Uh ”, uma cotação invertida aparece na janela do programa LyX. A solução para esse problema é atribuir a tecla de atalho Shift + " à inserção automática E. da sequência de comandos da frase .

LyX: Como adicionar / remover mensagens de um grupo de mensagens em Exibir mensagens


Aqui, quando através de Exibir> Visualizar Mesas (ou através de Exibir> Exibir mensagens - depende do arquivo de localização LyX2.0.mo usado ), você abre a área de mensagens de Progresso / Depuração na parte inferior da janela do programa LyX, há muitas mensagens exibidas nesta parte da janela, acontece que você simplesmente move o mouse e exibe uma sequência de linhas de um quilômetro para encontrar algo que você precisa (por exemplo, para obter uma dica de como inserir esse ou aquele comando através do Buffer de Comando, é claro que ele não estará na forma literal, mas uma dica pode dar, eu talvez em breve eu conte um pouco sobre o que eu consegui descobrir sobre isso) pode ser extremamente difícil. Para reduzir (ou, inversamente, adicionar mensagens a qualquer grupo de mensagens), fazemos isso. Na área inferior da janela, clique com o botão esquerdo do mouse em Configurações , lá configuramos a opção Debug messages para Highlighted :



E então, do lado direito, clicamos duas vezes (na velocidade com que é feito ao abrir um arquivo, essa velocidade pode ser alterada, se necessário, nas configurações do próprio computador, fora do programa LyX) pelo grupo de mensagens, as mensagens das quais queremos faça com que não seja exibido na área Progresso / depurar mensagens ou, inversamente, nas mensagens desse grupo de mensagens que queremos que sejam exibidas nessa área. , , , , : , 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 . — .lyx .tex , , . , , OK Preview , .tex , LyX. , ???

LyX: ,


, , - , :



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



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 

, , , ! , , OK (, ). LyX :

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


All Articles