\documentclass[a4paper]{article}
\usepackage[fleqn,tbtags]{amsmath}
\usepackage{amssymb}
\usepackage{tikz}
\usetikzlibrary{angles,arrows.meta,backgrounds,calc,intersections,positioning,quotes,scopes,shapes.arrows,through}
\begin{document}
\begin{equation}
B = a + b
\end{equation}
\begin{equation}
\tikz{
\node [inner sep=0pt] {$B = a + b$};
}
\end{equation}
\begin{equation}
\tikz{
\node [inner sep=0pt] (x) {$B = a + b$};
\scoped [on background layer]
\fill [red!30,rounded corners] ($(x.south west)+(-0.3,-0.3)$) rectangle ($(x.north east)+(0.3,0.3)$);
}
\end{equation}
\end{document}
3番目の数式もそろえたいのですが、どうしたらいいでしょうか
塗り潰しの長方形に overlay
(外見の大きさの算出に入れない)を付けると、横方向の位置が揃います。
\begin{equation} \tikz[baseline=(x.base)]{ \node [inner sep=0pt] (x) {$B = a + b$}; \scoped [on background layer] \fill [overlay,red!30,rounded corners] ($(x.south west)+(-0.3,-0.3)$) rectangle ($(x.north east)+(0.3,0.3)$); } \end{equation}
※baseline=(x.base)
はノードと外側(数式番号)のベースラインを合わせるために入れています。元のままだと(3番目だけでなく)2番目もベースラインがずれています。
ただこの方法だと、縦方向の大きさも無視されるので、縦に大きくはみ出してしまうという問題があります。
縦方向だけ大きさを保持する上手い方法は思いついていません。取りあえず、縦方向の境界の点を含む“何も描かないパス”を入れておけば対処できます。
\begin{equation} \tikz[baseline=(x.base)]{ \node [inner sep=0pt] (x) {$B = a + b$}; \path ($(x.south)+(0,-0.3)$) ($(x.north)+(0,0.3)$); \scoped [on background layer] \fill [overlay,red!30,rounded corners] ($(x.south west)+(-0.3,-0.3)$) rectangle ($(x.north east)+(0.3,0.3)$); } \end{equation}
Z.R.さま
ありがとうございます。
overlayがここでも使えるとは勉強になります。
見た目にはtikzを使っているとはわからなくなりました。
ところで、($(x.south west)+(-0.3,-0.3)$)が気になります。何か簡潔に書けないでしょうか。
ありがとうございます。
overlayがここでも使えるとは勉強になります。
見た目にはtikzを使っているとはわからなくなりました。
ところで、($(x.south west)+(-0.3,-0.3)$)が気になります。何か簡潔に書けないでしょうか。