[問題] 如何令 XX_XX_XX 這樣的字換行? 用 discretionary{}{}{}?

看板LaTeX (論文排版)作者 (Wei Hu)時間18年前 (2006/10/14 00:22), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/4 (看更多)
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
文章代碼(AID): #15BxrH-W (LaTeX)
文章代碼(AID): #15BxrH-W (LaTeX)