作者Volodos (Volodos)
看板LaTeX
标题Re: [问题] 急问 LaTeX 中,文字跑出段落边界的问题
时间Sun Nov 27 04:06:02 2011
※ 引述《OurPeace (小贝贝)》之铭言:
: 我有一篇很简单的文章,
: 完成品:http://frankcpp.tk/test.pdf
: 程式码:http://frankcpp.tk/test.tex
: 可是不知道为什麽,破折号里的 "sustainable development" 都会超出正常段落边界。
: (如 PDF 档所示)
: 这样实在是很奇怪,大家可以帮我排除这个丑样吗?感恩。
回推文, 为什麽不会帮忙断字
因为原档中, issue---sustainable development---has
会被看成两个单字
第一个单字是前半部, 第二个单字是後半部
这两个字会变成没有 hyphen 的设定
简单来说, 如果有一个字输入成
issue-sustainable
那麽 TeX 就不会再断字, 因为这个字里已经有 hyphen
所以 'issue-sustainable' 会被看成一个字
--- 的作用跟 - 差不多
再换个例子, difficult 这个字, 输出的时後, 其实是输出 7 个字
d i ffi c u l t
ffi 是一个字 (在好的字型里, ffi 会有专门的一个字输出
这是所谓的 ligature
--- 是 ligature 的一部份, 所以 development---has 会变成一个字
这个字有 15 个 char
d e v e l o p m e n t --- h a s
所以在 hyphen list 中没有这个设定
一个比较好的方式是直接用 \textemdash 输出 --- 的 ligature
也就是原档变成
issue---sustainable development\textemdash has
这样 development, \textemdash, has 是三个东西
而原稿就不用再自行设定那里要 hyphen (也就是推文用的方式)
------------------- 以下是这种情形如何 debug --------------
首先打开 log 档, 会看到
Overfull \hbox (39.65237pt too wide) in paragraph at lines 10--30
[]\OT1/cmr/m/n/12 When I an-a-lyze global eco-nomic con-di-tions, I find an
im-por-tant issue---sustainable development---
[]
里面有可能 hyphen 的位置
然後会发现我说的情况, --- 那里没有 hyphen, 所以 development 几本上不会断字
如果不想要 \textemdash, \textendash 之类的指令
要手动加 hyphen, 又不想改变 tex 原先的 hyphen 设定
原稿输入
\showhyphens{development}
然後再打开 log 档, 会看这一行
[] \OT1/cmr/m/n/12 de-vel-op-ment
前半部不要管, 那是字型编码设定
後面是这个字在 hyphen list 中的内定值
然後手动把 development 改成如推文所说的方式即可
还有一个方法算比较单纯
不用每次都 \textemdash
把原稿改成
issue\,---\,sustainable development\,---\,
会在 --- 的左右加上很小的空白, 这会强迫 development 跟 --- 变成不同的字
而且输出上, 我觉得比较好看, 我自己比较建议这麽处理
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 68.231.175.130
1F:推 lovinlover:专业推 11/27 09:10