数学公式中的符号和图形垂直居中

数学公式中的符号和图形垂直居中

我想使用 dingbat 字体的一些符号恐龙以及数学公式中的图形。但是,它们对齐到底部,而我希望它们垂直居中。

在此处输入图片描述

我怎样才能在内联和居中方程中做到这一点?

平均能量损失

\documentclass{article}

\usepackage{mathtools}

\usepackage{unicode-math}

\usepackage{fontspec}

\setmainfont{Dingosaurs.ttf}

\usepackage[demo]{graphicx}

\setmathfont{STIX Two Math}

\begin{document}

    $1+\text{A}=2$

    $\displaystyle1+\text{A}=2$

    \[
        1+\includegraphics[width=2cm,height=2cm]{a.png}
    \]

\end{document}

在此处输入图片描述

答案1

在数学模式中,您可以使用 轻松地将图片垂直居中\vcenter{\hbox{..}}

\documentclass{article}
\usepackage{mathtools}
\usepackage{unicode-math}
\usepackage{fontspec}
%\setmainfont{Dingosaurs.ttf}
\usepackage[demo]{graphicx}
\setmathfont{STIX Two Math}

\begin{document}

    $1+\text{A}=2$

    $\displaystyle1+\text{A}=2$
    \[
        1+\vcenter{\hbox{\includegraphics[width=2cm]{a.png}}} + 1+\text{A}=2
    \]

\end{document}

在此处输入图片描述

答案2

以下宏\TextVCenter使文本垂直居中在数学轴周围。它尊重不同的数学样式,并且也可在文本模式下工作。

\documentclass{article}
\usepackage{amstext}
\usepackage{fontspec}
\newfontfamily\dingo{Dingosaurs.ttf}

\newcommand*{\TextVCenter}[1]{%
  \text{$\vcenter{\hbox{#1}}$}%
}

\begin{document}

  1 + \TextVCenter{\dingo A} = 2

  $\displaystyle 1 + \TextVCenter{\dingo A} = 2$

  $\scriptstyle 1 + \TextVCenter{\dingo A} = 2$

  $\scriptscriptstyle 1 + \TextVCenter{\dingo A} = 2$

\end{document}

结果

评论:

  • \text从包amstext(或由amsmath或加载mathtools)使文本大小适应数学样式。

  • \vcenter是一个数学命令,用于将垂直框材料垂直居中在数学轴周围。

  • \hbox与 相对 ,\mbox避免了新的具有宽度的段落\hsize从 的垂直框开始\vcenter

尾巴贴在左边:

\documentclass{article}
\usepackage{amstext}
\usepackage{fontspec}
\newfontfamily\dingo{Dingosaurs.ttf}

\newcommand*{\TextVCenter}[1]{%
  \text{$\vcenter{\hbox{#1}}$}%
}

\newcommand*{\DingoA}{%
  \ensuremath{%
    \mkern-9mu\relax
    \TextVCenter{\dingo A}%
  }%
}

\begin{document}

  1 + \DingoA = 2

  $\displaystyle 1 + \DingoA = 2$

  $\scriptstyle 1 + \DingoA = 2$

  $\scriptscriptstyle 1 + \DingoA = 2$

\end{document}

结果

答案3

最简单的方法是使用(或者滥用)array

\documentclass{article}
\usepackage{amsmath}
\usepackage{graphicx}

\begin{document}

\[
1+\begin{tabular}{@{}c@{}}\includegraphics[width=2cm]{example-image-a}\end{tabular}=2
\]

\end{document}

在此处输入图片描述

答案4

根据@barbara 的评论进行编辑(使用复杂的公式来显示差异):

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{mathtools}


\usepackage{fontspec}
\newsavebox{\helpbox}
\newlength{\myshift}
\newcommand\addpic[2][]{\savebox{\helpbox}{\vbox{$.\cdot$}}\setlength\myshift{0.5\ht\helpbox}\begin{tikzpicture}[baseline, outer sep=0,inner sep=0,yshift=\myshift]\node[outer sep=0,inner sep=0] {\includegraphics[#1]{#2}};\end{tikzpicture}}
\begin{document}


    \[
    \frac{1}{\frac{2}{3}}^{\displaystyle\int_{N=\dfrac{1}{3}}^{9^5}f(x)+4 dx}+\addpic[width=2cm,height=2cm]{example-image-a}=1
    \]

\end{document}

输出:

在此处输入图片描述

旧答案: tikz 解决方案:

\documentclass{article}
\usepackage{tikz}
\usepackage{mathtools}


\usepackage{fontspec}

\begin{document}


    \[
    \tikz[anchor=center, baseline] \node {$\frac{1}{\frac{2}{3}}-$};\tikz[anchor=center,baseline] \node {\includegraphics[width=2cm,height=2cm]{example-image-a}};\tikz[anchor=center,baseline]\node{$=1$};
    \]

\end{document}

输出:

在此处输入图片描述

如果我们添加inner sep=0tikz 选项:

在此处输入图片描述

相关内容