作者halajohn (Wei Hu)
看板LaTeX
标题[问题] 如何令 XX_XX_XX 这样的字换行? 用 discretionary{}{}{}?
时间Sat Oct 14 00:35:25 2006
Dear all,
Tex 在排版的时候, 会依据每个字的音节来作为 break word 来换行的依据.
但如果那不是一个字典里面有的 word, 那 tex 就不知道怎麽换行了.
比方说如果我今天要在 tex 里面写出
I\_am\_a\_good\_man
那麽当这个字超出右边或左边的 margin 时, tex 并不会把他拆成两半,
而是直接排出版面外.
如果我今天想要 tex 在排版的时候自动的在这个字的适当地方做切割,
目前想到的方法是用 \discretionary{}{}{} 的方法
也就是
I\discretionary{}{}{}\_am\discretionary{}{}{}\_a\discretionary{}{}{}\_good
\discretionary{}{}{}\_man
没错, 这样子的话, 的确可以让 tex 自动在 underscore 处帮我决定要不要换行.
不过的确很丑, 而且不直觉.
请问有 "更好" 的方法吗?
Note:
想到的另一个烂方法是用 \catcode 的方式把 _ 的 category 改成 11..
不过这个的影响层面太大, math mode 的 _ 也会失效, 其他用到 _ 的地方,
比方 cite, ref, label 等等也会失效 ! >_<
其实 Latex 里面有个 underscore.sty, 他的原理就是采用 \catcode 的方式,
不过鉴於上述的缺点, 以及他跟 hyperref 会 conflict...
比方说 hyperref 的 \nameref
所以不考虑 !
所以呢... 有比 \discretionary 更好的方式来处理内含有 _ 字元的字串
换行的方式吗?
--
如果大众脸是现实生活中的 OP 的话,那我就是花生米般的笑点
http://wei0905.spaces.live.com/
http://www.csie.ntu.edu.tw/~r88052/main/tw/index.php
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 211.74.216.127