识别正在使用的 xterm 字体和相应的 Cygwin 包?

Identify xterm fonts being used and corresponding Cygwin package?

提问人:user2153235 提问时间:1/24/2020 最后编辑:Thomas Dickeyuser2153235 更新时间:1/27/2020 访问量:1541

问:

几十年来,我一直在煞费苦心地尝试来自不同系列的不同字体,以获得 xterm 大小的良好进展。我在 2015 年发现的六个很好的前缀如下。由于 Windows 7 不受支持,而且旧的笔记本电脑太破旧而无法迁移到 Windows 10,因此我买了一台新笔记本电脑并新安装了 Cygwin 的 X-windows。以前好的字体现在会产生错误,前缀如下。~/.Xresources:Error:

~/.Xresources: xterm*font:        -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
Error: None

~/.Xresources: xterm*font1:       -*-lucidatypewriter-medium-r-*-*-11-*-*-*-*-*-*-*
Error: xterm: cannot load font "-B&H-LucidaTypewriter-medium-R-*-*-11-80-100-100-M-140-ISO10646-1"

~/.Xresources: xterm*font2:     -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1
Error: xterm: cannot load font "-Misc-Fixed-medium-R-*-*-13-120-75-75-C-140-ISO10646-1"

~/.Xresources: xterm*font3:     -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-1
Error: xterm: cannot load font "-Misc-Fixed-medium-R-*-*-13-120-75-75-C-160-ISO10646-1"

~/.Xresources: xterm*font4:       -*-lucidatypewriter-medium-r-*-*-14-*-*-*-*-*-*-*
Error: xterm: cannot load font "-B&H-LucidaTypewriter-medium-R-*-*-14-140-75-75-M-180-ISO10646-1"

~/.Xresources: xterm*font5:    -b&h-lucidatypewriter-bold-r-normal-sans-14-*-*-*-m-*-*-*
Error: None

~/.Xresources: xterm*font6:     -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1
Error: xterm: cannot load font "-Misc-Fixed-medium-R-*-*-20-200-75-75-C-200-ISO10646-1"

Other lines in ~/.Xresources
----------------------------
xterm*toolBar:  false
xterm*background:       rgb:00/00/66
xterm*foreground:       White

尽管在选择上述某些字体时会产生错误,但 xterm 仍然会切换字体,我发现字体很好。我猜它正在选择一些规格非常接近的字体。

如果是这样,我怎样才能找到最终使用的字体的完整规格?我想在 ~/ 中使用它们。X资源

如果没有,那么当我收到错误消息并且字体仍然显示切换时会发生什么?

最后,一旦我确定了要切换到的字体,有没有一种有效的方法来找到包含它们的 Cygwin 包?

请注意,以下内容仅与我的 ~/ 中的信息相呼应。Xresources 而不是显示实际使用的字体(假设它们与 中的字体不同,因为存在错误):~/.Xresources

appres XTerm xterm | grep -w xterm | grep font | sort
xrdb -query | grep -w xterm | grep font | sort

使用 xterm -report-fonts 进行故障排除

托马斯·迪基(Thomas Dickey)建议,它将加载的字体报告给:xterm -report-fontsstdout

Loaded VTFonts(default)
   fNorm: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
   fBold: -Misc-Fixed-bold-R-*-*-13-120-75-75-C-60-ISO8859-1
   fWide: -Misc-Fixed-medium-R-*-*-13-120-75-75-C-120-ISO10646-1
   fWBold: -Misc-Fixed-medium-R-*-*-13-120-75-75-C-120-ISO10646-1
Loaded VTFonts(default)
   fNorm: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
   fBold: -Misc-Fixed-bold-R-*-*-13-120-75-75-C-60-ISO8859-1
   fWide: -Misc-Fixed-medium-R-*-*-13-120-75-75-C-120-ISO10646-1
   fWBold: -Misc-Fixed-medium-R-*-*-13-120-75-75-C-120-ISO10646-1

Loaded VTFonts(default)
   fNorm: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
   fBold: -Misc-Fixed-bold-R-*-*-13-120-75-75-C-60-ISO8859-1
   fWide: -Misc-Fixed-medium-R-*-*-13-120-75-75-C-120-ISO10646-1
   fWBold: -Misc-Fixed-medium-R-*-*-13-120-75-75-C-120-ISO10646-1
Loaded VTFonts(font1)
   fNorm: -*-lucidatypewriter-medium-r-*-*-11-*-*-*-*-*-*-*
   fBold: -*-lucidatypewriter-medium-r-*-*-11-*-*-*-*-*-*-*
   fWide: -*-lucidatypewriter-medium-r-*-*-11-*-*-*-*-*-*-*
   fWBold: -*-lucidatypewriter-medium-r-*-*-11-*-*-*-*-*-*-*
