我正在加载的包裹:
\usepackage{unicode-math}
\usepackage{ucharclasses}
\usepackage{textcomp}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{tikz}
\usepackage{xpatch}
\usepackage{imakeidx}
\usepackage{xltxtra}
\setmainfont{TeX Gyre Schola}
\setmathfont{TeX Gyre Schola Math}
\setmathfont{TeX Gyre Termes Math}
\setmathfont{Latin Modern Math}
\setmathfont{TeX Gyre Bonum Math}
\setmathfont{TeX Gyre Pagella Math}
\usepackage{geometry}
\geometry{%
twoside
,bindingoffset=1cm
,top=1.5cm
,bottom=0.5cm
,left=0.9cm
,right=0.6cm
,asymmetric
}
%% Leave me LAST!
\usepackage{hyperref}
\hypersetup{
colorlinks,
citecolor=black,
filecolor=black,
linkcolor=blue,
urlcolor=black
}
我的设置:我从网上下载一些包含 html 格式块(例如give me £12 and 1 ≤ x!
等)的数据,然后我将其传递pandoc
给转换相同的块latex
。我将这些块放在我的模板latex
中并在其上运行。需要说明的是:模板是我的,只将一些 html 块转换为 latex,它不会生成整个 latex 文档。latex
xelatex
pandoc
html£
被转换为可以处理的pandoc
unicode 字符xelatex
(我更希望将它们全部作为 tex-math 符号,因为我真的很讨厌在我的源文档中乱放除“外语”语言以外的 unicode)。
上述设置的问题是,unicode 字符(如≤ (U+2264)
、 和 )| (U+2502)
无法被 找到xelatex
。我已设法加载不同的字体(按照缺少字符:字体 cmss10 中没有 ℕ!(我的包裹在这篇文章的开头展示)和现在xelatex
可以识别除 | (U+2502)之外的大多数 Unicode 字符。我得到:
Missing character: There is no │ (U+2502) in font TeX Gyre Schola/OT:script=lat
n;language=dflt;mapping=tex-text;!
更新:感谢大家的评论,上述问题已经解决。但是现在我在不同的角色上遇到了同样的问题。以下是脚本:
\documentclass[12pt,a4paper]{book}
%\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{TeX Gyre Schola}
\setmathfont{TeX Gyre Schola Math}
\usepackage{newunicodechar}
%\newunicodechar{^^^^1D45A}{a} % this does not recognise hex
\begin{document}
this
答案1
您正在使用的 TeX Gyre Math 字体确实有 U+2502
\documentclass{article}
\usepackage{unicode-math}
% only if you need it \usepackage{ucharclasses}
% not with xetex \usepackage{textcomp}
% avoid, better to just use fontspc, already included by unicode-math \usepackage{xltxtra}
\setmainfont{TeX Gyre Schola}
\setmathfont{TeX Gyre Schola Math}
% this over-writes the prevous setting \setmathfont{TeX Gyre Termes Math}
% this over-writes the prevous setting \setmathfont{Latin Modern Math}
% this over-writes the prevous setting \setmathfont{TeX Gyre Bonum Math}
% this over-writes the prevous setting \setmathfont{TeX Gyre Pagella Math}
\begin{document}
abc $x\mid y$ $x ^^^^2502 y$ [^^^^2502] [|]
\end{document}
U+2502 是一个方框绘制字符,它实际上不适合用于文本,可能只需用 | 替换即可,但上面使用的文本产生了
Missing character: There is no │ (U+2502) in font TeX Gyre Schola/OT:script=lat
n;language=dflt;mapping=tex-text;!
如果您无法修复源而不使用它,则可以使用字符类重新映射它,或者更简单地使用newunicodechar
:
\documentclass{article}
\usepackage{unicode-math}
% only if you need it \usepackage{ucharclasses}
% not with xetex \usepackage{textcomp}
% avoid, better to just use fontspc, already included by unicode-math \usepackage{xltxtra}
\setmainfont{TeX Gyre Schola}
\setmathfont{TeX Gyre Schola Math}
% this over-writes the prevous setting \setmathfont{TeX Gyre Termes Math}
% this over-writes the prevous setting \setmathfont{Latin Modern Math}
% this over-writes the prevous setting \setmathfont{TeX Gyre Bonum Math}
% this over-writes the prevous setting \setmathfont{TeX Gyre Pagella Math}
\usepackage{newunicodechar}
\newunicodechar{^^^^2502}{|}
\begin{document}
abc $x\mid y$ $x ^^^^2502 y$ [^^^^2502] [|]
\end{document}