Estou trabalhando com grandes tabelas LaTeX no AucTEX e seria útil exibi-las em linhas truncadas, como aqui:
As marcas vermelhas são os caracteres "&" que separam as colunas da tabela. No caso de tabelas com muitas colunas, o código fonte de látex para uma linha da tabela é maior que a emacs
largura do quadro e, portanto, será, por padrão, agrupado em mais de uma linha. Mesmo assim align-current
, isso tornará o código fonte da tabela muito difícil de ler e editar, portanto
- para tabelas, prefiro que as linhas do código-fonte sejam truncadas (forçando-me a rolar horizontalmente)
- enquanto para todas as outras
latex
fontes, eu prefeririaword wrap
ajustá-lo à largura do quadro
No entanto, para o texto real no meu documento LaTeX, eu preferiria ter as word-wrap
configurações normais .
Questão:
É possível usar word-wrap
como padrão Emacs
e ainda ter alguns ambientes de látex no mesmo buffer como table
, longtable
e sidewaystable
mostrado truncate
d ao mesmo tempo?
Também para alguns outros ambientes como equation
, pycode
ou tikzpicture
truncamento, parece ser mais apropriado. Portanto, pode ser uma boa ideia poder definir uma lista de ambientes que não são agrupados, mas truncados.
A quebra automática deve ser de quebra automática (ou seja, o texto é quebrado para preencher a coluna no buffer, mas isso não reflete no arquivo) e a quebra automática de uma linha recuada deve seguir o recuo da linha.
As soluções também devem funcionar para o emacs, mas também para o Aquamacs 2.5.
Existe uma postagem no blog que sugere ter uma solução (parcial), mas não encontrei a implementação: http://endlessparentheses.com/longlines-mode-in-latex.html
fonte
(setq word-wrap t
) e(setq truncate-lines t)
no mesmo buffer. Se você desejaword-wrap
ativar, o melhor que provavelmente será capaz de colocar é uma sobreposição invisível sobre o texto que você deseja truncar - factível, mas não trivial - o código para isso exigiria o usovertical-motion
após cada comando com remoção / movimento / colocação de sobreposições.truncate-lines
talvez apenas algumas partes de um texto (determinados ambientes no LaTeX), mas vejo que isso pode ser difícil de alcançar. Parece que vou ter que aprender a alternarword wrap
/truncate
rapidamente. :)toggle-truncate-lines
.longlines-mode
. Veja esta postagem para um exemplo. Vou escrever uma resposta completa mais tarde, se tiver tempo.Respostas:
Depende exatamente do que você deseja fazer.
Nos comentários, Malabarba cria um link para uma postagem no blog que pode mostrar o caminho. No entanto, acho que essa abordagem depende (programaticamente) de modificar o texto do buffer. Se isso funciona para você - ótimo!
Se você deseja deixar o texto sem modificações, acho que você está sem sorte.
Para problemas como esse, geralmente começo lendo a seção do manual elisp na propriedade "display". Isso descreve as propriedades que podem ser aplicadas aos caracteres no buffer para afetar sua exibição.
Ao ler isso, não vi nada que controla se uma linha é ou não quebrada - apenas como exibir recuo e tal quando ocorre a quebra.
Então, por enquanto, acredito que a resposta é "não". Recentemente, houve uma conversa sobre o emacs-devel sobre a adição de recursos de empacotamento para exibir novamente, então talvez haja alguma esperança para o futuro.
fonte
'invisible t
ou uma'display ""
propriedade não modificar o texto tampão e que sobreposição pode efetivamente visualmente truncar qualquer linha no buffer - isso pode ser feito de forma seletiva. Em outras palavras,word-wrap
permanece ativo enquanto o truncamento direcionado pode ser feito com sobreposições.