如何在 texlive 中检查字体是否存在?

如何在 texlive 中检查字体是否存在?

R我尝试在我的系统中安装。我运行了./configure,结果-

..................................
................................
config.status: creating tools/Makefile
config.status: creating src/include/config.h
config.status: src/include/config.h is unchanged
config.status: executing libtool commands
config.status: executing stamp-h commands

R is now configured for x86_64-pc-linux-gnu

  Source directory:          .
  Installation directory:    /usr/local

  C compiler:                gcc -std=gnu99  -g -O2
  Fortran 77 compiler:       gfortran  -g -O2

  Default C++ compiler:      g++   -g -O2
  C++98 compiler:            g++  -g -O2
  C++11 compiler:            g++ -std=gnu++11 -g -O2
  C++14 compiler:              
  C++17 compiler:              
  Fortran 90/95 compiler:    gfortran -g -O2
  Obj-C compiler:         

  Interfaces supported:      X11
  External libraries:        readline, curl
  Additional capabilities:   PNG, JPEG, NLS
  Options enabled:           shared BLAS, R profiling

  Capabilities skipped:      TIFF, cairo, ICU
  Options not enabled:       memory profiling

  Recommended packages:      yes

configure: WARNING: pcre < 8.32 is deprecated
configure: WARNING: you cannot build info or HTML versions of the R manuals
configure: WARNING: you cannot build PDF versions of vignettes and help pages
configure: WARNING: neither inconsolata.sty nor zi4.sty found: PDF vignettes and package manuals will not be rendered optimally

现在,我需要iconsolata.sty修复zi4.sty安装警告。如何检查这些字体是否存在于我的 texlive 2017 发行版中。我的操作系统是 Ubuntu 14.04。

/usr/local/texlive/2017/texmf-dist/fonts$ ls
afm  cid  cmap  enc  lig  map  misc  ofm  opentype  ovf  ovp  pk  sfd  source  tfm  truetype  type1  vf

编辑

我检查了tlmgr info iconsolata

tlmgr: cannot find package iconsolata, searching for other matches:

Packages containing `iconsolata' in their title/description:

Packages containing files matching `iconsolata':

这意味着iconsolata我的发行版中可能缺少该字体。如果是真的,如何安装字体?

答案1

的意思tlmgr: cannot find package iconsolata是 tlmgr 不知道名为 的软件包iconsolata,而不是iconsolata您的系统上未安装的软件包。这是因为您输入了错误;您应该搜索inconsolata而不是iconsolata。就我而言,tlmgr info inconsolata结果是

package:     inconsolata
category:    Package
shortdesc:   A monospaced font, with support files for use with TeX
longdesc:    Inconsolata is a monospaced font designed by Raph Levien. This package contains the font (in both Adobe Type 1 and OpenType formats) in regular and bold weights, with additional glyphs and options to control slashed zero, upright quotes and a shapelier lower-case L, plus metric files for use with TeX, and LaTeX font definition and other relevant files.
installed:   Yes
revision:    42871
sizes:       doc: 645k, run: 1273k
relocatable: No
cat-version: 1.112
cat-date:    2017-01-04 22:39:25 +0100
cat-license: oflapache2lppl1.3
cat-topics:  font font-mono font-type1 font-otf font-t1enc
collection:  collection-fontsextra

并且根据R的警告,你会发现installed状态设置为No

如果你想通过 tlmgr 安装软件包,你可以使用tlmgr install命令。要回答问题标题,查看 TeX Live 上是否安装了某些东西的标准方法是使用kpsewhich命令,例如

~$ kpsewhich inconsolata.sty
/usr/local/texlive/2017/texmf-dist/tex/latex/inconsolata/inconsolata.sty

我用了这个词包裹但这并不意味着 LaTeX 包(带有.sty扩展名的文件)。这里的包是 TeX Live 的术语。

此后,封装[l]删除 LaTeX 包并包裹[t]表示 TeX Live 包。包[t] 是提供特定功能的文件包。字体包[t] 通常inconsolata包含

  • 字体定义文件 ( *.fd),
  • 编码定义文件 ( *.enc),
  • TeX 字体度量文件 ( *.tfm),
  • 字体本身(例如*.otf),
  • package[l]( *.sty) 等等。

因此,当您运行 时tlmgr info inconsolata, tlmgr 会查找inconsolatapackage[t] 而不是inconsolata.sty

那么,是什么决定了 TeX Live 是否知道某个特定名称的 package[t]?TeX Live 有一个名为 的 package[t] 数据库texlive.tlpdb,通常位于TEXMFROOT/tlpkg。当该数据库中没有信息时,tlmgr info会声称找不到 package[t]。

相关内容