Orgモードは、ソースを評価するときにスペースをタブに変換しますか?

この小さなブロックを使って、org-modeでBabelの機能をテストしています。

#+BEGIN_SRC sh :results verbatim :exports both                                                     
banner -w 35 e                                                                                                                  
#+END_SRC                                                                                                                          

#+RESULTS:                                                                                                                         
:              #####                                                                                                               
:            #########                                                                                                             
:          ####  #   ###                                                                                                           
:          #     #     ##                                                                                                          
:         ##     #      #                                                                                                          
:          #     #     ##                                                                                                          
:          #     #   ###                                                                                                           
:            #   #####                                                                                                             

(この例では、 e を横に印刷しています。先頭の空白文字はすべてスペースです)。

これをTeXにエクスポートしようとしています。TeXファイルでは、先行するスペースのいくつかがタブに置き換えられています。つまり、8つのスペースからなるグループがタブで置き換えられます。そのため、TeXをPDFにエクスポートすると、行が正しく表示されません。私は org のソースコードを見て、これを引き起こしているのが org-trim かもしれないことがわかりました。オプション org-src-preserve-indentation もありますが、ソースコードの出力には作用していないようです。 org が空白文字をタブに変換しないようにすることはできますか?

EDIT: Just tried sed 's// /g' on the TeX file to replace each tab with 8 spaces, and the problem is fixed immediately. So org must be changing them somewhere, I just need to know where...

編集#2:明らかにいくつかの正規化が問題になる可能性があります。参照用にここにリストアップしてください。

4

2 答え

これは通常、LaTeXがきれいになるように私のために修正されます:

(setq org-src-preserve-indentation nil 
      org-edit-src-content-indentation 0)

また、sedの代わりにこれを使うこともできます:

M-x untabify
2
追加された
untabify のヒントをありがとう。私は# - * - org-src-preserve-indentation:nil;で.orgファイルの先頭に変数を設定しました。 org-edit-src-content:0; - * - してバッファを再ロードしましたが、これはエクスポートされたTeXを変更していないようです。
追加された 著者 Digger,
あなたの答えの org-src-preserve-indentation t に設定しないでください。マニュアルでは、デフォルトでは値がnilであるため、コードブロックがエクスポート中に評価されるか、またはコードブロックがコードブロックに再挿入され、タブ文字でスペースのシーケンスが置き換えられる可能性があります。 ***非nilの場合、コードブロック内の空白は、エクスポートや絡みの際にそのまま表示されます。***
追加された 著者 Digger,
私はあなたの答えで、nilとして設定することを推奨した org-src-preserve-indentation について話しています。 TeXの出力を t に設定すると、それが解決されます。これで、TeXは空白を四角形の垂直塊で削除することで "正規化"しているだけです。しかし、私はそれをほぼ解決したと思う。
追加された 著者 Digger,
@Charles、私は通常、自分のinitファイルにこれらのタイプの変数を設定し、orgがロードされる前にロードします。あなたのケースに違いがあるかどうかはわかりません。
追加された 著者 Emacs User,
0 nil以外です。
追加された 著者 Emacs User,

Doing the simple

(setq indent-tabs-mode nil)

私のためにそれを固定しました...

組織モードは本当にタブが好きではないと思われますので、うまくいきます。

編集:いいえ、私はばかだよね。しかし、これは少なくとも私のために働いた(私は2つのスペースタブを使い、必要に応じてそれを変更する)。

org-latex-pdf-process '("sed -ie 's/   / /g' %f"
                        "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"
                        "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"
                        "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f")
0
追加された
このコードで何をやっていますか?変数を設定するか、関数を呼び出すか setq ですか?回答がない場合は、現在コメントアウトされているテキストを削除するだけで済みます。
追加された 著者 erikric,