O misterioso programa LyX. Parte 4

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

LyX: \\. \ Pipe \ lyxpipe


Em geral, essa função é necessária para organizar a interação do LyX com outros programas. Em particular, você pode digitar comandos através da linha de comando em uma janela aberta do programa LyX! Antes de tudo, para que isso funcione, em Ferramentas> Configurações> Caminhos, na caixa de texto do canal do servidor LyX , digite o seguinte:

\\.\pipe\lyxpipe 

, e nem .in nem .out são atribuídos ao lyxpipe ao final. Naturalmente, clique em . Além disso, a janela do programa LyX, na qual havia a necessidade de digitar comandos a partir da janela do prompt de comando, deve ser iniciada antes dessa linha de comando, a partir da qual os comandos serão inseridos nessa janela do programa LyX, caso contrário nada funcionará. Aqui estão exemplos de como escrever comandos na linha de comando para fazer isso:

 echo LYXCMD:sohranenie:buffer-write> \\.\pipe\lyxpipe.in echo LYXCMD:formula:math-mode:\alpha> \\.\pipe\lyxpipe.in echo LYXCMD:vstgrafiki:inset-apply:graphics filename zdes kujut hip-hop.png> \\.\pipe\lyxpipe.in 

Na minha opinião, a última equipe merece interesse. Este comando insere uma foto zdes kujut hip-hop.png )), localizada na pasta especificada em Ferramentas> Configurações ...> Caminhos na caixa de texto Diretório do usuário na janela do programa LyX aberta (antes de abrir a linha de comando).

LyX: pesquisa direta e reversa


Como isso está configurado é descrito aqui . Vou apenas contar como fiz em russo. Então Estamos usando uma versão não classificável do SumatraPDF. Então, nós o baixamos, instalamos. Em seguida, em "Iniciar> Programas Padrão> Mapeando Tipos de Protocolo ou Protocolos para Programas Individuais", verifique se os arquivos .pdf foram abertos usando o SumatraPDF. Em seguida, vamos para a pasta C:\Users\\AppData\Roaming\SumatraPDF . A partir daí, seguindo as orientações no link fornecido, copie o arquivo SumatraPDF-settings.txt para algum lugar.

Em seguida, foi necessário adicionar de alguma forma o caminho para a pasta que contém o arquivo SumatraPDF que abre o programa (eu tenho essa pasta C:\Program Files\SumatraPDF ) no PATH. Por alguma razão, adicionei isso às variáveis ​​de ambiente do usuário para IVAN . Além disso, o caminho para a pasta que contém o arquivo que inicia o programa LyX (para mim é C:\Program Files\LyX 2.0\bin ) também deve estar contido no PATH. Em seguida, vá para a pasta C:\Program Files\SumatraPDF , abra o arquivo SumatraPDF.exe . Na janela exibida do programa SumatraPDF, clique com o botão esquerdo nas 3 barras horizontais no canto superior esquerdo (ou, talvez, no canto))) e, em seguida, em Configurações> Configurações avançadas . Ao mesmo tempo, o mesmo arquivo SumatraPDF-settings.txt será aberto no bloco de notas, uma cópia da qual colocamos anteriormente em algum lugar isolado, para que agora possamos fazer o que quisermos com esse arquivo. E faremos o seguinte com ele. Aqui está uma lista de algumas variáveis ​​junto com seus valores:

 ReuseInstance = true ReloadModifiedDocuments = true InverseSearchCmdLine = lyxeditor.cmd "%f" %l EnableTeXEnhancements = true UseTabs = true 

Então aqui. No arquivo SumatraPDF-settings.txt , verificamos a presença dessas variáveis ​​(palavras à esquerda do sinal de igual), se houver, verificamos a coincidência do valor (palavras à direita do sinal de igual) das variáveis ​​encontradas neste arquivo da lista acima com os valores de tais mesmas variáveis ​​desta lista. Se na lista acima o valor de qualquer variável fosse diferente do valor da variável correspondente no arquivo, seria necessário refazer o valor dessa variável para o mesmo da lista acima. Se alguma variável da lista, juntamente com seu valor, não estivesse no arquivo, precisaríamos apenas copiar a variável e seu valor no arquivo. Bem, pessoalmente, não alterei nada neste arquivo: todas as variáveis ​​listadas na lista já existiam no arquivo e todas essas variáveis ​​no arquivo receberam os valores correspondentes listados na lista diretamente ao instalar o SumatraPDF. Feche, salve as alterações. É isso, o SumatraPDF depois disso será configurado. Prosseguimos para configurar o LyX. Portanto, abra o programa LyX se, até o momento, ele não foi aberto ou, por algum motivo, foi fechado. Vá para Ferramentas> Configurações ...> Caminhos . No campo de texto do canal do servidor LyX, digite

 \\.\pipe\lyxpipe 

