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