標準としてワードラップを使用することはできますが、同時にバッファー内のいくつかの行を切り捨てることは可能ですか?


8

私はAucTEXで大きなLaTeXテーブルを扱っています。次のように、それらを切り捨てられた行で表示すると便利です。

ここに画像の説明を入力してください

赤いマークは、テーブルの列を区切る「&」文字です。多くの列を持つテーブルの場合、1つのテーブル行のラテックスソースコードはemacsフレーム幅よりも長いため、デフォルトでは複数行に折り返されます。を使用してもalign-current、テーブルのソースコードの読み取りと編集が非常に困難になるため、

  • テーブルの場合、ソースコードの行を切り詰めるようにしたい(水平方向にスクロールすることを強制する)
  • 他のすべてのlatexソースについてはword wrap、フレームの幅に合わせて作りたいと思います

ただし、LaTeXドキュメントの実際のテキストについては、通常のword-wrap設定にしたいと思います。

質問:

word-wrap標準として使用して、のEmacsような同じバッファー内にいくつかのラテックス環境があり、同時にd と表示されることは可能ですか?tablelongtablesidewaystabletruncate

また、他のいくつかのような環境のためにequationpycodeまたはtikzpicture切り捨てより適切であると思われます。したがって、ラップされずに切り捨てられる環境のリストを定義できるようにするのは良い考えかもしれません。

折り返しはソフトラッピングである必要があります(つまり、テキストはバッファーのfill-columnに折り返されますが、ファイルには反映されません)。

ソリューションはemacsだけでなく、Aquamacs 2.5でも機能するはずです。

(部分的な)解決策を提案するブログ投稿がありますが、実装は見つかりませんでした:http : //endlessparentheses.com/longlines-mode-in-latex.html


3
その画像は判読できません。あなたが何を意味するのかをテキストで正確に説明してください-この場合、「ここのように」はそれをカットしません。
2015

1
私はEmacsがあなたに(setq word-wrap t)を許可(setq truncate-lines t)し、同じバッファに入れるとは信じていません。word-wrapアクティブにしたい場合、おそらく達成できる最高の方法は、切り捨てたいテキストの上に非表示のオーバーレイを配置することです-実行可能ですが、自明ではありません-このためのコードはvertical-motion、すべてのコマンドの後にremove / を使用する必要がありますオーバーレイの移動/配置。
法律家2015

1
@lawlist:おかげtruncate-linesで、テキストの特定の部分(LaTeXの特定の環境)に対してのみ定義できる可能性があることを期待していましたが、これを実現するのは難しいかもしれません。トグルする方法word wrap/ truncateすばやく切り替える方法を学ぶ必要があるようです。:)
MostlyHarmless 2015

3
@Martinキーをにバインドできますtoggle-truncate-lines
Kaushal Modi

2
@Martinあなたが求めていることをすることが可能です。の上でいくつかのハッキングを行う必要がありますlonglines-mode。例については、この投稿を参照してください。時間があれば、後で完全な回答を書きます。
マラバルバ2015

回答:


0

それはあなたが何をしたいかによります。

コメントの中で、Malabarbaは方法を示しているブログ投稿にリンクしています。ただし、このアプローチは、バッファーテキストの(プログラムによる)変更に依存していると思います。それがあなたのために働くなら-素晴らしい!

テキストを変更せずに残したい場合は、運が悪いと思います。

このような問題については、通常、「display」プロパティのelispマニュアルのセクションを読むことから始めます。これは、表示に影響を与えるためにバッファ内の文字に適用できるプロパティについて説明します。

これを読んでも、行が折り返されるかどうかを制御するものは何も見当たりませんでした。折り返しが発生したときにインデントなどを表示する方法だけです。

とりあえず、答えは「ノー」だと思います。emacs-develで、再表示するためのラッピング機能の追加についていくつかの話がありましたので、将来に希望があるかもしれません。


1
開始点としてバッファー変更テンプレートを使用すること(つまり、longlines-mode)はあまり好ましくない方法であることに同意します。ただし、元のポスターが運が悪い可能性があるという考えには敬意を払いません。'invisible tまたは'display ""プロパティを持つオーバーレイはバッファテキストを変更せず、そのオーバーレイはバッファ内の任意の行を効果的に視覚的に切り捨てることができます-これは選択的に行うことができます。言い換えると、word-wrapオーバーレイを使用して対象を切り詰めることができる間、アクティブなままです。
法律家、2015

1
まあ...それで、それがおそらく行われる別の方法は、改行を保持する文字列置換表示プロパティでいくつかのスペースをマークすることによってテキストを「埋める」ことだと思います。これはおそらくラップするように見えます。ただし、これは編集のためにテキストを変更するのと同じぐらい不便なように見えます。これは、表示が実際の表示と異なるためです。また、最新の情報を入力し続けるには、特別なコードが必要になると思います。しかし...はい、たぶん方法があります。
トムトロメイ、2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.