<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\chapter[chinese-fonts]{æ±‰å­—}

è®© \TeX\ ç³»ç»Ÿæ”¯æŒæ±‰å­—ï¼Œè¿™ä¸ªä»»åŠ¡æ›¾ç»å¾ˆå®¹æ˜“å¯¹æ–°æ‰‹å­¦ä¹&nbsp;å’Œä½¿ç”¨ \TeX\ çš„çƒ­æƒ…é€&nbsp;æˆæ¯ç­æ€§æ‰“å‡»ã€‚åŽæ¥ï¼Œéšç€ \XeTeX\ å’Œ \LuaTeX\ ç­‰çŽ°ä»£ \TeX\ å¼•æ“Žçš„å‡ºçŽ°ï¼Œè¿™é¡¹ä»»åŠ¡çš„éš¾åº¦å·²ç»å¤§å¹…é™ä½Žäº†ã€‚\ConTeXt\ LMTX æ‰€ç”¨çš„ \TeX\ å¼•æ“Žæ˜¯ \LuaMetaTeXï¼Œå¯¹ \LuaTeX\ è¿›è¡Œäº†ç²¾ç®€å¹¶ä½œä¸ºå®ƒçš„ç»§ä»»è€…è€Œç»§ç»­å‘å±•ã€‚å¯èƒ½ä½&nbsp;çŽ°åœ¨å¹¶ä¸ç†è§£è¿™äº›æœ¯è¯­ï¼Œä½†ä¹Ÿä¸å¿…æ‹…å¿ƒï¼Œå¦‚åŒé©¾é©¶ä¸€è¾† \ConTeXt\ æ±½è½¦ï¼Œæ—&nbsp;éœ€çŸ¥é“å®ƒçš„å¼•æ“Žï¼ˆå‘åŠ¨æœºï¼‰æ˜¯å“ªä¸ªå·¥åŽ‚ç”Ÿäº§çš„ï¼Œå…¶æ€§èƒ½å‚æ•°åˆæ˜¯å¦‚ä½•ã€‚

\section[fonts-installation]{å®‰è£…å­—ä½“}

é¦–å…ˆï¼Œéœ€è¦æ‰¾åˆ°ä¸€æ¬¾æ±‰å­—å­—ä½“æ–‡ä»¶ï¼Œå¦åˆ™åªæœ‰å­¦ä»“é¢‰ï¼Œè‡ªå·±é€&nbsp;å­—ã€‚å€˜è‹¥ä½&nbsp;æˆ–ä½&nbsp;çš„æœ‹å‹çš„è®¡ç®—æœºä¸­è£…æœ‰ Windows ç³»ç»Ÿï¼Œå¯ä»Žå¦‚å›¾ \in[msfonts] æ‰€ç¤ºçš„ \type{C:\Windows\Fonts} ç›®å½•ä¸‹èŽ·å¾—å®‹ä½“ï¼ˆsimsun.ttcï¼‰ã€é»‘ä½“ï¼ˆsimhei.ttfï¼‰å’Œæ¥·ä½“ï¼ˆsimkai.ttfï¼‰ç­‰å­—ä½“æ–‡ä»¶ã€‚æœ‰äº†å®ƒä»¬ï¼Œè¶³ä»¥èƒœä»»å¸¸è§„çš„æŽ’ç‰ˆå·¥ä½œã€‚

\placefigure
  [here,force]
  [msfonts]
  {\type{C:\Windows\Fonts}}
  {\externalfigure[03/msfonts.png][width=.6\textwidth]}

åœ¨å¼€å§‹å®‰è£…å­—ä½“ä¹‹å‰ï¼Œéœ€è¦ç»™å‡ºä¸€ä¸ªæœ¯è¯­ï¼Œ\TeX\ æ&nbsp;¹ç›®å½•ã€‚ä»¥ Windows ç³»ç»Ÿä¸ºä¾‹ï¼Œè‹¥ \ConTeXt\ å®‰è£…åœ¨ \type{D:\context} ç›®å½•ï¼Œåˆ™è¯¥ç›®å½•ä¸­çš„å­ç›®å½•å’Œæ–‡ä»¶å½“å¦‚å›¾ \in[tex-root] æ‰€ç¤ºã€‚åœ¨è¿™ç§æƒ…å†µä¸‹ï¼Œ\type{D:\context\tex} ç›®å½•å³ä¸º \TeX\ æ&nbsp;¹ç›®å½•ã€‚åŒç†ï¼Œå¯¹äºŽ Linux å’Œ macOS ç³»ç»Ÿï¼Œè‹¥ \ConTeXt\ å®‰è£…åœ¨ \type{$HOME/context} ç›®å½•ï¼Œåˆ™ \type{$HOME/context/tex} ä¸º \TeX\ æ&nbsp;¹ç›®å½•ã€‚

\placefigure
  [here,force]
  [tex-root]
  {\TeX\ æ&nbsp;¹ç›®å½•}
  {\externalfigure[03/tex-root.png][width=.6\textwidth]}

ä¸ºäº†ä¾¿äºŽæè¿°ï¼Œä»ŽçŽ°åœ¨å¼€å§‹ï¼Œä»¥è™šæž„çš„ç±» Unix çŽ¯å¢ƒå˜é‡é£Žæ&nbsp;¼çš„ \type{$TEXROOT} æŒ‡ä»£ \TeX\ æ&nbsp;¹ç›®å½•ï¼Œä¸å†ä½¿ç”¨å…·ä½“è·¯å¾„ï¼Œå›&nbsp;ä¸ºåŽè€…ä¸¥é‡ä¾èµ–äºŽæ“ä½œç³»ç»Ÿå’Œç”¨æˆ·åå¥½è€Œç¼ºä¹ä¸€è‡´æ€§ã€‚æ­¤å¤–ï¼Œè·¯å¾„ä¸­çš„ç›®å½•é—´éš”ç¬¦ä¹Ÿç»Ÿä¸€ä½¿ç”¨ç±» Unix é£Žæ&nbsp;¼è¿›è¡Œè¡¨ç¤ºï¼Œå³ä½¿ç”¨ã€Œ\type{/}ã€è€Œéž Windows é£Žæ&nbsp;¼çš„ã€Œ\type{\}ã€ï¼Œä¾‹å¦‚ \type{$TEXROOT/texmf} è¡¨ç¤º \TeX\ æ&nbsp;¹ç›®å½•çš„å­ç›®å½• \type{texmf}ã€‚

ä»¥ä¸Šå…³äºŽ \TEX\ æ&nbsp;¹ç›®å½•çš„è®¨è®ºï¼Œä»…é’ˆå¯¹ \CONTEXT\ å¼€å‘è€…æä¾›çš„ \CONTEXT\ åŒ…ã€‚å¯¹äºŽ \TEX\ Live è€Œè¨€ï¼Œå¯å°† \type{texmf-local} ç›®å½•çš„ä¸Šçº§ç›®å½•ä½œä¸º \type{$TEXROOT}ã€‚

ä¸º \ConTeXt\ å®‰è£…å®‹ä½“ï¼ˆsimsun.ttcï¼‰ã€é»‘ä½“ï¼ˆsimhei.ttfï¼‰å’Œæ¥·ä½“ï¼ˆsimkai.ttfï¼‰çš„å…·ä½“è¿‡ç¨‹å¦‚ä¸‹ï¼š

