\scalebox 与 cleveref 自定义方程标签冲突

\scalebox 与 cleveref 自定义方程标签冲突

我希望用重新缩放的象形文字标记方程式(大多数自定义符号hieroglf对我来说太高了)。但是,当我编译时

\documentclass{book}

\usepackage{amsmath,graphicx,hieroglf,cleveref}

\begin{document}
    \begin{equation}\label{eq:Einstein}
        E=mc^2\tag{\scalebox{0.6}{\textpmhg{\Ha}\!}}
    \end{equation}
    As we see from \cref{eq:Einstein}, 
\end{document}

我收到以下错误信息:

\label@optarg 的使用与其定义不符。\end{equation}

\Gscale@box 的参数有一个额外的 }。\end{equation}

段落在 \Gscale@box 完成之前结束。\end{equation}

等等。这让我很困惑,因为我看不到立即解决这个问题的方法……用组保护标签{}不起作用。你能帮助我吗?

答案1

使命令变得强大并且可以使用 进行扩展\fontsize

\documentclass[twocolumn]{article}

\usepackage{amsmath,graphicx,hieroglf,cleveref}

\makeatletter
\newcommand{\hiersize}{\fontsize{\fpeval{0.6*\f@size}}{0}\selectfont}
\makeatletter

\NewDocumentCommand{\hier}{m}{\textpmhg{\hiersize#1\!}}

\begin{document}

\begin{equation}\label{eq:Einstein}
E=mc^2\tag{\hier{\Ha}}
\end{equation}
As we see from \cref{eq:Einstein},

\end{document}

在此处输入图片描述

你的读者知道如何读这个符号吗?

如果您只打算使用该尺寸的象形文字,则加载已缩小的字体是有意义的。

\documentclass[twocolumn]{article}
\usepackage{amsmath}
\usepackage{hieroglf}
\usepackage{cleveref}

\DeclareFontFamily{OT1}{pmhg}{}
\DeclareFontShape{OT1}{pmhg}{m}{n}{ <-> s*[0.6] pmhg }{}
\DeclareFontFamily{T1}{pmhg}{}
\DeclareFontShape{T1}{pmhg}{m}{n}{ <-> s*[0.6] pmhg }{}

\NewDocumentCommand{\hier}{m}{\textpmhg{#1\!}}

\begin{document}

\begin{equation}\label{eq:Einstein}
E=mc^2\tag{\hier{\Ha}}
\end{equation}
As we see from \cref{eq:Einstein},

\end{document}

相关内容