(self, fontname: str, font_class: str,
sym: str)
| 499 | _slanted_symbols = set(r"\int \oint".split()) |
| 500 | |
| 501 | def _get_glyph(self, fontname: str, font_class: str, |
| 502 | sym: str) -> tuple[FT2Font, CharacterCodeType, bool]: |
| 503 | font = None |
| 504 | |
| 505 | if fontname in self.fontmap and sym in latex_to_bakoma: |
| 506 | basename, num = latex_to_bakoma[sym] |
| 507 | slanted = (basename in ("cmmi10", "cmti10")) or sym in self._slanted_symbols |
| 508 | font = self._get_font(basename) |
| 509 | elif len(sym) == 1: |
| 510 | slanted = (fontname in ("it", "normal")) |
| 511 | if fontname == "normal" and sym.isdigit(): |
| 512 | # use digits from cmr (roman alphabet) instead of cmm (math alphabet), |
| 513 | # same as LaTeX does. |
| 514 | fontname = "rm" |
| 515 | slanted = False |
| 516 | font = self._get_font(fontname) |
| 517 | if font is not None: |
| 518 | num = ord(sym) |
| 519 | if font is not None and font.get_char_index(num) != 0: |
| 520 | return font, num, slanted |
| 521 | else: |
| 522 | return self._stix_fallback._get_glyph(fontname, font_class, sym) |
| 523 | |
| 524 | # The Bakoma fonts contain many pre-sized alternatives for the delimiters. The |
| 525 | # Auto(Height|Width)Char classes will use these alternatives and select the best |
no test coverage detected