<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\chapter{éœ€è¦ zhfonts å—ï¼Ÿ}

åŸºäºŽç¬¬ \in[chinese-fonts] ç«&nbsp;ä»‹ç»çš„æ±‰å­—å­—ä½“çš„è®¾å®šæ–¹æ³•ï¼Œä½¿ç”¨ \CONTEXT\ è¶³ä»¥æŽ’ç‰ˆä¸­æ–‡æ–‡æ¡£ï¼Œä½†æ˜¯å­˜åœ¨æ±‰å­—æ&nbsp;‡ç‚¹ç¬¦å·çš„é—´è·è¿‡å¤§ä¸”æ—&nbsp;æ³•ä¸Žæ­£æ–‡å·¦å³è¾¹ç•Œå¯¹é½ç­‰é—®é¢˜ã€‚è‹¥ä½&nbsp;å¯¹æ­¤æ—&nbsp;æ³•å¿å—ï¼Œå¯ä»¥è€ƒè™‘ä½¿ç”¨æˆ‘å†™çš„ zhfonts æ¨¡å—ï¼Œå¦å¤–è¯¥æ¨¡å—æ˜¾è‘—ç®€åŒ–äº†ä¸­æ–‡å­—ä½“çš„è®¾å®šã€‚

\section{zhfonts åˆå°è±¡}

æ&nbsp;¹æ®çŽ°åœ¨ä½&nbsp;å·²ç»æŽŒæ¡çš„ \CONTEXT\ çŸ¥è¯†ï¼Œç†è§£ä»¥ä¸‹ä»£ç&nbsp;ï¼Œæƒ³å¿…å·²ä¸åœ¨è¯ä¸‹ï¼š

\starttyping[option=TEX]
\definefallbackfamily
  [foo][rm][latinmodernroman][range={0x0000-0x0400},force=yes]
\definefontfamily[myfonts][rm][nsimsun][bf=simhei,it=kaiti,bi=simhei]
\setscript[hanzi]
\setupbodyfont[foo,12pt]
\setuppapersize[S4]
\setuplayout[width=middle]
\showglyphs  % æ˜¾ç¤ºå­—å½¢è¾¹ç•Œç›’
\starttext
å°çŸ¥ä¸åŠå¤§çŸ¥ï¼Œå°å¹´ä¸åŠå¤§å¹´ã€‚å¥šä»¥çŸ¥å…¶ç„¶ä¹Ÿï¼ŸæœèŒä¸çŸ¥æ™¦æœ”ï¼ŒèŸªè›„ä¸çŸ¥æ˜¥ç§‹ï¼Œæ­¤å°å¹´ä¹Ÿã€‚æ¥šä¹‹å—æœ‰å†¥çµè€…ï¼Œä»¥äº”ç™¾å²ä¸ºæ˜¥ï¼Œäº”ç™¾å²ä¸ºç§‹ï¼›ä¸Šå¤æœ‰å¤§æ¤¿è€…ï¼Œä»¥å…«åƒå²ä¸ºæ˜¥ï¼Œå…«åƒå²ä¸ºç§‹ï¼Œæ­¤å¤§å¹´ä¹Ÿã€‚è€Œå½­ç¥–ä¹ƒä»Šä»¥ä¹…ç‰¹é—»ï¼Œä¼—äººåŒ¹ä¹‹ï¼Œä¸äº¦æ‚²ä¹Žï¼æ±¤ä¹‹é—®æ£˜ä¹Ÿæ˜¯å·²ã€‚ç©·å‘ä¹‹åŒ—ï¼Œæœ‰å†¥æµ·è€…ï¼Œå¤©æ±&nbsp;ä¹Ÿã€‚æœ‰é±¼ç„‰ï¼Œå…¶å¹¿æ•°åƒé‡Œï¼Œæœªæœ‰çŸ¥å…¶ä¿®è€…ï¼Œå…¶åä¸ºé²²ã€‚æœ‰é¸Ÿç„‰ï¼Œå…¶åä¸ºé¹ï¼ŒèƒŒè‹¥æ³°å±±ï¼Œç¿¼è‹¥åž‚å¤©ä¹‹äº‘ï¼ŒæŠŸæ‰¶æ‘‡ç¾Šè§’è€Œä¸Šè€…ä¹ä¸‡é‡Œï¼Œç»äº‘æ°”ï¼Œè´Ÿé’å¤©ï¼Œç„¶åŽå›¾å—ï¼Œä¸”é€‚å—å†¥ä¹Ÿã€‚æ–¥é´³ç¬‘ä¹‹æ›°ï¼šâ€œå½¼ä¸”å¥šé€‚ä¹Ÿï¼Ÿæˆ‘è…¾è·ƒè€Œä¸Šï¼Œä¸è¿‡æ•°ä»žè€Œä¸‹ï¼Œç¿±ç¿”è“¬è’¿ä¹‹é—´ï¼Œæ­¤äº¦é£žä¹‹è‡³ä¹Ÿã€‚è€Œå½¼ä¸”å¥šé€‚ä¹Ÿï¼Ÿâ€æ­¤å°å¤§ä¹‹è¾©ä¹Ÿã€‚
\stoptext
\stoptyping
\noindent å¯¹åº”çš„æŽ’ç‰ˆç»“æžœå¦‚å›¾ \in[none-zhfonts] æ‰€ç¤ºã€‚

