2

Tl;博士;

在 docbook 中创建锚点的正确方法是什么?有没有办法让锚在作家中可见?

背景

我正在尝试将以前在单个open office文档中的文档拆分为较小的文档,这些文档既包含在主要的开放式办公文档中,也转换为&asciidoc中的一个或两个。我有这个主要工作。我用来创建html。创建 pdf 和 asciidoctor 的组合并创建 .odt 文件。我也尝试了 python 的实现,但发现接口不太好用。htmlpdfasciidoctorasciidoctor-pdfpandocasciidoc

asciidoc 和 odt 之间的往返显然是不可能的。这是一种融合,其中主文档是文字处理的,但包含可以独立生成的内容片段(想想手册页 - 实际上这是几个用例之一)。

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 section我使用内部开放式办公室将生成的 .odt 插入到主文档中。请注意,主文档不是主文档,因为我找不到创建主文档的方法,而无需在 h1 边界上自动拆分文件。

我有两个主要问题要解决这个设置。我想在 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 我避免了创建中间文档文件的需要。但是,我仍然无法让锚出现。

我可以获得一个宏来创建一个锚点,但目前我还没有弄清楚如何从命令行运行宏。

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 回答