Loaded VTFonts(font2)
   fNorm: -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1
   fBold: -Misc-Fixed-bold-R-*-*-13-120-75-75-C-70-ISO8859-1
   fWide: -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1
   fWBold: -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1
Loaded VTFonts(font3)
   fNorm: -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-1
   fBold: -Misc-Fixed-bold-R-*-*-13-120-75-75-C-80-ISO8859-1
   fWide: -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-1
   fWBold: -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-1
Loaded VTFonts(font4)
   fNorm: -*-lucidatypewriter-medium-r-*-*-14-*-*-*-*-*-*-*
   fBold: -B&H-LucidaTypewriter-bold-R-*-*-14-140-75-75-M-90-ISO8859-1
   fWide: -*-lucidatypewriter-medium-r-*-*-14-*-*-*-*-*-*-*
   fWBold: -*-lucidatypewriter-medium-r-*-*-14-*-*-*-*-*-*-*
Loaded VTFonts(font5)
   fNorm: -b&h-lucidatypewriter-bold-r-normal-sans-14-*-*-*-m-*-*-*
   fBold: -B&H-LucidaTypewriter-bold-R-*-*-14-140-75-75-M-90-ISO8859-1
   fWide: -b&h-lucidatypewriter-bold-r-normal-sans-14-*-*-*-m-*-*-*
   fWBold: -b&h-lucidatypewriter-bold-r-normal-sans-14-*-*-*-m-*-*-*
Loaded VTFonts(font6)
   fNorm: -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1
   fBold: -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1
   fWide: -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1
   fWBold: -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1

Loaded VTFonts(default)
   fNorm: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
   fBold: -Misc-Fixed-bold-R-*-*-13-120-75-75-C-60-ISO8859-1
   fWide: -Misc-Fixed-medium-R-*-*-13-120-75-75-C-120-ISO10646-1
   fWBold: -Misc-Fixed-medium-R-*-*-13-120-75-75-C-120-ISO10646-1

我添加了空行来分隔冗余报告,这些报告位于中心位置的主体 输出。我还删除了与 每个 X 逻辑字体描述 (XLFD)。VTFonts(default)

