找回密码
 快速注册
搜索
查看: 52|回复: 4

pdfTeX中使用C:\Windows\Fonts中的.ttf字體

[复制链接]

3149

主题

8387

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65397
QQ

显示全部楼层

hbghlyj 发表于 2024-2-8 04:58 |阅读模式
Verdana font not working下@Ulrike Fischer的回答和@hbghlyj的回答。
新建文件MiKTeX\fonts\enc\dvips\base\winfonts256.enc
$type winfonts256.enc (5.2 KB, 下载次数: 2)
將verdana.map和winfonts.map中的對應行改為(這步不建議直接修改pdftex\pdftex.map,因為在MiKTeX刷新font map files時會重新生成pdftex.map)
  1. rjvnr8t Verdana " winfontsT1Encoding ReEncodeFont " <[winfonts256.enc <verdana.ttf
复制代码

打開MiKTeX console,刷新file name database
Screenshot 2024-02-07 211342.png
現在pdfLaTeX可以使用Verdana
測試:

  1. \documentclass{article}
  2. \usepackage[T1]{fontenc}
  3. \usepackage{verdana}
  4. \begin{document}
  5. `abcdefghijklmnopqrstuvwxyz'
  6. fi
  7. ()[]\{\}
  8. ``ABCDEFGHIJKLMNOPQRSTUVWXYZ''
  9. @\&
  10. \"A\`a
  11. \end{document}
复制代码

或者去掉\usepackage{verdana},用\fontfamily{vna}\selectfont選擇字體
  1. \documentclass{article}
  2. \usepackage[T1]{fontenc}
  3. \begin{document}
  4. \fontfamily{vna}\selectfont
  5. `abcdefghijklmnopqrstuvwxyz'
  6. fi
  7. ()[]\{\}
  8. ``ABCDEFGHIJKLMNOPQRSTUVWXYZ''
  9. @\&
  10. \"A\`a
  11. \end{document}
复制代码

3149

主题

8387

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65397
QQ

显示全部楼层

 楼主| hbghlyj 发表于 2024-2-8 05:10
同樣的方法,試一下Tahoma
在pdftex.map加入
  1. rjthr8t Tahoma " winfontsT1Encoding ReEncodeFont " <[winfonts256.enc <tahoma.ttf
复制代码

\fontfamily{rjt}\selectfont
編譯報錯:
Font shape `T1/rjt/m/n' undefined

我按照mirrors.ctan.org/fonts/verdana/verdana.pdf檢查了afm和tfm文件都有啊(winfonts包含)
如何解決Tahoma不能使用

3149

主题

8387

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65397
QQ

显示全部楼层

 楼主| hbghlyj 发表于 2024-2-8 05:53
使用fontinst安裝了t1tahoma.fd到\texmf-local\tex\latex\MyFonts\Tahoma
$type t1tahoma.fd (431 Bytes, 下载次数: 2)
然後在MiKTeX console刷新File name database
D:\math\test font>pdflatex 1
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (MiKTeX 22.7.25 NEXT) (preloaded format=pdflatex.fmt)
restricted \write18 enabled.
entering extended mode
(1.tex
LaTeX2e <2022-06-01> patch level 5
L3 programming layer <2022-07-04> (D:\MiKTeX\tex/latex/base\article.cls
Document Class: article 2021/10/04 v1.4n Standard LaTeX document class
(D:\MiKTeX\tex/latex/base\size10.clo)) (D:\MiKTeX\tex/latex/base\fontenc.sty)
(D:\MiKTeX\tex/latex/l3backend\l3backend-pdftex.def) (1.aux)
(D:\MiKTeX\tex/latex/winfonts/tex/latex/winfonts\t1verdana.fd) [1{C:/Users/leno
vo/AppData/Local/MiKTeX/fonts/map/pdftex/pdftex.map}] (1.aux) ){D:/MiKTeX/fonts
/enc/dvips/cm-super/cm-super-t1.enc}Trying to make PK font rjvnr8t at 600 DPI...
The METFAONT mode is: ljfour
Running miktex-makemf.exe...

Sorry, but miktex-makemf did not succeed.

The log file hopefully contains the information to get MiKTeX going again:

  C:\Users\lenovo\AppData\Local\MiKTeX\miktex\log\miktex-makemf.log
Running miktex-ttf2pk.exe...
Running miktex-ttf2pk.exe...
ttf2pk: WARNING: Cannot map character `cwm'.
ttf2pk: WARNING: Cannot map character `dotlessj'.
ttf2pk: WARNING: Cannot map character `ff'.
ttf2pk: WARNING: Cannot map character `ffi'.
ttf2pk: WARNING: Cannot map character `ffl'.
ttf2pk: WARNING: Cannot map character `Ohungarumlaut'.
ttf2pk: WARNING: Cannot map character `Uhungarumlaut'.
ttf2pk: WARNING: Cannot map character `Zdotaccent'.
ttf2pk: WARNING: Cannot map character `Idotaccent'.
ttf2pk: WARNING: Cannot map character `dcroat'.
ttf2pk: WARNING: Cannot map character `ohungarumlaut'.
ttf2pk: WARNING: Cannot map character `uhungarumlaut'.
ttf2pk: WARNING: Cannot map character `zdotaccent'.
ttf2pk: WARNING: Cannot map character `SS'.
Creating rjvnr8t.pk...
Installing C:\Users\lenovo\AppData\Local\MiKTeX\fonts/pk/modeless/microsft/verdana/dpi600\rjvnr8t.pk...
<C:\Users\lenovo\AppData\Local\MiKTeX\font
s/pk/modeless/microsft/verdana/dpi600\rjvnr8t.pk><D:/MiKTeX/fonts/type1/public/
cm-super/sfrm1000.pfb>
Output written on 1.pdf (1 page, 26201 bytes).
Transcript written on 1.log.
package winfonts是用ttf2pk生成PK bitmap fonts,放大会变得模糊失真不如上面的package verdana好。
希望可以用package verdana的方法生成矢量圖字體。

3149

主题

8387

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65397
QQ

显示全部楼层

 楼主| hbghlyj 发表于 2024-2-8 20:19
hbghlyj 发表于 2024-2-7 21:53
希望可以用package verdana的方法生成矢量圖字體。

我在這帖28#按照package verdana的方法生成了tahoma的afm和tfm文件。
新建文件MiKTeX\fonts\map\pdftex\ms\tahoma\Tahoma.map,内容為
  1. tahomamn8t Tahoma " winfontsT1Encoding ReEncodeFont " <[T1-WGL4.enc <Tahoma.ttf
复制代码

然後在MiKTeX\miktex\config\updmap.cfg加入
  1. # tahoma
  2. Map Tahoma.map
复制代码

然後在MiKTeX console刷新File name database和Font map files
現在就可以使用\fontfamily{tahoma}\selectfont放大不會失真。
Screenshot 2024-02-08 122838.png
  1. \documentclass{article}
  2. \usepackage[T1]{fontenc}
  3. \begin{document}
  4. \fontfamily{tahoma}\selectfont
  5. `abcdefghijklmnopqrstuvwxyz'
  6. fi
  7. ()[]\{\}
  8. ``ABCDEFGHIJKLMNOPQRSTUVWXYZ''
  9. @\&
  10. \"A\`a
  11. \end{document}
复制代码

运行pdfLaTeX的log有一行warning:
pdfTeX warning: pdflatex (file C:/Users/lenovo/AppData/Local/Microsoft/Windows/
Fonts/Tahoma.ttf): glyph `fi' not found
><D:/MiKTeX/fonts/type1/public/cm-super/sfrm1000.pfb>
Output written on 1.pdf (1 page, 29429 bytes).
pdfTeX 在 Tahoma.ttf 中找不到連字fi所以上圖中fi顯示為方框

3149

主题

8387

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65397
QQ

显示全部楼层

 楼主| hbghlyj 发表于 2024-2-8 21:52
hbghlyj 发表于 2024-2-8 12:19
pdfTeX 在 Tahoma.ttf 中找不到連字fi,所以上圖中fi顯示為方框


利用opentype.js或pymupdf的unicode_to_glyph_name(ch)查找對應的glyph name:
  1. import fitz
  2. font=fitz.Font(fontfile=r"C:\Windows\Fonts\tahoma.ttf")
  3. array=["grave","acute","circumflex","tilde","dieresis","hungarumlaut","ring","caron","breve","macron","dotaccent","cedilla","ogonek","quotesinglbase","guilsinglleft","guilsinglright","quotedblleft","quotedblright","quotedblbase","guillemotleft","guillemotright","endash","emdash","compwordmark","perthousandzero","dotlessi","dotlessj","ff","fi","fl","ffi","ffl","visualspace","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","hyphen","Abreve","Aogonek","Cacute","Ccaron","Dcaron","Ecaron","Eogonek","Gbreve","Lacute","Lcaron","Lslash","Nacute","Ncaron","Eng","Odblacute","Racute","Rcaron","Sacute","Scaron","Scedilla","Tcaron","Tcedilla","Udblacute","Uring","Ydieresis","Zacute","Zcaron","Zdot","IJ","Idot","dmacron","section","abreve","aogonek","cacute","ccaron","dcaron","ecaron","eogonek","gbreve","lacute","lcaron","lslash","nacute","ncaron","eng","odblacute","racute","rcaron","sacute","scaron","scedilla","tcaron","tcedilla","udblacute","uring","ydieresis","zacute","zcaron","zdot","ij","exclamdown","questiondown","sterling","Agrave","Aacute","Acircumflex","Atilde","Adieresis","Aring","AE","Ccedilla","Egrave","Eacute","Ecircumflex","Edieresis","Igrave","Iacute","Icircumflex","Idieresis","Eth","Ntilde","Ograve","Oacute","Ocircumflex","Otilde","Odieresis","OE","Oslash","Ugrave","Uacute","Ucircumflex","Udieresis","Yacute","Thorn","Germandbls","agrave","aacute","acircumflex","atilde","adieresis","aring","ae","ccedilla","egrave","eacute","ecircumflex","edieresis","igrave","iacute","icircumflex","idieresis","eth","ntilde","ograve","oacute","ocircumflex","otilde","odieresis","oe","oslash","ugrave","uacute","ucircumflex","udieresis","yacute","thorn","germandbls"]
  4. string=''
  5. for name in array:
  6.     string=string+'/uni{:04X} '.format(font.glyph_name_to_unicode(name))
  7. # Copy to clipboard:
  8. def copy2clip(txt):
  9.      cmd='echo '+txt.strip()+'|clip'
  10.      return subprocess.check_call(cmd, shell=True)
  11. copy2clip(string)
复制代码

將Package winfonts包含的fonts\enc\pdftex\T1-WGL4.enc修改為
$type T1-WGL4.enc (6.03 KB, 下载次数: 1)
重新运行pdfLaTeX,所有字符就都正確了:
Screenshot 2024-02-08 140048.png

手机版|悠闲数学娱乐论坛(第3版)

GMT+8, 2025-3-4 18:29

Powered by Discuz!

× 快速回复 返回顶部 返回列表