普通文本文档中的哪些字符会破坏 LaTeX?

普通文本文档中的哪些字符会破坏 LaTeX?

我正在考虑编写一个简单的脚本,将古登堡计划文本转换为 LaTeX 文档,以便它们排版整齐,可供阅读。但是,要做到这一点,我需要一份相当详细的列表,列出我应该特别处理的字符。

我的计划是运行一个 sed 脚本,进行替换,然后在开头添加一个基本前言,在结尾添加结束文档,然后运行 ​​LaTeX。这似乎不太难,但考虑到大多数电子书的长度,我宁愿不尝试手动查找我的脚本遗漏的所有内容。

以下是我目前掌握的清单:

  • 如果我使用 UTF8,我应该已经能够使用大多数花哨的字符而无需进行调整。
  • "foo"为了``foo''
  • 'foo'`foo'
  • 替换...\ldots
  • 在适当的时候用 --- 替换连字符(这可能是一个挑战)
  • ~$\sim$

我还遗漏了什么?

我知道使用 HTML 版本会好看得多,但是电子书中有很多花哨的东西,看起来很难转换

另外,有谁知道优质品牌? 它似乎和我刚才提议的做同样的事情。

答案1

如果你打算花大量时间,我建议你先通过预处理器解析 HTML 版本,而不是文本版本。我宁愿使用 Perl、Lisp、Python 或 Ruby,而不是 sed。

解析 HTML 而不是文本文件的理由是,HTML 已经结构化,有问题的字符可能已经转义,因此更容易解析和翻译。我选择上述计算机语言是因为您可以找到可以修改的 HTML 解析库。

在进行任何预处理之前,您需要了解文件的编码。Gutenburg 文件有多种形式。

对于 LaTeX,我肯定会使用 utf8,最好是 XeLaTeX。需要转义的问题字符是众所周知的,并在 TeXbook 中列出,例如下划线、井号等。为很多这些字符做好准备 — 在旁边utf8

不过,挑战主要在于解析方面。例如,Gutenburg ASCII 文件会将页码显示为数字。您需要捕捉这一点以及许多变体。准备好迎接自然语言处理的快乐、沮丧但有益的体验。在我看来,(La)TeX 部分是最简单的部分。

添加了一个小的 MWE 来指出您可能遇到的一些utf8问题。在开始项目之前,强烈建议阅读示例开发所基于的手册fontencinputenc

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{trace}
\scrollmode % to run past errors check the log
\begin{document}
\obeylines
^^c3^^a4^^c3^^b6^^c3^^bc
These trigger errors
^^c3X ^^e1XY
%�
This \textcopyright\ will probably give you pdf 
issues  (try cut and paste in the pdf).
 \textcopyright
\end{document}

答案2

考虑在 HTML 输入中包含以下 LaTeX 更正:

  • 如果来源包含标题,请添加控制空格。例如,Mr. DrofnatsMr.\ Drofnats更好Mr.~Drofnats
  • 确保使用正确格式来格式化句末缩写\@

从技术上来说,这不会“搞砸 LaTeX”,但 LaTeX 输出在印刷上应该是正确的。

相关内容