问题标签 [kerning]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
7218 浏览

objective-c - iOS UITextView 中的字距调整

对于显然是“错误”的东西,UITextView 似乎不像其他 UIKit 元素那样支持字距调整。是否有解决方法可以使字距调整工作?

为了清楚起见,我说的是字体文件中定义的字符对之间的间距,而不是所有字符之间的一般间距。使用NSAttributedStringwithNSKernAttributeName将调整所有字符之间的间距,但内置的字符对仍然不起作用。

例如:

在此处输入图像描述

有没有解决方法来解决这个问题?

我发现的一种简单解决方法是将 css 样式添加到启用字距调整的 UITextView。如果我使用未记录的方法setContentToHTMLString:,我可以将 css 注入文本视图中的秘密 webview。

这可以立即解决问题;但是,这似乎很可能会导致应用被拒绝。有没有一种安全的方法可以将一些 CSS 潜入文本视图?

我尝试过的其他解决方法包括:

使用 webview 和 contenteditable 属性。这并不理想,因为 webview 做了很多额外的事情,例如不容易隐藏的输入附件视图。

使用核心文本手动子类化UITextView和渲染文本。这比我希望的要复杂,因为所有选择的东西也需要重新配置。由于UITextView's 的私有子类,如果不是完全不可能的话UITextPositionUITextRange这是一个巨大的痛苦。

0 投票
2 回答
270 浏览

javascript - 好看的弧形文字?

几年前,我为 APNGedit 制作了一个 Javascript 脚本来绘制 Laughing Man 标志。它使用了现已失效的mozTextAlongPath

我最近重新发现了这个脚本,并使用翻译、旋转和 fillText() 重新编写了它。但是,这不尊重字符宽度,也没有紧缩(看起来很糟糕)。

大约 2009 年的原版(不完美,但还可以):

使用 mozTextAlongPath 的原始笑人

当前版本:

使用 fillText 的新版本

如何在 HTML5 画布上以弧形绘制文本并使其看起来不错?


基于 Kolink 答案的解决方案代码:

固定的

0 投票
4 回答
3687 浏览

android - Android 4.2.1 错误的字距调整(间距)

使用CanvasanddrawText()方法时,我在 Android 4.2.1 上看到了不同的渲染。

4.2以下:

在此处输入图像描述

对于 Android 4.2.1 (Nexux 7) 我得到:

在此处输入图像描述

正如你所看到的文本消费非常紧张。似乎是 4.2.1 中引入的字距调整问题。用于绘制文本的 Paint 并没有什么特别之处:

如果我不使用titlePaint.setLinearText(true),我会在 4.2.1 上得到一个奇怪的结果,如您所见:

Nexus 7 上的 Android 4.2:canvas.drawText() 无法正常工作

编辑:

这种奇怪的行为已报告给 Android 团队:http ://code.google.com/p/android/issues/detail?id=39755但它仍然不是“官方”问题。

编辑(2):

一些谣言声称问题是 textSize < 1.0f ...

0 投票
1 回答
383 浏览

.net - WPF RichTextBox 中不同的字符间距

我有一个自定义控件。它扩展了 RichTextBox。

我有设置文档宽度的代码,以便限制字符数。(我使用的是 Courier New,所以我有一个固定宽度的字体。)

这一切都很好。

但是,一旦我将控件放入我的应用程序中,限制就会开始失效。在比较了两者之后,我注意到我的测试应用程序和我的实际应用程序之间的间距是不同的。

这是一个例子:

在此处输入图像描述

如您所见,我的测试应用程序间距大于真实应用程序的间距。

我在任何一个应用程序中都没有任何间距、字距调整、排版或字形设置(我可以找到)。另外,我检查了以“Font”(FontSpacing,FontSize ...)开头的每个设置,它们都完全相同。

还有什么可能导致文本在一个应用程序中应用不同的间距而不是另一个?

笔记:

如果相关,将控件插入我的测试应用程序的 xaml 与将控件插入我的真实应用程序的 xaml 相同。如果有人想看,我会发布它。

0 投票
1 回答
597 浏览

android - Android 字体字距调整:Nexus 7 与 Galaxy Tab 2

我目前正在开发一个最初打算仅在 Nexus 7 和 Android 4.2 上运行的应用程序。但是,计划发生了变化,现在它打算在 Galaxy Tab 2、Android 4.1.1 上运行。

