标签: typography

在 UILabel 中启用小型大写字母字体

我正在尝试在UILabel. 这个问题之前已经被问过很多次了,答案很简单:

override func awakeFromNib() {
  super.awakeFromNib()

  let fontSize: CGFloat = 24
  let descriptor = UIFont
    .systemFont(ofSize: 24)
    .fontDescriptor
    .addingAttributes([
      UIFontDescriptor.AttributeName.featureSettings: [
        UIFontDescriptor.FeatureKey.featureIdentifier: kLowerCaseType,
        UIFontDescriptor.AttributeName.featureSettings: kLowerCaseSmallCapsSelector
      ]
    ])

  titleLabel.font = UIFont(descriptor: descriptor, size: fontSize)
  titleLabel.text = "Welcome"
}
Run Code Online (Sandbox Code Playgroud)

然而,这段代码不起作用,我不明白为什么。我有几个想法:

  1. 该字体可能不包含小型大写字母字形。我怀疑这是问题,因为我使用的是系统字体。我尝试使用“Helvetica Neue”以防万一,但没有成功。
  2. 使用该属性设置文本时不支持小型大写字体UILabel.text。然而,使用该UILabel.attributedText属性并不能解决问题。
  3. UILabel根本不支持小型大写字体。我尝试过UITextView,但结果是一样的。
  4. 这可能是 iOS 12 的问题,但该问题在 iOS 11.4 上也会重现。

还有什么我可能想念的吗?

typography uilabel core-text ios

1
推荐指数
1
解决办法
866
查看次数

绘制文本时 Pillow 图像的隐式像素密度是多少?

我正在尝试使用 python 中的 Pillow查找某些文本的大小(以磅为单位) 。据我了解,以磅为单位的字体大小对应于目标显示器或表面上的实际物理英寸,每英寸 72 点。当我使用 Pillow 的textsize方法时,我可以找到以给定字体大小(以磅为单位)呈现的某些文本的像素大小,但不知道如何返回基于英寸的坐标系,因为我没有(并且无法设置)图像的像素密度:

from PIL import Image, ImageFont, ImageDraw
image = Image.new('RGBA', (400, 300), (255, 255, 255))
font = ImageFont.truetype('/Library/Fonts/Arial.ttf', 16)
image.info['dpi'] = 100
print( ImageDraw.Draw(image).textsize('Loreum ipsum', font=font) )
image.info['dpi'] = 1000
print( ImageDraw.Draw(image).textsize('Loreum ipsum', font=font) )
Run Code Online (Sandbox Code Playgroud)

将打印

(101, 18)
(101, 18)
Run Code Online (Sandbox Code Playgroud)

如何获得给定文本的大小(以磅为单位) ?

python typography image python-imaging-library python-3.x

1
推荐指数
1
解决办法
2020
查看次数

如何在 iText 7 中将一行中的一个单词加粗?

我可以使用 iText 7 设置文本粗体,如下所示:

parExecSummHeader2.Add(new Text(subj).SetBold());
Run Code Online (Sandbox Code Playgroud)

...但是当我尝试将“正常”(非粗体)文本位与粗体部分结合起来时,它不起作用。我有这个,它打印所有“常规”行(无粗体):

parExecSummHeader2.Add("Average words per sentence (the general average is 15 - 20): " + Math.Round(WordsPerSentenceInDoc, 2).ToString());
            
Run Code Online (Sandbox Code Playgroud)

...但想让计算值加粗。我尝试了这两个:

parExecSummHeader2.Add("Average words per sentence (the general average is 15 - 20): ");
parExecSummHeader2.Add(new Text(Math.Round(WordsPerSentenceInDoc, 2).ToString().SetBold()));
Run Code Online (Sandbox Code Playgroud)

...和这个:

parExecSummHeader2.Add("Average words per sentence (the general average is 15 - 20): ");
string mathval = Math.Round(WordsPerSentenceInDoc, 2).ToString();
parExecSummHeader2.Add(new Text(mathval.SetBold()));
Run Code Online (Sandbox Code Playgroud)

...但它们都不会编译,抱怨“错误 CS1061 'string' 不包含 'SetBold' 的定义,并且找不到接受类型 'string' 的第一个参数的可访问扩展方法 'SetBold'”

typography itext7

1
推荐指数
1
解决办法
6110
查看次数

相邻的"f"和"l"字符

出于某种原因,当我显示单词"Butterfly"(或带有"fl"的任何其他内容)时,"f"和"l"连接在顶部(见下图).字体是Century Gothic Bold.这是我用来设置UILabel的代码.从plist中检索标签的字符串:

UILabel *label = [[UILabel alloc] init];
label.text = [self.flashcardDelegate.alphabetArr objectAtIndex:index];
label.textColor = [UIColor colorWithRed:.733 green:0 blue:.03137 alpha:1];
label.backgroundColor = [UIColor clearColor];
label.frame = CGRectMake(ipad ? 210.0f : 65.0f, 
                         ipad ? 650.0f : 300.0f, 
                         ipad ? 340.0f : 185.0f, 
                         ipad ? 250.0f : 135.0f);
label.font = [UIFont fontWithName:@"CenturyGothic-Bold" size:ipad ? 200 : 100];
label.textAlignment = UITextAlignmentCenter;
Run Code Online (Sandbox Code Playgroud)

知道为什么会这样吗?谢谢.

截图

typography uilabel uifont ios ligature

