我是 TikZ 新手,正在尝试在环境中使用它align*
。我采用的方法在环境中有效center
,但在环境中无效align
。没有错误,但输出不符合预期。
这是我的代码:
\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{chemformula}
\makeatletter
\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node (#1) {};}
\makeatother
\usetikzlibrary{arrows.meta,shapes,positioning,shadows,trees,calc}
\begin{document}
Using Center environment;
\begin{center}
\ch{\tikzmark{a} Cu^{2+} + 2 e-} \ch{->} \ch{\tikzmark{b} Cu} \hspace{2ex}
electrons gained by \ch{Cu^{2+}}
\tikz[overlay,remember picture]{
\draw ($ (a.north) + (0,0.1) $) node[anchor=south] {\tiny $+2$};
\draw ($ (b.north) + (0,0.1) $) node[anchor=south] {\tiny $0$};
}
\end{center}
Using Align environment;
\begin{align*}
\ch{\tikzmark{a} Cu^{2+} + 2 e-} &\ch{->} \ch{\tikzmark{b} Cu} \qquad
\text{electrons gained by \ch{Cu^{2+}}}
\tikz[overlay,remember picture]{
\draw ($ (a.north) + (0,0.1) $) node[anchor=south] {+2};
\draw ($ (b.north) + (0,0.1) $) node[anchor=south] {0};
}
\end{align*}
\end{document}
PS 我想做的是放置似乎出现在化学方程式中原子符号“左上角”的文本。此文本的位置应该在原子符号上方。我正在使用 chemformula 包编写方程式,并且我想对齐一堆这样的方程式 - 因此需要使用 align*。因此,有两件事:(1) 使用 chemformula 包编写一堆对齐的化学方程式 (2) 使用 TikZ 将文本放置在方程式沿线的某些点上方
答案1
不确定我是否误解了你的问题,但为什么在这种情况下使用 TikZ?如果你想在右边使用指数,你可以像往常一样写它们:
输出
代码
\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{chemformula}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,shapes,positioning,shadows,trees,calc}
\newcommand{\tikzmark}[1]{\tikz[overlay, remember picture] \node (#1) {};}
\begin{document}
Using Center environment;
\begin{center}
\ch{\tikzmark{a} Cu^{2+} + 2 e-} \ch{->} \ch{\tikzmark{b} Cu} \hspace{2ex}
electrons gained by \ch{Cu^{2+}}
\tikz[overlay,remember picture]{
\draw ($ (a.north) + (0,0.1) $) node[anchor=south] {\tiny $+2$};
\draw ($ (b.north) + (0,0.1) $) node[anchor=south] {\tiny $0$};
}
\end{center}
Using Align environment;
\begin{align*}
\ch{^{\tiny +2}Cu^{2+} + 2 e-} &\ch{->} \ch{^{\tiny 0}Cu} \qquad
\text{electrons gained by \ch{Cu^{2+}}}
\end{align*}
\end{document}