我正在尝试从 pdftex (Tex Live 2013) 生成结构化或“标记”PDF,该 PDF 通过了 Adobe Acrobat 中的标记自动测试。这些测试是事实上文档可访问性的指标,世界各地的大学、政府机构和其他机构通常要求已发布的文档具有该指标。
要测试文档的可访问性/标记,请尝试以下操作:
- 在 Acrobat Reader 中打开 PDF
- ‘文件 -> ‘文档属性’ -> ‘描述’
- 在“高级”下,您将看到一个字段“标记的 pdf”。理想情况下,它应该显示“是”。但事实并非如此 :(
问题:有谁知道有什么方法可以直接从 LaTeX 创建通过 Acrobat 的“标记 PDF”测试的 PDF 吗?
理想的解决方案是可以从 latex 文档的序言中调用一两个包。我想要一个对作者来说非常省力的东西,因此可以很容易地与现有的工作流程。
笔记:过去曾讨论过这个问题(见右侧的标签和链接),但截至 2014 年 5 月,尚未有明确的解决方案。现有的大部分讨论都来自 2012 年或更早(见如何创建支持通用辅助功能和重排的标记 PDF?),所以我想看看我们是否可以开始这个讨论。
为什么这不是一个重复的问题:当我在 2013 年 7 月第一次发布这个问题时,它被标记为重复2010 年的一个问题。答案引用了 TUG 2010 上的一个演示。那个演示基本上说“我们正在努力”,而不是一个允许我实施解决方案的答案。
因为现在是 2014 年,所以我认为可以合理地预期:
- 通过新的软件包或核心 LaTeX 的更新,该领域取得了新的进展
- 试图遵守第 508 条将要求人们想出解决方案。这是一项相对较新的要求,因此解决方案可能自 2010 年以来发生了变化
- 通常用于判断合规性的软件(Adobe Acrobat)已经多次更改,因为这个问题没有得到回答
- 解决可访问性的软件包已经被提出,但并未得到广泛使用,甚至消失了(例如,可访问性软件包,http://www.babs.gmxhome.de/da_ergeb.htm),因此有必要用全新的视角重新审视这个问题。
答案1
Accessibility
套餐使用体验
我accessibility.sty
从以下网址下载了样式文件Babette Schalitz 的网站. 此文件在 LPPL 许可下可用。
在我的序言中使用\usepackage[tagged]{accessibility}
允许我生成一个基本的标记 PDF 文件,该文件通过了 Adobe Acrobat 中的测试。但是,如果我需要在第一页使用罗马数字,该包就不起作用。这个错误似乎是因为accessibility.sty
使用显示的页码来构建文档标记结构。
更新Accessibility
软件包
为了修复编号问题,我添加了计数1到包并替换了accessibility.sty 中的部分内容\pageref
。我将此修改后的文件命名为\count1
accessibility-meta.sty
我暂时发布到 GitHub。该软件包现在似乎可以编译文章和报告,并且输出在 Acrobat 中显示为“标记”。
确保\usepackage[tagged]{accessibility}
或\usepackage[tagged]{accessibility-meta}
几乎是序言中的最后一项。如果发生 'tex 计数器溢出,请尝试注释掉代码的各个部分。我发现标记经常会崩溃,尤其是在复杂文档中。多次编译文档,以便页码和文本或浮动的位置稳定下来,并正确生成标记。
其他步骤
我还采取了以下措施数据库建议:
- 升级到 TexLive-2015。
- 添加
\pdfinterwordspaceon
到序言中以修复文本中字间间距的丢失(需要 TexLive-2014 或更高版本)。 - 添加
cmap
包来修复将字符映射到unicode的问题。
测试和反馈
我使用 TexLive 2015、cmap
包、\ pdfinterwordspaceon
以及修改后的可访问性类制作了一个测试 PDF。这似乎是“标记的”。PDF 可在此处获取。
由于我不经常处理带标签的文档,因此很可能我没有对生成的文档进行足够详细的测试。我很想知道此 PDF 是否通过了 Acrobat 的预检测试,以及accessibility-meta.sty
文件是否可以在其他文档上运行。我特别希望听听任何专业处理带标签出版物的人的反馈。
Babett Schalitz 应得所有荣誉,因为她制作了原始accessibility.sty
文件,本文正是accessibility-meta.sty
基于此。如果没有她的努力,我就不会有这个机会。
2015 年 8 月更新:我正在努力accessibility-meta.sty
加入 CTAN。请随时在 github 存储库上注册问题,或提供改进建议。
2020 年 6 月更新:
2019 年,我联系了 Babett,获得了原始accessibility
软件包的文件;她还允许我接管软件包的维护工作。我整理了accessibility
足够多的内容,将其提交给 CTAN,但没有更新功能。
发布accessibility
到 CTAN 表明,不幸的是,现在它存在很多问题。当它在 2010 年代初开发时,它运行得更好,而且它似乎对其他软件包的开发非常敏感。它不再可靠地编译基本的 MWE。
因此,我不再认为它accessibility
适合用途,并且我将联系 CTAN 以研究将其从 CTAN 中删除(如果可能的话)。
不过,我将把代码留在https://github.com/AndyClifton/accessibility。如果任何读者具有编码技能并且愿意为该软件包做出贡献,请在那里留下一个问题。
答案2
这个问题有很多投票,但还没有得到答案。所以我给出了一个 ConTeXt 解决方案。要创建带标签的 PDF,只需添加:
\setuptagging[state=start]
在文档顶部。例如:
\setuptagging[state=start]
\starttext
\startsection
[title={A section title}]
\input ward
\stopsection
\stoptext
然后,pdfinfo test.pdf
得到:
标题:测试 创建者:ConTeXt - 2014.04.24 09:39 制作人:LuaTeX-0.79.1 创建日期:2014 年 5 月 30 日星期五 11:58:32 修改日期:2014 年 5 月 30 日星期五 11:58:32 标签:是 形 式: 无 页数:1 加密:否 页面尺寸:595.276 x 841.89 pts (A4) 页面腐烂:0 文件大小:10992 字节 已优化:否 PDF 版本:1.6