Em seguida, vá para Ferramentas> Configurações ...> Processamento de arquivos> Conversores . Lá, na área sob a frase Definições de conversores, selecione LaTeX (pdflatex) -> PDF (pdflatex) com o botão esquerdo do mouse. Em seguida, excluímos seu conteúdo do campo de texto Conversor e inserimos (ou inserimos manualmente) o seguinte:

 pdflatex -interaction=nonstopmode -synctex=1 $$i 

Além disso, na caixa de texto , exclua seu conteúdo. Clique no botão Alterar . Então salve . Volte para Ferramentas> Configurações ...> Processamento de arquivos> Conversores . Verifique se as configurações estão salvas. Para mim, quando vou para lá agora, ao pesquisar nas duas direções, digito , depois de clicar no botão esquerdo do mouse LaTeX (pdflatex) -> PDF (pdflatex) , o local das configurações fica assim:



Em seguida, vá em Ferramentas> Configurações ..> Saída> Geral . Lá, na caixa de texto Comando PDF , digite o seguinte comando:

 SumatraPDF -forward-search "$$t" $$n "$$o" 

, clique em Aplicar . Assim, este lugar ficará assim:



Vá para Ferramentas> Configurações ..> Manipulação de arquivos> Formatos de arquivo . Lá, definiremos a lista suspensa Formato , escolhendo o valor PDF (pdflatex) com o botão esquerdo do mouse, o valor definido pelo usuário na lista suspensa Visualizador e digite a caixa de texto à direita dessa lista.

 SumatraPDF 

Atualmente existe:



E, finalmente, na C:\Program Files\LyX 2.0\bin crie um arquivo com o nome lyxeditor e a extensão .cmd (na verdade, é o mesmo arquivo em lotes) com o seguinte conteúdo:

  @echo off SETLOCAL enabledelayedexpansion set file=%1 set row=%2 REM remove quotes from variables set file=!file:"=! set row=!row:"=! %comspec% /q /c (@echo LYXCMD:revdvi:server-goto-file-row:%file% %row%)> \\.\pipe\lyxpipe.in&&type \\.\pipe\lyxpipe.out endlocal 

Peguei o código desse arquivo em lote aqui quando clicou no link da página em inglês, cujo conteúdo estou recontando aqui (o link para esta página foi fornecido por mim aqui, apenas acima). Honestamente, sobre a criação de um arquivo em lotes em uma página em inglês, foi dito muito antes que isso fosse feito para mim, mas qual é a diferença? A propósito, o código desse arquivo em lotes me levou a pensar em como inserir comandos na linha de comando para que eles sejam inseridos nessa linha na janela aberta do programa LyX, que serviu de base para escrever o parágrafo LyX: \\. \ Pipe \ lyxpipe deste artigo. Antes disso, tentei inserir comandos da linha de comando na janela do programa LyX, pegando esses comandos no manual, por exemplo, tentei executar o seguinte comando na linha de comando:

 echo "LYXCMD:test:get-xy:" >~/.lyxpipe.in 

mas nada deu certo para mim. Bem, e agora, voltando à pesquisa relacionada ao LyX. Como usá-lo? Mas muito simples. Agora, se tivermos feito uma visualização do arquivo .lyx aberto, quando você clicar em Navegação> Pesquisa avançada por um breve período na janela correspondente do SumatraPDF, várias linhas contendo a mesma palavra serão destacadas em roxo (pelo menos para mim), ao lado da palavra correspondente na janela LyX em cursor atualmente piscando. Quando você clica duas vezes na janela SumatraPDF, o foco é transferido para a janela LyX e o cursor começa a piscar lá, enquanto quando você clica em diferentes locais da janela SumatraPDF, o cursor começa a piscar em diferentes locais da janela LyX. Não posso dizer nada mais específico sobre o relacionamento da posição do cursor no LyX com as linhas destacadas no SumatraPDF, bem como o relacionamento da posição de clique duplo no SumatraPDF com o local na janela do LyX onde o cursor começa a piscar. Portanto, a tarefa é bastante complicada, deixe-me dar uma tradução dessa página, cujo conteúdo estou recontando aqui, feita pelo navegador do Google: de repente, perdi algo. Então