我正在使用在 Nexus 7 上表现出色的自定义字体。但是,当降级 Android 版本并切换到 Galaxy Tab 2 时,字体字距调整完全混乱,看起来很糟糕。间距与应有的距离相去甚远。

有什么提示可以为我指明解决此问题的正确方向吗?我不知道如何解决这个问题,除了切换到不同的字体,这不太理想。

0 投票
2 回答
170 浏览

css - 收紧特定对的字距?

我需要在网站中使用 Palatino 字体。问题是字体缺少一个重要的字距对 VA,至少在我的机器上:

字距调整示例

我可以在主网站标题中解决这种情况。这意味着我可以插入显式标记 ( <span class="kern">VA</span>LUE) 并在那里调整字距。但是使用 CSS 属性调整 VA 对letter-spacing也会收紧以下对:

拧紧后紧缩样本

现在 AL 对是不可接受的(另见jsFiddle)。我该怎么办?

0 投票
1 回答
433 浏览

wpf - WPF 的 TextBlock 在 Windows 7 和 Windows 8 之间的区别

在调查一些仅在我的机器上失败的单元测试时,我注意到 TextBlock 在 Windows 7 和 Windows 8 机器上呈现的文本不同。为了检查这个问题,我创建了只包含一个 TextBlock 的示例应用程序:

您可以看到(或者至少我希望如此)Windows 7 上的文本长了 1 像素——实际上“y”和“o”之间的字距增加了 1 像素:
区别win7/8

我用字体阅读器软件检查了两台机器上的 Verdana.ttf 字体文件,列出的“y”和“o”之间的字距相同:-18。
还检查了 .NET Framework 的版本,它们也相同:4.5.50709。
...我仍然想知道是什么导致了这种差异?

0 投票
4 回答
2111 浏览

css - 使用 fontface 自定义脚本字体字距和字母间距

我在我的网站上使用的名为 Thirsty Script Bold 的脚本字体存在问题。某些字母的字母间距似乎是正确的,但对于其他字母则不正确。我什至没有触及字母间距。你可以在这里看到一个例子:http: //oi40.tinypic.com/2wpikgw.jpg。如您所见,“e”的结尾没有与“b”完全合并,并且“b”太靠右而无法与“s”合并。

我试过弄乱字母间距,但这似乎只会使问题恶化。

这是我的页面CSS-

这是我的页面 HTML-

这是我的字体css-

0 投票
1 回答
1458 浏览

ios - iOS中字体不紧缩

我使用 FontForge 创建了一个自定义字体,用于我的 iOS 应用程序。当我在我的应用程序中使用字体时,不应用字距调整。有一个已知的错误,即未对 UITextView 应用字距调整。我在 UILabel 和 UITextField 中使用它,所以这不是问题。我的目标是 iOS 5.0。

我可以在 Font Book 和 Pages 中查看字体,并看到字距调整是否有效。但是,字距调整在 Word for Mac 中不起作用。我在 Word 中启用了字距调整,但它在那里不起作用。我不太关心Word。我主要希望它在 iOS 中工作。

我已经将字体创建为 .otf 和 .ttf 字体,并使用各种 FontForge 选项来生成字体集。我使用过的选项是 Apple、OpenType 和 OT/Old Style 和 OT/DSIG。页面将为字体生成选项的所有组合正确应用字距调整,除非仅选中 OpenType。Font Book 仅在选中 Apple 时才会显示字距调整,而不会显示其他任何内容。我在其他论坛上阅读了一些关于让字体与 Word 一起使用的评论,但没有任何关于字距调整和 iOS 的具体内容。

任何人都有任何经验:

1) 使用 FontForge 在 OS X 上为 iOS 应用程序成功创建紧缩字体?

或者

2) 使用在 Word 中工作的 FontForge 在 OS X 上成功创建紧缩字体?这可能会让我更接近,即使您没有在 iOS 上使用字体的经验。

我有一个试用版的 Glyphs,我已经玩过,但我不想转移到另一个字体程序来完成这项工作。

任何帮助,将不胜感激。

0 投票
2 回答
824 浏览

c# - 如何在 .NET 中使用 GDI+ 中没有的 windows GDI 方法?

我想在 .NET 应用程序中调用在 GDI+ 中找不到的 GDI 方法。

特别是这个方法,它获取指定字体的字距调整对。我想在当前不支持的 HTML5 画布上实现字距调整(字母间距),我认为最好的方法是在我的服务器上拉出字距调整对并将字距调整表返回给客户端。

您如何从 .NET 使用像这样的 Windows 库函数?