如何在数学模式下移动字符和数字,使其围绕公式轴垂直居中

如何在数学模式下移动字符和数字,使其围绕公式轴垂直居中

在数学模式下,字符和数字位于基线上,向上和/或向下发展。它们如何才能像 和 等符号一样垂直居中在公式轴+周围=

例如:

\documentclass{article}
\begin{document}
$n=0\ d(C,P)$
\end{document}

应该n向上移动,而0d、 、C、逗号和P应该向下移动。如何自动完成此操作,而无需为每个字符和/或数字手动设置 raisebox 值?

谢谢您的帮助,我们非常感激。

编辑:我很抱歉不清楚我想要什么。澄清一下,我的目标是实现 egreg 在他的评论中发布的图片中显示的内容。我希望现在更清楚了,再次感谢。

答案1

以下截图首先展示的是您想要的——所有字母、数字和逗号都垂直居中在数学轴上——其次是正常排版方法产生的效果,即将字母、数字和逗号全部放在基线上。

我非常希望您同意,最好采用正常的排版方法。就我个人而言,在数学轴上垂直居中逗号近乎荒谬……

在此处输入图片描述

\documentclass{article}

\usepackage[margin=0pt, paperwidth=3cm, paperheight=0.5cm]{geometry}
\usepackage{xcolor,graphicx}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

% Command to center argument on math axis:
\newcommand\vc[1]{\vcenter{\hbox{$#1$}}} 

%% See https://tex.stackexchange.com/a/414613/5001 for source of the following code
%% Draw a line per font metric (#1 color, #2 vertical position, #3 label)
\newcommand{\drawmetric}[3]{\rlap{%
    \color{#1}\rule[#2]{2.55cm}{0.05pt}%
    \raisebox{#2}{\scalebox{0.3}{%
       \tiny\selectfont\sffamily #3}}%
  }}
\newcommand\drawallmetrics{%
  \drawmetric{red}{0pt}{baseline}%
  \drawmetric{blue}{1ex}{x-height}%
  \drawmetric{red}{\fontcharht\font`X}{cap-height}%
  \drawmetric{cyan}{\the\fontdimen22\textfont2}{math axis}}

\begin{document}

\noindent\rlap{ % 
  $\vc{n}=\vc{0}\ \vc{c}(\vc{C}\mathpunct{\vc{,}}\vc{u}\mathpunct{\vc{,}}\vc{P})$}
  \drawallmetrics{}

\noindent\rlap{ % 
  $n=0\ c(C,u,P)$}
  \drawallmetrics{}
\end{document}

相关内容