我正在尝试从Ruby程序输出RTF(富文本格式) - 我更喜欢直接发出RTF而不使用RTF gem,因为我做的很简单.
我想强调DNA序列比对中的特定字符,从文档中我可以使用\ highlightN ...\highlight0或\ cbN ...\cb1
问题是我不能让\ cb在Word:Mac 2008或Mac TextEdit中工作(\ cf工作正常所以我知道它不是颜色表问题)
\ highlight确实有效,但看似只有两种可能的颜色(黑色和红色)和\ highlight不使用自定义颜色表.
通过在Word中创建带有字符着色的简单文档并保存为RTF,我可以看到大概冗长的RTF代码块,大概可以做我想要的,但它是如此难以理解,我没有看到树木.
部分问题可能是Mac Word没有正确实现RTF.我没有Windows版本的Word方便.
有人知道正确的方法来遮挡文本块吗?
谢谢 - 罗布
RTF Pocket Guide中有一条说明,说MS Word没有实现\ cb命令.它说MS Word使用\ chshdng0\chcbpatN(其中"N"是与\ cb一起使用的颜色编号).本书建议使用类似下面的内容来实现与实现\ cbN和/或\ chshdng0\chcbpatN:{\ chshdng0\chcbpat5\cb5 text}的程序的兼容性.
注意:我所拥有的书的副本于2003年出版,因此可能有点过时了.
支持 RTF 的应用程序似乎最普遍支持的 RTF 命令序列是:
\chshdng10000\chcbpatN\chcfpatN\cbN
这些命令:
Word 是正确渲染背景颜色最困难的应用程序:
不管最新 (1.9.1) RTF 规范如何规定,Word 2013 无法\highlightN解析\colortbl. 相反,\highlightN映射到预定义的颜色列表。看起来这些颜色来自RTF 规范的 1.5 版本。
关于,1.9.1 规范在颜色表\cb部分的末尾包含这个有用的指针:
注意: Windows 版本的 Word 从未支持\cb N,但可以通过控制字序列\chshdng0\chcbpat N来模拟。
这几乎是一个有用的建议,除非您阅读以下文档\chshdngN:
字符底纹。N 参数是一个值,表示文本的阴影程度(以百分之一为单位)。
所以,0事实证明这不是一个非常有用的值;100 / 0.01给我们10000我们在上面的序列中使用的。