问题标签 [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.
java - 等宽摆动文本
我编写了一个程序,它可以拍摄一张照片并创建一个 ASCII 表示(ASCII 艺术)。起初,我将 ASCII 字符串写入控制台,但现在我有一个保存文本的 JLabel。但是,JLabel 输出是不规则的,并且不像控制台输出那样均匀。我尝试使用等宽字体(Droid Sans Mono)作为 JLabel 中的字体,因为它是我用于控制台输出的字体,但输出仍然不规则。有没有更好的方法在 Swing/JLabel 中指定等宽字体?
这是我用来创建 JLabel 的方法:
我用来指定字体的行:
编辑:我将 JLabel 更改为 JTextArea 并且效果更好。唯一的问题是即使是很小的字体,框架通常也在屏幕之外。但是我有一种方法可以改变要采样的像素数,这会使输出更小。
css - CSS:Courier 字体在 Windows 和 iOS 上的呈现不一致
我的客户想要使用的字体是“Courier”。Courier 并非安装在每台计算机或智能手机上。当它不存在时,它会退回到“Courier New”。“Courier New”是比“Courier”更薄的字体,我希望页面的外观在不同的操作系统和浏览器中尽可能保持一致。所以我想:如果没有安装“Courier”,为什么不使用“Courier New Bold”呢?见下图:
创建此图像后,我更加困惑。我在 css 中的 font-family 声明中添加了更多字体名称,以涵盖如何在不同的操作系统上调用字体(即“Courier New Bold”)。这是新的声明:
现在出现了奇怪的部分:在 Windows XP 的 Chrome 上,文本被渲染得和以前一样细。Mobile Safari 也是如此。
我怀疑的是:Chrome (WinXP) 和 Mobile Safari 都只检查我声明的第一个字体。他们看到它是“快递员”。他们没有安装“Courier”,所以他们提供“Courier New”。它们没有考虑我在 CSS 中声明的其他字体。
很抱歉这篇冗长的帖子。我的问题归结为:如何让文本在所有操作系统和浏览器中始终显示为“Courier”或“Courier New Bold”?
您可以在此处找到实时示例。
更新:我已经阅读-webkit-font-smoothing: antialiased;
并将其添加到 CSS 中,但这并不能解决问题。在 Windows 和 iOS 上,文本看起来仍然要细得多。
更新 2: 这篇 2007 年的帖子解释了 Courier 如何在 iOS 上显示为 Courier New 以及为什么它很糟糕。不过,我不确定更新版本的 iOS 是否仍然表现相同。
fonts - 从现有的等宽字体创建粗体版本,同时保持宽度
我有一个使用等宽字体的网站。但是不同的浏览器在字符宽度方面存在重大差异。字体宽度保持完全相同是很重要的。
我试过了:font-weight: bold;
但这取决于浏览器,我无法使用负值来弥补额外的宽度letter-space
。
我曾尝试在 Type Light 3.2 中创建自己的新派生字体,但这非常困难,尤其是弯曲字符很难更改。
我试图用绝对 div 将文本加倍,并设置 2px 变化的边距,效果很好,但这样做的缺点是你需要很多 div,这使得 IE7 和 IE8 在使用大时非常慢文本。
是否有另一种方法(自动首选)从 ttf/eot/woff/svg 字体派生粗体字体?例如,我知道 Java 可以创建粗体字体,但我可以将其保存到新的字体文件中吗?任何方式都对我有用。
javascript - 等宽字体 - 不是真正的等宽字体?
到目前为止,这似乎是我在 Gedit 中使用JavaScript发现的一个错误(当您将字体从“Ubuntu mono”更改为“Monospace”时)和 Geany。我将右边距设置为 80 个字符,但是当我键入Object
或prototype
任何其他由程序加粗的关键字时,它会添加一些字母间距,稍微偏离间距。
因此,我有一行声明Object
是 79 个字符,但似乎是 81.5 个字符。有人可以建议我如何解决这个问题吗?它是文本编辑器设置吗?是不是字体本身的问题?
email - 文本/纯等宽的内容类型?
我想发送比简单的文本块(添加表格、对齐方式、样式等)更复杂的电子邮件,例如:
有没有办法将字体系列放入 text/plain content-type ?
ascii - 等宽 ascii 编辑器
是否有任何 ASCII“构建器”/“文本编辑器”或任何可以让某人以不同于普通文本编辑器的方式编写文本的东西。这个想法是,您采用等宽字体并用所有空格填充某种文本区域,当您将光标放在文本区域上的任何位置时,它会“粘住”。下一个想法是,每当您编写一个字符时,它都会“吃掉”或替换该空间中的现有字符。我可以很容易地用 javascript 构建它,但我觉得它是一些文本编辑器的功能。我有哪些选择?这存在吗?
我讨厌当这种情况发生时,我不希望它发生。
而不是这个...
java - 等宽和 UTF8
我正在我们的一个旧 java Swing 应用程序中更正字体显示。在运行时使用“ -Dfile.encoding=UTF-8 ”选项后发生了变化。
FontClass.jar 是我的示例 jar 文件。
使用选项 1: 我得到等宽显示
使用选项 2: 我得到非等宽显示。
局限性:
i) -Dfile.encoding=UTF-8 我们添加了这个选项,让我们的所有流都支持 UTF-8 支持。而不是手动修改每个流。
ii)我们在很多地方都在使用 java swing frame work。我们使用默认字体。改变这一切需要大量的工作。
所以现在我的问题是有任何命令行选项,我可以使用选项 1 获得等宽显示:
下面是示例代码:
internet-explorer - Internet Explorer 使用奇怪的字体
我希望有人能阐明我在使用 IE 时遇到的这个烦人的问题——它<PRE>
以“有趣”的字体呈现标签内容。自己看看:http: //imgur.com/LHAtPhh。
(截图取自http://www.roryhart.net/code/xckd-np-complete-restaurant-order/的渲染。)
通过搜索网络和 SO,我发现的几个相关答案似乎指向检测到错误编码或损坏的字体(请参阅它显示的奇怪字形而不是“\”)。
我也手动玩过编码,它没有改变任何东西。字体问题我实在没有资格去调查。然而,我发现确实选择了一种有趣的字体进行渲染。当进入 IE 中的开发人员工具并查看相关 PRE 元素的 Trace Styles 输出时,我可以看到以下内容:
我不知道“Courier 10 Pitch”可能是什么......但是当手动覆盖“Courier New”时,它会开始正确渲染。
有任何想法吗?这可能与我安装了东亚语言包有关吗?
重现我拥有的所有 IE 版本,从 7 到 10。目前是 Windows 7 SP1。
android - Android Monospace 字体不是固定宽度
我正在为计时器编写自定义视图,但我无法为中间的数字获得正确的固定宽度字体。这是相关代码(来自两种不同的方法):
这似乎工作正常,但是每当其中一个数字变为 1 时,该 1 占用的空间就会减少,并且整个文本块会移动一点。这显然不应该发生,因为我使用的是等宽字体。谁能阐明我如何解决这个问题?
unicode - DejaVu Sans Mono 停止显示一些 Unicode 字符
Unicode 度数符号字符 (u+0B00) 在 Linux Mint 15 Olivia 上停止正确显示,可能还有一些我尚未确认的其他字符。我只确定这个特定的角色。它显示为一个框(此处通过 Chrome 在 StackOverflow 上)或 4 件矩形字形。
在问题前后使用 gnome-terminal 和 Sublime Text 2 中的 DejaVu Sans Mono 字体进行了测试。我可以确认它今天早些时候工作,并且在它工作和拒绝工作之间我认为我没有更改任何字体设置。