AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1455483
Accepted
llinfeng
llinfeng
Asked: 2019-07-03 12:47:37 +0800 CST2019-07-03 12:47:37 +0800 CST 2019-07-03 12:47:37 +0800 CST

Como fazer com que o WSL use o Git-Bash para executar um comando `latexmk`?

  • 772

Pergunta : Posso chamar o Git-Bash para emitir um comando do WSL ? Contextos detalhados vão entre os dois divisores. ( Solução simples anexada no final desta questão .)


Eu uso um alias para compilar todos os meus *.texdocumentos, usando o Git-Bash no Windows 10. No meu c:/users/UserName/.bashrc, mapeei:

alias lmk='latexmk -pvc -pdf --synctex=1 -src-specials -silent -time -interaction=nonstopmode'

Gvim.exeCom um editor nativo e uma instância do Git-Bash que hospeda o latexmkcomando, não preciso mais me preocupar com o tedioso processo de compilação.

No entanto, quando emito o mesmo latexmkcomando por meio do WSL, não consigo mais executar a pesquisa direta e a pesquisa regressiva. Algumas opções para o compilador gravarão no PDF (ou em seu arquivo syntex), mapeando todas as linhas do PDF para as linhas do arquivo de origem detalhadas nos caminhos com sabor do WSL. Outra maneira de corrigir isso é: optar completamente pelo mundo WSL, onde uso o editor nativo + visualizador de PDF (que é completamente novo para mim) ou depurar ainda mais o compilador e ver se posso trocar todos os caminhos com sabor do WSL em caminhos com sabor do Windows (o que é, novamente, demorado).

Uma solução simples seria, de alguma forma, chamar o Git-Bash do WSL, passando os lmkcomandos para o Git-Bash como argumentos de linha de comando?


Além dos detalhes, em geral, o Git-Bash é algum executável que posso chamar diretamente do WSL? Em caso afirmativo, como dizer ao WSL que gostaria de executar a seguinte "coisa"? Na minha máquina, posso encontrar o Git-Bash como: "C:\Program Files\Git\git-bash.exe". Tentei passar /mnt/c/Program\ Files/Git/git-bash.exepara o WSL e ele gentilmente abriu uma janela autônoma do Git Bash.

insira a descrição da imagem aqui


Solução de linha única usando zsh + GitBash

Eu uso zshcomo meu shell padrão para WSL, e aqui vai a função que defini para torná-la lmk TexFilename.texdiretamente acessível a partir da linha de comando do WSL:

function lmk(){
    "$(wslpath "C:\Program Files\Git\git-bash.exe")" --hide -c "lmk $1"
}
# Note, the `lmk` here is actually alias from Git-Bash, as defined in: c:/users/UserName/.

A linha a seguir facilita o encerramento do processo bash/ oculto perl: emitir lmk_killdeve desativar todos os compiladores em execução (via latexmk, um script perl).

alias lmk_kill="powershell.exe kill -n perl"

Resumindo: com a nova zshfunção, estou compilando *.texarquivos do WSL como se estivesse usando os compiladores MikTeX nativos no Windows. Isso funciona bem com minhas configurações atuais de GVIM + Sumatra, onde a pesquisa para frente e para trás são totalmente funcionais.


Solução ainda mais simples: hospedar latexmkpor meio do PowerShell

Para obter detalhes, consulte esta resposta abaixo.

alias lmk='powershell.exe -c latexmk -pvc -pdf --synctex=-1 -src-specials -silent -time -interaction=nonstopmode'

E compile main.texarquivos em qualquer lugar, digamos, em um painel da sessão do Tmux no WSL, usando o comando simples lmk main.tex.

bash command-line
  • 2 2 respostas
  • 924 Views