0
推荐指数
1
解决办法
678
查看次数

如何在画布中用图像填充文本?

我最近一直在使用HTML5画布,想知道是否有一种方法可以用图像而不是纯色填充文本?

我目前可以得到类似的工作:

我可以做什么

但是我需要文本看起来像(可以在Photoshop中完成):

例

我读过很多遍关于有时必须在第二个画布上的图像上渲染零件并将图形导入到主要可见的画布中的信息,但大部分内容都是关于为图像着色(不确定是否可以在此处使用)。

我为什么需要这个:如您所见,上面的控制器很漂亮而且很灵巧,但是文本不是,客户希望我从不同的控制器外壳颜色中提取文本颜色,以使其看起来尽可能逼真。

在搜索更多内容时,我确实找到了这个示例,这正是我想要的。但不幸的是,该示例的问题在于我将需要以某种方式仅导出图像的文本,而我认为这是不可能的,因此可以将其转换为新图像,而黑色外层不会覆盖图像的一部分。控制器。

如果有人希望以正确的方向发送给我,无论多么复杂,我将不胜感激。

PS这里是控制器的绘制顺序:

  1. 贝壳
  2. 文本
  3. 零件/背部
  4. 拇指棒
  5. 引导按钮
  6. ABXY按钮
  7. 控制器周围的遮罩(防止文本溢出)

typography canvas html5-canvas

0
推荐指数
1
解决办法
2741
查看次数

为什么字母M或W缩进与其他字母不同?

通过这个例子来看:

HTML

<input type="checkbox" name="jour_semaine[]" id="lundi" value="Lundi"/>
<label class="checkbox-inline weekday" for="lundi" >L</label>

<input type="checkbox" name="jour_semaine[]" id="mardi" value="Mardi"/>
<label class="checkbox-inline weekday" for="mardi" >M</label>

<input type="checkbox" name="jour_semaine[]" id="mercredi" value="Mercredi"/>
<label class="checkbox-inline weekday" for="mercredi" >W</label>

<input type="checkbox" name="jour_semaine[]" id="jeudi" value="Jeudi"/>
<label class="checkbox-inline weekday" for="jeudi" >J</label>

<input type="checkbox" name="jour_semaine[]" id="vendredi" value="Vendredi"/>
<label class="checkbox-inline weekday" for="vendredi" >V</label>
Run Code Online (Sandbox Code Playgroud)

CSS

/* Base for label styling */
[type="checkbox"]:not(:checked),
[type="checkbox"]:checked {
  position: absolute!important;
  left: -9999px!important;
}
[type="checkbox"]:not(:checked) + label,
[type="checkbox"]:checked + label {
  position: relative;
  padding-left: 40px;
  padding-top:6px;
  margin-bottom:20px; …
Run Code Online (Sandbox Code Playgroud)

html css typography

0
推荐指数
1
解决办法
91
查看次数

CSS中的字母间距会改变单词间距吗?

我观察到,当我调整 CSS 中的字母间距时,单词间距似乎会自动更改。然而,经过广泛的研究,我找不到关于这种关系的具体信息。

背景: 我查阅了各种资源,包括 ChatGPT 4.0,一致认为字母和单词间距是独立的属性。我已经在多种字体和浏览器上测试了这种行为,并始终注意到这种变化。

此行为不同于 CorelDRAW 等基于矢量的图形设计软件,在其中调整字母间距不会影响字间距。我喜欢浏览器的方法,并认为它产生了真正令人愉悦的结果。随着字母间距的减小,它完美地减小了字间距。

问: 浏览器中修改字母间距时出现的字间距调整是否是公认的现象?Chat GBT 表示这种情况不应该发生,而且它们是独立的财产。一者不会改变另一者。我在网上找不到有关此主题的任何信息。

我已经在不同的字体和浏览器上验证了它。字间距的减少或增加与字母间距成比例,并且无论字体如何,都是相同的。

<!DOCTYPE html>
<html>
<head>
<style>
h1{
  letter-spacing: 20px;
  font-size: 20px;
}

h2 {
  letter-spacing: 10px;
  font-size: 20px;
}

h3 {
  letter-spacing: 5px;
  font-size: 20px;
}
span {
  border-style: solid;
}
</style>
</head>
<body>

<h1><span>This</span> <span>is</span> <span>heading</span> <span>1</span></h1>
<h2><span>This</span> <span>is</span> <span>heading</span> <span>2</span></h2>
<h3><span>This</span> <span>is</span> <span>heading</span> <span>3</span></h3>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

html css typography letter-spacing

0
推荐指数
1
解决办法
123
查看次数

Java RegExp:替换引号""为英语""(思维环境)

是否有任何简单的方法可以通过正则表达式将键盘上的引号转换为英语引号,但请确保保留HTML实体?例如,我们想翻译some "text",但我们不想要<span id="blah">.

谢谢!

编辑:

有些人建议,我没有尝试过自己.我曾经尝试过 - 我不想表现出不影响你.但没有成功:

string.replace(
     "(?<!\"|\\w|=)\"(?!\\ |\")((?:[^\"]++|\")+?)(?<!\\ |\")\"(?![\"A-Za-z\u00C0-\u02FF\u0370-\u1EFF])()", 
     "“$1”");
Run Code Online (Sandbox Code Playgroud)

但我无法管理不在HTML标签中翻译这些引号.

java regex typography

-1
推荐指数
1
解决办法
151
查看次数