|
名称 | URL |
---|---|
epojava |
epojava epojava のダウンロード ※ epojava.zip には epojava と epoxml のフルセットが入っています。 |
SmartDoc |
http://www.asahi-net.or.jp/~DP8T-ASM/java/tools/SmartDoc/index_ja.html
SmartDoc |
[prefix] t j
と挿入するとランチャ起動が行われ、カレントバッファ
(現在カーソルがあるバッファ)上のファイルをコンパイル
しようとします。
しかし *.sdoc
のファイルが複数あるようなときは
カレントバッファをコンパイルしてしまうと
逆にまずいような場合があります。*.sdoc
の中に記述することで、
コンパイル目標となるファイルを変更することができます。
書式:
<!-- #!コマンド 引数1 引数2 ... -->
サンプル:
<!-- #!c:/java2/sdoc/bin/sdoc.bat index.sdoc -->
[prefix] t r
をバインドしています。build.xml
の記述サンプルは以下のようになります。<?xml version="1.0" encoding="Shift_JIS"?>
<project name="anrun" default="all" basedir=".">
<target name="all"
depends="book,basic" />
<target name="index">
<java classname="jp.gr.java_conf.jaba2.SmartDoc.SmartDoc"
fork="yes" maxmemory="256m">
<arg value="index.sdoc" />
<classpath>
<pathelement path="c:/java2/sdoc/SmartDoc.jar" />
</classpath>
</java>
</target>
<target name="basic">
<java classname="jp.gr.java_conf.jaba2.SmartDoc.SmartDoc"
fork="yes" maxmemory="256m">
<arg value="-toc:true" />
<arg value="basic.sdoc" />
<classpath>
<pathelement path="c:/java2/sdoc/SmartDoc.jar" />
</classpath>
</java>
</target>
</project>
\begin{quotation}
aaaa
bbbb
\end{quotation}
という文章と、
\begin{quotation}
ccc
ddd
\end{quotation}
という文章では出力結果は同じですが、
SmartDoc では
<section title="aaa">
aaa
bbb
</section>
という文章と、
<section title="aaa">
aaa
bbb
</section>
という文章では出力される結果が違います
(要点は、改行だけのコードに見える部分に空白が入っていると、
SmartDoc 的に空白とみなされない)。[tab]
を打っても
インデントを入れないようにした。
[tab]
を打ってもインデントを入れない」
という仕様は、M-q
(全行インデント)でも同様です。
他の XML/java/C/C++ のモードで
M-q
をかけたときも同様に消すように変更しました
(普通の処理として[tab]を打ったときはインデント下げます)。
~/.emacs
に記述することで、
正しいsdoc のインデントの補正を行えます。
(add-hook
'yahtml-mode-hook
'(lambda ()
(substitute-key-definition
'yahtml-indent-line 'an-sdoc-yahtml-indent-line yahtml-mode-map)))
(defun an-sdoc-yahtml-indent-line ()
"vs sdoc"
(interactive)
(let ((len) (next-flag t) )
(if (and (buffer-file-name)
(string= "sdoc" (file-name-extension buffer-file-name)) )
(save-excursion
(beginning-of-line)
(if (looking-at "^[\t ]*$")
(progn (replace-match "")
(setq next-flag nil)))))
(if next-flag (yahtml-indent-line))))
[prefix] a 6
で
(non break space/ 強制空白文字の挿入/ Latin-1 の文字)
を入れます(YaHTML と統一です)。
を使う手法は、JavaDoc でも見られる非常に一般的な方法です。
を直接コンパイルできません。
の省略前コードである
 
を使えばコンパイルだけは通ります。
しかしこの方式ですと、
TeX 側では?
に変換されてしまうため、
強制スペースとして使えません。[prefix] a 6
、TeX 用に[prefix] a 7
をキーバインドすることで対応しています。
&space;
で空白行が入るようになりますが、
XML のファイル分割機能を使用すると分割した先で
この表現が使えません(実行時エラー)。<?xml version="1.0" encoding="Windows-31J"?>
<!DOCTYPE doc [
<!-- no-break space = non-breaking space,U+00A0 ISOnum -->
<!ENTITY space "<or>
<native format='latex2e' normalizer='none'>\ </native>
<native format='html'>&nbsp;&nbsp;</native>
</or>"> ]>
<doc xml:lang="ja">
<head />
<body>
aaa?!&space;bbb
</body>
</doc>
※ 最後の手段として「全角のスペースを使う」
という手もありますが、
日本語にしか適用できないためお勧めできかねます。