使用 React Native 和 Poppins 字体使用带有拉丁字母(ě、š、č、ř、ž)的 <Font> 时出现字体渲染问题

问题描述 投票:0回答:1

我在 React Native 项目中遇到字体渲染问题,特别是使用 Poppins 字体时的拉丁字母,如 ě、š、č、ř、ž。我使用以下代码定义了字体,该代码不适用于拉丁字母:

<Font
fontFamily="Poppins"
fallbackFontFamily="Verdana"
  webFont={{
   url: "https://fonts.gstatic.com/s/poppins/v20/pxiEyp8kv8JHgFVrJJfecnFHGPc.woff2",
   format: "woff2",
  }}
fontWeight={400}
fontStyle="normal"
/>

Different style of ě from the rest of letters

尝试过:

我尝试使用不同的字体粗细、链接和格式。

预计:

整个文档的字体风格相同,带有拉丁字母

expected outcome

html css reactjs typescript fonts
1个回答
0
投票

字符

ě, š, č, ř, ž
包含在拉丁扩展子集中。
您当前正在加载(基本)latin子集,因此,您会看到后备字体。

如果您只需要常规版本,只需在浏览器中打开 CSS URL,然后从

@font-face
规则中复制拉丁语和拉丁语分机的 url。

坦率地说,我还没有找到解释,如何在react-native中添加多个unicode范围,但它应该看起来像这样

<Font
    fontFamily="Poppins"
    fallbackFontFamily="Verdana"
    webFont={[
      {
        url: "https://fonts.gstatic.com/s/poppins/v20/pxiEyp8kv8JHgFVrJJfecnFHGPc.woff2",
        format: "woff2",
        unicodeRange: "U+0000-00FF, U+0100-024F, U+1E00-1EFF, U+0400-04FF, U+0500-052F, U+0600-06FF, U+0900-097F, U+0A00-0A7F, U+1100-11FF, U+1F00-1FFF",
      },
      {
        url: "https://fonts.gstatic.com/s/poppins/v20/pxiEyp8kv8JHgFVrJJnecmNE.woff2",
        format: "woff2",
        unicodeRange: "U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF",
      },
    ]}
    fontWeight={400}
    fontStyle="normal"
  />

/* latin */

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/poppins/v20/pxiEyp8kv8JHgFVrJJfecg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* latin-ext */

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/poppins/v20/pxiEyp8kv8JHgFVrJJnecmNE.woff2) format('woff2');
}

body {
  font-family: 'Poppins';
}
<h1>Hamburgefons ě, š, č, ř, ž </h1>

否则您也可以下载完整的“未子集”版本。
请记住,这些文件比单个 unicode 范围子集 (~50KB) 大得多。

"files": {
        "100": "http://fonts.gstatic.com/s/poppins/v20/pxiGyp8kv8JHgFVrLPTecnFBGPaTSQ.woff2",
        "100italic": "http://fonts.gstatic.com/s/poppins/v20/pxiAyp8kv8JHgFVrJJLmE3tAOvODSVFF.woff2",
        "200": "http://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLFj_V15vFP-KUEg.woff2",
        "200italic": "http://fonts.gstatic.com/s/poppins/v20/pxiDyp8kv8JHgFVrJJLmv1plFd2PQEhcqw.woff2",
        "300": "http://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLDz8V15vFP-KUEg.woff2",
        "300italic": "http://fonts.gstatic.com/s/poppins/v20/pxiDyp8kv8JHgFVrJJLm21llFd2PQEhcqw.woff2",
        "regular": "http://fonts.gstatic.com/s/poppins/v20/pxiEyp8kv8JHgFVrFJXUc1NECPY.woff2",
        "italic": "http://fonts.gstatic.com/s/poppins/v20/pxiGyp8kv8JHgFVrJJLecnFBGPaTSQ.woff2",
        "500": "http://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLGT9V15vFP-KUEg.woff2",
        "500italic": "http://fonts.gstatic.com/s/poppins/v20/pxiDyp8kv8JHgFVrJJLmg1hlFd2PQEhcqw.woff2",
        "600": "http://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLEj6V15vFP-KUEg.woff2",
        "600italic": "http://fonts.gstatic.com/s/poppins/v20/pxiDyp8kv8JHgFVrJJLmr19lFd2PQEhcqw.woff2",
        "700": "http://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLCz7V15vFP-KUEg.woff2",
        "700italic": "http://fonts.gstatic.com/s/poppins/v20/pxiDyp8kv8JHgFVrJJLmy15lFd2PQEhcqw.woff2",
        "800": "http://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLDD4V15vFP-KUEg.woff2",
        "800italic": "http://fonts.gstatic.com/s/poppins/v20/pxiDyp8kv8JHgFVrJJLm111lFd2PQEhcqw.woff2",
        "900": "http://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLBT5V15vFP-KUEg.woff2",
        "900italic": "http://fonts.gstatic.com/s/poppins/v20/pxiDyp8kv8JHgFVrJJLm81xlFd2PQEhcqw.woff2"
      },

使用 开发者 API 检索数据。

© www.soinside.com 2019 - 2024. All rights reserved.