Do MyNotes
Atualizado para a versão mais recente 2.3.32019
Os usuários do MiKTeX são aconselhados a atualizar para a versão mais recente antes de instalar o LyX 2.3.3+ para Windows. Se você possui uma instalação permanente do SumatraPDF , é necessário instalar a pesquisa inversa ONCE , assim como usar guias, não precisamos gastar tempo decidindo qual sessão abordar. Observe que o SumatraPDF pode ter várias janelas e sessões, mas isso está além do escopo desta resposta. InverseSearchCmdLine = armazenado permanentemente em SumatraPDF-settings.txt. Ele não deve ser personalizado pelo editor, a menos que você precise reinstalar ou substituir o SumatraPDF-settings.txt (faça um backup!)

Configurações no SumatraPDF


A diferença notável é que retornamos ao arquivo cmd do Okular mais estável (o Okular usa exatamente o mesmo sistema de chamada do SumatraPDF ), o que evita chamadas desnecessárias. O SumatraPDF deve ser instalado de forma que funcione em qualquer chamada do sistema, como o SumatraPDF , o que significa que deve estar "a caminho" (se a versão portátil for usada, o SumatraPDF.exe deverá ser temporariamente adicionado ao caminho do usuário até a primeira chamada do Lyx) Inicie o SumatraPDF e vá para Configurações> Opções avançadas . Isso abrirá o arquivo SumatraPDF-settings.txt no bloco de notas , agora após verificar as entradas, verifique ou altere o seguinte.

 ReuseInstance = true ReloadModifiedDocuments = true InverseSearchCmdLine = lyxeditor.cmd "%f" %l EnableTeXEnhancements = true UseTabs = true 

Lembre-se de que %l é uma letra minúscula L e pressione CTRL + S (Salvar arquivo). Se você precisar adicionar c: ... LyX \ bin \ a este InverseSearchCmdLine , você instalou o LyX incorretamente. O arquivo .cmd está localizado na pasta bin, que DEVE estar no caminho do sistema.

Configurações no LyX


Siga as instruções do SyncTex em wiki.lyx.org/LyX/SyncTex .

“(Nota: a pesquisa reversa de arquivos .lyx com espaços ou outros caracteres especiais no nome do arquivo nem sempre funciona com essa abordagem em alguns sistemas Windows)”

Minhas anotações, devido a esse método exclusivo de chamar o canal [1] usado pelo LyX no Windows, às vezes é necessário que o arquivo de trabalho e seu caminho NÃO POSSAM TER UM ESPAÇO, portanto, se isso não funcionar, você precisará criar problemas com o suporte ao LyX . Se eles fornecerem uma maneira mais fácil de chamar uma sessão ativa do LyXserver com o caminho remoto entre aspas, deixe um comentário abaixo. O problema é que o LyXserver espera dois valores consecutivos:

1) O SyncTeX forneceu o nome do arquivo .tex 2) seguido por um número de linha; portanto, quando o nome do arquivo contém espaços, a primeira parte pode ser inválida como o nome do arquivo e a segunda parte claramente não é um número. Isso pode funcionar se os nomes dos arquivos forem analisados como o formato 8.3 mais antigo, mas os arquivos mais modernos do Windows usam o formato LFN. O arquivo lyxeditor.cmd tenta solucionar esses problemas. Diferenças visíveis em comparação com qualquer outra abordagem Não inclua opções / diretivas de pesquisa desnecessária e obsoleta - instância de reutilização ou pesquisa inversa (elas não são necessárias e reduza a velocidade da solicitação de pesquisa direta ).

Ferramentas → Configurações → Caminho

  • Adicione o diretório em que o SumatraPDF.exe está localizado à linha de prefixo PATH. (Isso não é necessário para uma instalação permanente, mas pode ajudar no uso portátil).
  • Defina a linha pipe LyXServer \\. \ Pipe \ lyxpipe (NÃO use o botão de navegação).

