我想在 pdflatex 中添加 utf8 符号 8962。这样
My code will have \symbol{8962}
我的文本将显示⌂。
我正在使用编译序列pdflatex biber pdflatex pdflatex
答案1
在 PDFTeX 中,你需要根据具体情况进行操作。在全面的 LaTeX 符号列表或尝试 detexify。软件包textcomp
、amssymb
、stix
和stix2
拥有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}
但是,该示例将以您可能不希望的方式更改所有数学符号。通过一些逆向工程,可以只导入您想要的特定符号,但您可能会用尽 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}
仅使用的替代方案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}
由于这会⌂
在数学模式下输入时中断,因此您可以将文本模式符号声明为\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.