我想使用 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
答案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=0
tikz 选项: