始终保持上方减号与下方减号对齐

始终保持上方减号与下方减号对齐

我如何更改 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

我不知道这个练习的目的是什么,但对齐可以用数组来实现。请注意,我没有注意间距、粗体等,因为我不知道目的是什么。

\documentclass{article}
\makeatletter
\def\frg@aux#1-#2,#3-#4\@nil{\begin{array}{@{\,}r@{}c@{}l@{\,}}
#1&-&#2\\
\hline
#3&-&#4
\end{array}}
\def\frg#1{\frg@aux#1\@nil}
\makeatother

\begin{document}
\[ a=\frg{4 - 3,  3 - 1  }\]
\end{document}

在此处输入图片描述

答案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}

在此处输入图片描述

相关内容