【问题标题】:Force pdflatex to create one box per word强制 pdflatex 为每个单词创建一个框
【发布时间】:2010-07-02 19:04:13
【问题描述】:

我正在将电子书文件转换为电子阅读器优化的 pdf 文件(索尼电子阅读器无法正确证明文本的合理性)。因此,我将 html 转换为乳胶,然后使用 pdflatex 构建乳胶输出。

索尼阅读器具有在字典中查找单词的功能。但是,它通过分析框来计算单词; pdflatex 每行生成一个框。我随后失去了使用字典搜索的可能性。

如何告诉 pdflatex 将每个单词放在单独的框中?

编辑:
我正在尝试调整 pdflatex 命令的输出,使其每个单词生成一个框。考虑这个例子:

\documentclass{minimal}

\begin{document}
    This is an example sentence.
\end{document}

编译后在 PDF 编辑器中打开时,此示例将显示为一个文本框,其中包含“This is an example sentence.”句子。这对于大多数功能齐全的 pdf 阅读器来说都很好。然而在我的索尼电子阅读器上,单词的选择是基于框的;因此我的 pdf 阅读器会选择完整的句子,因此无法找到我点击的单词的定义。

我注意到 pdflatex 在标点符号处停止。我怎样才能让它每个单词创建一个框?在输出中,我将有一个用于“This”的框,一个用于“is”,一个用于“an”,依此类推。

【问题讨论】:

  • 如果没有看到您正在尝试完成的代码示例,真的很难回答问题。
  • 我已将信息添加到问题中。

标签: latex pdf-generation pdflatex


【解决方案1】:

我猜你的问题不在于盒子,而在于你的字体编码。尝试将以下内容放在您的 \documentclass{minimal} 之后:

\usepackage{cmap} % 将额外信息放入 PDF 的字体字典中,以帮助搜索 \usepackage{lmodern} % cmr,默认的 Tex 字体,有一个古怪的字体布局 \usepackage[T1]{fontenc} % 这行和下一行推荐使用 lmodern \usepackage{textcomp}

【讨论】:

  • 嗯...事实上我也在 pdflatex 邮件列表中讨论过这个问题,看来我真正需要的是文档中的标签。更改字体编码根本没有任何作用。
  • @CFP:你能链接到讨论吗?信息 cmap 的目的,即从字形到它们的 Unicode 信息的反向映射,只是为了做你想做的事。如果读者忽略了这些信息,那么你为什么认为它会查看你附加在盒子上的标签?
  • 见这里:tug.org/pipermail/pdftex/2010-July/008427.html :) 尝试使用带标签的 pdf 时,读者能够正确选择 =)
【解决方案2】:

将断字惩罚设置为 10000(有效无穷大)

\hyphenpenalty=10000

也许会增加排版公差

\tolerance=1000

http://dcwww.camd.dtu.dk/~schiotz/comp/LatexTips/LatexTips.html#nohyphen


如果你不知道这一点,TeX 会通过对坏的东西(太多或太少的空白(水平或垂直)、孤行或孤行、过度或不足的框、拆分)分配惩罚来做出布局决策跨页面的脚注,等等令人作呕),然后尝试将每页的损失降到最低。

您可以通过调整惩罚值来广泛地欺骗它做出的各种选择。任何得分10000的安排都是绝对禁止的,我猜如果没有得分低于的安排,运行停止。

【讨论】:

  • 嗯,但连字符没问题。问题是单词被聚集在同一个盒子里......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-21
  • 1970-01-01
  • 2013-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-10
相关资源
最近更新 更多