è‹¥ä½¿ç”¨ zhfonts æ¨¡å—ï¼Œåˆ™ä¸Šè¿°ç¤ºä¾‹å¯æ”¹å†™ä¸º

\starttyping[option=TEX]
\usemodule[zhfonts][size=12pt]
\setuppapersize[S4]
\setuplayout[width=middle]
\showglyphs  % æ˜¾ç¤ºå­—å½¢è¾¹ç•Œç›’
\starttext
å°çŸ¥ä¸åŠå¤§çŸ¥ï¼Œå°å¹´ä¸åŠå¤§å¹´ [... çœç•¥å¾ˆå¤šå­— ...] æ­¤å°å¤§ä¹‹è¾©ä¹Ÿã€‚
\stoptext
\stoptyping
\noindent å¯¹åº”çš„æŽ’ç‰ˆç»“æžœå¦‚å›¾ \in[zhfonts] æ‰€ç¤ºã€‚

è‹¥è®¤çœŸå¯¹æ¯”å›¾ \in[none-zhfonts] å’Œå›¾ \in[zhfonts] ä¸­çš„æ&nbsp;‡ç‚¹ç¬¦å·çš„æŽ’ç‰ˆç»“æžœï¼Œåˆ™ä¸éš¾å‘çŽ° zhfonts æ¨¡å—è§£å†³çš„é—®é¢˜æ˜¯æ&nbsp;‡ç‚¹é—´è·å¾®è°ƒã€‚

\placefigure[here][none-zhfonts]{æœªä½¿ç”¨ zhfonts çš„ä¸­æ–‡æ&nbsp;‡ç‚¹æŽ’ç‰ˆæ•ˆæžœ}{%
  \clip[width=\textwidth,height=5cm,voffset=1.8cm]{%
    \externalfigure[zhfonts/none-zhfonts.pdf][width=\textwidth]}}
\placefigure[here][zhfonts]{ä½¿ç”¨ zhfonts çš„ä¸­æ–‡æ&nbsp;‡ç‚¹æŽ’ç‰ˆç»“æžœ}{%
  \clip[width=\textwidth,height=4.25cm,voffset=1.8cm]{%
    \externalfigure[zhfonts/zhfonts.pdf][width=\textwidth]}}

\section{å®‰è£… zhfonts}

