2017-03-28 24 views
0

私はpandocを使用してasciidoctorとMS-単語.docを使用してHTMLを生成することができます。 このツールチェーンはSVGを処理しないので、完璧ではありませんが、うまく機能し、 は無料です。擬似WYSIWYG Emacsの

file.html

smiley in a rendered HTML file

暗礁には、しかしあり:

私はfile.adocをロードするとき、私はiimage-modeを有効にしたいと思います。私の試み(上のソースの最初の3行)は動作しません。あなたはそのようなやり方を考えることができますか?

の.emacs

(set-foreground-color "white") 
(set-background-color "black") 

(require 'adoc-mode) 
(setq auto-mode-alist (cons '("\\.adoc\\'" . adoc-mode) auto-mode-alist)) 

コメント

私はタイプセットすることができるように、ここでこれらのコメントを書いています。

  1. Asciidoctor (私はRubyで書かれたasciidoc構文の優れた実装に使用しています)(今?)していないコメントをブロックするだけでline comments。 - - モード

    //使用

  2. :iimage - - 最初の行に

作品(おかげで、ニック)。しかし、それはadocメジャーモード(感謝、phils)を置き換えます。

  1. ファイルの下部に追加:マイナーへ

//// Local Variables:

eval: (iimage-mode 1)

End:

////

スイッチモード主要なモードはadocのままです。

  1. philsの提案my-adoc-mode-hookはうまく機能します。

私はforkingです。別の質問に2番目の部分です。この議論は既に1つの質問に対して十分に長いです。

更新

asciidoctor + pandocを使用すると、MS-Wordの最近のバージョンで正しく処理され.docファイルを生成することができます。コメント歓迎。 OS X上のMS-Word 2011は結果として.docファイルを開きますが、SVGイメージの代わりにエラーメッセージを表示します。

これが動作すれば、Emacsのような柔軟な環境で編集している間に、それを主張するすべての人々に.docファイルを送信する方法になります。

+0

一般的に、Emacsは 'image-mode'で表示されるPNG画像を通して行を作成/描画しません。これは 'emacs -q'で起こりますか?つまり、バッファ内のPNGをすべてゼロ設定でオープンするだけです。デフォルトでは 'image-mode'に設定する必要があります。 – lawlist

+0

'adoc-mode'は標準ではないので、どこから来たのか教えてください。 – phils

答えて

1

ニックの答えはほとんどが正しいですが、iimage-modeマイナーモードであり、ローカル変数にmode:...を使用すると、(最近は)のみ主要モードを対象としています。これを使用してマイナーモードを有効にすることは推奨されていません(一部の状況でも動作する場合でも、)。

代わりにそうのようなマイナーモード機能を呼び出すためにeval:...を使用します。

//// -*- eval: (iimage-mode 1); -*- 

または

//// Local Variables: 
//// eval: (iimage-mode 1) 
//// End: 

注意もその-*- iimage -*--*- mode: iimage -*-に相当し、両方のフォームのためにEmacsが追加されていることa -mode接尾辞を使用して、実際のモード名を取得します。

したがって、は、iimage-mode-modeを使用するように要求しています。実際、Emacsは「不明なモードを無視してください」というメッセージが表示されるはずです。

(add-hook 'adoc-mode-hook 'my-adoc-mode-hook) 

(defun my-adoc-mode-hook() 
    "Custom `adoc-mode' behaviours." 
    (iimage-mode 1)) 

この場合:あなたがしたい場合

最後に、iimage-modeすべてadoc-modeファイルに対して有効になって、その後、あなたの代わりに、ファイルローカル変数を使用してのあなたの初期化ファイル内のモードフックを使用することができますがある場合、唯一のローカル変数モード仕様として-*-iimage-*-または-*-mode: iimage-*-を使用した場合、Emacsはそれをメジャーモードとして扱い、目的のadoc-modeメジャーモードは使用しません。

私は////が正しい行コメントの接頭辞ですが、問題はそれがより多くのブロックコメント構文のように見えることを前提でニックの答えを以下のよ、それが正しいかどうかはわかりません。

+0

私を正しく設定してくれてありがとう(もう一度)。私がリンクしているページにマイナーモードの警告が表示されています。以前は見たことがあると思いますが、忘れました。 – Nick

2
  1. 私は周りに横たわっていたJPGを試しましたが、アーティファクトはまったくありません。
  2. スペックは-*- mode: iimage -*-で、ファイルの最初の行になければなりません(最初の行に#!/ bin bashなどのインタープリタが指定されている場合は2番目の行に表示されます)。それはあなたのために動作しない場合は

、あなたはファイルの末尾でファイルの変数を使用することができます。

//// Local Variables: 
//// mode: iimage 
//// End: 

File Variablesを参照してください。

EDIT:マイナーモードを処理する方法のより正確な説明については、@ philsの回答を参照してください。