作者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