\useURL[zhfonts][https://github.com/liyanrui/zhfonts/archive/refs/heads/master.zip]
ä¸‹è½½ zhfonts-master.zip åŒ…ï¼Œç½‘ç»œé“¾æŽ¥ä¸º\\
\blueframed{\from[zhfonts]}\\
è§£åŒ…åŽå¯å¾—ç›®å½• zhfonts-masterï¼Œå°†å…¶æ›´åä¸º zhfonts å¹¶ç§»åŠ¨è‡³
\starttyping
$TEXROOT/texmf-local/tex/context/third
\stoptyping
\noindent è‹¥æ—&nbsp;è¯¥ç›®å½•\footnote{\type{$TEXROOT} çš„å«ä¹‰è¯¦è§ \in[fonts-installation] èŠ‚ã€‚}ï¼Œå¯è‡ªè¡Œåˆ›å»ºã€‚

ç„¶åŽæ‰§è¡Œä»¥ä¸‹å‘½ä»¤åˆ·æ–° \CONTEXT\ æ–‡ä»¶ç³»ç»Ÿï¼Œ

\starttyping
$ context --generate
\stoptyping

\noindent ä»¥ä½¿ \CONTEXT\ èƒ½å¤Ÿé€šè¿‡ \type{\usemodule[zhfonts]} æœç´¢å¹¶åŠ&nbsp;è½½ zhfonts æ¨¡å—çš„ç›¸å…³æ–‡ä»¶ã€‚

zhfonts æ¨¡å—é»˜è®¤ä½¿ç”¨ simsun.ttcï¼Œsimhei.ttfï¼Œsimkai.ttf è¿™ä¸‰æ¬¾æ±‰å­—å­—ä½“â€”â€”æƒ³å¿…ä½&nbsp;æ—©å·²æŒ‰ç…§ \in[fonts-installation] èŠ‚çš„ä»‹ç»å®‰è£…äº†å®ƒä»¬â€”â€”ï¼Œè¥¿æ–‡å­—ä½“é»˜è®¤ä½¿ç”¨éš \CONTEXT\ å‘è¡Œçš„ Latin Modern ç³»åˆ—å­—ä½“ã€‚

\section{åŸºæœ¬ç”¨æ³•}

zhfonts é»˜è®¤ä½¿ç”¨ 11 pt æ­£ä½“å­—ï¼ˆå®‹ä½“ + Latin Modern Serifï¼‰ä½œä¸ºæ­£æ–‡å­—ä½“ï¼š

\starttyping[option=TEX]
\usemodule[zhfonts]  % é»˜è®¤æ­£æ–‡å­—å·ä¸º 11 pt
\startTEXpage[frame=on,offset=4pt,width=12cm]
æˆ‘èƒ½åžä¸‹çŽ»ç’ƒè€Œä¸ä¼¤èº«ä½“ã€‚I can eat glass, it does not hurt me.
\stopTEXpage
\stoptyping
\placefigure[none]{}{\externalfigure[zhfonts/01.pdf]}

ä½¿ç”¨æ¨¡å—å‚æ•° \type{style=ss} æˆ– \type{style=tt}ï¼Œå¯å°†æ­£æ–‡å­—ä½“åˆ‡æ¢ä¸ºæ¨¡å—å‚æ•° \type{size} æ‰€è®¾å®šå¤§å°çš„æ—&nbsp;è¡¬çº¿å­—ä½“æˆ–ç­‰å®½å­—ä½“ã€‚ä¾‹å¦‚

\starttyping[option=TEX]
% ä»¥ 12 pt çš„æ—&nbsp;è¡¬çº¿å­—ä½“ä½œä¸ºæ­£æ–‡å­—ä½“ 
\usemodule[zhfonts][style=ss,size=12pt]
\startTEXpage[frame=on,offset=4pt,width=12cm]
æˆ‘èƒ½åžä¸‹çŽ»ç’ƒè€Œä¸ä¼¤èº«ä½“ã€‚I can eat glass, it does not hurt me.
\stopTEXpage
\stoptyping
\placefigure[none]{}{\externalfigure[zhfonts/02.pdf]}

\section{\type{\setupzhfonts}}

ä½¿ç”¨ \type{\setupzhfonts} å¯æ›¿æ¢ zhfonts é»˜è®¤çš„ä¸­æ–‡å’Œè¥¿æ–‡å­—ä½“ã€‚ä¾‹å¦‚ï¼Œå°†é»˜è®¤çš„æ±‰å­—çš„è¡¬çº¿å­—æ—çš„ç²—ä½“æ›´æ¢ä¸º NotoSerifCJK-Bold.ttc\footnote{Google å¼€å‘çš„ Noto å­—ä½“ä¸­çš„ä¸€æ¬¾ï¼Œéœ€è¦ä½&nbsp;åŽ»ç½‘ç»œä¸Šæœç´¢èŽ·å–å¹¶æŒ‰ç…§ \in[fonts-installation] èŠ‚æ‰€ä»‹ç»çš„æ–¹å¼äºˆä»¥å®‰è£…ã€‚}ï¼š

\starttyping[option=TEX]
\setupzhfonts
  [serif]
  [bold=notoserifcjkscbold,
   bolditalic=notoserifcjkscbold]
\stoptyping

äº¦å¯å°†é»˜è®¤çš„æ±‰å­—å­—æ—å…¨éƒ¨æ›¿æ¢ä¸ºå…¶ä»–å­—ä½“ï¼Œä¾‹å¦‚æ›¿æ¢è¡¬çº¿å­—æ—ï¼š

\starttyping[option=TEX]
\setupzhfonts
  [serif]
  [regular=notoserifcjkscregular,
   bold=notoserifcjkscbold,
   italic=notoserifcjkscregular,
   bolditalic=notoserifcjkscbold]
\stoptyping

è¥¿æ–‡å­—ä½“çš„æ›¿æ¢æ–¹å¼ä¸º

\starttyping[option=TEX]
\setupzhfonts
  [latin,serif|sans|mono]
  [regular=...,
   bold=...,
   italic=...,
   bolditalic=...]
\stoptyping

å¯¹äºŽæ•°å­¦å­—ä½“ï¼Œzhfonts ä½¿ç”¨ \CONTEXT\ é»˜è®¤çš„æ•°å­¦å­—ä½“ã€‚å¦‚æžœä½&nbsp;æƒ³æ›´æ¢å…¶ä»–çš„æ•°å­¦å­—ä½“ï¼Œè¯·å‚è€ƒ \CONTEXT\ wiki é¡µã€ŒMath fontsã€\cite[math-fonts]ï¼Œä¾‹å¦‚åˆ‡æ¢ä¸º antykwa å­—ä½“ï¼Œåªéœ€

\starttyping[option=TEX]
\setupzhfonts[math][antykwa]
\stoptyping

zhfonts å¹¶æœªä½¿ç”¨æ±‰å­—å­—ä½“ä¸­çš„è¥¿æ–‡å­—å½¢ï¼Œè€Œæ˜¯æ˜¯å°†æ±‰å­—å­—ä½“ä½œä¸º Fallback å­—ä½“ã€Œæ³¨å…¥ã€åˆ°è¥¿æ–‡å­—ä½“ï¼Œä»Žè€Œå°†æ±‰å­—å­—ä½“ä¸Žè¥¿æ–‡å­—ä½“ç»„æˆäº†æ··åˆå­—ä½“ï¼Œå…·ä½“åŽŸå›&nbsp;å·²åœ¨ \in[fallback-fonts] èŠ‚ç»™å‡ºäº†è¯´æ˜Žã€‚

ä¸¤ç§ä¸åŒçš„å­—ä½“ï¼Œæ··åˆåˆ°ä¸€èµ·ï¼Œå¯èƒ½ä¼šå‡ºçŽ°å­—å½¢å°ºå¯¸ä¸ä¸€è‡´çš„æƒ…å†µã€‚è‹¥é‡åˆ°è¿™ç§æƒ…å†µï¼Œå¯ä½¿ç”¨ \type{\setupzhfonts} çš„ \type{fontname@n.n} çš„å‚æ•°å½¢å¼è®¾ç½®æ±‰å­—çš„ç¼©æ”¾æ¯”ä¾‹ã€‚ä¾‹å¦‚

\starttyping[option=TEX]
\usemodule[zhfonts][size=16pt]
\setupzhfonts
  [serif]
  [regular=@1.5, % è®¾ç½®é»˜è®¤å­—ä½“çš„ rscale å‚æ•°å€¼
   bold=notoserifcjkscbold@0.5]
\startTEXpage[frame=on,offset=4pt]
è¿™æ˜¯æ±‰å­—ï¼ŒThese are English characters.\par
\bf è¿™æ˜¯æ±‰å­—ï¼ŒThese are English characters.
\stopTEXpage
\stoptyping
\placefigure[none]{}{\externalfigure[zhfonts/03.pdf]}

\section{å°ç»“}

zhfonts æ¨¡å—æ˜¯åŸºäºŽ \CONTEXT\ çš„ä¼&nbsp;ç»Ÿçš„ Typescript æœºåˆ¶å®žçŽ°çš„æ±‰å­—å­—ä½“å’Œè‹±æ–‡å­—ä½“çš„æ··åˆã€‚è‹¥æƒ³è§è¯†ä¸€ä¸‹ Typescript çš„ææ€–ä¹‹å¤„ï¼Œåªéœ€ç¼–è¯‘ä»¥ä¸‹å†…å®¹çš„ \CONTEXT\ æºæ–‡ä»¶ï¼š

\starttyping[option=TEX]
\usemodule[zhfonts]
\starttext
\showzhfonts
\stoptext
\stoptyping</pre></body></html>