有没有关于使用 LaTeX 创建良好的屏幕可读文档的指导?
我的目标是制作主要用于纸张的文档的“平板电脑友好型”版本,因此我正在寻找相当轻量级的类或样式文件改编版,或者替代工具链。这里要做的最少的事情是将文档格式化为较小的库存尺寸(例如 180 x 120 毫米),缩小边距,并可能调整页脚中的信息。做这么多会......好的但我确信 (a) 我可以做更多的事情来帮助读者阅读和浏览文档;(b) 在这里我将重新发明轮子,可能做得很糟糕,并重新发现一些读者应该知道的问题。某人。
我目前发现的情况:
- 关于几何的 Stackchange 问题:这主要是关于如何使用几何包的问题,我并不需要相关建议(memoir.cls=good)。
- LaTeX 转 epub:这些工作比我预期的要好(我尝试过那里提到的工具链,
tex4ebook
我认为pandoc
;其中一些答案相当陈旧),但很明显,这与高度数学化的文本有斗争,我强烈地感觉到它正走向 epub 版本、阅读器(产品和版本)和 MathML 兼容性的噩梦。 - 众所周知,ConTeXt 可以生产令人印象深刻的交互式文档。如果这些适合平板电脑的文档是该项目的主要目标,那么这就是我要走的方向,但是大规模切换宏包(尽管 ConTeXt 很诱人)可能比我愿意为所想的附带利益投入的努力要大。
- 关于屏幕观看的问题:问题包括指向 ConTeXt 和 pdfscreen 的指针,但与上一点类似,两者都表明对文档的重新思考比我希望的要多得多。David Carlisle 的回答本质上是说,在这样的项目的早期阶段应该使用 MathML;这当然是正确的,但需要对我拥有的文档进行重大的重新思考。
搜索“epub”、“平板排版”等,会让我陷入.docx
转换器、自助出版大师和其他死胡同的曲折迷宫中。
答案1
我自己的问题已经有了答案。以下笔记——有点像脑力倾泻,但我希望对某些人有用——截至 2021 年初都是正确的。它们总体上是积极的;有些事情没有人们希望的那么好,但随着时间的推移,情况应该会有所改善。
最终我在这里做了三件事。
- 我调整了为相关文档开发的类文件,以创建一个 B6 大小的文档,该文档在屏幕上以 PDF 形式查看时可以使用。这非常完美,并且产生了一些我满意的东西,而工作量却比我预期的要少。然而,它通常 不是“可访问”的意思是友好的,例如,文本到语音的阅读器,以及其他支持有印刷障碍的人的工具(支持这些人是我在这里的动机之一)。
- 我用过LaTeXML生成 EPUB 文档。除其他优点外,这些还勾选了“可访问性”框。这基本上是可行的,问题都是相对较小的错误和美学点,人们可以无限期地进行调整。
- 我对 LaTeX 文档的一般可访问性有了更多的了解(简而言之:比你现在想象的要难得多,但可能会有所改进)。
屏幕PDF
我调整了用于这些文档的类文件,以生成输出的“电子书”变体。关键的变化是:
- 单面 B6 纸看起来是适合此用途的正确预设尺寸(我非常依赖该
{memoir}
课程并使用了其选项b6paper
,但该{geometry}
软件包无疑也能够提供这一点)。 - 字体:我使用了 10/12pt STIX2。
- 在合理的地方添加了很多额外的空白。具体来说,我重新定义了
\section
和\subsection
(使用\@startsection
)以在每个之前添加一个\newpage
。
具体来说{memoir}
,我使用的布局是:
% the numbers here seem to work OK on an iPad,
% but there's no deep principle behind them.
\settypeblocksize{34\baselineskip}{25pc}{*}
\setlrmargins{*}{*}1
\setulmargins{*}{*}{1.5}
\setheadfoot{\baselineskip}{2\baselineskip}
\setheaderspaces{*}{*}{*}
\checkandfixthelayout
并且我确保目录是有用的\setcounter{tocdepth}4
。
我让页脚便于导航,在页脚中显示当前章节编号,并附上指向目录的链接,以及有关此页面位于文档多远的反馈。再次用{memoir}
术语表达,即:
\makeoddfoot{<mypagestyle>}
{\hyperref[foo@toc]{\rightmark}}
{}
{\thepage/\pageref{foo@lastpage}}
(这显然取决于\label{foo@toc}
目录页上的 和
\label{foo@lastpage}
文档最后一页上的 )。
我以为我必须非常努力才能在这里得到一些像样的东西。但是,小的许多其他特定于类的布局调整,这就是我感觉需要做的全部工作,以生成一个相当可观的屏幕可读(尽管如上所述不是特别易于访问)的 PDF 文档。
通过 LaTeXML 转换为 EPUB
LaTeXML是我使用过的最成功的 LaTeX 到 HTML 转换器,在处理我处理的结构简单但数学内容繁多的文档时,它似乎非常强大。我设法通过两种相关方式将我的 LaTeX 源转换为 EPUB。
使用 LaTeXML 的 EPUB 生成流程成功率达到 90%。但仍存在一些错误,截至正确的现在生成的 EPUB 可以正常工作,但无法通过我使用的一致性检查器(W3C,见下文)。但我能够毫不费力地修复结果,这些错误目前已在 LaTeXML 开发人员队列中报告,因此随着时间的推移,可能借助这个社区的帮助,它们应该很快就会消失。
我实际上使用的是 LaTeXML 的中间的XML 格式(它从中生成 HTML 和相关输出),并开发我自己的 XSLT 样式表以将其转换为 XHTML,并生成相关的 EPUB 元数据。这是一种灵活的技术,但显然比固定的要费力(我碰巧有这种通用方法的经验,所以这既相对容易又相当有趣)。我提到这一点,并不是因为我一定要推荐它,而是为了引起人们对这种精心设计的中间格式的关注,对这种格式的了解可能对有特殊最终结果需求的人同样有用。
相关资源如下。规格:
验证者和良好实践:
- A非常彻底W3C 验证器
(用法:)
java epubcheck.jar book.epub
。最终,我成功地在这个检查器上得到了零错误! - 加拿大人全国公平图书馆服务网络 最佳实践指南。
- 奥莱利EPUB 3 最佳实践 自 2013 年起(个别章节 可在线查阅)。
- 关于 EPUB 标准和 EPUB 可访问性的注释有很多, DAISY 知识库。
- Apple Books 资产指南 本质上是一本用于创建与 macOS Books 应用程序兼容的 EPUB 书籍的手册,尽管其中的许多建议并不是针对该应用程序的。
LaTeX 和可访问性
LaTeX 乐谱的 PDF 输出可怕在我使用的“可访问性”检查器上表现不佳;一些文档的得分低于 10/100。目前尚不清楚该检查器如何评分,但在很大程度上,得分较低的很大一部分原因似乎是输出不是“带标签的 PDF”。2017 年 stackoverflow 上有关于此问题的讨论(有关如何制作可访问 PDF 文件的指南?)。
这个问题似乎没有简单的答案。
stackoverflow 问题的一个答案指出 一个 Google 代码项目,当然已经消失了,但听起来可能与 一组“SIGCHI”模板 (开头说“这个存储库是……”),依次指向 ACM 文章模板 这可能有用,也可能没用。不幸的是,模板页面上唯一提到可访问性的地方是劝告生成图形描述,而这似乎不是主要问题。
其他回答在 stackoverflow 讨论中,有人指出了
accsupp
添加替代文本的包,还有人指出pdfcomment
了做其他事情的包(同时引入了一组可怕的包依赖关系)。其中一条评论指出了 轴能力包,它与公式有关。最后,有一个CTAN 页面涵盖对各种 PDF 功能的访问,其中没有一个显然是结构标签。虽然
accessibility
包裹存在,其github 页面上面有各种各样的免责声明,甚至说“我想阻止人们再使用该软件包”。但是,我想知道这里是否有一个 80-20 的解决方案,即如果仅有的如果结构标签可用,那么我们能得到更高的分数吗?该软件包的问题列表表明,其作者有兴趣寻找开发资金来找人来处理这个问题(问题最后更新于 2020 年中期)。有一种东西叫 PDF/UA,还有TUG 谈论它。
最重要的是,Ulrike Fischer 有一个软件包
tagpdf
(加拿大运输安全局和 github),据称是为了“尝试使用 pdflatex 和 lualatex 进行标记”(最后一次贡献似乎是在 2019 年末)。它首先说:“这个包不适用于普通文档制作。”并指出它需要最新版本expl3
的 LaTeX3。它表明 LaTeX 中的各种辅助功能包存在根本缺陷,因为它们依赖于 monkeypatching LaTeX,而不是使用 LaTeX3 内核提供的 PDF API。
这tagpdf
文档
注意到:
尽管如此,我认为 lua 模式是未来的趋势,也是唯一一种可用于较大文档的模式。pdf 是一种面向页面的格式,因此 luatex 在 TeX 处理后操作页面和节点的能力在这里非常有用
也就是说,PDF 标签中存在重要的结构,只有后TeX 分页算法已经完成了它的工作,此时 (La)TeX 已经没有任何作用。因此,一般问题非常困难;但即便如此,可能可以添加一些最小的结构标记(请参阅文档的第 22 和 23 页,绝不想要输入的内容),这可能会对可访问性检查器产生重大影响(如果可以实现自动化的话)。
LaTeX3 项目对 Tagged PDF 很感兴趣,其当前目标之一是“提供自动生成结构化 PDF 的功能,无需用户干预或后期处理”(参见Frank Mittelbach 在 TUG 2020 上的演讲(20:24))。该演讲的其余部分暗示这种标记对于当前的 LaTeX 实际上是不可行的。有趣的是,他们似乎从 Adobe 获得了一些资金来做这件事。