如何通过数字包含utf8符号?

如何通过数字包含utf8符号?

我想在 pdflatex 中添加 utf8 符号 8962。这样

My code will have \symbol{8962}

我的文本将显示⌂。

我正在使用编译序列pdflatex biber pdflatex pdflatex

答案1

在 PDFTeX 中,你需要根据具体情况进行操作。在全面的 LaTeX 符号列表或尝试 detexify。软件包textcompamssymbstixstix2拥有pifont大量 Unicode 符号。

stix该特定符号在和stix2中都可用\house。尽管您想要的确切语法与标准 LaTeX 冲突,但您也可以使用激活任意 Unicode 字符newunicodechar

\documentclass[varwidth, preview]{standalone}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage[notext]{stix2}
\usepackage{newunicodechar}

\newunicodechar{⌂}{\ensuremath{\house}}

\begin{document}

The ⌂ is an office building, not a house.

\end{document}

Stix Two 样品

但是,该示例将以您可能不希望的方式更改所有数学符号。通过一些逆向工程,可以只导入您想要的特定符号,但您可能会用尽 LaTeX 数学字母表。

要使同一文档主体与 Unicode 兼容,您可以将大部分前言替换为\usepackage{unicode-math},这也定义了\house。此特定符号不存在于默认文本或数学字体中,但您可以从 XITS、Stix Math 或 Stix Two Math 中加载它:

\documentclass[varwidth, preview]{standalone}

\usepackage{newunicodechar}
\usepackage{unicode-math}

\setmathfont{Latin Modern Math}
\setmathfont[range={`⌂}, Scale=MatchUppercase]{Stix Two Math}
\newunicodechar{⌂}{\ensuremath{\house}}

\begin{document}

The ⌂ is an office building, not a house.

\end{document}

unicode-math 示例

仅使用的替代方案fontspec是:

\documentclass[varwidth, preview]{standalone}

\usepackage{newunicodechar}
\usepackage{fontspec}

\newfontfamily{\pifamily}{DejaVu Serif}[Scale=MatchUppercase]

\newunicodechar{⌂}{{\pifamily{}⌂}}

\begin{document}

The ⌂ is an office building, not a house.

\end{document}

fontspec 示例

由于这会在数学模式下输入时中断,因此您可以将文本模式符号声明为\texthouse

上述两个示例均允许您在 LuaLaTeX 或 XeLaTeX 中使用带有 Unicode 代码点的纯 TeX\char或 LaTeX。PDFLaTeX\symbol根本不支持这一点。

答案2

我最好的解决方案:

% Preamble
\newrobustcmd*{\myhome}[1][black]{\tikz{\draw (0,0) -- (0,.15cm) -- (.1cm,.25cm) -- (.2cm,.15cm) -- (0.2cm,0) -- (0,0);}}

% Text
Which is located at \myhome ~ on the map.

相关内容