【发布时间】:2013-04-09 04:16:32
【问题描述】:
总结
我正在为 iPhone 开发一个计算器应用程序,并希望将数学表达式绘制到 UIView,就像 LaTeX 外观一样。
所以我使用 cmr10.ttf(LaTeX 默认)作为绘图字体,但有些字符没有显示出来。
测试代码及细节
这是我的测试代码:
- (void)drawRect:(CGRect)rect
{
[super drawRect:rect];
const int len = 4;
Byte cstr[len];
cstr[0] = 0x30; // 0
cstr[1] = 0x00; // Capital Gamma
cstr[2] = 0x41; // A
cstr[3] = 0x61; // a
NSString *str = [[NSString alloc] initWithBytes:(const void*)cstr length:len encoding:NSASCIIStringEncoding];
[str drawAtPoint:CGPointMake(10, 0) withFont:[UIFont fontWithName:@"cmr10" size:40]];
}
我原以为 UIView 会显示“0ΓAa”,但实际上显示的是“0Aa”,没有大写 gamma。
根据 CMR10 代码表(见下文),0x00 表示大写 gamma。但在 ASCII 表中,0x00 表示 NUL 控制字符。这可能是没有显示大写伽玛字符的原因。
这是 CMR10 的代码表。字母等一般字符与 ASCII 表的代码相同,其他的则不同。
(来自http://www.tug.org/texlive//devsrc/Master/texmf-dist/doc/latex/base/encguide.pdf的第18页)
问题
所以我想知道的是如何绘制一个字符代码与ASCII中的控制字符相同的字符。
其他信息
- 我在 BaKoMa 字体包中使用了 cmr10.ttf。
- 我正在 Xcode 4.6.1 和 iOS5 或更高版本的设备上开发这个计算器应用程序。
【问题讨论】:
标签: iphone ios nsstring latex special-characters