\startitemize[n,packed][stopper=,left=(,right=)]
\item å°†ä¸Šè¿°å­—ä½“æ–‡ä»¶å¤åˆ¶åˆ° \type{$TEXROOT/texmf-local/fonts/truetype/msfonts} ç›®å½•ï¼Œè‹¥è¯¥ç›®å½•ä¸å­˜åœ¨ï¼Œåˆ™è‡ªè¡Œåˆ›å»ºï¼›
\item æ‰§è¡Œã€Œ\type{context --generate}ã€å‘½ä»¤ï¼Œåˆ·æ–° \ConTeXt\ çš„æ–‡ä»¶æ•°æ®åº“ï¼š
\item æ‰§è¡Œã€Œ\type{mtxrun --script fonts --reload --force}ã€å‘½ä»¤ï¼Œè½½å…¥æ–°æ·»åŠ&nbsp;çš„å­—ä½“ï¼š
\stopitemize

å­—ä½“å®‰è£…å®Œæ¯•åŽï¼Œå¯ä»¥é€šè¿‡æŸ¥è¯¢å­—ä½“æ–‡ä»¶åç¡®è®¤å­—ä½“æ˜¯å¦å®‰è£…æˆåŠŸï¼Œä¾‹å¦‚æŸ¥è¯¢ simhei.ttfï¼š

\starttyping
$ mtxrun --script fonts --list --file simhei.ttf
familyname   weight   style    width    variant   fontname   filename     ...
simhei       normal   normal   normal   normal    simhei     simhei.ttf
\stoptyping

\noindent æŸ¥è¯¢ç»“æžœä¸­çš„ \type{fontname} æ&nbsp;å¾ˆé‡è¦ï¼Œå›&nbsp;ä¸ºåœ¨æŽ’ç‰ˆæ—¶ï¼Œé€šå¸¸è¦ä½¿ç”¨å­—ä½“åå­—æŒ‡ä»£æŸä¸ªå­—ä½“ã€‚ä¸Šè¿°å‘½ä»¤ä¹Ÿå¯ç”¨äºŽæŸ¥è¯¢ simkai.ttf çš„ä¿¡æ¯ï¼Œä½†æ˜¯æ—&nbsp;æ³•ç”¨äºŽæŸ¥è¯¢ TTC å­—ä½“ simsun.ttcï¼Œå¯èƒ½æ˜¯å›&nbsp; TTC å­—ä½“æ–‡ä»¶è¾ƒä¸ºç‰¹æ®Šï¼Œä½†æ—&nbsp;è®ºå¦‚ä½•ï¼Œè¿™æ˜¯ \type{mtxrun} çš„ \type{fonts} è„šæœ¬çš„ä¸€ä¸ª bugï¼Œå¸Œæœ›æ—¥åŽèƒ½è¢«ä¿®å¤ã€‚

æŸ¥è¯¢ simsun.ttc å¯¹åº”çš„å­—ä½“åï¼Œå¯ä»¥ä½¿ç”¨ä»¥ä¸‹å‘½ä»¤ï¼š

\starttyping
$ mtxrun --script fonts --list --all simsun
identifier       familyname   fontname   filename     subfont   instances
nsimsunnormal    nsimsun      nsimsun    simsun.ttc   2
nsimsunregular   nsimsun      nsimsun    simsun.ttc   2
simsun           simsun       simsun     simsun.ttc   1
simsunnormal     simsun       simsun     simsun.ttc   1
simsunregular    simsun       simsun     simsun.ttc   1
\stoptyping

\noindent\type{subfont} æ&nbsp;è¡¨æ˜Ž simsun.ttc é‡ŒåŒ…å«äº†ä¸¤ç§å­—ä½“ï¼Œä¸€ç§æ˜¯ \type{simsun}ï¼ˆå®‹ä½“ï¼‰ï¼Œå¦ä¸€ç§æ˜¯ \type{nsimsun}ï¼ˆæ–°å®‹ä½“ï¼‰ã€‚æ­¤å¤–ï¼Œè¯·å¯¹ \type{identifier} å’Œ \type{familyname} æ&nbsp;ç•¥åŠ&nbsp;ç•™æ„ï¼Œ\in[define-family] èŠ‚éœ€è¦è¿™äº›ä¿¡æ¯ã€‚

éœ€è¦æ³¨æ„ï¼Œä¸Šè¿°è¿‡ç¨‹å®‰è£…çš„å­—ä½“éƒ½æ˜¯æœ‰ç‰ˆæƒçš„ï¼Œå€˜è‹¥ä½œå•†ä¸šç”¨é€”ï¼Œéœ€è¦å‘å¼€å‘è¿™äº›å­—ä½“çš„å…¬å¸æ”¯ä»˜æŽˆæƒè´¹ç”¨ã€‚æœ¬æ–‡æ¡£ä¹‹æ‰€ä»¥é€‰æ‹©ä½¿ç”¨å®ƒä»¬ï¼Œä¸»è¦æ˜¯ä¸ºäº†å…¼å®¹å›½å†…åœ¨æ–‡æ¡£å­—ä½“é€‰ç”¨ä¸Šçš„ç§¯ä¹&nbsp;ã€‚ç½‘ç»œä¸Šèƒ½å¤Ÿæ‰¾åˆ° Google å…¬å¸å¼€å‘çš„ä¸€ç³»åˆ—å…è´¹çš„æ±‰å­—å­—ä½“ï¼Œä¾‹å¦‚ Noto ç³»åˆ—ï¼Œå…¶å®‰è£…æ–¹å¼å¯å‚è€ƒä¸Šè¿°è¿‡ç¨‹ï¼Œæ—&nbsp;é¡»èµ˜è¿°ã€‚æ­¤å¤–ï¼Œè‹¥å®‰è£…æ‰©å±•åä¸ºã€Œ\type{.otf}ã€çš„å­—ä½“ï¼Œå³ OpenType å­—ä½“ï¼Œå»ºè®®å°†å®ƒä»¬å®‰è£…åˆ° \type{$TEXROOT/texmf-local/fonts/opentype} ç›®å½•ï¼Œè‹¥æ—&nbsp;è¯¥ç›®å½•ï¼Œå¯è‡ªè¡Œåˆ›å»ºã€‚

\section{å­—ä½“çš„å®šä¹‰ä¸Žä½¿ç”¨}

ç¤ºä¾‹ \in[hello-hanzi] æ¼”ç¤ºäº†å¦‚ä½•åœ¨æ–°æ‰‹æ‘é‡Œä¸º \ConTeXt\ å®šä¹‰å¤§å°ä¸º 12 pt çš„å®‹ä½“ï¼Œé»‘ä½“å’Œæ¥·ä½“ç­‰å­—ä½“åˆ‡æ¢å‘½ä»¤ï¼Œå¹¶ä½¿ç”¨å®ƒä»¬å„æŽ’ç‰ˆä¸€è¡Œæ–‡å­—ã€‚

\startsample
\startTEXpage[frame=on,offset=4pt]
\definefont[songti][name:simsun at 12pt]
\definefont[heiti][name:simhei at 12pt]
\definefont[kaiti][name:kaiti at 12pt]
\songti æ½œé¾™å‹¿ç”¨ã€‚\\
\heiti è§é¾™åœ¨ç”°ï¼Œåˆ©è§å¤§äººã€‚\\
\kaiti å›å­ç»ˆæ—¥ä¹¾ä¹¾ï¼Œå¤•æƒ•è‹¥åŽ‰ï¼Œæ—&nbsp;å’Žã€‚
\stopTEXpage
\stopsample
\sample[option=TEX][hello-hanzi]{ä¸‰ç§æ±‰å­—å­—ä½“}{\externalfigure[03/qian.pdf]}

