数学模式中的点 x

数学模式中的点 x

我想要在哥德尔代码中在变量 x 上加一个点,并使用以下代码$\exists x\mathcal{T}\Godelnum{A(\dot{x)}}$,并在序言中使用这个代码来获得漂亮的角引号:

\newbox\gnBoxA
\newdimen\gnCornerHgt
\setbox\gnBoxA=\hbox{$\ulcorner$}
\global\gnCornerHgt=\ht\gnBoxA
\newdimen\gnArgHgt
\def\Godelnum #1{%
    \setbox\gnBoxA=\hbox{$#1$}%
    \gnArgHgt=\ht\gnBoxA%
    \ifnum     \gnArgHgt<\gnCornerHgt \gnArgHgt=0pt%
    \else \advance \gnArgHgt by -\gnCornerHgt%
    \fi \raise\gnArgHgt\hbox{$\ulcorner$} \box\gnBoxA %
    \raise\gnArgHgt\hbox{$\urcorner$}}

但是点在右边的位置太高了。如何才能在变量 x 上方获得正常的点?

答案1

正如之前评论的那样,您已经

\Godelnum{A(\dot{x)}}

因此,点位于组合的上方x),因此相对于两个项目而言,它更高且位于中心。

你应该修复到

\Godelnum{A(\dot{x})}

在此处输入图片描述

上面那个是你输入的,下面那个是固定的。

但是,您的代码并不是真正意义上的 LaTeX 代码,并且您可以通过使用正确的 LaTeX 代码来省去设置框(您的代码也有几个错误)。

\documentclass{article}
\usepackage{amsmath,amssymb}

\newlength{\gnCornerHgt}
\newlength{\gnArgHgt}

\newcommand{\Godelnum}[1]{%
  \settoheight{\gnCornerHgt}{$\ulcorner$}%
  \settoheight{\gnArgHgt}{$#1$}%
  \ifdim\gnArgHgt<\gnCornerHgt
    \setlength{\gnArgHgt}{0pt}%
  \else
    \addtolength{\gnArgHgt}{-\gnCornerHgt}%
  \fi
  \raisebox{\gnArgHgt}{$\ulcorner$}%
  #1%
  \raisebox\gnArgHgt{$\urcorner$}%
}

\begin{document}

$x\mathcal{T}\Godelnum{A(\dot{x)}}$

$x\mathcal{T}\Godelnum{A(\dot{x})}$

$x\mathcal{T}\Godelnum{\begin{bmatrix} 1 \\ 1 \end{bmatrix}}$

\end{document}

长度\gnCornerHgt应该在运行时设置,因为它必须取决于当前字体大小。

和后面\ifnum的 一样, 都是错误的。在这种情况下,TeX 有一个保护机制,但你最终会得到一个不想要的标记(准确地说是“冻结” )。%0pt\relax

在此处输入图片描述

我知道\Godelnum矩阵实际上没有什么意义,我用它来表明高度是所需的高度。

一个版本也可以改变下标或上标的大小。我添加了一个\LARGE版本来显示它在不同字体大小下也能正常工作。

请注意,添加的\mathinner那个会增加一个狭窄的空间。

\documentclass{article}
\usepackage{amsmath,amssymb}

\newlength{\gnCornerHgt}
\newlength{\gnArgHgt}

\makeatletter
\newcommand{\Godelnum}[1]{\mathinner{\mathpalette\Godelnum@{#1}}}
\newcommand{\Godelnum@}[2]{%
  \begingroup
  \settoheight{\gnCornerHgt}{$\m@th#1\ulcorner$}%
  \settoheight{\gnArgHgt}{$\m@th#1#2$}%
  \ifdim\gnArgHgt<\gnCornerHgt
    \setlength{\gnArgHgt}{0pt}%
  \else
    \addtolength{\gnArgHgt}{-\gnCornerHgt}%
  \fi 
  \raisebox{\gnArgHgt}{$\m@th#1\ulcorner$}%
  #2%
  \raisebox\gnArgHgt{$\m@th#1\urcorner$}%
  \endgroup
}
\makeatother

\begin{document}

$x\mathcal{T}\Godelnum{A(\dot{x})}$

$x_{\Godelnum{y}}$

\LARGE
$x\mathcal{T}\Godelnum{A(\dot{x})}$

\end{document}

在此处输入图片描述

相关内容