问题标签 [monospace]
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.
javafx - 我无法让 JavaFX GraphicsContext strokeText() 正确显示等宽字体
问题:我想让 GraphicContext 对象以等宽字体描边文本。如何做到这一点?
问题:我正在使用 JavaFX。我有一个 Canvas 对象和一个 GraphicsContext 对象。我想使用 GraphicsContext 的 strokeText() 方法在画布上绘制文本。在调用 strokeText() 之前,我使用 GraphicsContext 对象的 setFont() 将字体设置为等宽字体。重要的是,我要在画布上绘制的字符串中的所有字符都具有相同的宽度。我尝试使用 Courier、Courier New 和 Monospace 字体在画布上绘制文本。我知道这些字体应该是等宽的。我已经导入了 javafx.scene.text.Font。
但是,当我检查画布上绘制的文本时,我每次都会看到: 我的画布对象左角的屏幕截图。
为了测试字体,我让 GraphicsContext 对象在各自的行上绘制了 5 次字符“_”、“a”、“i”和“W”。字符大小不等,行长度不同。另外,我没有看到字体有任何变化。
这是我用于创建画布、抽屉和抚摸文本的代码:
我在 java 中搜索了有关等宽字体的信息,尝试导入 java.awt.Fonts 并查看了 GraphicsContext 的 javadoc,但似乎没有什么能帮助我解决这个问题。
我究竟做错了什么?
emacs - Emacs中的等宽图标字体?
我正在将 FontAwesome 中的图标和其他图标字体插入 Emacs,但我想让它们与我使用的等宽字体(DejaVu Sans Mono)对齐。这可能吗?
python - Python 和 Tkinter 中有哪些等宽字体?
我在很多地方都看到过“等空间”这个词。你能告诉我等宽字体是什么意思吗,Python 和 Tkinter 中有哪些等宽字体?
java - 等宽字体在 Java 中不是等宽字体
我想将Text设置为等宽字体。最后,我选择了GT Pressura Mono Regular Regular。
但是,他身上的某些东西很奇怪。我发现文本不是等宽的,尽管字母宽度的差异很小。
我认为字体有问题,但我尝试了其他等宽字体(下载和从 Windows 下载),但宽度始终不匹配。问题是什么?我只对文本使用大写字母。
请帮忙。
谢谢
更新
我正在添加一个代码以获得更好的说明。
在图片中已经可以看出字母的宽度不同。此外,当我添加此代码时,它会打印不同的值。
c# - 为什么文本框的第一行比其他等宽字体的字符多 1 个字符?
我在 windows 窗体中有一个文本框,具有单间距字体(Courier New,10pt),所以我假设文本框的每一行都包含相同数量的字符。但是,有时第一行包含的字符比其他所有字符多一个。
这就是文本框对字符串的格式化方式textbox.Text = "?06?00?00?00?01?00?00?00?00?00?01?00?00?04?00?00?00?00?00?00?01?00?00?00?00?00?00?00?02?00?00?00?"
:
对于另一个字符串,相同的文本框看起来像这样textbox.Text = "06 00 00 00 01 00 00 00 00 00 01 00 00 04 00 00 00 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 f4 01 00 00 "
:
请注意,对于第一个字符串,文本框的第一行包含 25 个字符,其他行包含 24 个字符。对于第二个字符串,文本框每行包含 26 个字符(每行末尾有一个空格)
“Courier New”真的是等宽字体吗?(我在几个地方读到过。)
如果“Courier New”是等宽字体,那么为什么会发生这种情况?
如何解决这个问题?(我只想在每行中有相同数量的字符)。
computer-vision - 等宽代码片段的光学字符识别
OCR 可用于识别任何图片中各种字体、大小和位置的字符。
是否存在针对识别代码进行优化的工具?由于代码的屏幕截图通常是单空间的,我想有些算法可以利用这一事实并因此进行优化以识别缩进、图像中某些 x/y 间隔中的字符等。
是否存在这样的工具,或者是否有人尝试构建这样的工具?
我想这在创建者没有发布源代码并且查看者需要重新输入它(并遇到输入错误等)的 YouTube 教程的情况下会非常有用。然后可以只截取代码片段并将其转换为实际的文本版本,保留缩进和所有内容。
fontforge - 我将两种等宽字体与 FontForge 合并,但系统不将其识别为等宽字体
抱歉,如果这不是这里的有效问题。
我正在尝试将 DejaVu Sans Mono 字体与另一种免费字体合并,以便它涵盖 CJK unicode 区域并在 Windows 命令提示符下可用。结果是:它在所有其他文本编辑器上都清晰显示,但在 Windows 命令提示符设置中无法选择。看起来系统没有将合并的字体确定为等宽字体,但我不知道为什么。如果您提出任何可能的原因,我将不胜感激。
这是我所有的条件。
目标:将 DejaVu Sans Mono(ver.2.37) 与 D2Coding(一种包含大量中文、日文和韩文字符的开源等宽字体。ver.1.3.2)与 FontForge 合并。(ver.20201107)
事实证明,DejaVu Sans Mono 的所有字符的宽度均为 1233。所以我从 D2Coding(unicode 脚本:hani、jamo、hang、kana)中制作了宽度为 2466 的所有 CJK 字符,并删除了任何其他字符。(当然等宽字体需要所有字符具有一致的宽度。但是,我正在尝试寻找其他解决方案,因为大多数与 CJK 兼容的等宽字体的 CJK 字符的宽度是其他 ANSI 字符的两倍。我检查了其他等宽字体具有此属性,并且仍然可以在 Windows 命令提示符设置上进行选择,因此我认为强制所有具有相同窄宽度 1233 的字形并不是我的情况的最佳解决方案。)
我使用 Element>Merge Fonts 将此字符添加到 DejaVu Sans Mono 中。我发现每个未定义的字形都有其默认宽度为全宽(2466),在添加不同字体的字形之前是半宽(1233)。看起来默认宽度是由整个字形的最大宽度设置的。这可能是最可能的原因,但我不知道如何在 FontForge 上设置未定义字符的“默认”宽度。
- 在 ttf 中渲染结果并安装在计算机中后,它在其他文本编辑器上看起来很好,但我无法在 windows 命令设置中选择我的字体。(命令提示符>属性>字体,代码页 cp949)
- 我还检查了我的注册表区域。有一些建议可以为命令提示设置添加自定义字体,去
HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Console\TrueTypeFont
. 事实证明我在控制台键下没有任何注册表键(Windows ver.1909 build 18363.1556)。通过自己创建密钥来强制密钥是行不通的。我有可能弄乱了我的注册表,但是由于命令提示属性上出现的任何其他等宽字体都没有问题,所以我认为这对我来说不是问题。
我试图解释在哪种情况下我有问题,但如果您需要,请随时询问其他情况。