éœ€è¦æ³¨æ„çš„æ˜¯ï¼Œç¬¬ä¸€æ¬¡åœ¨ \ConTeXt\ ä¸­ä½¿ç”¨æ–°å®‰è£…çš„æ±‰å­—å­—ä½“ï¼Œæºæ–‡ä»¶ç¼–è¯‘è¿‡ç¨‹ä¼šè¾ƒä¸ºç¼“æ…¢ï¼Œå›&nbsp;ä¸º \ConTeXt\ éœ€è¦è§£æžå­—ä½“æ–‡ä»¶ä¸­çš„ä¸€äº›ç¼–ç&nbsp;ä¿¡æ¯å¹¶å°†è§£æžç»“æžœå­˜åˆ°å®ƒçš„å­—ä½“ç¼“å­˜ç›®å½•ã€‚å¾…ä¸‹ä¸€æ¬¡ä½¿ç”¨ç»è¿‡ç¼“å­˜åŽå­—ä½“æ—¶ï¼Œç¼–è¯‘é€Ÿåº¦ä¾¿ä¼šæ­£å¸¸ï¼Œå›&nbsp;æ­¤ä¸åº”æ€¥åˆ‡å®£åˆ¤ \ConTeXt\ ä¸é€‚åˆå¤„ç†ä¸­æ–‡æ–‡æ¡£ã€‚æˆ‘çš„è®¡ç®—æœº CPU æ˜¯ \type{Intel i5-4300U @ 1.90GHz}ã€‚è¿™ä»½æ–‡æ¡£å†™è‡³æ­¤å¤„ï¼Œå·²æœ‰ 20 é¡µå†…å®¹ï¼Œå…¶æºæ–‡ä»¶å•æ¬¡ç¼–è¯‘æ—¶é—´ä¸åˆ° 3 ç§’ã€‚æˆ‘æ„Ÿè§‰ \ConTeXt\ å¤„ç†ä¸­æ–‡æ–‡æ¡£ï¼Œå¹¶ä¸æ˜¯å¾ˆæ…¢ï¼Œä½†æ˜¯åº”å½“æ‰¿è®¤ï¼Œè‚¯å®šæ˜¯æ¯”åŸºäºŽ \pdfTeX æˆ– \XeTeX ç­‰å¼•æ“Žçš„ \TeX\ è¦æ…¢ä¸€äº›ã€‚

\section[breaking-lines]{ä¸­æ–‡æ–­è¡Œ}

çŽ°åœ¨å°è¯•ç”¨å®‹ä½“å­—æŽ’ç‰ˆä¸€æ®µä¸­æ–‡ï¼Œè§ç¤ºä¾‹ \in[æ—&nbsp;æ³•æ–­è¡Œ]ã€‚ç»“æžœè¡¨æ˜Žï¼Œä»…ä»…èƒ½åœ¨ \ConTeXt\ ä¸­ä½¿ç”¨æ±‰å­—å­—ä½“æ˜¯ä¸å¤Ÿçš„ï¼Œå›&nbsp;ä¸º \ConTeXt\ æ­¤åˆ»å°šä¸çŸ¥åœ¨é™å®šå®½åº¦çš„ç‰ˆé¢å†…å¦‚ä½•å¯¹æ±‰å­—è¿›è¡Œæ–­è¡Œï¼Œä»¥è‡´æ–‡å­—è¶…å‡ºç‰ˆé¢ã€‚ç©¶å…¶åŽŸå›&nbsp;ï¼Œæ˜¯æ±‰å­—ä¹‹é—´ä¸åƒè¥¿æ–‡å•è¯ä»¥ç©ºæ&nbsp;¼ä½œä¸ºé—´éš”ï¼Œå›&nbsp;æ­¤åœ¨ \ConTeXt\ çœ‹æ¥ï¼Œä¸€æ®µæ±‰å­—æ–‡å­—ç­‰åŒäºŽä¸€ä¸ªå¾ˆé•¿çš„è¥¿æ–‡å•è¯ï¼Œæ˜¯ä¸€ä¸ªæ—&nbsp;æ³•åˆ†éš”çš„å•å…ƒã€‚

\startsample
\startTEXpage[frame=on,width=5cm,offset=4pt]
\definefont[songti][name:simsun at 12pt]
\songti
æ½œé¾™å‹¿ç”¨ã€‚è§é¾™åœ¨ç”°ï¼Œåˆ©è§å¤§äººã€‚%
å›å­ç»ˆæ—¥ä¹¾ä¹¾ï¼Œå¤•æƒ•è‹¥åŽ‰ï¼Œæ—&nbsp;å’Žã€‚
\stopTEXpage
\stopsample
\sample[option=TEX][æ—&nbsp;æ³•æ–­è¡Œ]{ä¸­æ–‡æ®µè½æ—&nbsp;æ³•æ–­è¡Œ}{\externalfigure[03/breakinglines-1.pdf]}

éœ€è¦æ³¨æ„ç¤ºä¾‹ \in[æ—&nbsp;æ³•æ–­è¡Œ] ä¸­çš„æ³¨é‡Šç¬¦çš„ç”¨æ³•ã€‚è™½ç„¶æ³¨é‡Šå†…å®¹ä¸ºç©ºï¼Œä½†æ³¨é‡Šç¬¦å¯ä»¤ \TeX\ å¼•æ“Žå¿½ç•¥å…¶åŽçš„æ‰€æœ‰ç©ºç™½å­—ç¬¦ï¼ˆåŒ…æ‹¬æ¢è¡Œç¬¦ï¼‰ã€‚å€˜è‹¥å°†è¯¥ç¤ºä¾‹ä¸­çš„æ³¨é‡Šç¬¦åŽ»æŽ‰ï¼Œç¬¬ä¸€è¡Œæ±‰å­—å’Œç¬¬äºŒè¡Œæ±‰å­—ä¹‹é—´çš„æ¢è¡Œç¬¦ä¼šè¢« \TeX\ å¼•æ“Žè§†ä¸ºç©ºç™½å­—ç¬¦ï¼Œä»Žè€Œè®© \ConTeXt\ è§‰å¾—ï¼Œå®ƒé¢å¯¹çš„æ˜¯ä¸¤ä¸ªè¾ƒé•¿çš„å•è¯ï¼Œå®ƒä»¬ä¹‹é—´å¯ä»¥æ–­è¡Œï¼Œç»“æžœè§ç¤ºä¾‹ \in[å°†é”™å°±é”™]ï¼Œå¯ä»¥æ–­è¡Œï¼Œä½†å±žäºŽè¯¯æ‰“è¯¯æ’žã€‚

\startsample
\startTEXpage[frame=on,width=5cm,offset=4pt]
\definefont[songti][name:simsun at 12pt]
\songti
æ½œé¾™å‹¿ç”¨ã€‚è§é¾™åœ¨ç”°ï¼Œåˆ©è§å¤§äººã€‚
å›å­ç»ˆæ—¥ä¹¾ä¹¾ï¼Œå¤•æƒ•è‹¥åŽ‰ï¼Œæ—&nbsp;å’Žã€‚
\stopTEXpage
\stopsample
\sample[option=TEX][å°†é”™å°±é”™]{ä¸­æ–‡æ®µè½æ—&nbsp;æ³•æ–­è¡Œ}{\externalfigure[03/breakinglines-2.pdf]}

