Como mostrar um número de linha comum a mais arquivos no emacs?

2

Eu tenho um projeto LaTeX que consiste em um arquivo mestre e outros arquivos (principalmente capítulos) que estão incluídos no arquivo principal através do comando \input :

\documentclass[a4paper,10pt,oneside,openany]{book}
....
\begin{document}
...
\mainmatter
\input{capitoli/one.tex}
\input{capitoli/two.tex}
\input{capitoli/n.tex}
...
\end{document}

Como você pode ver, os arquivos incluídos geralmente estão em subpastas em relação ao arquivo principal.

Eu gostaria que, quando eu estivesse visitando, digamos, two.tex o número da linha mostrado na parte inferior do buffer por line-number-mode não começaria de 1, mas consideraria as linhas de código antes desse arquivo (neste caso aqueles no arquivo de mensagens e em one.tex ). Isso porque, quando eu compilo o documento com pdfLaTeX , o compilador fornece números de linha "gerais" para erros, por isso é difícil encontrá-lo no código-fonte. Eu tentei o linum mode , mas parece funcionar como o line-number-mode para o problema específico.

Existe uma maneira de alcançar esse comportamento? Eu não postei a pergunta no TeX.StackExchange porque acho que essa é realmente uma questão relacionada ao Emacs.

    
por Spike 13.07.2012 / 10:45

2 respostas

2

Para mim latex informa o número da linha dentro de um determinado arquivo. Como você está invocando látex que dá números de linha "gerais"?

Você também deve considerar o uso de -file-line-error-style , pois isso ajuda o AUCTeX a encontrar o erro em alguns casos. Isso faz com que os erros sejam impressos como ./capitoli/three.tex:2: Undefined control sequence.

    
por 13.07.2012 / 13:09
0

Isso é mais como um hack para obter o que você está pedindo, mas você pode usar um script (por exemplo) awk para preparar um arquivo concatenando o arquivo \input 'ed para o arquivo (veja este link . A partir daí, você pode derivar o deslocamento de cada arquivo (o número da linha que ele possui no arquivo mesclado). Em seguida, você pode usar alguma forma de numeração de linha relativa (por exemplo, este link ). Em seguida, você precisará modificar o arquivo .emacs sempre que abrir um arquivo .tex que não seja o arquivo principal (por exemplo, usando um alias ou uma função).

Com algum trabalho, você pode conseguir o que quiser, mas não é simples.

P.S. Os números de linha da concatenação podem não ser os relatados em seu log de erros, pois pode haver outras macros em expansão (por exemplo, \include ).

    
por 13.07.2012 / 11:35

Tags