1<!DOCTYPE html> 2<html lang="zh"><meta charset="utf-8"><meta name="generator" content="Hugo 0.121.1"><meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover"> 3<meta name="color-scheme" content="light dark"> 4<meta name="supported-color-schemes" content="light dark"><title>ç¨ fontconfig æ²»ç Linux ä¸çåä½ – åç«CC</title> 5 6 7 8 9 10 11<style title="Normalize iconfont">.icon { 12 width: 1em; 13 height: 1em; 14 vertical-align: -0.15em; 15 fill: currentColor; 16 overflow: hidden; 17}</style> 18 19<link rel="stylesheet" href="/css/core.f57826f016b449d3810d95073bdf2f69ed3e8707339e01cf7056beb995e52fe0e7fc16a59be44c6e56ec30a5d875efd4.css" integrity="sha384-9Xgm8Ba0SdOBDZUHO98vae0+hwczngHPcFa+uZXlL+Dn/Balm+RMblbsMKXYde/U"> 20 21<meta name="twitter:card" content="summary" /> 22<meta name="twitter:title" content="ç¨ fontconfig æ²»ç Linux ä¸çåä½" /> 23<meta name="description" content="å¨ä¸ä¸ç¯ãLinux fontconfig çåä½å¹é æºå¶ãå½ä¸ï¼ 24æä»¬å·²ç»äºè§£è¿äº fontconfig çåçãæ²¡æ³å°ä¸æè¿å»äº 4 个æä¹ä¹ ï¼ 25å«å¿äºè¿ç¼ºå°å®è·µé¨åå¢ï¼ 26ç°å¨å°±ä¸èµ·æ¥å®è·µä¸æ fontconfig çé ç½®å§ã"> 27 28
29<script src="/js/base.c6a9c6a78dedefedc8224acf08e96c30ba22f87a833569bfdb3180492a837253d90f17b769814b153c49a9807e927d61.js" defer integrity="sha384-xqnGp43t7+3IIkrPCOlsMLoi+HqDNWm/2zGASSqDclPZDxe3aYFLFTxJqYB+kn1h"></script>
vendor: 1 bytes, line 29
29
30<script>(() => { 31 // ns-params:@params 32 var host = "https://catcat.cc/srv/comments"; 33 var locale = "zh"; 34 var site_id = "catcat.cc"; 35 var theme = "light"; 36 var url_prefix = "https://catcat.cc"; 37 38 // <stdin> 39 remark_config = { 40 host, 41 locale, 42 no_footer: true, 43 components: [] 44 // æ¹æå¨ç¸åºé¡µé¢æå¨æå¼ 45 }; 46 if (site_id) { 47 remark_config.site_id = site_id; 48 } 49 if (url_prefix) { 50 remark_config.url = url_prefix + window.location.pathname; 51 } 52 if (theme) { 53 remark_config.theme = theme; 54 } 55})(); 56</script>
56 57 58 59 60
61<script>remark_config.components = ["embed"]</script>
61 62 63
64<script src="/js/post.c264c83900a4a22334336ad0ee0d1de6cc1486260c527931350e9eaaae042690404257558bf4739b4ede42a567a21b33.js"defer 65 integrity="sha384-wmTIOQCkoiM0M2rQ7g0d5swUhiYMUnkxNQ6eqq4EJpBAQldVi/Rzm07eQqVnohsz"></script>
65 66 67
68<script type="application/ld+json"> 69 { 70 "@context": "https://schema.org/", 71 "@type": "BlogPosting", 72 "headline": "ç¨ fontconfig æ²»ç Linux ä¸çåä½", 73 "author": { 74 "@type": "Person", 75 "name": "rydesun" 76 }, 77 "datePublished":"2021-03-07", 78 "dateModified":"2021-03-07"} 79</script>
79 80 81 82 <link rel="alternate" type="application/rss+xml" href="/index.xml" title="åç«CC"> 83 84 85
86<script>!function(e,n){for(var o=0;o<e.length;o++){var r=n.createElement("script"),c=".js",d=n.head||n.body;"noModule"in r?(r.type="module",c=".mjs"):r.async=!0,r.defer=!0,r.src=remark_config.host+"/web/"+e[o]+c,d.appendChild(r)}}(remark_config.components||["embed"],document); 87</script>
87 88<body><section id="header"> 89 <div class="header wrap"><span class="header left-side"><a class="site home" href="/"><span class="site name">åç«CC</span></a></span> 90 <span class="header right-side"> 91<div class="nav wrap"> 92 <nav class="nav"><a class="nav item link" href="/index.xml"title=""> 93 <svg class="icon" aria-hidden="true"> 94 <use xlink:href="#icon-rss-square"></use> 95 </svg> 96 <span>RSS</span> 97 </a><a class="nav item link" href="/about/"title="å ³äºæ"> 98 <svg class="icon" aria-hidden="true"> 99 <use xlink:href="#icon-box-heart"></use> 100 </svg> 101 <span>CatchCat</span> 102 </a><button id="theme-changer" class="nav item" 103 onclick="themeManager.setNextTheme()" title="忢䏻é¢"> 104 <svg class="icon" aria-hidden="true"> 105 <use xlink:href="#icon-lightbulb"></use> 106 </svg> 107 </button> 108 </nav> 109</div> 110</span></div></section><section id="content"> 111 112 113<main id="article-and-sidebar"> 114 <div class="article-container"><section class="article header"> 115 <h1 class="article title">ç¨ fontconfig æ²»ç Linux ä¸çåä½</h1><p class="article date">2021å¹´03æ07æ¥</p></section><article class="article markdown-body"><p>å¨ä¸ä¸ç¯<a href="/post/2020-10-31/">ãLinux fontconfig çåä½å¹é æºå¶ã</a>å½ä¸ï¼ 116æä»¬å·²ç»äºè§£è¿äº fontconfig çåçãæ²¡æ³å°ä¸æè¿å»äº 4 个æä¹ä¹ ï¼ 117å«å¿äºè¿ç¼ºå°å®è·µé¨åå¢ï¼ 118ç°å¨å°±ä¸èµ·æ¥å®è·µä¸æ fontconfig çé ç½®å§ã</p> 119<h2 id="æ··ä¹±çç°ç¶">æ··ä¹±çç°ç¶</h2> 120<p>ææµè§è¿ä¸äºä»ç» fontconfig é ç½®çæç« ï¼ 121è¦ä¹æ¯é ç½®é¾äºçè§£åç»´æ¤ï¼ 122è¦ä¹æ¯å¤å¶ç²è´´ä¸æ±çè§£ãæä»¥æç°å¨çç®æ æ¯ï¼æ¾åºä¸ä¸ªæ 123ç®åçæ¹æ¡ï¼åæ¶è¿è¦æåç±»é®é¢å¤ç好ã</p> 124<h3 id="é 置路å¾">é 置路å¾</h3> 125<p>æä¸äºè¯´æ³ï¼å·ç§°ç´æ¥ä¿®æ¹<code>/etc/fonts/</code>ä¸çé ç½®æä»¶æä¸ºç®åã 126å¯åä¸å«è¿ä¹åï¼<strong>妿æ¹å¨è¿ï¼è¯·æ¢å¤åå§æä»¶ã</strong> 127æ£å¸¸æ¥è®²ï¼åºè¯¥ææä»¬çé ç½®æä»¶å å ¥å®¶ç®å½ä¸ç<code>~/.config/fontconfig/</code>ï¼ 128ä¸è¦æ·»å å¨ç³»ç»ç«¯ã 129为äºè¦çç³»ç»ç«¯çé ç½®ï¼ 130å¯ä»¥å¨ç¨æ·ç®å½ä¸ç fontconfig é ç½®ä¸ä½¿ç¨ <strong>强ç»å®</strong> è§åã 131å ³äºå¼ºå¼±ç»å®è§å对åä½é ç½®çå½±åææï¼ 132æå¨ä¸ä¸ç¯æç« éçå°è 133<a href="/post/2020-10-31/#åä½å¾åå强弱ç»å®">åä½å¾åå强弱ç»å®</a> 134å½ä¸ä»ç»è¿ã</p> 135<p>使ç¨å¼ºç»å®åï¼ 136ç³»ç»ç«¯çææé ç½®ä¸ä¼åå¹²æ°æä»¬çé ç½®ã 137ç³»ç»ç«¯çé ç½®çä½ç¨æ¯ä¸ºäºè½å¤å¨æä»¬èªå·±çé ç½®ä¸å¤ç¨çæ åµä¸ï¼ 138便§è½å¤æä¾ä¸äºææçåä½ãæè 说ï¼å®ä»¬çä½ç¨æ¯ä» ä½ä¸º 139æåç fallback æºå¶æ¥ä½¿ç¨ã 140å½ç¶ï¼åææ¯æä»¬ä¸å®è¦å¨ç¨æ·é ç½®ä¸ä½¿ç¨å¼ºç»å®è§åï¼åè®°ã</p> 141<h3 id="å ³äºåæåä½">å ³äºåæåä½</h3> 142<p>fontconfig çåä½å¹é æºå¶ä¸º Linux ç¨åºæä¾äºåä½ fallback åè¡¨ï¼ 143æå å顺åºä¾æ¬¡æ¸²æåä½ãè¿æå³çä»ä¹ï¼ä¸åéè¦é£äºåæåä½äºã 144å¨ Linux ä¸ï¼ä½ æ éä½¿ç¨æ´çº±é»ä½ï¼ä¸ºäºç¨ä¸ Nerd Fonts 徿 åä½ï¼ 145ä½ ä¹ä¸éè¦ç»åä½æä¸ Nerd fonts è¡¥ä¸ï¼å½ä½ æ³è®©ä¸æå使´å 146å¦ä¸ä¸ªè±æåä½ï¼ä¸éè¦æå®ä»¬åæä¸ä¸ªåä½ãçè³ä½ æ³è®©æä¸ªåä½ç 147æä¸ªåå½¢ç±å¦ä¸ä¸ªå使¥æä¾ï¼ 148è¿äºéæ±ç»ç»é½å¯ä»¥éè¿é ç½® fontconfig æ¥å®ç°ã</p> 149<p>ä¸ä¸ªæç®åçæè·¯ï¼æ¬æä¹åºäºè¯¥æè·¯ï¼ 150ä¸è®©ç¨åºä½¿ç¨æä¸ªå ·ä½çåä½ï¼èæ¯ä½¿ç¨éç¨å使å (Generic Font Family)ã 151æ¯å¦ï¼è®©ç¨åºä½¿ç¨ sans-serifï¼ä¹å°±æ¯é»è®¤çæ 衬线åä½ã 152ç¶åï¼ä½¿ç¨ fontconfig é ç½®ï¼</p> 153<div class="highlight"><div class="chroma"> 154<table class="lntable"><tr><td class="lntd"> 155<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 156</span><span class="lnt"> 2 157</span><span class="lnt"> 3 158</span><span class="lnt"> 4 159</span><span class="lnt"> 5 160</span><span class="lnt"> 6 161</span><span class="lnt"> 7 162</span><span class="lnt"> 8 163</span><span class="lnt"> 9 164</span><span class="lnt">10 165</span></code></pre></td> 166<td class="lntd"> 167<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="nt"><match</span> <span class="na">target=</span><span class="s">"pattern"</span><span class="nt">></span> 168</span></span><span class="line"><span class="cl"> <span class="nt"><test</span> <span class="na">name=</span><span class="s">"family"</span><span class="nt">></span> 169</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>sans-serif<span class="nt"></string></span> 170</span></span><span class="line"><span class="cl"> <span class="nt"></test></span> 171</span></span><span class="line"><span class="cl"> <span class="nt"><edit</span> <span class="na">name=</span><span class="s">"family"</span> <span class="na">mode=</span><span class="s">"prepend"</span> <span class="na">binding=</span><span class="s">"strong"</span><span class="nt">></span> 172</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Noto Sans CJK SC<span class="nt"></string></span> 173</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Noto Sans<span class="nt"></string></span> 174</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Twemoji<span class="nt"></string></span> 175</span></span><span class="line"><span class="cl"> <span class="nt"></edit></span> 176</span></span><span class="line"><span class="cl"><span class="nt"></match></span> 177</span></span></code></pre></td></tr></table> 178</div> 179</div><p>è¿ç§ font stack çæ¹å¼ï¼å³å¯è®©ç¨åºæç §ä»¥ä¸é¡ºåºæ¸²æåä½ï¼</p> 180<pre tabindex="0"><code>Noto Sans CJK SC â> Noto Sans -> Twemoji 181</code></pre><p>æå¨æ¤ä¼å æå®ä¸è±æä½¿ç¨ Noto Sans CJK SC æ¥æ¸²æï¼ 182ä¸äºè¥¿æä½¿ç¨ Noto Sans 渲æï¼emoij 使ç¨äºåä½ Twemojiã 183é£ä¹è¿æå¾å¤æ²¡æå®çåå½¢æä¹åå¢ï¼æ¯å¦è å°¼åºåæ¯ãçå®¶ 184äºå °åæ¯ï¼æ²¡å ³ç³»ï¼é£äºé½æ¯å¨ç³»ç»ç«¯çé ç½®ä¸è§£å³çï¼æåªè¦ 185å®è£ äºç¸åºåä½ï¼fontconfig èªç¶è½å¸®ææ¾å°å®ä»¬ã 186åæ¶ï¼å³ä½¿æç³»ç»éæå¤ä¸ªä¸æåä½ï¼æä¹è½ä¿è¯ç¨åºä½¿ç¨ 187Noto Sans CJK SC 渲æåä½è䏿¯å«ç䏿åä½ã</p> 188<p>ä¸ä¸å¥è¯æ¯éªäººçãð</p> 189<p>fontconfig çè§£å³æ¹æ¡ä¸æ¯å®ç¾çï¼åæåä½ä¾æ§æå®ä»¬ç 190ä»·å¼ãè¿ä½ç°å¨ä¸äºå¯¹ fontconfig æ¯æä¸è¯ç Linux ç¨åºä¸ã 191å¯¹äº Windows ç¨æ·æ¥è®²ï¼åæå使¯ä¸ä¸ªå¾å¥½çè§£å³æ¹æ¡ 192(å 为ä»ä»¬æ²¡æ fontconfig)ã 193å°½ç®¡å¦æ¤ï¼æä¹å¼ºç建议 Linux ç¨æ·é 置好 fontconfigï¼è䏿¯ 194ä»ä¸å¼å§å°±ä½¿ç¨åæåä½ãä½¿ç¨ fontconfig å®ç°åä½ 195ç fallback æºå¶ï¼ç¸æ¯åæåä½çä¼å¿æ¯ææ¾çï¼</p> 196<p><strong>èªç±ç»åï¼çµæ´»æé ã</strong></p> 197<p>æ¯æ¬¡å级åæåä½ï¼ä½ é½éè¦éæ°æè¡¥ä¸çæè¯¥åæåä½ã 198妿æ¯å«äººå¸®ä½ æä¾å¥½çåæåä½é£è¿å¥½è¯´ï¼ 199ä»ç½ä¸ä¸è½½ãä»è½¯ä»¶ä»åºå®è£ å°±å®äºäºã 200æ¯å¦è¯´ï¼ä¸ºäºè½å¨è¥¿æåä½ä¸ä½¿ç¨æ¥èª Nerd fonts çåå½¢ï¼ 201çä¸ç archlinuxcn 社åºä»åºæå äºå¤å°ä»½ Nerd Fontsï¼</p> 202<div class="highlight"><div class="chroma"> 203<table class="lntable"><tr><td class="lntd"> 204<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 205</span><span class="lnt"> 2 206</span><span class="lnt"> 3 207</span><span class="lnt"> 4 208</span><span class="lnt"> 5 209</span><span class="lnt"> 6 210</span><span class="lnt"> 7 211</span><span class="lnt"> 8 212</span><span class="lnt"> 9 213</span><span class="lnt">10 214</span><span class="lnt">11 215</span><span class="lnt">12 216</span><span class="lnt">13 217</span><span class="lnt">14 218</span><span class="lnt">15 219</span></code></pre></td> 220<td class="lntd"> 221<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl"><span class="c1"># æ¾ç¤ºå 10 个åºäº Nerd çåä½</span> 222</span></span><span class="line"><span class="cl"><span class="c1"># pacman -Ssq nerd-fonts | head -10</span> 223</span></span><span class="line"><span class="cl">
223ttf-nerd-fonts-symbols 224</span></span><span class="line"><span class="cl">ttf-nerd-fonts-symbols-mono 225</span></span><span class="line"><span class="cl">nerd-fonts-3270 226</span></span><span class="line"><span class="cl">nerd-fonts-agave 227</span></span><span class="line"><span class="cl">nerd-fonts-anonymous-pro 228</span></span><span class="line"><span class="cl">nerd-fonts-arimo 229</span></span><span class="line"><span class="cl">nerd-fonts-aurulent-sans-mono 230</span></span><span class="line"><span class="cl">nerd-fonts-bigblue-terminal 231</span></span><span class="line"><span class="cl">nerd-fonts-bitstream-vera-sans-mono 232</span></span><span class="line"><span class="cl">nerd-fonts-cascadia-code 233</span></span><span class="line"><span class="cl"><span class="c1"># ç»è®¡ Nerd åæåä½çæ»æ°</span> 234</span></span><span class="line"><span class="cl"><span class="c1"># pacman -Sl archlinuxcn | grep nerd-fonts | wc -l</span> 235</span></span><span class="line"><span class="cl"><span class="m">51</span> 236</span></span></code></pre></td></tr></table> 237</div> 238</div><p>为äºè½å¨åä½éç¨ä¸ Nerd fonts 徿 ï¼ 239ä»ä»¬ç» 51 个åä½é½æä¸äºæ¥èª Nerd fonts çè¡¥ä¸ï¼</p> 240<p>å½æä»¬åæ³ä½¿ç¨æä¸ªä¸æå使¶ï¼æ¯å¦åæ¶æé 241ææºé»ä½ãanonymous-proãNerd fontï¼å²ä¸æ¯è¦åæ 242source-han-sans-otc-fonts-nerd-fonts-anonymous-proï¼ 243对äºï¼å«å¿äºè¿å¯ä»¥å¨åæåä½éå å ¥ emoji åä½ã</p> 244<p>è fontconfig ç缺ç¹åæ¯ä»ä¹å¢ï¼åæä¼è§£é为ä»ä¹ fontconfig ä¸è½ 245ç¾åç¾å½ä¸æ³è¦çåä½ï¼ç¹å«æ¯å¨ä¸¤ä¸ªæµè§å¨ Chrome å Firefox å½ä¸ã</p> 246<h3 id="å ³äºç½é¡µ">å ³äºç½é¡µ</h3> 247<p>为äºè½å¨æµè§å¨ä¸æ¾ç¤ºæ³è¦çåä½ï¼ä¸å°äººéè¿æµè§å¨çæ©å±æä»¶ 248å¼å ¥ç¬¬ä¸æ¹ç CSS æ ·å¼ï¼å¼ºå¶è¦çåç½é¡µçå使 ·å¼ã 249è¿æ ·åå¯è½ä¼ç ´åç½é¡µè®¾è®¡ãå 为æäºç½é¡µæ¯éè¦å¼å ¥å¤é¨åä½ 250å®ç°ä¸äºç¹æ®ææçï¼è¿äºåä½çææä¸ä¾èµç³»ç»ç«¯çåä½ã 251ä½å¦æå¼ºå¶ä¿®æ¹ CSS font-family çè¯ï¼å°±æ²¡åæ³ä½¿ç¨è¿äºåä½äºã 252é¤éå®å ¨ä¸æ³å ³å¿ç½é¡µè®¾è®¡å¸çæ³æ³ï¼å¦åå¼ç«¯æ¯å¥½å¤å¤ã</p> 253<p>æ²¡å¿ è¦å¼å ¥ CSS 强å¶è®¾ç½®åä½ã对äºç½é¡µçåä½è§åï¼ 254æµè§å¨ä¹åæ ·éµå® fontconfig é ç½®ï¼ 255æä»¥æä»¬å¯ä»¥éè¿ fontconfig æ§å¶ç½é¡µåä½ã</p> 256<p>ç°å¦ä»å¤§é¨åç½é¡µç CSS font-family 齿¯ä¸ä¸ªé¿é¿çä¸²ï¼ 257éé¢å å«äºå¥½å¤å使åãä½å®ä¸å®ä¼å¨è¿ä¸ªä¸²çæåé¢ï¼ 258å å«ä¸ä¸ªéç¨å使åãæä»¬ç fontconfig é ç½®ï¼ 259å°±å䏿ä¸çé ç½®é£æ ·ï¼æ¯å¨è¿ä¸ªéç¨å使åä¸è¿è¡æä½çã</p> 260<h2 id="è§£å³é®é¢">è§£å³é®é¢</h2> 261<p>æ¢ç¶ Linux æ fontconfig è¿ä¹å¥½ç¨çæºå¶ï¼ä¸ä»£è¡¨ fontconfig 262è½å¾å¥½çè§£å³ææé®é¢ãè¿éæä¸äºåå²éçé®é¢ï¼ 263æ³è§£å³å®ä»¬å¥½ä¸æ¯ä»¶å®¹æçäºæ ã</p> 264<h3 id="å ¨è§å¼å·">å ¨è§å¼å·</h3> 265<p>è±æä¸çåå¼å·æä¸¤ç§ï¼<code>'</code>(U+0027) å<code>â</code>(U+2019)ãå¯è½ä¼è§å¾åä¸ç§åºç° 266å¨è±æææ¬ä¸ï¼åä¸ç§åºç°å¨ä¸æææ¬ä¸ï¼å¹¶ä¸å®½åº¦å䏿ç宽ã 267ç¶èï¼è±è¯ä¸çä¸çä¸äºäººå¨è±ææç« ä¸ä¹æ¯ä¼ä½¿ç¨åä¸ç§çãæä»¥ï¼ 268åä½å¨æ¾ç¤ºåä¸ç§å¼å·çæ¶åï¼ç©¶ç«æ¯åè±æåæ¯ä¸æ ·çªï¼è¿æ¯ 269该å䏿åä½ç宽å¢ï¼å¦æå¨è±ææç« 䏿¾ç¤ºæå ¨å®½å符å伿¾å¾ 270çªå ã</p> 271<p>æ¯å¦ï¼ææºé»ä½å ¶å®ä¹å å«äºæä¸åæ¯çåå½¢ï¼ 272å¯ä»¥å®å ¨ä½¿ç¨ææºé»ä½å»æ¾ç¤ºè¥¿æã 273æ¤æ¶ï¼åä¸ç§åå¼å·çå®½åº¦ä¼æ¾ç¤ºæä¸æåå½¢ç宽度ã导è´å³ä½¿å¨å ¨è±æç¯å¢ä¸ï¼ 274åå¼å·ä¹ä¼çªå å°å¨ææ¬ä¸è¿å®½ã</p> 275<p>åæ ·å°ï¼<code>â</code>(U+2018) <code>â</code>(U+201C) <code>â</code>(U+201D) ä¹æç±»ä¼¼çæ åµã</p> 276<p>noto-cjk 宿¹é¡¹ç®å¨å ¶ issue ä¸è®¨è®ºäºè¿ä¸ªé®é¢ï¼ 277<a href="https://github.com/googlefonts/noto-cjk/issues/5"target="_blank" rel="noopener noreferrer">Closed Full width punctuations U+2018, U+2019, U+201C and U+201D in Chinese 278</a>ã 279å¨ç»´åºç¾ç§ä¸ä¹æç¸å ³å å®¹ï¼ 280<a href="https://zh.wikipedia.org/zh-cn/%e6%92%87%e5%8f%b7"target="_blank" rel="noopener noreferrer">æå·</a>ã</p> 281<p>æä»¬çç®æ æ¯å¨ä¸åè¯è¨ç¯å¢ä¸å形伿æåºå«ï¼è®©å¼å·åªå¨ä¸æææ¬ä¸å ¨å®½ã 282ç¨è¯¥ HTML çæ®µæµè¯åä½</p> 283<div class="highlight"><div class="chroma"> 284<table class="lntable"><tr><td class="lntd"> 285<pre tabindex="0" class="chroma"><code><span class="lnt">1 286</span><span class="lnt">2 287</span><span class="lnt">3 288</span><span class="lnt">4 289</span></code></pre></td> 290<td class="lntd"> 291<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"><</span><span class="nt">div</span> <span class="na">style</span><span class="o">=</span><span class="s">"font-family:sans"</span> <span class="p">></span> 292</span></span><span class="line"><span class="cl"> <span class="p"><</span><span class="nt">p</span> <span class="na">lang</span><span class="o">=</span><span class="s">"en-za"</span><span class="p">></span>lang=en-us, rydesunâs blog<span class="p"></</span><span class="nt">p</span><span class="p">></span> 293</span></span><span class="line"><span class="cl"> <span class="p"><</span><span class="nt">p</span> <span class="na">lang</span><span class="o">=</span><span class="s">"zh-cn"</span><span class="p">></span>lang=zh-cn, 䏿âå¼å·âé®é¢<span class="p"></</span><span class="nt">p</span><span class="p">></span> 294</span></span><span class="line"><span class="cl"><span class="p"></</span><span class="nt">div</span><span class="p">></span> 295</span></span></code></pre></td></tr></table> 296</div> 297</div><p><a href="/raw/fontconfig.html#%e5%bc%95%e5%8f%b7">ç¨ä½ çæµè§å¨å¨çº¿æµè¯ã</a>ææå¾ï¼</p> 298 299 300 301<image src="/images/font_quote.8af1aaf6db80a54b1234b2eb73bb9f2334cce9d8949645c1c8ca796bf9c5f6af.png" 302 id="" 303 width="280" 304 height="85"class="auto-dark"alt="å¼å·çææå¯¹æ¯å¾" 305 style="height: auto;" 306> 307 308<p>æä»¥ï¼å¨æ²¡æææé ç½®çæ åµä¸ï¼å½ä½¿ç¨ä¸æåä½å»æ¾ç¤ºè±æææ¬æ¶ï¼ 309ä¼éè¯¯å°æä¾å ¨å®½å¼å·ã 310æ´çº±é»ä½æä¾äºä¸ä¸ªæè¡·çåæ³ï¼å嫿ä¾ä¸¤ä¸ªå使åï¼ 311Sarasa Gothic 使ç¨å ¨è§å¼å·ï¼Sarasa UI 使ç¨å忝ä¸ä¸ªå®½åº¦çå¼å·ã 312ä½ å¯ä»¥æ ¹æ®å®é éè¦éæ©å使åãæ¥èª Sarasa Gothic ç READMEï¼</p> 313<pre tabindex="0"><code>Style dimension 314 Latin/Greek/Cyrillic character set being Inter 315 Quotes (ââ) are full width ââ Gothic 316 Quotes (ââ) are narrow ââ UI 317</code></pre><p>ç±äº fontconfig æ¯å¯ä»¥æ ¹æ®è¯è¨æ¥çµæ´»éæ©åä½çï¼ 318å¨åæè®² fontconfig é ç½®çæ¶åï¼æä»¬åæ¥ 319å¤çè¿ä¸ªé®é¢ã</p> 320<h3 id="å¼ä½å">å¼ä½å</h3> 321<p>æå¨è¿é说çå¼ä½åï¼å¯ä¸æ¯ç®ä½åç¹ä½çåºå«ãNoto Sans CJK ä¸ 322çå¼ä½åï¼æ¯å¨ <strong>ç¸åç</strong> Unicode ç ä½ä¸ï¼ä¸åçè¯è¨ä¼ä½¿ç¨ä¸åçåå½¢ã 323è¿å¯ä¸æ¯ãå«ãåãè¡ãçåºå«ï¼ä¹ä¸æ¯è¯¸å¦ä¸æçãä¼ ãåæ¥è¯æ±åçãä¼ã 324çåºå«ï¼å 为å®ä»¬æ¬æ¥å°±åå±äºä¸åç Unicode ç ä½ã 325èæ¯è¯´ï¼åä¸ä¸ª Unicode ç ä½çæ±åå¨å形䏿微å¦çä¸åã</p> 326<p>没éï¼è¿ç±»ä¼¼äºä¸æè¯´å°çå¼å·é®é¢ï¼å æ®åä¸ä¸ª Unicode ç ä½ï¼ä½å´å¯ä»¥æä¸å 327åå½¢ã</p> 328<p>ç¨è¯¥ HTML çæ®µæµè¯åä½ï¼å¨ä¸åè¯è¨ç¯å¢ä¸å形伿æåºå«ã</p> 329<div class="highlight"><div class="chroma"> 330<table class="lntable"><tr><td class="lntd"> 331<pre tabindex="0" class="chroma"><code><span class="lnt">1 332</span><span class="lnt">2 333</span><span class="lnt">3 334</span><span class="lnt">4 335</span><span class="lnt">5 336</span><span class="lnt">6 337</span><span class="lnt">7 338</span><span class="lnt">8 339</span></code></pre></td> 340<td class="lntd"> 341<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"><</span><span class="nt">div</span> <span class="na">style</span><span class="o">=</span><span class="s">"font-family:sans"</span><span class="p">></span> 342</span></span><span class="line"><span class="cl"> <span class="p"><</span><span class="nt">p</span><span class="p">></span>éè§æ¬¡äº®éä¹é¨ é»è®¤<span class="p"></</span><span class="nt">p</span><span class="p">></span> 343</span></span><span class="line"><span class="cl"> <span class="p"><</span><span class="nt">p</span> <span class="na">lang</span><span class="o">=</span><span class="s">"zh-cn"</span><span class="p">></span>éè§æ¬¡äº®éä¹é¨ 䏿(大é) lang=zh-cn<span class="p"></</span><span class="nt">p</span><span class="p">></span> 344</span></span><span class="line"><span class="cl"> <span class="p"><</span><span class="nt">p</span> <span class="na">lang</span><span class="o">=</span><span class="s">"zh-tw"</span><span class="p">></span>éè§æ¬¡äº®éä¹é¨ 䏿(å°æ¹¾) lang=zh-tw<span class="p"></</span><span class="nt">p</span><span class="p">></span> 345</span></span><span class="line"><span class="cl"> <span class="p"><</span><span class="nt">p</span> <span class="na">lang</span><span class="o">=</span><span class="s">"zh-hk"</span><span class="p">></span>éè§æ¬¡äº®éä¹é¨ 䏿(馿¸¯) lang=zh-hk<span class="p"></</span><span class="nt">p</span><span class="p">></span> 346</span></span><span class="line"><span class="cl"> <span class="p"><</span><span class="nt">p</span> <span class="na">lang</span><span class="o">=</span><span class="s">"ja"</span><span class="p">></span>éè§æ¬¡äº®éä¹é¨ æ¥æ lang=ja<span class="p"></</span><span class="nt">p</span><span class="p">></span> 347</span></span><span class="line"><span class="cl"> <span class="p"><</span><span class="nt">p</span> <span class="na">lang</span><span class="o">=</span><span class="s">"ko"</span><span class="p">></span>éè§æ¬¡äº®éä¹é¨ 驿 lang=ko<span class="p"></</span><span class="nt">p</span><span class="p">></span> 348</span></span><span class="line"><span class="cl"><span class="p"></</span><span class="nt">div</span><span class="p">></span> 349</span></span></code></pre></td></tr></table> 350</div> 351</div><p><a href="/raw/fontconfig.html#%e5%bc%82%e4%bd%93%e5%ad%97">ç¨ä½ çæµè§å¨å¨çº¿æµè¯</a>ãææå¾ï¼</p> 352 353 354 355<image src="/images/font_glyph_variants.3e1870ca27af61652dd2cac679db19939f869a
3557342b794c9273ffee9a7fc1189.png" 356 id="" 357 width="250" 358 height="280"class="auto-dark"alt="åå½¢çææå¯¹æ¯å¾" 359 style="height: auto;" 360> 361 362<p>å¦æä½ çæµè§å¨æ¾ç¤ºçææåä¸é¢çææå¾ä¸ä¸è´ï¼ 363å¹¶ä¸ãé»è®¤ãé£ä¸è¡ (é»è®¤çæææ¯æ²¡ææå®è¯è¨çæ åµ) 364䏿¯ä½ æ³è¦çé»è®¤åå½¢ï¼å¯è½æ¯å 为缺å°è¯¥åä½æè æ²¡ææåé ç½® fontconfigã</p> 365<p>Arch Linux ç¨æ·æ³¨æäºï¼å¦æåªéæ©å®è£ adobe-source-han-sans-<strong>cn</strong>-fonts 366(æ³¨ææ¯ cn)ï¼ 367æ¯æ æ³æ£ç¡®æ¾ç¤ºå¼ä½åçï¼å ä¸ºå®æ¯ææºé»ä½çä¸ä¸ªåé (subset)ï¼åªæä¸å½å¤§éåå½¢ï¼ 368廿äºä¸é¢è¯´å°çå¼ä½åãå½ç¶ï¼ä¹ä» ä» æ¯å¤±å»äºå°æ°è¿äºç¹æ®çå¼ä½åç½¢äºï¼ 369ç¹ä½åãæ¥ææ±åè¿æ¯æ£å¸¸å å«çã</p> 370<p>å ¶å®å¤§é¨å䏿åä½é½æ²¡æè¯¥åè½ãä½ å¯è½å¥½å¥ææºé»ä½æ¯æä¹åå°çã 371å ¶å®è¿æ¯ä¸ä¸ªåä½ç¹æ§ï¼å使件ä¼å¨å 鍿ºå¸¦ GSUB 表 (Glyph Substitution Table)ï¼ 372å®ç°ä» locl GSUB 䏿 ¹æ®ç¹å®è¯è¨æ¥è¯¢å°å¯¹åºçåå½¢ã 373宿´ççææºé»ä½æ¯å ·å¤è¯¥ç¹æ§çã 374æä»¥æ³è¦å å«ä¸ææå°çé£äºå¼ä½åï¼ 375åºè¯¥éæ©å®è£ adobe-source-han-sans-<strong>otc</strong>-fonts æè noto-sans-cjkã</p> 376<p>æ¢ç¶å¦æ¤ï¼ä¸ºä»ä¹è¿ä¼åå¨ adobe-source-han-sans-<strong>cn</strong>-fonts (å å带 cn çé£ä¸ªçæ¬)ï¼ 377飿¯ç»å®å ¨ä¸å ³å¿è¿äºå¼ä½åçç¨æ·æ¨åºççæ¬ï¼å¨ç§è¯è¨ç¯å¢ä¸åªæ¾ç¤ºä¸å½å¤§éåå½¢ã 378å½ç¶å¤§é¨åç¹ä½ååæ¥ææ±åè¿æ¯æ£å¸¸æ¾ç¤ºçï¼æ¯ç«å æ®ç¸å Unicode ç ä½ 379çå¼ä½ååªå å¾å°ä¸é¨åã</p> 380<p>ç¶èç宿 嵿¯ï¼ä¸å°äººå®è£ adobe-source-han-sans-<strong>otc</strong>-fonts 381æè noto-sans-cjk åï¼æ±æ¨ä¸äºåå½¢æä¹æ¾ç¤ºå¼å¸¸åï¼ç¶å 382被åç¥å®è£ adobe-source-han-sans-<strong>cn</strong>-fonts åå°±æ£å¸¸äºã 383å½ç¶ä¼æ¾ç¤ºæ£å¸¸äºï¼å 为æå¼ä½åç»ä¸¢æäºåï¼ 384æ è®ºæ¯ Adobe ç adobe-source-han-sans-<strong>otc</strong>-fonts 385è¿æ¯ Google ç noto-sans-cjkï¼é»è®¤ä½¿ç¨æ¥æå¼ä½åã 386ä½å¯¹äºä¸æç¨æ·æ¥è¯´ï¼é»è®¤æ¾ç¤ºæ¥æå¼ä½åå¤ªå¥æªäºã</p> 387<p>å ¶å®å®å ¨å¯ä»¥å¨ä¿çå¼ä½åçæ åµä¸ï¼è®©å®é»è®¤æ¾ç¤ºä¸å½å¤§éåå½¢ï¼ 388åªå¨ç¹å®è¯è¨ä¸æ¾ç¤ºå¼ä½åï¼æ¯å¦ç¨æµè§å¨æ¥çä¸ä¸ªæ¥æé¡µé¢ã 389æä»¥éè¦æ£ç¡®é ç½® fontconfigï¼è¿ä¹æ¯æ¬æçç®çä¹ä¸ã 390å¨åæç <a href="#%e6%80%9d%e6%ba%90%e5%ad%97%e4%bd%93">ææºåä½</a> ä¸èï¼æä»¬åæ¥ççææºé»ä½ççæ¬ã</p> 391<h3 id="䏿åä½ç西æé¨å">䏿åä½ç西æé¨å</h3> 392<p>妿å»è§å¯ Noto Sans CJK è¿ä¸ªä¸æåä½ï¼ 393ä¼åç°å®ç西æé¨åçåå½¢å ¶å®å Noto Sans ä¸ä¸æ ·ï¼è½ç¶å®ä»¬é½ä»¥ Noto èªç§°ã</p> 394<p>é¤äºä¸é¢è¯´å°çå¼å·é®é¢ï¼ä¸æåä½ä¸è¿åå¨ä»ä¹é®é¢å¢ï¼é£å°±æ¯ 395䏿å使ºå¸¦çè±æå符æå¯è½ååç³ç³ï¼ç¹å«æ¯ Windows èªå¸¦ç SimHeiï¼ 396ä¹å°±æ¯ä¸æé»ä½ï¼å®çè±æç¸å½ç³ç³ã 397å¦å¤ï¼å¾®è½¯é é»çåéå®å¨æ¯å¤ªå°äºï¼å¯¹äºè®¾è®¡å¸æ¥è¯´å¾ä¸å好ãèåç§æµè¡ç 398è±æå使¯æå¾å¤åéã</p> 399<p>å¯ä»¥æ³¨æå°èåç bootstrap ä¹ééå°è¿ä¸ªé®é¢ï¼å½ä»ä»¬å³å®å¨ font-family ä¸ 400ä½¿ç¨ system-uiï¼åæ¥åä¸å¾ä¸å»æ system-uiï¼ 401<a href="https://github.com/twbs/bootstrap/issues/22328"target="_blank" rel="noopener noreferrer">Do not let system-ui come before “Segoe UI” in font-familyâor 402remove it from the font stack altogether 403</a>ã 404å 为 system-ui è¿ä¸ª CSS font-family å¼ä¼è®©æµè§å¨ç´æ¥è°ç¨ç³»ç»çé¢æä½¿ç¨ 405çåä½å»æ¸²æãä½å¯¹äº Windows ç®ä¸ç¨æ·æ¥è¯´ï¼ 406è±æå使¸²æè¿å使ç¨çæ¯å¾®è½¯é é»ï¼çè³å¯è½æ¯å®ä½ (䏿å®ä½)ï¼è¿æ¯ç½é¡µ 407设计å¸ä¸æ¿æçå°çç»æãå®ä¼è®©ç®ä½ä¸æç¨æ·çå°é颿çãæ¸²æç³ç³çè±æ 408å符ãè½ç¶å¨ Linux ä¸æä»¬æ²¡è¿ä¸ªç¦æ¼ï¼ä½æ¯æ³æ¹å¨å®çè¯å½ç¶æ¯è½åå°çï¼ 409è¿å¯¹ fontconfig æ¥è¯´å°äºä¸æ¡©ï¼ 410详è§åæ <a href="#%e7%ac%ac%e5%9b%9b%e6%ad%a5-%e8%a6%86%e7%9b%96%e8%a5%bf%e6%96%87%e5%ad%97%e4%bd%93">ç¬¬åæ¥ï¼è¦ç西æåä½</a>ã</p> 411<h2 id="å使¯è¾ä¸éæ©">å使¯è¾ä¸éæ©</h2> 412<p>ä¹ æ¯ä¸æä¸æåä½çé»ä½åæ 衬线å½ä¸ºä¸ç±»ï¼æå®ä½åè
412¡¬çº¿å½ä¸ºä¸ç±»ãè³äºç宽åä½ï¼ 413æ¯åºäºæççéè¦ï¼è§å®æ¯ä¸ªå符æ¯å ¨å®½æè åå®½ï¼æ²¡æè§å®æ¯å¦å¿ æè¡¬çº¿ã 414å¯ä»¥éæ©å®ä½å衬线西æä½ä¸ºç宽åä½ï¼ 415ä¹å¯ä»¥éæ©é»ä½åæ 衬线西æã 416åªè¦è½è®©è¥¿æç宽ï¼å¹¶ä¸å®½åº¦æ¯ä¸æå符çä¸å (HW) å³å¯ã 417é常使ç¨é»ä½ä¸æåæ 衬线西æè¾ä¸ºå¸¸è§ã</p> 418<p>å®ä½ï¼æ¥è¯ç§°ä¸ºææä½ï¼Minchoï¼æ¸¯å°ç§°ä¸ºæé«ã 419æä»¥å®ä»¬æ¯ä¸ä¸ªææã</p> 420<p>é»ä½ï¼å¨æ¥è¯ä¸ç§°ä¸º ã´ã·ã㯠æè Gothicãæ³¨æå®ä¸æ¯å¥ç¹å¼é£æ ¼çææã</p> 421<p>ç¥ä¹ï¼<a href="https://www.zhihu.com/question/31772770"target="_blank" rel="noopener noreferrer">为ä»ä¹æ¥æ¬äººç§°ãé»ä½ã为ãå¥ç¹ä½ãï¼</a></p> 422<h3 id="ç¼ç¨åä½">ç¼ç¨åä½</h3> 423<p>对äºç»å¸¸åç¨åºç人æ¥è¯´ï¼ 424ä¼éæ©ä¸æ¬¾åéçç宽åä½ä½ä¸ºç¼ç¨åä½åèæç»ç«¯ä¸çåä½ãæå¤ªå¤å¯ä¾éæ©äºï¼ 425Source Code Proï¼Consolasï¼Menloâ¦â¦ 426è¿æå <a href="https://github.com/tonsky/FiraCode"target="_blank" rel="noopener noreferrer">Fira Code</a> 427è¿æ ·ä»¥è¿å (ligature) 428ç¹æ§ä¸ºä¸»çç¼ç¨åä½ã</p> 429<p>ææ¯è¾æ¨å´ <a href="https://github.com/be5invis/Iosevka"target="_blank" rel="noopener noreferrer">Iosevka</a>ï¼ 430å®å¯ä¸æ¯ä¸ä¸ªæ®éçç宽åä½ï¼ 431èæ¯ä¸ä¸ªé«åº¦å¯å®å¶åçåä½ï¼ä½ å¯ä»¥èªå·±å¾®è°åå½¢ï¼ 432åè¿è¡ç¼è¯ï¼ä»èå¶ä½åºç¬ç¹çç¼ç¨åä½ï¼ 433ä¸ç¨åç¼é¦å ¶ä»ç宽åä½çç¹æ§äºãå¯ä»¥çé¡¹ç® README ä¸ç 434<a href="https://github.com/be5invis/Iosevka#customized-build"target="_blank" rel="noopener noreferrer">Customized Build</a> ä¸èï¼ 435æä¾äºä¸°å¯çèªå®ä¹é¡¹ã 436æ¯å¦æèªå·±ç <a href="https://github.com/rydesun/iosevka-custom"target="_blank" rel="noopener noreferrer">rydesun/iosevka-custom</a>ï¼ 437卿件<code>private-build-plans.toml</code>ä¸é ç½®åä½ï¼ 438åç¨<code>makepkg</code>ç¼è¯æå æå±äºæèªå·±ç Arch å ã 439åæå°±å ³éäºè¿åç¹æ§ï¼æä¸å欢å¨ä»£ç ä¸çå°è¿åã</p> 440<p>å¦å¤ï¼ä½ å¯è½è¿ä¼æ³ä½¿ç¨å¾æ åä½ã 441å¨èæç»ç«¯åä¸äºç³»ç»çé¢ (çªç®¡æä»¶æ ) ä¸ä½¿ç¨å¾æ å使¯ä¸ä¸ªå¾å¥½çæ³æ³ã 442æå¥½äºä¸ªå¼å¾æ¨èç徿 åä½ï¼æ¯å¦ <a href="https://fontawesome.com/"target="_blank" rel="noopener noreferrer">Font Awesome</a>ï¼ 443<a href="http://ionicons.com/"target="_blank" rel="noopener noreferrer">Ionicons</a>ã 444èæµè¡ç <a href="https://www.nerdfonts.com/"target="_blank" rel="noopener noreferrer">Nerd Fonts</a> åæ´åäºå¥½å¤ä¸ªå¾æ åä½ã 445å¯¹ææ¥è¯´ï¼<a href="https://github.com/ryanoasis/vim-devicons"target="_blank" rel="noopener noreferrer">vim-devicons</a> åå®çæé æ¯å¿ ä¸å¯å°çï¼ 446两个项ç®é½æ¥èªåä¸ä¸ªä½è ã 447Arch ç¨æ·å¯ä»¥å®è£ ttf-nerd-fonts-symbols æè ttf-nerd-fonts-symbols-mono å°±è½æ¥æå®ã</p> 448<h3 id="ææºåä½">ææºåä½</h3> 449<p>ææºåä½å°åºæå¤å°ä¸ªåä½åï¼ç°å¨è®©æä»¬æ¥æä¸æ ð</p> 450<p>就以 Arch Linux ä»åºå AUR 为ä¾ã 451䏿¸¸æåäºå¤å°åä½ï¼Arch Linux ä»åºéå°±æå äºå¤å°ä¸ªææºé»ä½ï¼</p> 452<pre tabindex="0"><code>adobe-source-han-sans-cn-fonts 453adobe-source-han-sans-hk-fonts 454adobe-source-han-sans-jp-fonts 455adobe-source-han-sans-kr-fonts 456adobe-source-han-sans-tw-fonts 457</code></pre><p>好家ä¼ï¼æ¯ç§è¯è¨æ¥ä¸ä»½ã 458å ¶å®å®ä»¬å¯¹åºäºå®æ¹é¡¹ç® README 459ä¸ <a href="https://github.com/adobe-fonts/source-han-sans/tree/release/#region-specific-subset-otfs"target="_blank" rel="noopener noreferrer">Region-specific Subset OTFs</a> 460è¿ä¸èæè¯´ççæ¬ã</p> 461<p>è¿è¿åªæ¯é»ä½é¨åï¼ 462忥ççå°å®ä½ï¼ 463adobe-source-han-<strong>serif-otc</strong>-fonts åå®ç subset 464(å°æç¤ºï¼ææºå®ä½æ²¡æä¸é¨å¶å® HK çæ¬ã)</p> 465<pre tabindex="0"><code>adobe-source-han-serif-cn-fonts 466adobe-source-han-serif-jp-fonts 467adobe-source-han-serif-kr-fonts 468adobe-source-han-serif-tw-fonts 469</code></pre><p>ç宽åä½å¢ï¼</p> 470<p>å ¶ä¸å¨ adobe-source-han-<strong>sans</strong> å½ä¸ï¼å·²ç»å å«äºç宽åä½å®¶æåï¼ 471宿¯ä»¥ HW ç»å°¾çï¼ä»£è¡¨è¥¿æå符æ¯ä¸æä¸åç宽度ã 472è³äº AUR å archlinuxcn 社åºä»åºæå ç adobe-source-han-<strong>mono-otc</strong>-fontsï¼ 473以åå®çæ¯ç§è¯è¨ç subset (åå¼å§éå¤äº)</p> 474<pre tabindex="0"><code>adobe-source-han-mono-cn-fonts 475adobe-source-han-mono-hk-fonts 476adobe-source-han-mono-jp-fonts 477adobe-source-han-mono-kr-fonts 478adobe-source-han-mono-tw-fonts 479</code></pre><p>䏿¸¸æ¥èª adobe-fonts/source-han-<strong>mono</strong>ï¼è¿æ¯å¦å¤ä¸ä¸ªé¡¹ç®ï¼çº¯å± Adobe åå·¥çä¸ªäººé¡¹ç® ( 480<a href="https://github.com/adobe-fonts/source-han-mono/issues/1#issuecomment-541322936"target="_blank" rel="noopener noreferrer">
480ä½è çè§£é</a>)ï¼ 481宿¯æè¥¿æé¨åæ¿æ¢æäº Source Code Proã 482æ¢ç¶å颿å°ï¼adobe-source-han-<strong>sans</strong> å 䏿¯å¸¦æ HW è¿ç±»ç宽 483åä½çï¼ä¸ºä»ä¹è¿è¦æå¸¦æ Source Code Pro è¿ä¸ªçæ¬å¢ï¼ 484æ¾ç¶æ¯å ä¸ºåæ¬¢åæåä½ç人们ã 485卿 fontconfig çæ åµä¸è¿æ¯ä¸å¿ è¦çï¼ 486å 为æä»¬å¯ä»¥ç¨ fontconfig å¶å®æ¿æ¢è§åã</p> 487<p>å¦æä½ ä¸å ³å¿å¼ä½åï¼é£ä¹å·æçåæ³æ¯éæ© adobe-source-han-sans-cn-fontsï¼å®æ¥èªå®æ¹ README å°è 488<a href="https://github.com/adobe-fonts/source-han-sans/tree/release/#region-specific-subset-otfs"target="_blank" rel="noopener noreferrer">Region-specific Subset OTFs</a>ã 489å ä¸ºæ¯ subsetï¼æä»¥æ³è¦å®æ´ççè¯ï¼ 490å°±è¦éæ© adobe-source-han-sans-<strong>otc</strong>-fontsï¼ 491宿¥èªå®æ¹ README å°è 492<a href="https://github.com/adobe-fonts/source-han-sans/tree/release/#otcs"target="_blank" rel="noopener noreferrer">OTCs</a>ã 493å ¶å®å¨æ²¡æ fontconfig çæ åµä¸ï¼ç¹å«æ¯ Windows ä¸ï¼åºè¯¥éæ© 494<a href="https://github.com/adobe-fonts/source-han-sans/tree/release/#language-specific-otfs"target="_blank" rel="noopener noreferrer">Language-specific OTFs</a> 495ä¸èççæ¬ï¼å®åæ ·å å«å®æ´ççå¼ä½åï¼ä½é»è®¤è¯è¨ä¸æ¯æ¥æï¼èæ¯è®©æä»¬éæ©ã 496坿 Arch Linux 社åºä»åºæ²¡ææå å®ä»¬ï¼æä»¥æä»¬éè¦å¨ OTCs çæ¬ä¸ï¼ç¨ fontconfig 设置é»è®¤è¯è¨çæ¬ã 497è³äºé£ä¸ª <a href="https://github.com/adobe-fonts/source-han-sans/tree/release/#super-otc"target="_blank" rel="noopener noreferrer">Super OTC</a>, 498宿¯æå¤ä¸ªåéååå¹¶å°ä¸ä¸ªæä»¶ä¸çã便æºçãï¼å¿ è¦æ§ä¸å¤§ï¼æä»¥ç¤¾åºä»åºä¹æ²¡ææå å®ã以ä¸è¯´çæ¯ææºé»ä½ãææºå®ä½åçï¼ä¸åéå¤éè¿°ã</p> 499<h3 id="æ´çº±é»ä½">æ´çº±é»ä½</h3> 500<p>æ´çº±é»ä½æ¯ç±ææºé»ä½å西æåä½ Iosevka æ´åèæ¥çï¼æè 说ï¼å®æ 501ææºé»ä½ç西æé¨åæ¿æ¢æäº Iosevka è¿ä¸ªåä½ã 502æ´çº±é»ä½çä½è å°±æ¯ Iosevka çä½è ï¼ 503该项ç®ç README 第ä¸å¥è¯å°±ææäºï¼</p> 504<pre tabindex="0"><code>This is SARASA GOTHIC, 505a CJK programming font based on Iosevka and Source Han Sans. 506</code></pre><p>ç±äºææºé»ä½ç西æ 507é¨å䏿¯å¾å ¨é¢ï¼æä»¥æ´çº±é»ä½ä¹ç®æ¯æ©å äºä¸é¨ååå½¢ãå¦å¤ï¼ 508æ´çº±é»ä½å¨ææºé»ä½ç䏿åå½¢ä¸åäºä¸äºè°æ´ã 509æä¸æ¯å¾æ¸ æ¥å®å ·ä½åäºåªæ¹é¢çè°æ´ã 510ä½æè®¤ä¸ºæ²¡å¿ è¦ä½¿ç¨æ´çº±é»ä½ï¼èµ·ç å¨ Linux 䏿²¡è¿ä¸ªå¿ è¦ï¼ 511æ³è¦æ´åå¤ä¸ªåä½é fontconfig å°±å¯ä»¥åå°ã</p> 512<h3 id="æçéæ©">æçéæ©</h3> 513<ul> 514<li>æ 衬线ï¼è¥¿æ Noto Sansï¼ä¸æ Noto Sans CJK</li> 515<li>衬线ï¼è¥¿æ Noto Serifï¼ä¸æ Noto Serif CJK</li> 516<li>ç宽ï¼è¥¿æ Iosevkaï¼ä¸æ Noto Sans Mono CJK</li> 517</ul> 518<p>西æåä½ Noto Sans / Noto Serif æ¥èªäºè½¯ä»¶å <code>noto-fonts</code>ï¼
519䏿åä½ Noto Sans CJK / Noto Serif CJK / Noto Sans Mono CJK 520æ¥èªäºè½¯ä»¶å <code>noto-fonts-cjk</code>ã 521Arch Linux ä¸åªè£ è¿ä¸¤ä¸ªå å°±è¡äºï¼å°±è¶³ä»¥è¦çä¸çä¸ 522ç»å¤§é¨åçåå½¢äºãç±äº Noto CJK æ¯ Google å¯¹ææºåä½ 523ç rebrandï¼å®ä»¬æ¯å®å ¨ä¸æ ·çï¼æä»¥æå¨è¿é没æéæ©ä»¥ Adobe çæ¬ 524为主æå çæ¹å¼ã</p> 525<p>å ³äº emojiï¼æéæ©äº Twitter æ¨åºçåä½ Twemojiã</p> 526<ul> 527<li>ttf-twemoji</li> 528</ul> 529<p>å¦å¤ï¼å°ä¸äºäººè§äººç±ç徿 åä½ Nerd Fontsã</p> 530<ul> 531<li>ttf-nerd-fonts-symbols</li> 532</ul> 533<h2 id="åºæ¬æè·¯">åºæ¬æè·¯</h2> 534<p>絮絮å¨å¨åç¯æç« ï¼fontconfig çé 置究ç«é¿ä»ä¹æ ·åï¼</p> 535<p>ç°å¨ç»äºå¯ä»¥è¿å ¥æ£å¼ç¯èäºï¼ä½æå´æ³æè¿é¨åå 容å缩å¾å°½å¯è½çï¼æ¯ç« 536è¶ç®åçé ç½®è¶å®¹æçè§£åç»´æ¤ãè¿éè¿æ¯å»ºè®®å çå®ä¸ä¸ç¯æç« ï¼ 537å 为ä¸äºåçï¼æ¬æä¸ä¼åéå¤ã 538å¦ææ³æ·±å ¥å° fontconfig çé ç½®ä¸å»ï¼æå¥½æ¯å äºè§£å®ã</p> 539<p>åºæ¬æè·¯åªæä¸ä¸ªï¼è®¾ç½®é»è®¤åä½ä¸ºéç¨å使åã</p> 540<p>ä¸è¦å¨ç¨åºè®¾ç½®ä¸æå®ä½¿ç¨ææºé»ä½æè æ´çº±é»ä½ççåä½ï¼ 541æ¯ç«ä½ 䏿¬¡åªè½æå®ä¸ä¸ªåä½ã 542åççåæ³æ¯å¨è®¾ç½®ä¸æå®ç¨åºä½¿ç¨éç¨å使åï¼ 543sans-serifï¼serifï¼monospaceã 544è¿æ ·åä¼è®©ç¨åºä½¿ç¨ fontconfig æä¾ç fallback åè¡¨ï¼ 545ä¹å°±æ¯ font patternï¼éé¢å 嫿们æ³è¦ä¼å 使ç¨çææåä½ã 546æ¯å¦å¨èæç»ç«¯çé ç½®ä½¿ç¨ monospaceï¼è䏿¯æä¸ªå ·ä½çç宽åä½ã 547大é¨åèæç»ç«¯æ¬æ¥é»è®¤å°±æ¯ä½¿ç¨ monospace çï¼æä»¥ä½ æ é 548ä¿®æ¹å®ãå¦æä¿®æ¹è¿ï¼è¯·å¤åé»è®¤å¼ã</p> 549<p>å§ä¸è®¤ä¸ºè¿æ¯ç¬¬é¶æ¥å§ã</p> 550<p>æç®åçé ç½®æä»¶è·¯å¾æ¯<code>~/.config/fontconfig/fonts.conf</code>ï¼æä»¬çé 置添å 551å°è¿ä¸ªæä»¶ä¸ã</p> 552<div class="highlight"><div class="chroma"> 553<table class="lntable"><tr><td class="lntd"> 554<pre tabindex="0" class="chroma"><code><span class="lnt">1 555</span><span class="lnt">2 556</span><span class="lnt">3 557</span><span class="lnt">4 558</span><span class="lnt">5 559</span><span class="lnt">6 560</span><span class="lnt">7 561</span></code></pre></td> 562<td class="lntd"> 563<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="cp"><?xml version="1.0"?></span> 564</span></span><span class="line"><span class="cl"><span class="cp"><!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd"></span> 565</span></span><span class="line"><span class="cl"><span class="nt"><fontconfig></span> 566</span></span><span class="line"><span class="cl"> 567</span></span><span class="line"><span class="cl"><span class="c"><!-- å®é å 容 --></span> 568</span></span><span class="line"><span class="cl"> 569</span></span><span class="line"><span class="cl"><span class="nt"></fontconfig></span> 570</span></span></code></pre></td></tr></table> 571</div> 572</div><p>å®é é ç½®å 容被å 裹å¨å ¶ä¸ãæå¨ gist 䏿ä¾äºä¸ä»½ 573<a href="https://gist.github.com/rydesun/cbeab3a6d7b9ccf3c47d890c7caa3a11"target="_blank" rel="noopener noreferrer">宿´ç示ä¾é ç½®</a>ï¼ 574ä½ä¸ºåèã</p> 575<h2 id="ç¬¬ä¸æ¥è®¾ç½®é»è®¤åä½">ç¬¬ä¸æ¥ï¼è®¾ç½®é»è®¤åä½</h2> 576<div class="highlight"><div class="chroma"> 577<table class="lntable"><tr><td class="lntd"> 578<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 579</span><span class="lnt"> 2 580</span><span class="lnt"> 3 581</span><span class="lnt"> 4 582</span><span class="lnt"> 5 583</span><span class="lnt"> 6 584</span><span class="lnt"> 7 585</span><span class="lnt"> 8 586</span><span class="lnt"> 9 587</span><span class="lnt">10 588</span><span class="lnt">11 589</span><span class="lnt">12 590</span><span class="lnt">13 591</span><span class="lnt">14 592</span><span class="lnt">15 593</span><span class="lnt">16 594</span><span class="lnt">17 595</span><span class="lnt">18 596</span><span class="lnt">19 597</span><span class="lnt">20 598</span><span class="lnt">21 599</span><span class="lnt">22 600</span><span class="lnt">23 601</span><span class="lnt">24 602</span><span class="lnt">25 603</span><span class="lnt">26 604</span><span class="lnt">27 605</span><span class="lnt">28 606</span><span class="lnt">29 607</span><span class="lnt">30 608</span><span class="lnt">31 609</span><span class="lnt">32 610</span><span class="lnt">33 611</span><span class="lnt">34 612</span><span class="lnt">35 613</span><span class="lnt">36 614</span><span class="lnt">37 615</span><span class="lnt">38
616</span><span class="lnt">39 617</span><span class="lnt">40 618</span><span class="lnt">41 619</span><span class="lnt">42 620</span><span class="lnt">43 621</span><span class="lnt">44 622</span><span class="lnt">45 623</span></code></pre></td> 624<td class="lntd"> 625<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="c"><!-- Default system-ui fonts --></span> 626</span></span><span class="line"><span class="cl"><span class="nt"><match</span> <span class="na">target=</span><span class="s">"pattern"</span><span class="nt">></span> 627</span></span><span class="line"><span class="cl"> <span class="nt"><test</span> <span class="na">name=</span><span class="s">"family"</span><span class="nt">></span> 628</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>system-ui<span class="nt"></string></span> 629</span></span><span class="line"><span class="cl"> <span class="nt"></test></span> 630</span></span><span class="line"><span class="cl"> <span class="nt"><edit</span> <span class="na">name=</span><span class="s">"family"</span> <span class="na">mode=</span><span class="s">"prepend"</span> <span class="na">binding=</span><span class="s">"strong"</span><span class="nt">></span> 631</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>sans-serif<span class="nt"></string></span> 632</span></span><span class="line"><span class="cl"> <span class="nt"></edit></span> 633</span></span><span class="line"><span class="cl"><span class="nt"></match></span> 634</span></span><span class="line"><span class="cl"> 635</span></span><span class="line"><span class="cl"><span class="c"><!-- Default sans-serif fonts--></span> 636</span></span><span class="line"><span class="cl"><span class="nt"><match</span> <span class="na">target=</span><span class="s">"pattern"</span><span class="nt">></span> 637</span></span><span class="line"><span class="cl"> <span class="nt"><test</span> <span class="na">name=</span><span class="s">"family"</span><span class="nt">></span> 638</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>sans-serif<span class="nt"></string></span> 639</span></span><span class="line"><span class="cl"> <span class="nt"></test></span> 640</span></span><span class="line"><span class="cl"> <span class="nt"><edit</span> <span class="na">name=</span><span class="s">"family"</span> <span class="na">mode=</span><span class="s">"prepend"</span> <span class="na">binding=</span><span class="s">"strong"</span><span class="nt">></span> 641</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Noto Sans CJK SC<span class="nt"></string></span> 642</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Noto Sans<span class="nt"></string></span> 643</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Twemoji<span class="nt"></string></span> 644</span></span><span class="line"><span class="cl"> <span class="nt"></edit></span> 645</span></span><span class="line"><span class="cl"><span class="nt"></match></span> 646</span></span><span class="line"><span class="cl"> 647</span></span><span class="line"><span class="cl"><span class="c"><!-- Default serif fonts--></span> 648</span></span><span class="line"><span class="cl"><span class="nt"><match</span> <span class="na">target=</span><span class="s">"pattern"</span><span class="nt">></span> 649</span></span><span class="line"><span class="cl"> <span class="nt"><test</span> <span class="na">name=</span><span class="s">"family"</span><span class="nt">></span> 650</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>serif<span class="nt"></string></span> 651</span></span><span class="line"><span class="cl"> <span class="nt"></test></span> 652</span></span><span class="line"><span class="cl"> <span class="nt"><edit</span> <span class="na">name=</span><span class="s">"family"</span> <span class="na">mode=</span><span class="s">"prepend"</span> <span class="na">binding=</span><span class="s">"strong"</span><span class="nt">></span> 653</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Noto Serif CJK SC<span class="nt"></string></span> 654</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Noto Serif<span class="nt"></string></span> 655</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Twemoji<span class="nt"></string></span> 656</span></span><span class="line"><span class="cl"> <span class="nt"></edit></span> 657</span></span><span class="line"><span class="cl"><span class="nt"></match></span> 658</span></span><span class="line"><span class="cl"> 659</span></span><span class="line"><span class="cl"><span class="c"><!-- Default monospace fonts--></span> 660</span></span><span class="line"><span class="cl"><span class="nt"><match</span> <span class="na">target=</span><span class="s">"pattern"</span><span class="nt">></span> 661</span></span><span class="line"><span class="cl"> <span class="nt"><test</span> <span class="na">name=</span><span class="s">"family"</span><span class="nt">></span> 662</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>monospace<span class="nt"></string></span> 663</span></span><span class="line"><span class="cl"> <span class="nt"></test></span> 664</span></span><span class="line"><span class="cl"> <span class="nt"><edit</span> <span class="na">name=</span><span class="s">"family"</span> <span class="na">mode=</span><span class="s">"prepend"</span> <span class="na">binding=</span><span class="s">"strong"</span><span class="nt">></span> 665</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Noto Sans Mono CJK SC<span class="nt"></string></span> 666</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>
666Symbols Nerd Font<span class="nt"></string></span> 667</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Twemoji<span class="nt"></string></span> 668</span></span><span class="line"><span class="cl"> <span class="nt"></edit></span> 669</span></span><span class="line"><span class="cl"><span class="nt"></match></span> 670</span></span></code></pre></td></tr></table> 671</div> 672</div><p>对 system-uiï¼sans-serifï¼serifï¼monospace 设置ä¼å æ¾ç¤ºçåä½ã 673å¨è¿éæè®© system-ui é»è®¤ä¸ºæ 衬线ã 674注æï¼system-ui å¿ é¡»å¨æåã 675ç±äº fontconfig 对 font pattern çæä½æ¯æé¡ºåºæ§è¡çï¼æä»¥å¿ é¡»å 让 system-ui è½ 676ä¼å 以 sans-serif æ¾ç¤ºï¼ç¶åææ¯å¯¹ sans-serif çæä½ã</p> 677<p>ææç Noto CJK åä½é½ä»¥ SC ç»å°¾ï¼å 为æå¸æå¨æ²¡æå®è¯è¨çé»è®¤æ åµä¸ï¼ 678以ç®ä½ä¸ææ¾ç¤ºä¸æåå½¢ã</p> 679<p>é®é¢æ¥äºï¼ä¸ºä»ä¹æè¦ç¨å±æ§<code>binding="strong"</code>ï¼è¿å fontconfig çç»å®ç¹æ§æå ³ã 680å¨å¯¹ font pattern çç¼è¾å¤çè¿åï¼fontconfig ä¼å对 font pattern è¿è¡æåºï¼ 681font pattern ä¸ç强ç»å®åä½ä¼ç§»å¨å°åé¢ï¼å¼±ç»å®åä½ä¼ç§»å¨å°åé¢ã 682ä¹å°±æ¯è¯´ï¼f1(s) f2(w) f3(w) f4(s) è¿ç§ font pattern ä¼åæ f1(s) f4(s) f2(w) f3(w)ã 683(s) 代表强ç»å®åä½ï¼(w) 代表弱ç»å®åä½ãä¸ä» 妿¤ï¼fontconfig è¿è¦å¯¹ 684å¼±ç»å®åä½å次æåºï¼å¦æ f3(w) è¿ä¸ªå使¯æ font pattern ä¸ä¼ å ¥çè¯è¨åæ°ï¼ 685å®å°è¢«ç§»å¨å° f2(w) åé¢ãæä»¥æç»ç»ææ¯ f1(s) f4(s) f3(w) f2(w)ã</p> 686<p>è¿ä¹å°±æ¯ä¸ºä»ä¹å¾å¤äººè¯´ï¼ææå¨ fontconfig ä¸è®¾ç½®å¥½çåä½é¡ºåºï¼ç»æè¿æ¯ä¹±äºã 687ä½ ææ fontconfig ç¼è¾è¿åçåä½é¡ºåºæ¯ f1(s) f2(w) f3(w) f4(s)ï¼ä½æååæäº 688f1(s) f4(s) f3(w) f2(w)ã 689å ¶å®æ¯å ä¸ºæ²¡ææ³¨æå° fontconfig ç强弱ç»å®ç¹æ§ã 690æä»¥ï¼å¨æä»¬é ç½® fontconfig çæ¶åï¼åºè¯¥ç»ä¸ä½¿ç¨å¼ºç»å®ï¼ 691ä¹å°±æ¯<code>binding="strong"</code>ï¼è®©èªå·±çè§åä¼å äºç³»ç»ç«¯çé»è®¤é ç½®ã</p> 692<p>å½ç½é¡µæå®äºé¡µé¢è¯è¨ï¼Firefox å Chrome æµè§å¨æ¯æä¹å¤çå®çå¢ï¼</p> 693<p>Firefox åªä¼å¯¹ä¸å¤§éç¨å使å (sans-serifï¼serifï¼monospace) 694ä¼ é页é¢è¯è¨ç» fontconfigï¼å ¶ä»åä½åæ¯ä¼ ç¯å¢åéä¸ç LANGã 695å¦å¤ï¼Firefox 伿 system-ui å½ä½æ®éçåæåä¼ éç» fontconfigï¼ 696èæ²¡æç¹æ®å¤çå®ã(TODO å¾ ç¡®è®¤ï¼Firefox å¨é¢å¯¹éç¨åä½æåæ¶ï¼ 697åªä¼åé ç½®ä¸çå 3 个åä½ï¼)</p> 698<p>Chrome å®å ¨ä¸ä¼ è¯è¨ç» fontconfigãä¸ Firefox ä¸ä¸æ ·ï¼Chrome 699ä¼ç¹æ®å¯¹å¾ system-uiï¼ä» GTK 设置é£éç´æ¥æ¿æ¥åä½ã</p> 700<h2 id="ç¬¬äºæ¥æè¯è¨éæ©å¼ä½å">ç¬¬äºæ¥ï¼æè¯è¨éæ©å¼ä½å</h2> 701<p>æ¾ç¤ºå¼ä½åæä¸¤ç§æ¹å¼ï¼</p> 702<ul> 703<li> 704<p>å¨ fontconfig çåä½å¹é é¶æ®µï¼éè¿è¯è¨éä¸è¯¥è¯è¨å¯¹åºçå使åã</p> 705</li> 706<li> 707<p>å¨å使¸²æé¶æ®µï¼éè¿å使件另æç GSUB è¡¨æ ¹æ®è¯è¨éæ©åå½¢ã</p> 708</li> 709</ul> 710<p>为äºè½è®©ç¨åºæè Web 页é¢è½å¨ zh-HK è¯è¨ç¯å¢ä¸ä½¿ç¨ Noto Sans CJK HKï¼å¯ä»¥è¿æ ·åï¼</p> 711<div class="highlight"><div class="chroma"> 712<table class="lntable"><tr><td class="lntd"> 713<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 714</span><span class="lnt"> 2 715</span><span class="lnt"> 3 716</span><span class="lnt"> 4 717</span><span class="lnt"> 5 718</span><span class="lnt"> 6 719</span><span class="lnt"> 7 720</span><span class="lnt"> 8 721</span><span class="lnt"> 9 722</span><span class="lnt">10 723</span><span class="lnt">11 724</span><span class="lnt">12 725</span></code></pre></td> 726<td class="lntd"> 727<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="nt"><match</span> <span class="na">target=</span><span class="s">"pattern"</span><span class="nt">></span> 728</span></span><span class="line"><span class="cl"> <span class="nt"><test</span> <span class="na">name=</span><span class="s">"lang"</span><span class="nt">></span> 729</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>zh-HK<span class="nt"></string></span> 730</span></span><span class="line"><span class="cl"> <span class="nt"></test></span> 731</span></span><span class="line"><span class="cl"> <span class="nt"><test</span> <span class="na">name=</span><span class="s">"family"</span><span class="nt">></span> 732</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Noto Sans CJK SC<span class="nt"></string></span> 733</span></span><span class="line"><span class="cl"> <span class="nt"></test></span> 734</span></span><span class="line"><span class="cl"> <span class="nt"><edit</span> <span class="na">name=</span><span class="s">"family"</span> <span class="na">binding=</span><span class="s">"strong"</span><span class="nt">></span> 735</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Noto Sans CJK HK<span class="nt"></string></span> 736</span></span><span class="line"><span class="cl"> <span class="nt"></edit></span> 737</span></span><span class="line"><span class="cl"><span class="nt"></match></span> 738</span></span><span class="line"><span class="cl"><span class="c"><!-- å¦å¤è¯·åéå¤ zh-TWãjaãko --></span> 739</span></span></code></pre></td></tr></table> 740</div> 741</div><p>å¨åä½å¹é æ¶ï¼å° Noto Sans CJK SC æ¿æ¢æ Noto Sans CJK HKã 742é¤äº zh-HKï¼ä½ è¿éè¦ç §è«è¦ç»ç¢åå«æå® zh-TWãjaãkoï¼ 743以å对å®ä½åç宽åä½è¿è¡éå¤çæ¥éª¤ã 744卿¤æå°±ä¸éå¤äºã</p> 745<p>
745PS. å¨ç¨ FC_DEBUG æ¥ç fontconfig çè°è¯ä¿¡æ¯æ¶ï¼ 746ç¨åºä¼ éç» fontconfig çè¯è¨åæ°ï¼æ¾ç¤ºå¨ lang ä¸è¡è䏿¯ familylangã 747familylang æ¯æä¸ä¸ªåä½å®çæåçè¯è¨çæ¬ï¼æ¯å¦ç®ä¸çææºé»ä½çåä½ 748æåæãææºé»ä½ã(zh-cn)ããSource Han Sans SCã(en)ï¼è¿ä¸¤ä¸ªåä½ 749æåæååä¸ä¸ªåä½ã</p> 750<h2 id="ç¬¬ä¸æ¥æ¿æ¢ä»»æåä½">ç¬¬ä¸æ¥ï¼æ¿æ¢ä»»æåä½</h2> 751<p>å½ç³»ç»éå·²ç»å®è£ äºä¸äºä¸éè¦çåä½ï¼ä½å䏿³å 餿è å±è½å®æä¹åå¢ï¼ 752æ¿æ¢æ font pattern å°±å¯ä»¥äºãæåç°å¨å®è£ å® Arch Linux åï¼ 753åå¨ä¾èµ adobe-source-code-pro-fontsï¼å®å å«äº Source Code Variable 754å Source Code Pro è¿ä¸¤ä¸ªåä½ï¼ä½æä¸æ³ä½¿ç¨å®ä»¬ï¼æä»¥å¯ä»¥ç´æ¥æ¿æ¢æ</p> 755<div class="highlight"><div class="chroma"> 756<table class="lntable"><tr><td class="lntd"> 757<pre tabindex="0" class="chroma"><code><span class="lnt">1 758</span><span class="lnt">2 759</span><span class="lnt">3 760</span><span class="lnt">4 761</span><span class="lnt">5 762</span><span class="lnt">6 763</span><span class="lnt">7 764</span><span class="lnt">8 765</span></code></pre></td> 766<td class="lntd"> 767<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="nt"><match</span> <span class="na">target=</span><span class="s">"pattern"</span><span class="nt">></span> 768</span></span><span class="line"><span class="cl"> <span class="nt"><test</span> <span class="na">name=</span><span class="s">"family"</span> <span class="na">compare=</span><span class="s">"contains"</span><span class="nt">></span> 769</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Source Code<span class="nt"></string></span> 770</span></span><span class="line"><span class="cl"> <span class="nt"></test></span> 771</span></span><span class="line"><span class="cl"> <span class="nt"><edit</span> <span class="na">name=</span><span class="s">"family"</span> <span class="na">binding=</span><span class="s">"strong"</span><span class="nt">></span> 772</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Iosevka Term<span class="nt"></string></span> 773</span></span><span class="line"><span class="cl"> <span class="nt"></edit></span> 774</span></span><span class="line"><span class="cl"><span class="nt"></match></span> 775</span></span></code></pre></td></tr></table> 776</div> 777</div><p>注ææç¨äº<code>compare="contains"</code>ç´æ¥å¹é è¿ä¸¤ä¸ªåä½ï¼ 778ç¶åæ¹æäºæéè¦ç Iosevka Termã</p> 779<h2 id="ç¬¬åæ¥è¦ç西æåä½">ç¬¬åæ¥ï¼è¦ç西æåä½</h2> 780<p>让西æåä½åºç°å¨ font pattern ä¸ç䏿åä½åé¢ï¼å°±è½è®©ç¨åºä¼å 781ä½¿ç¨æä»¬æå®ç西æåä½äºï¼åæ¶ä¹è§£å³äºå¼å·é®é¢ã 782卿¤æä»¬éè¦ç»§ç»ä½¿ç¨å¼ºç»å®ã</p> 783<div class="highlight"><div class="chroma"> 784<table class="lntable"><tr><td class="lntd"> 785<pre tabindex="0" class="chroma"><code><span class="lnt">1 786</span><span class="lnt">2 787</span><span class="lnt">3 788</span><span class="lnt">4 789</span><span class="lnt">5 790</span><span class="lnt">6 791</span><span class="lnt">7 792</span><span class="lnt">8 793</span><span class="lnt">9 794</span></code></pre></td> 795<td class="lntd"> 796<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="nt"><match</span> <span class="na">target=</span><span class="s">"pattern"</span><span class="nt">></span> 797</span></span><span class="line"><span class="cl"> <span class="nt"><test</span> <span class="na">name=</span><span class="s">"family"</span> <span class="na">compare=</span><span class="s">"contains"</span><span class="nt">></span> 798</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Noto Sans CJK<span class="nt"></string></span> 799</span></span><span class="line"><span class="cl"> <span class="nt"></test></span> 800</span></span><span class="line"><span class="cl"> <span class="nt"><edit</span> <span class="na">name=</span><span class="s">"family"</span> <span class="na">mode=</span><span class="s">"prepend"</span> <span class="na">binding=</span><span class="s">"strong"</span><span class="nt">></span> 801</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Noto Sans<span class="nt"></string></span> 802</span></span><span class="line"><span class="cl"> <span class="nt"></edit></span> 803</span></span><span class="line"><span class="cl"><span class="nt"></match></span> 804</span></span><span class="line"><span class="cl"><span class="c"><!-- ç³ç³ï¼ä¸æææ¬çå¼å·ä¸æ¯å ¨è§ç --></span> 805</span></span></code></pre></td></tr></table> 806</div> 807</div><p>æ ¢çï¼è¿æ ·å²ä¸æ¯å¨ä¸æç¯å¢ä¸ä½¿ç¨è¥¿æåä½ï¼å æ¬è±æå符宽度çå¼å·ï¼ 808ç¡®å®æè¿ä¸ªé®é¢ãæä»¥ï¼æä¸é¢çé ç½®æ¹æï¼</p> 809<div class="highlight"><div class="chroma"> 810<table class="lntable"><tr><td class="lntd"> 811<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 812</span><span class="lnt"> 2 813</span><span class="lnt"> 3 814</span><span class="lnt"> 4 815</span><span class="lnt"> 5 816</span><span class="lnt"> 6 817</span><span class="lnt"> 7 818</span><span class="lnt"> 8 819</span><span class="lnt"> 9 820</span><span class="lnt">10 821</span><span class="lnt">11 822</span><span class="lnt">12 823</span></code></pre></td> 824<td class="lntd"> 825<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="c"><!-- æ¯ä¸é¢çé ç½®å¥½äº --></span> 826</span></span><span class="line"><span class="cl"><span class="nt"><match</span> <span class="na">target=</span><span class="s">"pattern"</span><span class="nt">></span> 827</span></span><span class="line"><span class="cl"> <span class="nt"><test</span> <span class="na">name=</span><span class="s">"lang"</span> <span class="na">compare=</span><span class="s">"contains"</span><span class="nt">></span> 828</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>en<span class="nt"></string></span> 829</span></span><span class="line"><span class="cl"> <span class="nt"></test></span> 830</span></span><span class="line"><span class="cl"> <span class="nt"><test</span> <span class="na">name=</span><span class="s">"family"</span> <span class="na">compare=</span><span class="s">"contains"</span><span class="nt">></span> 831</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Noto Sans CJK<span class="nt"></string></span> 832</span></span><span class="line"><span class="cl"> <span class="nt"></test></span> 833</span></span><span class="line"><span class="cl"> <span class="nt"><edit</span> <span class="na">name=</span><span class="s">"family"</span> <span class="na">mode=</span><span class="s">"prepend"</span> <span class="na">binding=</span><span class="s">"strong"</span><span class="nt">></span> 834</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Noto Sans<span class="nt"></string></span> 835</span></span><span class="line"><span class="cl"> <span class="nt"></edit></span> 836</span></span><span class="line"><span class="cl"><span class="nt"></match></span> 837</span></span></code></pre></td></tr></table> 838</div> 839</div><p>让西æå使¿æ¢è§ååªå¨ en ç¯å¢ä¸ææï¼å¨æ è¯è¨æè å ¶ä»è¯è¨ç 840æ åµä¸ï¼ç»§ç»ä½¿ç¨ä¸æåä½ä¸ç西æåå½¢åå ¨è§å¼å·ã</p> 841<p>æç°å¨æ³å¨ç宽åä½ä¸ä¼å ä½¿ç¨ Iosevka Termï¼æä»¥å¯ä»¥è¿æ ·åï¼</p> 842<div class="highlight"><div class="chroma"> 843<table class="lntable"><tr><td class="lntd"> 844<pre tabindex="0" class="chroma"><code><span class="lnt">1 845</span><span class="lnt">2 846</span><span class="lnt">3 847</span><span class="lnt">4 848</span><span class="lnt">5 849</span><span class="lnt">6 850</span><span class="lnt">7 851</span><span class="lnt">8 852</span><span class="lnt">9 853</span></code></pre></td> 854<td class="lntd"> 855<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="nt"><match</span> <span class="na">target=</span><span class="s">"pattern"</span><span class="nt">></span> 856</span></span><span class="line"><span class="cl"> <span class="nt"><test</span> <span class="na">name=</span><span class="s">"family"</span> <span class="na">compare=</span><span class="s">"contains"</span><span class="nt">></span> 857</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Noto Sans Mono CJK<span class="nt"></string></span> 858</span></span><span class="line"><span class="cl"> <span class="nt"></test></span> 859</span></span><span class="line"><span class="cl"> <span class="nt"><edit</span> <span class="na">name=</span><span class="s">"family"</span> <span class="na">mode=</span><span class="s">"prepend"</span> <span class="na">binding=</span><span class="s">"strong"</span><span class="nt">></span> 860</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Iosevka Term<span class="nt"></string></span> 861</span></span><span class="line"><span class="cl"> <span class="nt"></edit></span> 862</span></span><span class="line"><span class="cl"><span class="nt"></match></span> 863</span></span><span class="line"><span class="cl"><span class="c"><!-- ç³ç³ï¼Chrome ç䏿åä½ä¸æ¯ææ³è¦ç --></span> 864</span></span></code></pre></td></tr></table> 865</div> 866</div><p><strong>注æï¼</strong> æäºç¨åºå± ç¶åªä½¿ç¨ font pattern ç»æä¸çé¦ä¸ªåä½ï¼ 867æ¯å¦ Chromeï¼è½ç¶ Chrome æ¥åäºæä»¬æå®ç西æåä½ï¼ä½æ¯å® 868忽ç¥äºç´§æ¥å ¶åç䏿åä½ï¼å³ä½¿é ç½®éç¨äºå¼ºç»å®ï¼ç¶å䏿åä½ 869åä¸ç¥éå® fallback å°åªå»äºï¼å¯è½ä¼åºç°ä½ æ³è¦ç䏿åä½ï¼ 870ä¹å¯è½ä¸æ¯ãæä»¥ï¼å¯ä»¥è¿æ ·åï¼</p> 871<div class="highlight"><div class="chroma"> 872<table class="lntable"><tr><td class="lntd"> 873<pre tabindex="0" class="chroma"><code><span class="lnt"> 1 874</span><span class="lnt"> 2 875</span><span class="lnt"> 3 876</span><span class="lnt"> 4 877</span><span class="lnt"> 5 878</span><span class="lnt"> 6 879</span><span class="lnt"> 7 880</span><span class="lnt"> 8 881</span><span class="lnt"> 9 882</span><span class="lnt">10 883</span><span class="lnt">11 884</span><span class="lnt">12 885</span></code></pre></td> 886<td class="lntd"> 887<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="c"><!-- æ¯ä¸é¢çé ç½®å¥½äº --></span> 888</span></span><span class="line"><span class="cl"><span class="nt"><match</span> <span class="na">target=</span><span class="s">"pattern"</span><span class="nt">></span> 889</span></span><span class="line"><span class="cl"> <span class="nt"><test</span> <span class="na">name=</span><span class="s">"prgname"</span> <span class="na">compare=</span><span class="s">"not_eq"</span><span class="nt">></span> 890</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>chrome<span class="nt"></string></span> 891</span></span><span class="line"><span class="cl"> <span class="nt"></test></span> 892</span></span><span class="line"><span class="cl"> <span class="nt"><test</span> <span class="na">name=</span><span class="s">"family"</span> <span class="na">compare=</span><span class="s">"contains"</span><span class="nt">></span> 893</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Noto Sans Mono CJK<span class="nt"></string></span> 894</span></span><span class="line"><span class="cl"> <span class="nt"></test></span> 895</span></span><span class="line"><span class="cl"> <span class="nt"><edit</span> <span class="na">name=</span><span class="s">"family"</span> <span class="na">mode=</span><span class="s">"prepend"</span> <span class="na">binding=</span><span class="s">"strong"</span><span class="nt">></span> 896</span></span><span class="line"><span class="cl"> <span class="nt"><string></span>Iosevka Term<span class="nt"></string></span> 897</span></span><span class="line"><span class="cl"> <span class="nt"></edit></span> 898</span></span><span class="line"><span class="cl"><span class="nt"></match></span> 899</span></span></code></pre></td></tr></table> 900</div> 901</div><p>å¨æææ åµä¸ï¼é¤äºç¨åºå为 Chrome çæ åµä¸ï¼ 902ä¼å ä½¿ç¨ Iosevka Term æ¾ç¤ºè¥¿æï¼ 903åç¨ Noto Sans Mono CJK æ¾ç¤ºä¸æãè½ç¶æä¸è½è®© Chrome ä½¿ç¨ Iosevka Termï¼ 904ä½å®ä¸å®è½ç¨ä¸ Noto Sans Mono CJK æ¾ç¤ºä¸æã 905ç±äºæé¤äº Chromeï¼æä»¥æ æ³è§£å³ Chrome ä¸çå ¨è§å¼å·é®é¢ã</p> 906<p>
906é£ä¹ä¸é¢é£äºåä½è¦çè§åä¸é½æè¿ä¸ªé®é¢åï¼æ²¡å ³ç³»ï¼å¨ä¸ä»½è¯è¨æ 记为 en ç 907Web 页é¢ä¸ï¼åºç°ä¸æçæ 嵿¯ç½è§çï¼æä»¥æä¸æä¹æ å¿ Chrome 使ç¨äº 908åªä¸ªä¸æåä½ãå®é ä¸ï¼æå¹³æ¶ç¨ Firefox ä¸ç¨ Chromeï¼å®å ¨æ²¡è¿ä¸ªç¦æ¼ã</p> 909<h2 id="ä¸è½è§£å³çé®é¢">ä¸è½è§£å³çé®é¢</h2> 910<p>è½ç¶ fontconfig æ¬èº«ä¸è´è´£æ¸²æåä½ï¼å®é æ¸²ææ¯ç±ç¨åºäº¤ç» freetype æ¥å®æçï¼ 911使¯ fontconfig å¨å¤ç font pattern çæ¶åå¯ä»¥ä¿®æ¹ä¸äºæ¸²æåæ°ï¼æ¯å¦æ¯å¦ 912å¼å¯ hinting åååç´ æ¸²æï¼æ¯å¦å¼å¯è¿åç¹æ§ã 913åæ¶ä¹å¯ä»¥æ ¹æ®å®é æ 嵿¥éæ©åè¿æ»¤åä½ï¼æ¯å¦æ ¹æ®åç´ å°ºå¯¸åå« 914æå®åä½ï¼åæè æ§å¶ä½æ¶ä½¿ç¨ç¹éµåä½ã 915æä»¥æ¸²æææå¦ä½ï¼ä¸ä» ä» æ¯ fontconfig çé®é¢ï¼åæ¶ä¹æ¯æ¡é¢ç¨åºèªèº«ä»¥å 916freetype çé®é¢ãä½ å¯ä»¥ç¨ fontconfig æ§å¶ä¸äºæ¸²æç¹æ§ååæ°ï¼æå® 917æ¸²ææææ´å¥½çåä½ï¼ä½ä¸è½ææ fontconfig ç¾åç¾å¸®ä½ å¤çææç渲æé®é¢ã</p> 918<p>Linux ä¸å¼ºè¿«ç¨åºå¿ 须使ç¨ç¹å®çä¾èµï¼èæ¯ç¨åºä¸»å¨éæ©äºçº¦å®ä¿æçä¾èµã 919èè¯éè°ï¼ç¨åºå¯ä»¥èªç±éæ©å®å ¨éµå® fontconfigï¼ä¹å¯ä»¥éæ©é¨åä½¿ç¨ 920fontconfig çé ç½®ï¼æè å®å ¨ä¸éµå®å®ã 921åªä¸è¿ç°å¦ä»å¤§é¨å Linux ç¨åºé½è½å¾å¥½å°å fontconfig ååå·¥ä½ï¼ 922å 为ç»å¤§é¨å Linux ç¨åºä½¿ç¨äº Qt æè GTK è¿äºé¨ä»¶åºæ¥å¼åçé¢ï¼ 923è Qt å GTK æ¬èº«å°±ä¾èµ fontconfigï¼å®ä»¬åä¸å ¶ä¸ï¼ 924ä»è让ç¨åºé»è®¤å°±éµå®äº fontconfig çé ç½®ã 925妿ç¨åºä¸éç¨ Qt å GTK æ¥å¼åçé¢ï¼èæ¯èªå·±æ¥ç»å¶çªå£ï¼ 926é£ä¹ä¹ä¼å°½å¯è½å°ä½¿ç¨ fontconfigï¼è¿å¨ä¸äºæ´ç´ çèæç»ç«¯æ¨¡æå¨ä¸ 927å¾å°äºä½ç°ï¼æ¯å¦èæç»ç«¯ Alacritty 卿²¡æä½¿ç¨ Qt æè GTK å¼åçé¢çæ åµä¸ï¼ 928ç´æ¥è°ç¨ fontconfig å freetype æ¥æ¸²æåä½ã</p> 929<p>åªè½è¯´ç°å¦ä»ç Linux ç¨åºçè¡ä¸ºå¦æ¤ï¼ä½ä¹æå°é¨åç¨åº 930ä½¿ç¨ Xftï¼é£ä¹å°±ä¸æ¯ fontconfig è½ç®¡å¾äºçãè¿ä½ç°å¨ä¸äºå岿 ä¹ ç软件ä¸ï¼ 931æ¯å¦èæç»ç«¯ rxvtï¼ä»¥åä¸äºå¤æ´ç游æãå®ä»¬æ¯ä» Xft çé ç½®ä¸ï¼è¯»å 932åä½é ç½®çã</p> 933<p>乿äºç¨åºå¯ä»¥ä½¿ç¨èªå·±æå çè¿è¡æ¶ç¯å¢ï¼å®èªèº«æºå¸¦ç fontconfig åºåé ç½® 934ä¸ç³»ç»ç«¯ç fontconfig ç¸äºç¬ç«ã 935æ¯å¦ Steamï¼ å®ç第ä¸ä¸ªå¯å¨æ¡è¿éµå®çæä»¬ç³»ç»ä¸ç fontconfig é ç½®ååä½æä»¶ï¼ 936å 为è¿ä¸ªå¯å¨æ¡æ¯ Steam éè¿ä½¿ç¨ zenity ç»å¶çã 937å¨ Steam è¿å ¥ä¸»çé¢åï¼Steam ä¼ä½¿ç¨èªå·±è¿è¡æ¶ç¯å¢ä¸ç fontconfigï¼å¹¶ä¸ä½¿ç¨ 938èªå·±çå使件ãæä»¥æä»¬ç fontconfig é 置对 Steam æ æã</p></article> 939 940 941 942 943 944 <section class="article license-custom"><a rel="license" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target="_blank"> 945 <img alt="CC BY-NC-SA 4.0" width=80 height=15 946 src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAPCAIAAAD8q9/YAAAABGdBTUEAANbY1E9YMgAAAapJREFUSMflljFPAjEUx98HsMUb2aBqdCKSToQ4cHTD9SYSx2Nw0sFOJMQB2DCBpV/hnNTFwOAEIaTxG/AV+hVqtOQ8oXdybue93HBp3mvv9/7vvStADk3nxr6BH5+C6NO57gDAcDi0hjHGMMYTMTbOq/dV4bCQCV3twBMxxhjH0YbMp2enxn/6Nu31ehkGrl/Uy+Vycm1IKQGgfdU2IUu5bF22sgqMMDLySikJIQDAGFNKMcYAgBAipTQiV2k1rOrRw8g6F7YP+/luXYxGWZ0TTknwtwN377sAMJvNtNaEEM/ztNb8yxzHUUoJIYIgMIsIo7Cq54u5dfetl7gP2s2ONVlxOUrnHwW+vbsBACmlUio6tzzPo5RGq5pzjjE2US+vz4vVIiH3VhnjIONSs7vnrrwJIqdQmDHm+75RmHMuhNgojFIonJB7axn/qthW7B8V/uxhtOnhIAgcxwEA3/fDHqaUrtdrrXWz2aycV/bs4f2B9+/huDGRGrhWr5VKpRxN6YkYI3QwGAwSgF3XPT45+if/4XB09ft9K23DbRSLxWzftPJ1l86VfQA/Yr8BK4J+aAAAAABJRU5ErkJggg==" /> 947 </a> 948 <p>© 2020-2024 rydesun</p> 949 </section></div> 950 951 952 953 <div id="article-sidebar" class="article sidebar">
954 <button onclick="sidebarManager.toggle()">ç®å½</button> 955 <nav id="TableOfContents"> 956 <ol> 957 <li><a href="#æ··ä¹±çç°ç¶">æ··ä¹±çç°ç¶</a> 958 <ol> 959 <li><a href="#é 置路å¾">é 置路å¾</a></li> 960 <li><a href="#å ³äºåæåä½">å ³äºåæåä½</a></li> 961 <li><a href="#å ³äºç½é¡µ">å ³äºç½é¡µ</a></li> 962 </ol> 963 </li> 964 <li><a href="#è§£å³é®é¢">è§£å³é®é¢</a> 965 <ol> 966 <li><a href="#å ¨è§å¼å·">å ¨è§å¼å·</a></li> 967 <li><a href="#å¼ä½å">å¼ä½å</a></li> 968 <li><a href="#䏿åä½ç西æé¨å">䏿åä½ç西æé¨å</a></li> 969 </ol> 970 </li> 971 <li><a href="#å使¯è¾ä¸éæ©">å使¯è¾ä¸éæ©</a> 972 <ol> 973 <li><a href="#ç¼ç¨åä½">ç¼ç¨åä½</a></li> 974 <li><a href="#ææºåä½">ææºåä½</a></li> 975 <li><a href="#æ´çº±é»ä½">æ´çº±é»ä½</a></li> 976 <li><a href="#æçéæ©">æçéæ©</a></li> 977 </ol> 978 </li> 979 <li><a href="#åºæ¬æè·¯">åºæ¬æè·¯</a></li> 980 <li><a href="#ç¬¬ä¸æ¥è®¾ç½®é»è®¤åä½">ç¬¬ä¸æ¥ï¼è®¾ç½®é»è®¤åä½</a></li> 981 <li><a href="#ç¬¬äºæ¥æè¯è¨éæ©å¼ä½å">ç¬¬äºæ¥ï¼æè¯è¨éæ©å¼ä½å</a></li> 982 <li><a href="#ç¬¬ä¸æ¥æ¿æ¢ä»»æåä½">ç¬¬ä¸æ¥ï¼æ¿æ¢ä»»æåä½</a></li> 983 <li><a href="#ç¬¬åæ¥è¦ç西æåä½">ç¬¬åæ¥ï¼è¦ç西æåä½</a></li> 984 <li><a href="#ä¸è½è§£å³çé®é¢">ä¸è½è§£å³çé®é¢</a></li> 985 </ol> 986</nav> 987 </div> 988 989</main> 990 991<div class="article bottom"> 992 993 <section id="discussion-area" class="article discussion"> 994 <div id="remark42"></div> 995</section></div></section><section id="footer"><div class="footer-wrap"> 996 <p class="copyright">© 2020-2024 rydesun</p> 997 <p class="powerby"> 998 <span>Powered by</span> 999 <a href="https://gohugo.io" target="_blank" rel="noopener">Hugo</a> 1000 <span>&</span> 1001 <a href="https://github.com/cntrump/hugo-notepadium" target="_blank" 1002 rel="noopener">Notepadium</a> 1003 <span>(<a href="https://github.com/rydesun/catcat.cc" target="_blank" 1004 rel="noopener">modified</a>)</span> 1005 </p> 1006</div> 1007</section></body> 1008 1009</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.