Ferramentas → Configurações → Processamento de arquivo → Conversores

  • Escolha o formato LaTeX (pdflatex) -> PDF (pdflatex)
  • Defina o conversor de entrada como pdflatex -interaction = nonstopmode -synctex = 1 $$ i



  • Clique em "Alterar" (caso contrário, a alteração será cancelada).
  • Essa alteração requer que o MikTeX ou o TeX Live criem o arquivo FILE.synctex.gz.

Saia e volte para verificar se foi modificado. Foram necessárias algumas alterações para redefini-lo e fixá-lo de uma sessão para outra.

Ferramentas → Configurações → Saída → Geral.
Na seção Pesquisa Direta, defina o comando de entrada PDF como SumatraPDF -forward-search "$$ t" $$ n "$$ o"

Ferramentas → Configurações → Processamento de arquivo → Formatos de arquivo

  • Escolha o formato PDF (pdflatex)
  • Defina o campo Exibir como Personalizado usando o comando SumatraPDF
  • Pode ser necessário fechar todas as janelas do SumatraPDF e usar Documento → Exibir.
  • Você pode definir o comando de pesquisa reversa diretamente no SumatraPDF, indo em "Configurações → Opções avançadas", conforme descrito acima, e defina a pesquisa reversa. Nesse caso, você reduz o comando Exibir para

 SumatraPDF 



QUALQUER problema com essa chamada de Pesquisa Inversa deve surgir com o suporte do Lyx, pois esse é o método recomendado, não o meu!

[1] Em princípio, o uso de pipes nomeados na memória acelera e reduz a necessidade de chamar um aplicativo por meio de opções de shell; no entanto, como os métodos DDE ou D-bus, ele não é familiar para a maioria dos usuários e pode ser problemático para corrigir problemas.

Nota Certifique-se de que o lyx tenha o arquivo aberto, o botão Ativar Avançar / Retroceder esteja ativo, compile e visualize finalmente o botão direito do mouse e selecione cerca de 6 opções abaixo

Os lugares não são 1 em 1 (as páginas podem parecer "desativadas"). Isso pode ajudar a ver uma pesquisa direta, definindo SumatraPDF-settings.txt

HighlightPermanent = true

Para retornar à página correspondente, basta clicar duas vezes em qualquer lugar do SumatraPDF para chamar lyxeditor.cmd.


Como você pode ver, ainda existem algumas nuances que não são mencionadas por mim. No entanto, quando configurei tudo, simplesmente não precisei dessas nuances.

LyX; uso de arquivos .bat