çŽ°åœ¨ï¼Œæˆ‘ä»¬å¯ä»¥çµæœºä¸€åŠ¨ï¼Œæ—¢ç„¶æ¢è¡Œç¬¦è¢« \TeX\ å¼•æ“Žè§†ä¸ºç©ºç™½å­—ç¬¦ä»Žè€Œä½¿å¾— \ConTeXt\ è¯¯æ‰“è¯¯æ’žå¯¹æ±‰å­—è¿›è¡Œäº†ä¸€æ¬¡æ–­è¡Œï¼Œé‚£ä¹ˆå€˜è‹¥åœ¨æ±‰å­—ä¹‹é—´æ‰‹å·¥æ’å…¥ç©ºæ&nbsp;¼å­—ç¬¦ï¼Œ\ConTeXt\ èƒ½å¦å®žçŽ°æ±‰å­—æ–­è¡Œå‘¢ï¼Ÿç­”æ¡ˆæ˜¯ï¼Œå¯è¡Œï¼Œè§æºæ–‡æ¡£æ˜¾çŽ°äº†ç©ºæ&nbsp;¼å­—ç¬¦ï¼ˆä»¥ \type[space=on]{ } è¡¨ç¤ºï¼‰çš„ç¤ºä¾‹ \in[æ‰‹å·¥æ–­è¡Œ]ï¼Œåªæ˜¯ç©ºæ&nbsp;¼çš„å­˜åœ¨ï¼Œå¯¼è‡´æŽ’ç‰ˆç»“æžœä¸­çš„æ±‰å­—åˆ†å¸ƒè¾ƒä¸ºè“¬æ¾ã€‚

\startsample
\startTEXpage[frame=on,width=5cm,offset=4pt]
\definefont[songti][name:simsun at 12pt]
\songti
æ½œ é¾™ å‹¿ ç”¨ã€‚ è§ é¾™ åœ¨ ç”°ï¼Œ åˆ© è§ å¤§ äººã€‚
å› å­ ç»ˆ æ—¥ ä¹¾ ä¹¾ï¼Œ å¤• æƒ• è‹¥ åŽ‰ï¼Œ æ—&nbsp; å’Žã€‚
\stopTEXpage
\stopsample
\sample[option=TEX,space=on][æ‰‹å·¥æ–­è¡Œ]{ä¸­æ–‡æ®µè½æ‰‹å·¥æ’å…¥ç©ºæ&nbsp;¼è¿›è¡Œæ–­è¡Œ}{\externalfigure[03/breakinglines-3.pdf]}

ä½äºŽ \ConTeXt\ åº•å±‚çš„ \TeX\ ç³»ç»Ÿæä¾›äº†ç²˜è¿žï¼ˆGlueï¼‰æœºåˆ¶ï¼Œæˆ‘ä»¬å¯ä»¥ç”¨å®ƒå®šä¹‰ç»™å®šå®½åº¦ä¸”æœ‰äº›è®¸å¼¹æ€§çš„ç©ºæ&nbsp;¼ã€‚ä¾‹å¦‚ï¼Œå®šä¹‰ä¸€ä¸ªå®½åº¦ä¸º 0ï¼Œæœ€å¤§å¯ä¼¸å±• 2 pt ä¸”ä¸å¯æ”¶ç¼©çš„ç²˜è¿žï¼š

\starttyping[option=TEX]
\def\foo{\hskip 0pt plus 2pt minus 0pt}
\stoptyping

\noindent ç„¶åŽç”¨è¯¥ç²˜è¿žä»£æ›¿ç©ºæ&nbsp;¼ï¼Œæ’å…¥åˆ°æ±‰å­—ä¹‹é—´ï¼Œä¾¿åŸºæœ¬å¯å®žçŽ°æ±‰å­—æ–­è¡Œï¼Œç»“æžœè§ç¤ºä¾‹ \in[æ‰‹å·¥æ’å…¥ç²˜è¿žæ–­è¡Œ]ï¼Œéœ€è¦æ³¨æ„çš„æ˜¯ï¼Œ\TeX\ ä¼šè‡ªåŠ¨å¿½ç•¥æŽ’ç‰ˆå‘½ä»¤ä¹‹åŽå°¾éšçš„ç©ºæ&nbsp;¼ï¼Œå›&nbsp;æ­¤ \type{\foo} ä¹‹åŽè™½ç„¶æœ‰ä¸€ä¸ªç©ºæ&nbsp;¼ï¼Œä½†è¯¥ç©ºæ&nbsp;¼ä¸ä¼šåœ¨æŽ’ç‰ˆç»“æžœé‡Œå‡ºçŽ°ã€‚

\startsample
\startTEXpage[frame=on,width=5cm,offset=4pt]
\definefont[songti][name:simsun at 12pt]
\def\foo{\hskip 0pt plus 2pt minus 0pt}
\songti
æ½œ\foo é¾™\foo å‹¿\foo ç”¨ã€‚%
\foo è§\foo é¾™\foo åœ¨\foo ç”°ï¼Œ\foo åˆ©\foo è§%
\foo å¤§\foo äººã€‚%
\foo å›\foo å­\foo ç»ˆ\foo æ—¥\foo ä¹¾\foo ä¹¾ï¼Œ%
\foo å¤•\foo æƒ•\foo è‹¥\foo åŽ‰ï¼Œ\foo æ—&nbsp;\foo å’Žã€‚
\stopTEXpage
\stopsample
\sample[option=TEX,space=on][æ‰‹å·¥æ’å…¥ç²˜è¿žæ–­è¡Œ]{ä¸­æ–‡æ®µè½æ‰‹å·¥æ’å…¥ç²˜è¿žè¿›è¡Œæ–­è¡Œ}{\externalfigure[03/breakinglines-4.pdf]}

ç”±äºŽæ²¡æœ‰äººæ„¿æ„åƒç¤ºä¾‹ \in[æ‰‹å·¥æ’å…¥ç²˜è¿žæ–­è¡Œ] é‚£æ&nbsp;·æŽ’ç‰ˆæ±‰å­—ï¼Œå›&nbsp;æ­¤ \ConTeXt\ æä¾›äº†ä¸€ä¸ªå¯ä»¥è‡ªåŠ¨åœ¨æ±‰å­—ä¹‹é—´æ’å…¥ç²˜è¿žçš„å‘½ä»¤ï¼Œå³

\starttyping[option=TEX]
\setscript[hanzi]
\stoptyping

\noindent ä¸Šè¿°è¿‡ç¨‹å¤§è´¹å‘¨ç«&nbsp;ï¼Œä»…ä»…æ˜¯è®©ä½&nbsp;æ˜Žç™½ \type{\setscript[hanzi]} çš„åŽŸç†ã€‚æ­¤å¤–ï¼Œä½&nbsp;ç”šè‡³å­¦ä¼šäº†å¦‚ä½•å®šä¹‰ä¸€ä¸ª \TeX\ å®ï¼Œå³ \type{\foo}ï¼Œä»Žè€Œé¿å…äº†åƒä¸‹é¢è¿™æ&nbsp;·è¾“å…¥ç¹ççš„æŽ’ç‰ˆå‘½ä»¤ï¼š

\starttyping[option=TEX]
æ½œ\hskip 0pt plus 2pt minus 0pt é¾™\hskip 0pt plus 2pt minus 0pt å‹¿â€¦â€¦
\stoptyping

\noindent å€˜è‹¥ä½&nbsp;æ“…é•¿å®šä¹‰ä½&nbsp;æ‰€éœ€è¦çš„ \TeX\ å®ï¼Œä¾¿å¯ä»¥è‡ªå·±åˆ›é€&nbsp;ä¸€ä¸ªå¯ä¸Ž \ConTeXt\ åª²ç¾Žçš„å®åŒ…ã€‚çŽ°åœ¨ï¼Œå·²ç»éšéšçŸ¥é“äº†\ConTeXt\ çš„ä¸€äº›çœŸç›¸äº†å§ã€‚

\section{å†™ä¸€å°çœŸæ­£çš„ä¿¡}

\startsample
\startTEXpage[frame=on,width=6cm,offset=6pt]
\definefont[songti][name:simsun at 10.5pt]
\setscript[hanzi] % ä¸­æ–‡æ–­è¡Œæ”¯æŒ
\songti
\setupindenting[always,first,2em]
\setupinterlinespace[1.5]
\noindent äº²çˆ±çš„æœ‹å‹ï¼š\par
ä½&nbsp;ä»¬å¥½å—ï¼Ÿ\par
çŽ°åœ¨å·¥ä½œå¾ˆå¿™å§ï¼Œèº«ä½“å¥½å—ï¼Ÿæˆ‘çŽ°åœ¨äº”æŒ‡å±±æŒºå¥½çš„ã€‚
è™½ç„¶æˆ‘å¾ˆå°‘å†™ä¿¡ï¼Œå…¶å®žæˆ‘å¾ˆæ€€å¿µèŠ±æžœå±±ã€‚\par
äº”ç™¾å¹´åŽçš„æ˜¥èŠ‚ï¼Œæˆ‘ä¸€å®šå›žå±±ã€‚
å¥½äº†ï¼Œå…ˆå†™åˆ°è¿™å§ã€‚\par
æ­¤è‡´\par
\noindent æ•¬ç¤¼\par
\rightaligned{å­™æ‚Ÿç©º}
\rightaligned{2035.10.1}
\stopTEXpage
\stopsample
\sample[option=TEX][å­™æ‚Ÿç©ºçš„ä¿¡]{å­™æ‚Ÿç©ºçš„ä¿¡}{\externalfigure[03/breakinglines-5.pdf]}

ä»ŽçŽ°åœ¨å¼€å§‹ï¼Œåœ¨æä¾›ç¤ºä¾‹æ—¶ï¼Œä¸ºäº†èŠ‚çœç¯‡å¹…ï¼Œæˆ‘æœ‰æ—¶ä¼šçœç•¥ä¸€éƒ¨åˆ†ç»å¸¸é‡å¤ä½¿ç”¨çš„ä»£ç&nbsp;ï¼Œä»…ç»™å‡ºå…³é”®ä»£ç&nbsp;ä»¥çªå‡ºé‡ç‚¹ï¼Œåœ¨æœ‰å…´è‡´åŠ¨æ‰‹è¯•éªŒè¿™äº›ä»£ç&nbsp;æ—¶ï¼Œéœ€è¦ä½&nbsp;è‡ªå·±åŠ¨æ‰‹æ·»åŠ&nbsp;è¢«çœç•¥çš„ä»£ç&nbsp;ã€‚

\section{å­—æ—}

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

å›žå¿†ä¸€ä¸‹ï¼Œåœ¨å­¦ä¼šå®‰è£…å’Œä½¿ç”¨æ±‰å­—å­—ä½“ä¹‹å‰ï¼Œç”¨ \ConTeXt\ æŽ’ç‰ˆè‹±æ–‡å†…å®¹ï¼Œæˆ‘ä»¬å¹¶æœªè®¾ç½®ä»»ä½•è¥¿æ–‡å­—ä½“ï¼Œ\ConTeXt\ ä¾ç„¶èƒ½å®ŒæˆæŽ’ç‰ˆã€‚è¿™æ„å‘³ç€ \ConTeXt\ å·²ç»ä¸ºç”¨æˆ·å®šä¹‰äº†ä¸€å¥—è¥¿æ–‡å­—ä½“ï¼Œä¸”åœ¨æŽ’ç‰ˆçŽ¯å¢ƒä¸­é»˜è®¤å¯ç”¨äº†ã€‚è¿™å¥—å­—ä½“ç”±åå¤šç§å­—ä½“ç»„æˆï¼Œç»Ÿç§°ä¸º Computer Modern Romanï¼ˆç®€ç§° cmrï¼‰å­—ä½“ï¼Œå¯åˆ†ä¸ºå››æ—ï¼šè¡¬çº¿ï¼ˆSerifï¼‰ã€æ—&nbsp;è¡¬çº¿ï¼ˆSans Serifï¼‰ã€ç­‰å®½ï¼ˆMonospaceï¼‰ä»¥åŠæ•°å­¦ã€‚å‰ä¸‰ä¸ªå­—æ—åŸºæœ¬ä¸Šåˆåˆ†åˆ«ç»†åˆ†ä¸ºæ­£ä½“ï¼ˆRegular æˆ– Normalï¼‰ã€ç²—ä½“ï¼ˆBoldï¼‰ã€æ–œä½“ï¼ˆItalicï¼‰å’Œç²—æ–œä½“ï¼ˆBoldItalicï¼‰ã€‚

\ConTeXt\ é»˜è®¤å¯ç”¨çš„æ­£æ–‡å­—ä½“æ˜¯è¡¬çº¿å­—æ—ä¸­çš„æ­£ä½“ã€‚\type{\rm}ï¼Œ\type{\ss} å’Œ \type{\tt} å¯åˆ†åˆ«ç”¨äºŽå°†å­—ä½“åˆ‡æ¢ä¸ºè¡¬çº¿ã€æ—&nbsp;è¡¬çº¿å’Œç­‰å®½å­—æ—çš„æ­£ä½“ã€‚\type{\tf}ï¼Œ\type{\bf}ï¼Œ\type{\it} å’Œ {\type{\bi}} å¯åˆ†åˆ«ç”¨äºŽåˆ‡æ¢æ¯ä¸ªå­—æ—ä¸­çš„æ­£ä½“ã€ç²—ä½“ã€æ–œä½“å’Œç²—æ–œä½“ç­‰å­—ä½“ã€‚ç¤ºä¾‹ \in[é»˜è®¤å­—ä½“] æ¼”ç¤ºäº†å¦‚ä½•åˆ‡æ¢å„ç§å­—ä½“ä»¥åŠ \type{{...}} çš„ç”¨æ³•ã€‚åœ¨é»˜è®¤æƒ…å†µä¸‹ï¼Œ\TeX\ å¼•æ“Žå°†ä¸€å¯¹èŠ±æ‹¬å·æ‰€åŒ…å«çš„å†…å®¹è§†ä¸ºä¸€ä¸ªæ•´ä½“ï¼Œ\TeX\ æœ¯è¯­ç§°ä¹‹ä¸ºç¼–ç»„ï¼ˆGroupï¼‰ã€‚ç¼–ç»„å†…éƒ¨çš„æŽ’ç‰ˆå‘½ä»¤ä¸ä¼šå¯¹ç¼–ç»„å¤–éƒ¨äº§ç”Ÿä»»ä½•å½±å“ï¼Œä½†ç¼–ç»„å¤–éƒ¨çš„æŽ’ç‰ˆå‘½ä»¤ä¼šå½±å“ç¼–ç»„å†…éƒ¨ã€‚

\startsample
% è¡¬çº¿å­—ä½“
Hello. {\bf Hello.}
{\it Hello.} {\bi Hello.}\\
% æ—&nbsp;è¡¬çº¿å­—ä½“
\ss Hello. {\bf Hello.}
{\it Hello.} {\bi Hello.}\\
% ç­‰å®½å­—ä½“
\tt Hello. {\bf Hello.}
{\it Hello.} {\bi Hello.}\\
% å°†å­—ä½“åˆ‡æ¢ä¸ºè¡¬çº¿å­—ä½“
\rm
% æ•°å­¦å­—ä½“
Math in text mode: $\int_a^b f(x)dx$\\
Math in display mode:
\startformula
\int_a^b f(x)dx
\stopformula
\stopsample
\sample[option=TEX][é»˜è®¤å­—ä½“]{\ConTeXt\ é»˜è®¤å­—ä½“}{\externalfigure[03/defaultfonts.pdf]}

\ConTeXt\ é»˜è®¤æ­£æ–‡å­—ä½“çš„å¤§å°ä¸º 12 ptï¼Œå¹¶ä»¥è¯¥å°ºå¯¸ä¸ºåŸºå‡†ï¼Œå®šä¹‰äº† 6 ç§ä¸åŒçº§åˆ«çš„å­—ä½“å°ºå¯¸ï¼Œä»Žå°åˆ°å¤§ä¾åºä¸ºï¼š\type{xx}ï¼Œ\type{x}ï¼Œ\type{a}ï¼Œ\type{b}ï¼Œ\type{c}ï¼Œ\type{d}ã€‚\type{x} çº§æ¯”æ­£æ–‡å­—ä½“å°ï¼Œ\type{a} çº§æ¯”æ­£æ–‡å­—ä½“å¤§ã€‚ç¤ºä¾‹ \in[fontsize-level] æ¼”ç¤ºäº†æ—&nbsp;è¡¬çº¿å­—æ—çš„æ­£ä½“å­—ä½“ 7 ç§å¤§å°çº§åˆ«çš„åˆ‡æ¢ã€‚

\startsample
\ss {\tfxx A} {\tfx A} A or {\tf A}
{\tfa A} {\tfb A} {\tfc A} {\tfd A}
\stopsample
\sample[option=TEX][fontsize-level]{å­—ä½“å¤§å°çš„ 7 ç§çº§åˆ«}{\externalfigure[03/fontsize-level.pdf]}

æ­¤å¤–ï¼Œè¿˜éœ€è¦æ³¨æ„çš„æ˜¯ï¼Œå°ºå¯¸å•ä½ em çš„å«ä¹‰ã€‚ä¹‹å‰æˆ‘å¯¹å®ƒç»™å‡ºè§£é‡Šæ˜¯å­—æ¯ \type{M} å®½åº¦ï¼Œæ°å¥½ç­‰äºŽ 1 ä¸ªæ±‰å­—çš„å®½åº¦ï¼Œè¿™æ˜¯é’ˆå¯¹å½“å‰æ‰€çš„å­—ä½“çŽ¯å¢ƒè€Œè¨€çš„ã€‚ä¾‹å¦‚ï¼Œåœ¨ç¤ºä¾‹ \in[em-1] å’Œ \in[em-2] ä¸­ï¼Œæ®µè½é¦–è¡Œç¼©è¿›è®¾å®šå‘½ä»¤å‡ºçŽ°çš„ä½ç½®ä¸åŒï¼Œå¯¼è‡´æ®µè½ç¼©è¿›è·ç¦»äº§ç”Ÿäº†å·®å¼‚ã€‚è¿™æ˜¯å›&nbsp;ä¸ºï¼Œåœ¨ç¤ºä¾‹ \in[em-1] ä¸­ï¼Œè®¾å®šæ®µè½é¦–è¡Œç¼©è¿›æ—¶ï¼Œem çš„å€¼æ˜¯åŸºäºŽ \ConTeXt\ é»˜è®¤çš„æ­£æ–‡å­—ä½“å°ºå¯¸ç¡®å®šçš„ï¼Œå…¶å€¼ä¸º 12 ptï¼Œè€Œåœ¨ ç¤ºä¾‹ \in[em-1] ä¸­ï¼Œem çš„å€¼æ˜¯åŸºäºŽæˆ‘ä»¬è‡ªå®šä¹‰çš„å­—ä½“ \type{\songti} çš„å°ºå¯¸ç¡®å®šçš„ï¼Œå…¶å€¼ä¸º 9 ptã€‚

\startsample
\setscript[hanzi]
\definefont[songti][name:simsun at 9pt]
\setupindenting[always,first,2em]
\songti
æˆ‘çŽ°åœ¨äº”æŒ‡å±±æŒºå¥½çš„ã€‚
è™½ç„¶æˆ‘å¾ˆå°‘å†™ä¿¡ï¼Œå…¶å®žæˆ‘å¾ˆæ€€å¿µèŠ±æžœå±±ã€‚
\stopsample
\sample[option=TEX][em-1]{æ®µè½ç¼©è¿›è·ç¦»æ˜¯ 24 pt}{\externalfigure[03/indenting-1.pdf]}

\startsample
\setscript[hanzi]
\definefont[songti][name:simsun at 9pt]
\songti
\setupindenting[always,first,2em]
æˆ‘çŽ°åœ¨äº”æŒ‡å±±æŒºå¥½çš„ã€‚
è™½ç„¶æˆ‘å¾ˆå°‘å†™ä¿¡ï¼Œå…¶å®žæˆ‘å¾ˆæ€€å¿µèŠ±æžœå±±ã€‚
\stopsample
\sample[option=TEX][em-2]{æ®µè½ç¼©è¿›è·ç¦»æ˜¯ 18 pt}{\externalfigure[03/indenting-2.pdf]}

\section[define-family]{å®šä¹‰æ±‰å­—å­—æ—}

ä½¿ç”¨ \type{\definefontfamily} å¯å°†ä½&nbsp;å–œæ¬¢çš„ä¸€äº›æ±‰å­—å­—ä½“å®šä¹‰ä¸ºå­—æ—ï¼Œç”¨ä»¥ä»£æ›¿ \ConTeXt\ çš„é»˜è®¤å­—æ—ï¼Œç„¶åŽä½¿ç”¨ \type{\setupbodyfont} å¯ç”¨ä½&nbsp;å®šä¹‰çš„å­—æ—ã€‚ç¤ºä¾‹ \in[setupbodyfont] å°† 10.5 pt çš„å®‹ä½“ä½œä¸ºæ­£æ–‡é»˜è®¤å­—ä½“\footnote{10.5 pt å¯å¯¹åº” MicroSoft Word ä¸­çš„äº”å·å­—ã€‚}ã€‚æ³¨æ„ï¼Œå­—æ—çš„å®šä¹‰å’Œå¯ç”¨ï¼Œéœ€åœ¨æ–°æ‰‹æ‘ä¹‹å¤–è¿›è¡Œï¼Œå¦åˆ™æ—&nbsp;æ•ˆã€‚ä¸è¿‡ï¼Œ\type{\setupindenting} å´åªèƒ½åœ¨æ–°æ‰‹æ‘ä¹‹å†…èµ·æ•ˆï¼Œè¿™è®©æˆ‘æœ‰äº›ä¸è§£ï¼Œä½†æ˜¯è¿™å°±æ˜¯æ–°æ‰‹æ‘çš„è§„çŸ©ï¼Œåªèƒ½æŽ¥å—ã€‚

\startsample
\definefontfamily[myfonts][rm][nsimsun]
\setupbodyfont[myfonts,10.5pt]
\setscript[hanzi]
\startTEXpage[frame=on,width=6cm,offset=6pt]
\setupindenting[always,first,2em]
æˆ‘çŽ°åœ¨äº”æŒ‡å±±æŒºå¥½çš„ã€‚
è™½ç„¶æˆ‘å¾ˆå°‘å†™ä¿¡ï¼Œå…¶å®žæˆ‘å¾ˆæ€€å¿µèŠ±æžœå±±ã€‚
\stopTEXpage
\stopsample
\sample[option=TEX][setupbodyfont]{å®šä¹‰æ­£æ–‡å­—ä½“å¹¶å¯ç”¨}{\externalfigure[03/setupbodyfont.pdf]}

ç¤ºä¾‹ \in[setupbodyfont] ä»…å®šä¹‰äº† \type{myfonts} çš„è¡¬çº¿å­—æ—ï¼ˆ\type{rm}ï¼‰ä¸º \type{nsimsun}ï¼Œä¸”éœ€è¦æ³¨æ„çš„æ˜¯ï¼Œæ­¤å¤„çš„ \type{nsimsun} å¹¶éžå­—ä½“åï¼Œè€Œæ˜¯å­—æ—åã€‚åœ¨ \in[fonts-installation] èŠ‚ä¸­ï¼Œå°† simsun.ttc å®‰è£…è‡³ \ConTeXt\ çŽ¯å¢ƒä¹‹åŽï¼Œæˆ‘ä»¬æ›¾æŸ¥è¯¢è¿‡å®ƒçš„ç›¸å…³ä¿¡æ¯ï¼Œå…¶ä¸­æœ‰ä¸€æ&nbsp;ä¿¡æ¯æ˜¯ \type{familyname}ï¼Œå…¶ä¸­ç½—åˆ—çš„ä¾¿æ˜¯å­—ä½“æ‰€å±žçš„å­—æ—åã€‚\ConTeXt\ ä¼šæ&nbsp;¹æ®å­—æ—åè‡ªåŠ¨æœç´¢å­—ä½“çš„ \type{identifier} ä¿¡æ¯ï¼Œè‹¥æŸå­—ä½“ï¼Œå…¶ identifier çš„æœ«å°¾æ˜¯ \type{regular} æˆ– \type{normal}\footnote{identifier åçš„æœ«å°¾ä¸º regular å’Œ normal çš„å­—ä½“é€šå¸¸æ˜¯åŒä¸€ä¸ªå­—ä½“ã€‚}ï¼Œåˆ™è¯¥å­—ä½“ä¼šè¢« \ConTeXt\ è‡ªåŠ¨ä½œä¸ºè¯¥å­—ä½“æ‰€å±žå­—æ—çš„æ­£ä½“ã€‚åŒç†ï¼Œè‹¥æŸå­—ä½“çš„ identifier çš„æœ«å°¾æ˜¯ \type{bold}ï¼Œ\type{italic} æˆ– \type{bolditalic}ï¼Œåˆ™è¯¥å­—ä½“ä¼šè¢« \ConTeXt\ è‡ªåŠ¨ä½œä¸ºè¯¥å­—ä½“æ‰€å±žå­—æ—çš„ç²—ä½“ã€æ–œä½“æˆ–ç²—æ–œä½“ã€‚

ç”±äºŽæˆ‘ä»¬çš„ \ConTeXt\ çŽ¯å¢ƒé‡Œçš„ \type{nsimsun} å­—æ—åªæœ‰æ­£ä½“ \type{nsimsunregular}ï¼Œæ²¡æœ‰å…¶ä»–å­—ä½“ï¼Œå›&nbsp;æ­¤å€˜è‹¥åœ¨ç¤ºä¾‹ \in[setupbodyfont] ä¸­ï¼Œä½¿ç”¨ \type{\bf} åˆ‡æ¢å­—ä½“æ—¶ï¼Œå³

\starttyping[option=TEX]
\bf æˆ‘çŽ°åœ¨äº”æŒ‡å±±æŒºå¥½çš„ã€‚
è™½ç„¶æˆ‘å¾ˆå°‘å†™ä¿¡ï¼Œå…¶å®žæˆ‘å¾ˆæ€€å¿µèŠ±æžœå±±ã€‚
\stoptyping

\noindent \ConTeXt\ ä¼šå›&nbsp;æ‰¾ä¸åˆ°ç›¸åº”çš„å­—ä½“è€ŒæŽ’å‡ºç©ºé¡µã€‚è‹¥è¦è§£å†³è¯¥é—®é¢˜ï¼Œéœ€è¦ä½¿ç”¨ \type{\definefontfamily} çš„ç¬¬å››ä¸ªå‚æ•°ï¼Œé€šè¿‡å­—ä½“åæŒ‡å®šå…¶ä»–å­—ä½“ä»¥è¡¥å……å­—æ—ç¼ºå¤±çš„å­—ä½“ã€‚ä¾‹å¦‚ï¼Œå¯ä»¥ä½¿ç”¨é»‘ä½“å’Œæ¥·ä½“ä½œä¸ºæ¥è¡¥å…… \type{nsimsun} å­—æ—çš„ç¼ºå¤±å­—ä½“ï¼š

\starttyping[option=TEX]
\definefontfamily[myfonts][rm][nsimsun][bf=simhei,it=kaiti,bi=simhei]
\stoptyping

åŒç†ï¼Œä¹Ÿå¯ä»¥ç”¨å®‹ä½“ï¼Œé»‘ä½“å’Œæ¥·ä½“å®šä¹‰éžè¡¬çº¿å’Œç­‰å®½å­—æ—ï¼š

\starttyping[option=TEX]
\definefontfamily[myfonts][ss][simhei][bf=simhei,it=simhei,bi=simhei]
\definefontfamily[myfonts][tt][kaiti][bf=simhei,it=kaiti,bi=simhei]
\stoptyping

ä¸ºæ±‰å­—å®šä¹‰å­—æ—è¿˜æœ‰ä¸€ç§ä¼&nbsp;ç»Ÿæ–¹æ³•ï¼Œä½¿ç”¨ \ConTeXt\ çš„ typescript æœºåˆ¶ï¼Œä½†æ˜¯éœ€è¦å†™è®¸å¤šä»£ç&nbsp;ï¼Œä½†ä»¥å‰åªæœ‰è¿™ä¸€ç§æ–¹æ³•ã€‚çŽ°åœ¨æˆ‘ä»¬å¯ä»¥å¯¹å®ƒè¯´ï¼Œå†è§ï¼Œtypescriptï¼

\section[fallback-fonts]{å­—å½¢æ›¿æ¢}

ä¹Ÿè®¸ä½&nbsp;çŽ°åœ¨è§‰å¾—è‡ªå·±åœ¨æ–°æ‰‹æ‘é‡Œå·²ç»è„±èƒŽæ¢éª¨ï¼Œå¯ä»¥æ‰¬çœ‰åæ°”äº†ï¼Œå›&nbsp;ä¸ºä½&nbsp;å·²ç»èƒ½å¤Ÿè‡ªç”±åœ°åœ¨ \ConTeXt\ ä¸–ç•Œé‡Œä½¿ç”¨æ±‰å­—ã€‚æ˜¯çš„ï¼Œä½&nbsp;å¯ä»¥å¦‚æ­¤è§‰å¾—ï¼Œåªè¦ä½&nbsp;çš„æŽ’ç‰ˆå†…å®¹æ²¡æœ‰è¥¿æ–¹æ–‡å­—ã€‚

æŽ’ç‰ˆå†…å®¹é‡Œæœ‰è¥¿æ–¹æ–‡å­—ä¼šæ€Žæ&nbsp;·çš„ï¼Ÿå›¾ \in[bad-latin] ç»™å‡ºäº†é€‰é¡¹ï¼Œåœ¨æŽ’ç‰ˆç»“æžœä¸­ï¼Œæ˜¯ä¸Šé¢é‚£è¡Œæ–‡å­—é‡Œçš„è‹±æ–‡å•è¯ç¾Žè§‚ï¼Œè¿˜æ˜¯ä¸‹é¢é‚£è¡Œï¼Ÿå‰è€…æ˜¯ simsun.ttc ä¸­çš„è¥¿æ–‡å­—å½¢ï¼ŒåŽè€…æ˜¯ \ConTeXt\ é»˜è®¤çš„ cmr å­—ä½“é‡Œçš„è¡¬çº¿æ­£ä½“ä¸­çš„è¥¿æ–‡å­—å½¢ã€‚è‹¥ä½&nbsp;é€‰æ‹©å‰è€…ï¼Œåˆ™æœ¬èŠ‚å†…å®¹å¯è‡³æ­¤å®Œå…¨å¿½ç•¥ï¼Œå¦åˆ™è¯·ç»§ç»­é˜…è¯»ã€‚

\placefigure
  [here,force][bad-latin]
  {è‹±æ–‡å­—å½¢æ¯”è¾ƒ}
  {\externalfigure[03/bad-latin.pdf][width=.4\textwidth]}

\type{\definefallbackfamily} å¯ç”¨ä¸€ç§å­—ä½“ä¸­çš„éƒ¨åˆ†å­—å½¢æ›¿æ¢å¦ä¸€ç§å­—ä½“çš„ç›¸åº”å­—å½¢ã€‚ç¤ºä¾‹ \in[fallbacks] ä½¿ç”¨ latinmodernroman å­—æ—é‡Œçš„æ¯ç§å­—ä½“çš„ Unicode ç&nbsp;ä½åŒºé—´ $[0\mathrm{x}0000, 0\mathrm{x}0400]$ ä¸­çš„æ‰€æœ‰å­—å½¢å¼ºè¡Œæ›¿æ¢ nsimsun å­—æ—ä¸­æ¯ç§å­—ä½“ï¼ˆåŒ…æ‹¬æ›¿è¡¥å­—ä½“ï¼‰çš„ç›¸åº”å­—å½¢ã€‚ä¹Ÿå¯ä»¥ä½¿ç”¨ \ConTeXt\ å·²ç»å®šä¹‰äº†åå­—çš„ Unicode ç&nbsp;ä½åŒºé—´ä»£æ›¿ 16 è¿›åˆ¶æ•°å­—å½¢å¼çš„åŒºé—´ã€‚ä¾‹å¦‚ï¼Œ

\starttyping[option=TEX]
\definefallbackfamily[myfonts][rm][latinmodernroman]
                     [range={basiclatin,latinsupplement},force=yes]
\stoptyping

\noindent æŒ‡å®šäº† Unicode ç&nbsp;ä½åŒºé—´ $\mathrm{[0x0000, 0x00FF]}$ ä¸­çš„å­—å½¢ä½œä¸ºæ›¿æ¢å­—å½¢ã€‚Unicode ç&nbsp;ä½åŒºé—´çš„åå­—è§æ–‡æ¡£ã€ŒList of Unicode blocksã€\cite[unicode-blocks]ã€‚

\startsample
\definefallbackfamily
  [myfonts][rm][latinmodernroman]
  [range={0x0000-0x0400},force=yes]
\definefontfamily
  [myfonts][rm][nsimsun]
  [bf=simhei,it=kaiti,bi=simhei]
\setupbodyfont[myfonts,16pt]
\setscript[hanzi]
\startTEXpage[frame=on,offset=4pt]
çˆ±å›&nbsp;æ–¯å¦ Einstein\\ \bf çˆ±å›&nbsp;æ–¯å¦ Einstein\\
\it çˆ±å›&nbsp;æ–¯å¦ Einstein\\ \bi çˆ±å›&nbsp;æ–¯å¦ Einstein
\stopTEXpage
\stopsample
\sample[option=TEX][fallbacks]{å­—å½¢æ›¿æ¢}{\externalfigure[03/fallbacks.pdf]}

\section{å°ç»“}

å½“ä½&nbsp;è¯»åˆ°æ­¤å¤„ï¼Œæˆ‘æƒ³æ‚„æ‚„å‘Šè¯‰ä½&nbsp;ï¼Œ\ConTeXt\ é‡Œæœ€éš¾çš„çŸ¥è¯†ï¼Œä½&nbsp;å·²åŸºæœ¬æŽŒæ¡ã€‚çŽ°åœ¨ï¼Œä½&nbsp;å®Œå…¨å¯ä»¥åœ¨æ–°æ‰‹æ‘çš„æ˜¥å¤©é‡Œæ‰¬çœ‰åæ°”äº†ã€‚

è¿™éƒ¨åˆ†çŸ¥è¯†æœ‰å¤šéš¾å‘¢ï¼Œéš¾åˆ° Hans Hagen éœ€è¦ä¸ºä¹‹æ’°å†™ä¸€æœ¬é•¿è¾¾ 228 é¡µçš„æ‰‹å†Œï¼Œè‹¥æœ‰å…´è¶£ï¼Œä¸å¦¨æ‹œè¯»ã€‚æˆ‘å¯ä»¥å¾ˆè¯šå®žåœ°è¯´ï¼Œè¯¥æ‰‹å†Œæˆ‘åªè¯»è¿‡å¯¥å¯¥æ•°é¡µã€‚ç”±äºŽä½&nbsp;å·²ç»å®‰è£…äº† \ConTeXtï¼Œè¿™ä»½æ‰‹å†Œå°±åœ¨ä½&nbsp;çš„ \ConTeXt\ çŽ¯å¢ƒé‡Œï¼Œæ‰§è¡Œä»¥ä¸‹å‘½ä»¤å¯ä»¥æ‰¾åˆ°å®ƒï¼š

\starttyping
$ mtxrun --script base --find-file fonts-mkiv.pdf
\stoptyping

\noindent è¯·é¡ºä¾¿æµè§ˆä¸€ç•ªè¿™ä»½æ‰‹å†Œæ‰€åœ¨çš„ç›®å½•é‡Œçš„å…¶ä»– PDF æ–‡ä»¶å§ã€‚
</pre></body></html>