作者halajohn (Wei Hu)
看板LaTeX
標題Re: [問題] 如何令 XX_XX_XX 這樣的字換行? 用 dis …
時間Sat Oct 14 17:43:28 2006
※ 引述《[email protected] ( )》之銘言:
: > Tex 在排版的時候, 會依據每個字的音節來作為 break word 來換行的依據.
: > 但如果那不是一個字典裏面有的 word, 那 tex 就不知道怎麼換行了.
: > 比方說如果我今天要在 tex 裡面寫出
: > I\_am\_a\_good\_man
: > 那麼當這個字超出右邊或左邊的 margin 時, tex 並不會把他拆成兩半,
: > 而是直接排出版面外.
: > 所以呢... 有比 \discretionary 更好的方式來處理內含有 _ 字元的字串
: > 換行的方式嗎?
: 看一下 LaTeX FAQ:
: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=hyphexcept
: \hyphenation{I-\_am-\_a-\_good-\_man} 也許可以
Thx for your help !
1) Storm 提到的用 \-, 他的確會在 \- 處斷詞, 不過他卻會多一個 - 連字符號,
找了一些資料以後發現, \- 其實就是利用 \discretionary{-}{}{} 來達到斷詞
的功能. 所以他們是一樣的, 只是少打了一些字.
不過, 很多時候, 會用到 _ 的時候就是要打一些 program 裡面的函式或變數名,
比方說 global_egl_register, 如果斷成兩行的中間還插著一個 - 連字符號,
比方說
... ... .. ... .. . . . . . . . . globl_egl-
_register ..............................
這樣就會很奇怪, 所以看起來如果是這樣的話, 用 \discretionary{}{}{} 才
能達到預期的效果.
2) hock 所提到的 \hyphenation, 我之前也有嘗試過, 可是不知道為什麼,
是 faq 所用的版本太老, 還是我用的有 bug...
latex, 或 pdflatex 編譯後都會出現
ERROR: Improper \hyphenation will be flushed.
的錯誤.
我用的是 miktex 2.5, latex & pdflatex 3.141592-1.30.6-2.2
所以要怎樣才能夠達到類似 microsoft word 裡面不管如何只要達到 page 的邊界
就會斷詞換行的功能呢? 就算是用 /discretionary{}{}{}, 也只會在指令的地方
斷詞, 比方說下面這種情況還是會出現
.......................... aaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaa bbbbbbbbb_cccccccc_dddddddd
_eeeeee_fffffff_ggggggg ....................
............................................
這樣的話, ddddddd 就會太突出了.
對於要打有關程式碼相關的文件時, 這樣的狀況將會不少, 所以蠻困擾的.
但同樣的 paragraph 在 word 裡面就會斷的很漂亮.
所以請問要怎麼設定才可以讓 latex 讓碰到 margin 的任何東西就斷.
Thx.
※ 編輯: halajohn 來自: 59.105.13.34 (10/14 18:18)