2 respostas

  • Voted
  1. Best Answer
    Biswapriyo
    2019-07-05T12:10:09+08:002019-07-05T12:10:09+08:00

    Primeiro, com algum exemplo. Seja um comando simples touch test.txt.

    • No estilo do Windows:
    "C:\Program Files\Git\git-bash.exe" --hide -c "touch test.txt"
    
    • No estilo WSL:
    wsl.exe -- "$(wslpath "C:\Program Files\Git\git-bash.exe")" --hide -c "touch test.txt"
    

    Então, como isso funciona? A --opção after wsl.exepassa a linha de comando restante como está. Em seguida, wslpathconverte o caminho do estilo Windows (barra invertida) para o estilo WSL/Unix (barra), ou seja, C:\torna -se /mnt/c(por padrão). O resto são as opções para git-bash.exe. Aqui estão alguns deles. Para leituras adicionais, consulte interoperabilidade do WSL com o Windows .

    • 1
  2. llinfeng
    2020-04-08T06:49:06+08:002020-04-08T06:49:06+08:00

    Não há necessidade de ficar apegado a Git-bashnada. O requisito essencial na postagem original era compilar *.texdocumentos usando MikTeX nativo em máquinas Windows. Qualquer shell de comando que tenha acesso PATHe, portanto, o latexmkexecutável pode fazer o trabalho.

    O problema com Git-bash: A git-bash.exejanela sempre inicia em seu próprio emulador em uma nova janela, impossibilitando o trabalho com o Tmux. Agora não vejo necessidade de usar o Git-Bash para produção. Adeus, um velho amigo meu :). No entanto, executar o instalador gitde sua página de download ainda é a primeira coisa a fazer quando personalizo minha máquina Windows. Ele fornece git.exeo necessário para gvim.exeo Windows.

    Uma forma prática de compilar *.texarquivos usando Native MikTeX ( latexmk)

    Existem outros shells de comando disponíveis no Windows e todos estão disponíveis para WSL. Por exemplo: powershell.exedeve abrir o PowerShell dentro do mesmo emulador que hospeda a sessão WSL, possibilitando "hospedar um latexmkprocesso de compilação dentro do WSL". Isso abre a porta para hospedar vários "compiladores de segundo plano" por meio do Tmux.

    Comando de uma linha para chamar latexmkdo MikTeX, usando a instalação nativa do Windows 10:

    powershell.exe -c latexmk -pvc -pdf --synctex=-1 -src-specials -silent -time -interaction=nonstopmode 
    

    Uso: atribua a longa linha de comando a um alias para o shell usado no WSL, como:

    alias lmk='powershell.exe -c latexmk -pvc -pdf --synctex=-1 -src-specials -silent -time -interaction=nonstopmode'
    

    Em seguida, no diretório em que main.texestá localizado, emita o comando lmk main.texpara compilar o documento LaTeX no modo contínuo. O conjunto de sinalizadores que seguia latexmko comando também habilitaria a pesquisa para frente/para trás.

    • 0

relate perguntas

  • Existe um equivalente a cd - para cp ou mv?

  • Qual seria o equivalente em lote do argumento "pass" do Python?

  • Não é possível ativar o Microsoft Print to PDF depois de desativado

  • Notificar-enviar notificações aparecendo na janela

  • como abrir um arquivo de escritório do WSL

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    Serviço do Windows 10 chamado AarSvc_70f961. O que é e como posso desativá-lo?

    • 2 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Marko Smith

    ssl.SSLCertVerificationError: falha na verificação do certificado [SSL: CERTIFICATE_VERIFY_FAILED]: não foi possível obter o certificado do emissor local (_ssl.c:1056)

    • 4 respostas
  • Marko Smith

    Como posso saber em qual unidade o Windows está instalado?

    • 6 respostas
  • Martin Hope
    Albin Como faço para ativar o WindowsXP agora que o suporte acabou? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch O Windows 10 exclui muitos arquivos minúsculos muito lentamente. Algo pode ser feito para agilizar? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Como Ctrl+C e Ctrl+V funcionam? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve