我如何更改 frg 命令,以便可以创建并始终保持上面的减号与下面的减号对齐? PS:如果您可以演示如何为整个宏包含字体设置,我会认为这是对此答案的一个很好的额外贡献。
\documentclass{article}
\newcommand{\minus}{\raisebox{.1in}{$-$ \ }}
\newcommand{\eq}{\textbf{\fontsize{45}{6}\selectfont\raisebox{-.16in}{\scalebox{.5}[1.1]{= \vspace{.03in}}}}}
\usepackage{stackengine,scalerel}
\def\over{\abovewithdelims...32em}
\makeatletter
\newcommand*{\frg}[1]{%
\frg@aux#1,,\@nil
}
\def\frg@aux#1,#2,#3\@nil{%
\ensuremath{ \eq {{\raisebox{.069in}{ \ \centering \mbox{\fontsize{45}{6}\selectfont\textbf{#1}} \ }}
\over {\raisebox{-.275in}{ \ \centering\mbox{\fontsize{45}{6}\selectfont\textbf{#2}}}} \ }}
}
\makeatother
\begin{document}
\frg{4 \minus 3, \ 3 \minus 1 \ }
\end{document}
答案1
答案2
你是說這樣嗎?
\documentclass{article}
\usepackage{xparse,array}
\ExplSyntaxOn
\NewDocumentCommand{\frg}{mm}
{
\dbn_frg:nn { #1 } { #2 }
}
\tl_new:N \l__dbn_frg_num_tl
\tl_new:N \l__dbn_frg_den_tl
\cs_new_protected:Nn \dbn_frg:nn
{
\tl_set:Nn \l__dbn_frg_num_tl { #1 }
\tl_set:Nn \l__dbn_frg_den_tl { #2 }
\regex_replace_once:nnN { (\+|\-) } { \cT\& \1 \cT\& } \l__dbn_frg_num_tl
\regex_replace_once:nnN { (\+|\-) } { \cT\& \1 \cT\& } \l__dbn_frg_den_tl
\begin{array}{@{} r @{} >{{}}c<{{}} @{} l @{} }
\l__dbn_frg_num_tl \\
\hline
\l__dbn_frg_den_tl
\end{array}
}
\ExplSyntaxOff
\begin{document}
\[
\frg{4-3}{4-1}\qquad \frg{4+3}{4+11} \qquad \frg{15-2}{6+12}
\]
\end{document}