空框代替象形数字和“\mathabx”

空框代替象形数字和“\mathabx”

我有象形数字在我的代码中定义,package.sty 但从 14071 开始,这会给出一个空框,而不是数字本身。有些问题,但我不知道是什么。我问过这个问题别处但现在问题不同了:它涉及到\usepackage{mathabx}。当我注释掉数字时,\usepackage{mathabx}数字又出现了。但是我从\ggg这个 >>> 而不是这个 >> 中得到结果。

\documentclass{article}

%\usepackage{mathabx}

%\usepackage{unicode-math}

\usepackage{amssymb,amsmath}
\usepackage{accents}

\usepackage{tikz-cd}

%\usepackage{fontspec}

\usepackage[no-math]{fontspec}
%\usepackage{unicode-math}
\let\circ\undefined
\let\diamond\undefined
%\let\bullet\undefined
\let\ring\undefined
%\let\emptyset\undefined
%\let\owns\undefined
\usepackage{mathabx}

%\usepackage{xypic}

\usepackage[czech]{babel}
\usepackage{mypackage}
%\usepackage[utf8]{inputenc}

\newcommand{\pullbackcorner}[1][dl]{\save*!/#1-1pc/#1:(1,-1)@^{|-}\restore}
 

\usepackage{babyloniannum}
%\setfont{NewGardiner}
\newfontfamily\ngg{Segoe UI Historic}[Ligatures=TeX]

 
\MakeRobust\babyloniannum
\MakeRobust\hgnum
\usepackage{enumitem}


 
\begin{document}
$\ggg$


\underline{motto:}{ každý den $\pm$ nový princip }\hfill{$\square$}
\bigskip
\bigskip
 \begin{enumerate}[ label=\roman{enumi}--\arabic{enumi}--\!\!\!\!\!\babyloniannum{\value{enumi}}\!\!\!--\large\ngg\symbol{\numexpr "13000+\value{enumi}}--\hgnum{\theenumi}]
  \item rozhodovat se na hraně zajímavého
  \item *vždycky to tam máš (data v matematice)
  \item svoboda a volnost
 
%\newcommand{\demoletter}[1]{{\setlength{\fboxsep}{-\fboxrule}\fbox{\phantom{#1}}}}

\item \hgnum{1070}
\item \hgnum{1081}

\item \large\ngg\symbol{\numexpr "13000+1070}
\item \large\ngg\symbol{\numexpr "13000+1071}
\item \large\ngg\symbol{\numexpr "13000+1072}
\item \large\ngg\symbol{\numexpr "13000+1073}
\item \large\ngg\symbol{\numexpr "13000+1074}
\item \large\ngg\symbol{\numexpr "13000+1075}
\item \large\ngg\symbol{\numexpr "13000+1076}
\item \large\ngg\symbol{\numexpr "13000+1077}
\item \large\ngg\symbol{\numexpr "13000+1078}
\item \large\ngg\symbol{\numexpr "13000+1079}
\item \large\ngg\symbol{\numexpr "13000+1080}
\item \large\ngg\symbol{\numexpr "13000+1081}

  \item teorie množin (a někdy i další) je manipulace s objekty "ode zdi ke zdi" a jejich sledování
   
\end{enumerate}



\end{document}

我的包.sty

% this is my first package
%
% (c) Buffalo Bill
%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
%% in directory macros/latex/base/lppl.txt.
%
\NeedsTeXFormat{LaTeX2e}[1994/06/01]
\ProvidesPackage{mypackage}
  [2011/01/11 v0.01 LaTeX package for my own purpose]

\usepackage{fontspec}

\usepackage{fontspec}
\newfontfamily\hg{Segoe UI Historic}

\def\hgunits#1{\ifcase#1\relax\or
^^^^^^0133fa\or
^^^^^^0133fb\or
^^^^^^0133fc\or
^^^^^^0133fd\or
^^^^^^0133fe\or
^^^^^^0133ff\or
^^^^^^013400\or
^^^^^^013401\or
^^^^^^013402\else
?\fi}

\def\hgtens#1{\ifcase#1\relax\or
^^^^^^013386\or
^^^^^^013387\or
^^^^^^013388\or
^^^^^^013389\or
^^^^^^01338a\or
^^^^^^01338b\or
^^^^^^01338c\or
^^^^^^01338d\or
^^^^^^01338e\else
?\fi}

\def\hghundreds#1{\ifcase#1\relax\or
^^^^^^013362\or
^^^^^^013363\or
^^^^^^013364\or
^^^^^^013365\or
^^^^^^013366\or
^^^^^^013367\or
^^^^^^013368\or
^^^^^^013369\or
^^^^^^01336a\else
?\fi}

\def\hgthousands#1{\ifcase#1\relax\or
^^^^^^0131bc\or
^^^^^^0131bd\or
^^^^^^0131be\or
^^^^^^0131bf\or
^^^^^^0131c0\or
^^^^^^0131c1\or
^^^^^^0131c2\or
^^^^^^0131c3\or
^^^^^^0131c4\else
?\fi}

\def\hgtenthousands#1{\ifcase#1\relax\or
^^^^^^0130ad\or
^^^^^^0130ae\or
^^^^^^0130af\or
^^^^^^0130b0\or
^^^^^^0130b1\or
^^^^^^0130b2\or
^^^^^^0130b3\or
^^^^^^0130b4\or
^^^^^^0130b5\else
?\fi}

\def\hghundredthousands#1{\ifcase#1\relax\or
^^^^^^013190\or
^^^^^^013190^^^^^^013190\or
^^^^^^013190^^^^^^013190^^^^^^013190\or
^^^^^^013190^^^^^^013190^^^^^^013190^^^^^^013190\or
^^^^^^013190^^^^^^013190^^^^^^013190^^^^^^013190^^^^^^013190\else
?\fi}


\DeclareRobustCommand\hgnum[1]{{\hg\expandafter\hgnumx\the\numexpr20000000+#1\relax}}

%\def\hgnum#1{{\hg\expandafter\hgnumx\the\numexpr10000000+#1\relax}}
\def\hgnumx#1#2#3#4#5#6#7#8{%
\hghundredthousands{#3}%
\hgtenthousands{#4}%
\hgthousands{#5}%
\hghundreds{#6}%
\hgtens{#7}%
\hgunits{#8}%
}


%\RequirePackage{whateverwe need}
\def\hi{Hello, this is my own package}
\let\myDate\date
\newcommand\GoodBye[1][\bfseries]{{#1Good Bye}}

\endinput
%%
%% End of file `mypackage.sty'.

在此处输入图片描述

答案1

您的 MWE 无法编译,因为它需要一个附加文件babyloniannum.sty

当我删除所有 Bablylonian 时,问题出在以下命令上:

\large\ngg\symbol{\numexpr "13000+1070}

您在文档中将其定义\ngg为巴比伦楔形文字字体,但您似乎想将其用于埃及象形文字。此外,您将其设置在任意组之外,因此它会渗透并改变周围文本的字体。您想要的是类似

\DeclareTextFontCommand{\largehg}{\large\hg}

其次是

\item \largehg{\symbol{\numexpr "13000+1070}}

我确实有一台安装了 Segoe UI 的 Windows 机器,也许你的一些示例可以在它上面运行,但很多示例根本不是有效的 Unicode。为了让你的示例在这台机器上编译,我加载了

\newfontfamily\hg{Aegyptus}[
  Scale=MatchUppercase,
  Script={Egyptian Hieroglyphs},
  UprightFeatures={Ligatures=Common}]

在哪里可以下载字体来自其网页。 请注意,版本 13.00 具有非免费许可证,限制其仅限“个人使用”。

您的问题似乎与 不直接相关mathabx,但不要加载mathabx。它有缺陷且过时。如果确实必须,请在 之后amssymb和 之前加载它accents。这是不会给您有关已定义命令的错误消息的顺序。您似乎在某个时候加载了它unicode-math,然后将其注释掉。这是一个更好的主意。

\tracinglostchars=2最后,在文档顶部添加一行是个好主意。当字体不包含字符时,这将打印一条警告消息,并告诉您它试图从哪种字体加载哪个字符。

相关内容