2

Tl;dr;

docbook でアンカーを作成する正しい方法は何ですか? ライターでアンカーを表示する方法はありますか?

バックグラウンド

open office以前は単一のドキュメントにあったドキュメントを小さなドキュメントに分割しようとしていasciidocます。これらのドキュメントは両方ともメインのオープン オフィス ドキュメントに含まれ、html&のいずれかまたは両方に変換されますpdf。私はこれを主に機能させています。私はasciidoctorhtmlを作成するために使用します。asciidoctor-pdfpdf と asciidoctor の組み合わせをpandoc作成し、.odt ファイルを作成します。のpython実装も試しasciidocましたが、インターフェースが使いにくいことがわかりました。

asciidoc と odt の間のラウンド トリップは明らかに不可能です。これは一種の融合であり、マスター文書はワープロ処理されていますが、独立して作成できるコンテンツの一部が含まれています (man ページを考えてみてください - 実際、これはいくつかの使用例の 1 つです)。

asciidoc から html:

asciidoctor -b html5 foo.adoc -o foo.html

asciidoc から pdf:

asciidoctor-pdf -b pdf foo.adoc -o foo.pdf

asciidoc から odt

asciidoctor -b docbook foo.adoc -o foo.docbook pandoc --base-header-level=3 -V date:"" -V title:"" -f docbook foo.docbook -o foo.odt

pandoc では、日付とタイトルを無効にし、必要に応じてヘッダー レベルを設定して、追加の複雑さとしてセクションを挿入する必要があります。

insert sectionInside Open Office を使用して、結果の .odt をメイン ドキュメントに挿入します。h1境界でファイルを自動的に分割せずにマスタードキュメントを作成する方法が見つからなかったため、メインドキュメントはマスタードキュメントではないことに注意してください。

このセットアップで解決すべき主な問題が 2 つあります。asciidoc ドキュメントに相互参照として見出しを追加し、アルファベット順のインデックスにもそれらのエントリを作成したいと思います (実際には最初の見出しで十分です)。これを行う方法はありますか?asciidoc のインデックス マーカーによって、.odt ファイルにエントリが作成されません。

「挿入参照/見出し」を使用し、一意の名前のヘッダーを参照して、挿入されたセクションのコンテンツを相互参照できます。ただし、「すべて更新」を使用するたびに、これらの相互参照は無効になります。「エラー: 参照元が見つかりません」と表示されます。

[別のメモとして、壊れた相互参照を自動的に見つける方法も欲しい]

私は現在 libreoffice を使用しています - バージョン: 4.3.7.2

バージョンやフレーバー (つまり、apache) の動作が他のものよりも優れている場合は、切り替えることに反対しません。

答えがチェーンの asciidoc または docbook の部分にあるかどうかはわかりません。挿入されたセクションの先頭 (.adoc/docbook ファイルの先頭) にインデックス エントリを自動的に挿入する回答を受け入れます。

また、ツールチェーンを機能するものに変更することにもオープンです。たとえば、私は asciidoc-odt バックエンドを試してみましたが、https : //github.com/dagwieers/asciidoc-odf/issues/47 に違反してしまい、自信が持てなくなりました。asciidoc-odt を使用すると、中間の docbook ファイルを作成する必要がなくなります。ただし、まだアンカーを表示できません。

アンカーを作成するマクロを取得できますが、現時点では、コマンド ラインからマクロを実行する方法がわかりません。

4

1 に答える 1

1

DocBook でアンカーを作成するには、.adocファイル内でインライン アンカーを作成します。たとえば、これを次のように指定しasciidoctorます。

[[X1]]Section1
---------------

これを作成しました:

<title>
    <anchor xml:id="X1" xreflabel="[X1]"/>
    Section1
</title>

逆に、これを別の行に配置してもanchor、私のテストではタグが作成されませんでした:

[[X1]]
Section 1

さて、いくつかの悪いニュースがあります。Pandocユーザーガイドから:

内部リンクは現在、HTML 形式 (HTML スライド ショーと EPUB を含む)、LaTeX、および ConTeXt でサポートされています。

これは、現在、Pandoc が Writer で内部リンクを作成していないことを意味すると解釈します。試してみると、リンクは無視されました。

注: すべての質問に回答していないようです。LibreOffice の相互参照と見出し (質問の最後にある大きな太字の段落) について詳しく知りたい場合は、その部分だけについて別の質問をすることができます。

于 2016-07-21T22:34:13.283 に答える