如何在内部链接中显示参考页面

如何在内部链接中显示参考页面

我使用 ConTeXt 作为 Pandoc 的 PDF 引擎,将 Markdown 转换为 PDF。我使用pandoc-crossref处理内部交叉引用,例如“如第 2.1 节所示”。有没有办法添加参考页面作为后缀,例如“如第 2.1 节第 45 页所示”(通过 ConTeXt,因为 pandoc-crossref 对实际文档页面一无所知)?

\goto{section~2.1}[sec:sectionId]参考文献本身(在我的示例中为“第 2.1 节”)在中间 ConTeXt 文件中转换为;这是由 pandoc-crossref 通过两个选项linkReferences: true和完成的nameInLink: true。参考文献本身生成为\startsubsection[title={A title},reference={sec:sectionId}]sectionId仅是示例)。

最好的解决方案是通过配置,因为这样我只需要更改 Pandoc-ConTeXt 模板。如果只有一个解决方案可以更改每个链接,那么我可以编写一个 Pandoc-Lua 过滤器来执行此操作。

添加该页面的原因是我正在撰写博士论文,并且我所在大学的图书馆会删除提交的 PDF 中的内部链接,因此显示该页面是一种保持“链接”有意义的方法。

最小工作示例

% Enable hyperlinks and PDF properties
\setupinteraction[state=start, focus=standard]
\definepapersize[default][A6, portrait]
\setuppapersize[default]

\starttext
\startchapter[title={A chapter},reference={sec:a-chapter}]

Link to \goto{section~1.1}[sec:a-section].\par
\input lorem \par

\startsection[title={A section},reference={sec:a-section}]

\stopsection
\stopchapter
\stoptext

生成的文档

在上面的例子中,我想要的是:在对第 1.1 节的交叉引用中,ConTeXt 插入一个带有该节页面的后缀,将其变成“第 1.1 节,第 2 页”。

答案1

% Enable hyperlinks and PDF properties
\setupinteraction[state=start, focus=standard]
\definepapersize[default][A6, portrait]
\setuppapersize[default]

\starttext
\startchapter[title={A chapter},reference={sec:a-chapter}]

Link to \goto{section~1.1}[sec:a-section] \at{page}[sec:a-section].\par
\input lorem \par

\startsection[title={A section},reference={sec:a-section}]

\stopsection
\stopchapter
\stoptext

相关内容