似乎发生的事情是,每次我选择字体 VTFonts(fonti 时,字体 i 取决于所选字体 (或通过),报告 4 字体 字体的变化。字体变体分别命名为 、 、 和 。xtermdefaultfont1font6xtermfNormfBoldfWidefWBold

  • 对于所有字体,变体始终与 中的 XLFD 匹配。xtermfNorm~/.Xresources

  • 所有字体的变体和匹配,但fWidefWBoldfNormxtermdefault

  • 变体与所有字体不同 除了和fWBoldfNormxtermfont1font6

  • 选择字体i 会生成一个关于无法执行的错误 加载一个明显相关的字体,其中 i 是 1、2、3、4、6 之一。 这些是原始问题中报告的错误。 相关字体的 XLFD 与任何字体变体(、、、xtermfNormfBoldfWidefWBold)

从这些观察来看,似乎最初发布的 XLFD 错误可能与字体无关。XLFD 也不要与 xterm 报告的任何字体变体匹配。 在对引擎盖下发生的事情了解不足的情况下,它是 在我看来,xterm 可能会尝试在 错误消息,如果无法解决,则落在报告的 XLFD 上 用。~/.Xresourcesxterm -report-fonts

我只是觉得遇到这种行为很奇怪。在 几十年来,我从未收到过关于 XLFD 的错误消息,而我没有 指定。也许 X11 已经发展到寻找与 我指定的。

字体 Cygwin X11 XTERM

评论

1赞 Thomas Dickey 1/26/2020
xterm 派生一些组合,如果这些组合不存在,则发出警告。主要的罪魁祸首是宽字体(长话短说)。
1赞 Thomas Dickey 1/26/2020
例如,如果您有 xterm #330,则可能会有一个额外的警告,该警告已在 #348 中修复(查看 Cygwin 软件包的版本)。
0赞 user2153235 1/26/2020
感谢您将我指向您的脚本下载区。我下载了 tar 球,并惊叹于 .然而,坦率地说,在我修改它之前,我必须暂停一下才能在 perl 和 X11 上启动它。根据我报告的有关使用的内容,我将忍受它们在粗体/倾斜的手册页文本中可能产生的错误和奇怪之处。Special-purposefind-xterm-fontsxterm -report-fonts
0赞 user2153235 1/26/2020
关于版本,报告版本 329、330 和 348。不知道为什么这么多,因为这是 virgn Cygwin 安装,而且我不记得要求超过最新版本的任何东西。也许不同的 X11 软件包需要不同的版本。xtermcygcheck -pv xtermxterm
0赞 Thomas Dickey 1/26/2020
文档建议报告实际安装的内容。此外,报告其版本。cygcheck -cv xtermxterm -v

答:

0赞 matzeri 1/24/2020 #1

对于 Lucida,我将尝试 xorg-x11-fonts-dpi100 和 xorg-x11-fonts-dpi75

$ cygcheck -p lucida
Found 18 matches for lucida
font-bh-lucidatypewriter-dpi100-7.5-2 - font-bh-lucidatypewriter-dpi100: Obsolet
ed by xorg-x11-fonts-dpi100 (installed binaries and support files)
font-bh-lucidatypewriter-dpi100-7.5-3 - font-bh-lucidatypewriter-dpi100: Obsolet
ed by xorg-x11-fonts-dpi100 (installed binaries and support files)
font-bh-lucidatypewriter-dpi100-7.5-4 - font-bh-lucidatypewriter-dpi100: Obsolet
ed by xorg-x11-fonts-dpi100
font-bh-lucidatypewriter-dpi75-7.5-2 - font-bh-lucidatypewriter-dpi75: Obsoleted
 by xorg-x11-fonts-dpi75 (installed binaries and support files)
font-bh-lucidatypewriter-dpi75-7.5-3 - font-bh-lucidatypewriter-dpi75: Obsoleted
 by xorg-x11-fonts-dpi75 (installed binaries and support files)
font-bh-lucidatypewriter-dpi75-7.5-4 - font-bh-lucidatypewriter-dpi75: Obsoleted
 by xorg-x11-fonts-dpi75
texlive-collection-context-20170520-1 - texlive-collection-context: TeX Live con
text package collection
texlive-collection-context-20180414-1 - texlive-collection-context: TeX Live con
text package collection
texlive-collection-context-20190509-1 - texlive-collection-context: TeX Live con
text package collection
xorg-x11-fonts-dpi100-7.5-2 - xorg-x11-fonts-dpi100: X11 core fonts (installed b
inaries and support files)
xorg-x11-fonts-dpi100-7.5-3 - xorg-x11-fonts-dpi100: X11 core fonts (installed b
inaries and support files)
xorg-x11-fonts-dpi100-7.5-4 - xorg-x11-fonts-dpi100: X11 core fonts
xorg-x11-fonts-dpi75-7.5-2 - xorg-x11-fonts-dpi75: X11 core fonts (installed bin
aries and support files)
xorg-x11-fonts-dpi75-7.5-3 - xorg-x11-fonts-dpi75: X11 core fonts (installed bin
aries and support files)
xorg-x11-fonts-dpi75-7.5-4 - xorg-x11-fonts-dpi75: X11 core fonts
...

对于我的 Lucida 字体,我使用的是 Windows 字体

 $ fc-list.exe | grep -i lucida
/usr/share/fonts/microsoft/lucon.ttf: Lucida Console:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Navadno,Arrunta
/usr/share/fonts/microsoft/l_10646.ttf: Lucida Sans Unicode:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
/usr/share/fonts/microsoft/luconP.ttf: Lucida ConsoleP:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Navadno,Arrunta

对于固定的,您可以尝试 terminus-fonts 或 texlive-collection-fontsextra

$ cygcheck -p fixed| grep font | grep -v src
terminus-fonts-4.40-1 - terminus-fonts: Terminus fixed width font (installed binaries and support files)
...
texlive-collection-fontsextra-20170520-1 - texlive-collection-fontsextra: TeX Live fontsextra package collection
texlive-collection-fontsextra-20180414-1 - texlive-collection-fontsextra: TeX Live fontsextra package collection
texlive-collection-fontsextra-20190509-1 - texlive-collection-fontsextra: TeX Live fontsextra package collection

评论

0赞 user2153235 1/25/2020
感谢您分享的信息。这将有助于探索字体。这个问题是关于如何识别 xterm 正在使用的字体,以及一旦知道字体,是否有有效的方法来识别包。看起来做后者的唯一方法是按包名称进行,这看起来很有信息量。
0赞 Thomas Dickey 1/26/2020
它位于下载中链接的 tar 文件中。
1赞 Thomas Dickey 1/26/2020 #2

xterm 的 -report-fonts 选项显示所用字体的详细信息。

有一个脚本 find-xterm-fonts(它知道 Debian 和 RPM 软件包)可以显示用于字体的软件包名称(参见示例)。Cygwin忽略了命令行打包工具,这些工具将使编写此功能的脚本变得简单。您可以修改脚本以使其与 cygcheck 一起使用,例如,使用 -f 选项:

   -f, --find-package   find the package to which FILE belongs

该脚本尝试报告包含已找到的字体文件的包。位图字体位于运行 X 服务器的机器上,因此如果您在本地运行/显示,脚本可以访问所有需要的信息。

评论

0赞 user2153235 1/26/2020
谢谢,托马斯。我将用我发现的 .我关注了你的两个链接,但它们相互引用。想知道我是否错过了什么。某处有脚本吗?-report-fonts