Existem ferramentas comoformato clangque pegam, por exemplo, um arquivo de código-fonte C++ "feio" (não formatado) e aplicam recuo específico e outras regras para tornar o código mais legível.
Existe uma ferramenta que pode formatar automaticamente o código-fonte do LaTeX? Quero de alguma forma manter meus arquivos LaTeX limpos e consistentes entre os colaboradores.
Responder1
A ferramentalátexisso foi sugerido por @muzimuzhi-Z em um comentário que funcionou para mim. Este script Perl parece ser muito poderoso, mas começar é fácil:
Instalação
Eu já tinha uma versão mais antiga (provavelmente através do texlive-full
), mas como este projeto está sendo bastante desenvolvido, decidi adquirir a versão mais recente:
- Eu peguei a fonte deseu repositório oficial GitHub
- Eu instalei todas as dependências ausentes com
sudo ./helper-scripts/latexindent-module-installer.pl
- Eu adicionei ao meu caminho no meu
~/.bashrc
:export PATH="/path/to/latexindent.pl:$PATH"
Uso
Opções padrão, sobrescrevendo o arquivo ( -w
), sem gravar uma cópia no terminal ( -s
):
latexindent.pl -w -s myfile.tex
Isso manterá um backup do arquivo original .bak0
(ou .bak1
etc). Se você tiver isso em um repositório, você pode adicionar *.bak?
em seu arquivo .gitignore
.
Você também pode especificar seu próprio estilo de formatação em um yml
arquivo, assim: latexindent.pl -l mysettings.yml myfile.tex
.
Responder2
emacs (surpresa!) vem com suporte LaTeX pronto para uso, muito,muitosuporte mais sofisticado oferece AUC-TeX (e RefTeX para referências cruzadas e citações de bibliografias). Todos os pacotes padrão, verifique o índice de pacotes.
De qualquer forma, eu formato meus arquivos fonte LaTeX para conter uma frase em cada linha, terminando com pontuação, ... Dessa forma (sugeriu umlongoenquanto escrevia troff (!) para minha tese, usando vi...) as alterações geralmente significam excluir/inserir ou mover uma linha/linhas, verificando se há boo-boos como "uma tese" ou "um elefante" ou "o o caso" pode ser feito com ferramentas orientadas a linha (corrigir até mesmo de forma automatizada com uma simples substituição de regex). Hoje eu o escondo no git, o formato tem o benefício adicional de adicionar/excluir, por exemplo, uma palavra, não reflui o parágrafo, então as diferenças de versão destacam mudanças reais.
Sim, reformatar dessa forma é uma tarefa que precisa ser feita manualmente... mas é necessária uma vez (e continue assim mais tarde).