Apesar da aparente falta à primeira vista da capacidade de adicionar novos formatos de exportação ao LyX (tanto quanto eu entendo, por exemplo, no TeXworks, um análogo dessa possibilidade de adição é a capacidade de criar uma nova ferramenta de layout), este programa tem essa oportunidade. Para começar, vamos tentar criar o seguinte formato de exportação, que à primeira vista parece indulgente. As seguintes variáveis ​​PATH são definidas no programa LyX:

 $$s The LyX system directory (eg /usr/share/lyx). $$i The input file $$o The output file $$b The base name (without filename extension) in the LyX temporary directory $$p The full directory path of the LyX temporary directory $$r The full pathname to the original LyX file being processed $$f The filename (without any directory path) of the LyX file. $$l The `LaTeX name' 

este é um trecho de uma parte do manual do programa LyX. Não vamos traduzir explicações sobre os significados, significados dessas variáveis, mas tentar criar um novo formato de exportação (com a aparência de um novo botão em Arquivo> Exportar para , inclusive clicando no qual podemos exportar para esse formato do arquivo .lyx , na janela em que esse clique foi feito), durante a exportação para a qual no diretório temporário (no qual, por exemplo, ao exportar para PDF {pdflatex} , arquivos são gerados, além do .pdf criado), o arquivo puti.txt será criado no qual ( todos) os valores dessas variáveis . Para fazer isso, na pasta que foi adicionada ao PATH, crie um arquivo puti.bat com o seguinte conteúdo:

 chcp 1251 cd /d %0\.. echo %1 >puti.txt echo %2 >>puti.txt echo %3 >>puti.txt echo %4 >>puti.txt echo %5 >>puti.txt echo %6 >>puti.txt echo %7 >>puti.txt echo %8 >>puti.txt echo %1/%~2 >>puti.txt 

Em seguida, no arquivo C:\Users\\AppData\Roaming\LyX2.0\lyxrc.defaults , estamos onde as linhas

 .................................... \Format pdf4 pdf "PDF (XeTeX)" X "pdfview" "" "document,vector,menu=export" \Format pdf5 pdf "PDF (LuaTeX)" u "pdfview" "" "document,vector,menu=export" 

adicione essa linha

 \Format pdf6 txt "puti" F "pdfview" "" "document,vector,menu=export" 

Aqui, a palavra puti não especifica o arquivo com o código, que é o mecanismo do formato de exportação criado, mas com o nome do botão para chamar esse formato de exportação para Arquivo> Exportar para será exibido e onde

 .................................... \converter pdflatex pdf2 "pdflatex $$i" "latex=pdflatex" \converter xetex pdf4 "xelatex $$i" "latex=xelatex" \converter luatex pdf5 "lualatex" "latex=lualatex" 

após a linha que define o formato pdf5, adicionamos a seguinte linha:

 \converter pdflatex pdf6 "puti.bat $$b $$f $$i $$l $$o $$p $$r $$s" "" 

E aqui a palavra puti define um arquivo com código, que é o mecanismo do formato de exportação criado. E neste local do arquivo lyxrc.defaults , você já deve especificar a extensão desse arquivo com o código (neste caso .bat ), caso contrário não funcionará! .. E então, como você deve imaginar, os parâmetros são indicados, por um lado, com os quais esse arquivo com o código é iniciado quando a exportação para o formato criado é iniciada e, por outro lado, esses parâmetros são chamados no formato que o programa LyX conhece e, portanto, quando você chama esse arquivo com o código do arquivo aberto no LyX, LyX antes de abrir arquivo com o código do programa correspondente com parâmetros, alguns e a partir da qual eles são formados a partir de partes do caminho completo para o arquivo exportado e outros de caminhos completos para algumas pastas significativas do sistema, ele substitui esses parâmetros, nomeados neste formulário por valores quase reais, por assim dizer, quase adequados para uso no comando linha Por que "quase" ficará claro mais tarde. Isso é tudo, você não precisa fazer mais nada no arquivo lyxrc.defaults : nem adicionar, lá, quaisquer novos \ editor_alternatives ou \ viewer_alternatives , ou qualquer outra coisa assim ... Em seguida, depois de salvar o arquivo lyxrc.defaults alterado dessa maneira e reiniciar Programas LyX em Arquivo> Exportar para , um novo botão é exibido:



Antes de clicar nele, clique em Exibir> Visualizar Mensagens (quando eu usei o LyX instalado a partir de um arquivo executável baixado de outra fonte, esse botão chamava-se Visualizar Mensagens , porque essa cópia do programa usava um arquivo de localização diferente .mo ), enquanto Geralmente, na parte inferior da janela do programa LyX, aparece uma área chamada Mensagens de progresso / depuração . Agora você pode clicar no botão que criamos. Ao mesmo tempo, na área Mensagens de progresso / depuração , as informações sobre o processo de exportação começam a piscar, rolando para baixo. Após o término dessa oscilação, procuramos o caminho para a pasta temporária na qual os arquivos que aparecem no caminho são colocados, além do arquivo do tipo que você deseja receber na mesma pasta com o arquivo .lyx exportado. Todos esses caminhos são mais ou menos parecidos entre si, portanto não há erro. Por exemplo, aqui está uma destas maneiras:

 D:\1-kat-LyX\lyx_tmpdir.gq2748\lyx_tmpbuf2 

Vá para esta pasta. Haverá, entre outros, o arquivo puti.txt , que definimos como saída para este formato de exportação. Ao abri-lo, veremos algo como o seguinte:

 D:/1-kat-LyX/lyx_tmpdir.gq2748/lyx_tmpbuf2/newfile2 newfile2.lyx newfile2.tex $$l newfile2.txt D:/1-kat-LyX/lyx_tmpdir.gq2748/lyx_tmpbuf2/ C:/DocLyX/ $$s D:/1-kat-LyX/lyx_tmpdir.gq2748/lyx_tmpbuf2/newfile2/newfile2.lyx 

Um arquivo com esse conteúdo foi formado durante a exportação para o formato de exportação de arquivo que criei C:\DocLyX\newfile2.lyx . Como você pode ver, nem todos os parâmetros se expandiram para seus valores, o que, no entanto, não interfere na criação de alguns outros formatos de exportação que eu concebi. No entanto, esse problema é descoberto aqui, consistindo em "quase" compatibilidade com a linha de comando, que mencionei acima. A saber: o separador nos caminhos assim obtidos no arquivo de saída .txt é o caractere / vez do tradicional, pelo menos no Windows, \ ; portanto, para poder usar o caminho obtido dessa maneira, é provável que você precise arquivar com o código que deve ser usado como um mecanismo para o formato de exportação criado, inclua a seção para substituir / por \ . Manteremos isso em mente no futuro. Comparando a ordem em que os parâmetros estão listados no arquivo lyxrc.defaults com o qual forço a iniciar (e pode ser iniciado))) o arquivo puti.bat , o arquivo puti.bat em si com o conteúdo do arquivo puti.txt , concluo que para criar outro , , , , , LyX. $$i — , puti.txt .tex , .lyx , , , MiKTeX, — , , . - . $$r — LyX .lyx , .tex , . , puti . . - «» LyX LyX . , .lyx . , lyxrc.defaults , puti . :

 \Format pdf7 pdf "pdflatex v papke" F "pdfview" "" "document,vector,menu=export" 

e

 \converter pdflatex pdf7 "pdflatex-v-papke.bat $$r $$i" "" 

, . puti , , ( .bat ), . , pdflatex-v-papke.bat :

 cd /d %0\.. chcp 1251 echo LYXCMD:sohranenie:buffer-write> \\.\pipe\lyxpipe.in if exist perehod.bat (goto :vyhod3) else (goto :vhod) :vhod echo %1 > put0.txt echo cd /d %%0\..>> pereim.bat echo SetLocal EnableExtensions EnableDelayedExpansion>> pereim.bat echo Set infile=put0.txt>> pereim.bat echo Set outFile=put.txt>> pereim.bat echo Set find=/>>pereim.bat echo Set replace=\>>pereim.bat echo for /F "UseBackQ delims=" %%%%n in ("%%infile%%") do (>> pereim.bat echo set "LINE=%%%%n">> pereim.bat echo set "LINE=!LINE:%%find%%=%%replace%%!">> pereim.bat echo echo.!LINE!^>^>%%outFile%%>> pereim.bat echo )>> pereim.bat echo exit>> pereim.bat start /b pereim.bat :vhod1 if exist put.txt (goto :vyhod1) else (goto :vhod1) :vyhod1 echo chcp 1251 > perehod.bat echo cd /D^^>>perehod.bat more < put.txt >> perehod.bat echo del %~n2.tex>> perehod.bat echo :vhod2 >> perehod.bat echo lyx -e latex %~n2.lyx>> perehod.bat echo if exist %~n2.tex (goto :vyhod2) else (goto :vhod2) >> perehod.bat echo :vyhod2 >> perehod.bat echo pdflatex %2 >> perehod.bat echo taskkill /f /im pdflatex.exe >> perehod.bat echo exit >> perehod.bat echo :vhod3 if exist perehod.bat (goto :vyhod3) else (goto :vhod3) :vyhod3 start perehod.bat pdflatex %1 rem            exit.bat exit 

? , , LyX, lyxrc.defaults , , « , LyX » « , .tex», . , , - « » . , pdflatex-v-papke.bat , , , windows 1251 . , LyX , () , , , , .lyx

 echo LYXCMD:sohranenie:buffer-write> \\.\pipe\lyxpipe.in 

, .

 if exist perehod.bat (goto :vyhod3) else (goto :vhod) 

:vyhod3 :vhod , , , . , pdflatex-v-papke.bat , ( ) put0.txt , pereim.bat , put.txt , perehod.bat , , , , .lyx , , . perehod.bat , 3 , . - if . , pdflatex-v-papke.bat , , pdflatex-v-papke.bat , 4 — put0.txt , pereim.bat , put.txt , perehod.bat . 4 , , . . . . , LyX pdflatex-v-papke.bat , « , LyX », put0.txt , . ( , , / \ ). pdflatex-v-papke.bat pereim.bat , , put0.txt , / \ put1.txt . pdflatex-v-papke.bat pereim.bat . , , , /b . ( , ) pereim.bat . - , put1.txt , pdflatex-v-papke.bat , put1.txt . pdflatex-v-papke.bat . , pereim.bat :

 :vhod1 if exist put.txt (goto :vyhod1) else (goto :vhod1) :vyhod1 

put.txt , . , :vhod1 put.txt , , . , pdflatex-v-papke.bat . perehod.bat , (

 :vhod3 if exist perehod.bat (goto :vyhod3) else (goto :vhod3) :vyhod3 

pdflatex-v-papke.bat ) perehod.bat . perehod.bat , , put.txt ,

 more < put.txt 

, , perehod.bat ( C:\DocLyX\newfile2.lyx ):

 chcp 1251 cd /D^ C:\DocLyX\ del newfile2.tex :vhod2 lyx -e latex newfile2.lyx if exist newfile2.tex (goto :vyhod2) else (goto :vhod2) :vyhod2 pdflatex newfile2.tex taskkill /f /im pdflatex.exe exit 

? , , , perehod.bat , windows 1251 . 2 , . ^ . , perehod.bat .lyx . /D , LyX >...> , LyX , , . .lyx , .tex , , , .lyx .lyx , . .lyx , , .tex pdflatex-v-papke.bat , .lyx , .tex . , () pdflatex-v-papke.bat , .lyx , .tex . .tex , .lyx , .lyx , .tex . , . pdflatex' , .lyx , .tex , pdflatex , , ( ) perehod.bat . pdflatex-v-papke.bat . , perehod.bat , , . exit.bat ( - )

 date /t exit 

? , , puti.bat , , , puti1.bat , , , , , , LyX , :



, . , , puti1.bat - . . , - . . - . . : , , . . , , , , , , . , pdflatex-v-papke.bat . Isso é tudo. Assim por diante TeXworks :



LyX , .lyx .tex , .tex xelatex.exe -undump=xelatex . , - .lyx , . , . > ... xelatex v papke , xelatex-v-papke.bat :

 cd /d %0\.. chcp 1251 echo LYXCMD:sohranenie:buffer-write> \\.\pipe\lyxpipe.in if exist perehod.bat (goto :vyhod3) else (goto :vhod) :vhod echo %1 > put0.txt echo cd /d %%0\..>> pereim.bat echo SetLocal EnableExtensions EnableDelayedExpansion>> pereim.bat echo Set infile=put0.txt>> pereim.bat echo Set outFile=put.txt>> pereim.bat echo Set find=/>>pereim.bat echo Set replace=\>>pereim.bat echo for /F "UseBackQ delims=" %%%%n in ("%%infile%%") do (>> pereim.bat echo set "LINE=%%%%n">> pereim.bat echo set "LINE=!LINE:%%find%%=%%replace%%!">> pereim.bat echo echo.!LINE!^>^>%%outFile%%>> pereim.bat echo )>> pereim.bat echo exit>> pereim.bat start /b pereim.bat :vhod1 if exist put.tex (goto :vyhod1) else (goto :vhod1) :vyhod1 echo chcp 1251 > perehod.bat echo cd /D^^>>perehod.bat more < put.txt >> perehod.bat echo del %~n2.tex>> perehod.bat echo :vhod2 >> perehod.bat echo lyx -e latex %~n2.lyx>> perehod.bat echo if exist %~n2.tex (goto :vyhod2) else (goto :vhod2) >> perehod.bat echo :vyhod2 >> perehod.bat echo miktex-xetex.exe -undump=xelatex %2 >> perehod.bat echo taskkill /f /im pdflatex.exe >> perehod.bat echo exit >> perehod.bat :vhod3 if exist perehod.bat (goto :vyhod3) else (goto :vhod3) :vyhod3 start perehod.bat pdflatex %1 rem            exit.bat exit 

, , pdflatex-v-papke.bat . - miktex-xetex.exe -undump=xelatex %2 , .tex , . lyxrc.defaults , xelatex-v-papke.bat $$r $$i , lyxrc.defaults . , , .lyx , , .tex utf8 \usepackage[utf8]{inputenc} , . (, : inputenc >> LaTeX , ) >> ( .mo ) (XeTeX) (utf8) . , , / Asymptote, (pdflatex+asymptote+pdflatex pdflatex). , , Asymptote, , TEX, , .lyx . , .lyx - Asymptote, .pdf , Asymptote, . .lyx Asymptote TeX (Ctrl+L), - -, .lyx — - , . - ovols. - TeX, TeX , ovols . ovols' \begin{asy} , 2 \end{asy} . .js . , . , , asy . , , :



- , , , pdflatex .tex , asy, , .pdf , , . , , asymptote >...> LaTeX . lyxrc.defaults $$r $$i . . , , .bat . pdflatex+asymptote+pdflatex-v-lyx.bat . , , . :

 cd /d %0\.. if exist perehod.bat (goto :vyhod6) else (goto :vhod) :vhod echo %1 > put0.txt echo cd /d %%0\..> pereim.bat echo SetLocal EnableExtensions EnableDelayedExpansion>> pereim.bat echo Set infile=put0.txt>> pereim.bat echo Set outFile=put.txt>> pereim.bat echo Set find=/>>pereim.bat echo Set replace=\>>pereim.bat echo for /F "UseBackQ delims=" %%%%n in ("%%infile%%") do (>> pereim.bat echo set "LINE=%%%%n">> pereim.bat echo set "LINE=!LINE:%%find%%=%%replace%%!">> pereim.bat echo echo.!LINE!^>^>%%outFile%%>> pereim.bat echo )>> pereim.bat echo exit>> pereim.bat start /b pereim.bat :vhod1 if exist put.txt (goto :vyhod1) else (goto :vhod1) :vyhod1 echo echo LYXCMD:sohranenie:buffer-write^> \\.\pipe\lyxpipe.in >perehod.bat echo cd /D ^^>>perehod.bat more < put.txt >> perehod.bat echo :vhod1>>perehod.bat echo lyx -e latex %~n2.lyx>> perehod.bat echo if exist %~n2.tex (goto :vyhod1) else (goto :vhod1)>>perehod.bat echo :vyhod1>>perehod.bat echo echo cd /d %%%%0\..^> zamena.bat>>perehod.bat echo echo chcp 65001^>^> zamena.bat>>perehod.bat echo echo SetLocal EnableExtensions EnableDelayedExpansion^>^> zamena.bat>>perehod.bat echo echo Set infile=%~n2.tex^>^> zamena.bat>>perehod.bat echo echo Set outFile=zameneno.tex^>^> zamena.bat>>perehod.bat echo echo Set find=ovols^>^>zamena.bat>>perehod.bat echo echo Set replace=^>^>zamena.bat>>perehod.bat echo echo for /F "UseBackQ delims=" %%%%%%%%n in ("%%%%infile%%%%") do (^>^> zamena.bat>>perehod.bat echo echo set "LINE=%%%%%%%%n"^>^> zamena.bat>>perehod.bat echo echo set "LINE=!LINE:%%%%find%%%%=%%%%replace%%%%!"^>^> zamena.bat>>perehod.bat echo echo echo.!LINE!^^^>^^^>%%%%outFile%%%%^>^> zamena.bat>>perehod.bat echo echo )^>^> zamena.bat>>perehod.bat echo echo exit^>^> zamena.bat>>perehod.bat echo :vhod2>>perehod.bat echo if exist zamena.bat (goto :vyhod2) else (goto :vhod2)>>perehod.bat echo :vyhod2>>perehod.bat echo start zamena.bat>>perehod.bat echo :vhod3>>perehod.bat echo if exist zameneno.tex (goto :vyhod3) else (goto :vhod3)>>perehod.bat echo :vyhod3>>perehod.bat echo del %~n2.tex>>perehod.bat echo rename zameneno.tex %~n2.tex>>perehod.bat echo del %~n2.aux>>perehod.bat echo if exist %~n2-*.asy (goto :vhod4) else (goto :vhod5)>>perehod.bat echo :vhod4>>perehod.bat echo del %~n2-*.*>>perehod.bat echo :vhod5>>perehod.bat echo pdflatex %2 >> perehod.bat echo for %%%%f in (%~n2-*.asy) do asy %%%%f >> perehod.bat echo pdflatex %2 >> perehod.bat echo exit >> perehod.bat :vhod6 if exist perehod.bat (goto :vyhod6) else (goto :vhod6) :vyhod6 start perehod.bat 

, . zamena.bat ovols , . . -. ,

 :vhod « - » If exist «- »... :vyhod «   - » 

, , «- » , .

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


All Articles