我是 LaTex 初学者,正在编写我的第一份正式文档。我需要在等式中添加一些箭头。让我向您展示我的代码:
\begin{align}
\begin{split}
f(x,y,z,w) & = \underline{(\bar{x}\bar{y}\bar{z}\bar{w})} + \underline{(\bar{x}\bar{y}z\bar{w})} + (\bar{x}y\bar{z}\bar{w}) + (x\bar{y}zw) + (xy\bar{z}\bar{w}) + (xyzw) \\
&\eqtnine (\bar{x}\bar{y}\bar{z}) + (\bar{x}y\bar{z}\bar{w}) + \underline{(x\bar{y}zw)} + (xy\bar{z}\bar{w}) + \underline{(xyzw)} \\
&\eqtnine (\bar{x}\bar{y}\bar{z}) + (\bar{x}y\bar{z}\bar{w}) + (xy\bar{z}\bar{w}) + (xzw) \\
\end{split}
\end{align}
正如您所看到的,每行都有两个术语被划线,并且我希望有一些箭头从这些术语下方开始,而它们的头部位于另一行上的术语上方,如下图所示,这是我用油漆制作的:
有没有简单的方法可以做到这一点?提前感谢您的耐心和考虑。
编辑:这是使用我在答案中找到的代码的控制台日志,用于记录错误:
Underfull \hbox (badness 10000) in paragraph at lines 258--259
''''[2]
Chapter 2.
! Undefined control sequence.
\c@lor@to@ps ->\PSTricks
_Not_Configured_For_This_Format
l.284 \end{align}
?
答案1
我建议使用 pstricks solution, based on the
\psDefBoxNodes{name}{contents} , which measures the bounding box of its content, and defines 12 associated nodes, and the node connecting command
\ncangle`。由于垂直间距有限,我们必须通过反复试验来调整各种参数的值。
\documentclass{article}
\usepackage{mathtools}
\usepackage{pst-node}
\newcommand{\eqtnine}{\overset{\makebox[0pt]{T9}}{ = }}
\begin{document}
\begin{align}
\begin{split}
f(x,y,z,w) & = \psDefBoxNodes{A}{\underline{(\bar{x}\bar{y}\bar{z}\bar{w})}} + \psDefBoxNodes{B}{\underline{(\bar{x}\bar{y}z\bar{w})}} + (\bar{x}y\bar{z}\bar{w}) + (x\bar{y}zw) + (xy\bar{z}\bar{w}) + (xyzw) \\
&\eqtnine(\bar{x} \psDefBoxNodes{C}{\bar{y}\bar{z}})+ (\bar{x}y\bar{z}\bar{w}) + \psDefBoxNodes{D}{\underline{(x\bar{y}zw)}} + (xy\bar{z}\bar{w}) +\psDefBoxNodes{E}{ \underline{(xyzw)}} \\
&\eqtnine (\bar{x}\bar{y}\bar{z}) + (\bar{x}y\bar{z}\bar{w}) + (xy\bar{z}\bar{w}) + \psDefBoxNodes{F}{(xzw)} \\
\end{split}
\psset{linewidth=0.5pt, arrows=->,arrowinset=0.12, armB=6pt, angleA=-90, angleB=90, nodesepA=-0.5pt, nodesepB=2pt}
\ncline[arrows=-, offsetB=1pt]{A:bC}{C:tC}\ncangle[offsetB=1pt, nodesepB=1pt]{B:bC}{C:tC}
\psset{nodesepB =-1.5pt}
\ncangle{D:bC}{F:tC}\ncangle{E:bC}{F:tC}
\end{align}
\end{document}
答案2
(tikzmark
正如我在评论中指出的那样),最后两个方程式中的项之间只有箭头(作为起点):
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\usepackage{lipsum}
\begin{document}
\lipsum[11]
\begin{equation}
\begin{split}
f(x,y,z,w)
& = (\bar{x}\bar{y}\bar{z}\bar{w}) + (\bar{x}\bar{y}z\bar{w})
+ (\bar{x}y\bar{z}\bar{w}) + (x\bar{y}zw) + (xy\bar{z}\bar{w}) + (xyzw) \\[3ex]
& = (\bar{x}\bar{y}\bar{z}) + (\bar{x}y\bar{z}\bar{w})
+ \tikzmarknode{A}{(x\bar{y}zw)} + (xy\bar{z}\bar{w})
+ \tikzmarknode{B}{(xyzw)} \\[3ex]
& = (\bar{x}\bar{y}\bar{z}) + (\bar{x}y\bar{z}\bar{w})
+ (xy\bar{z}\bar{w}) + \tikzmarknode{C}{(xzw)}
\end{split}
\begin{tikzpicture}[overlay, remember picture,
arr/.style={->,shorten >=1mm, shorten <=1mm}
]
\draw[thick, gray]
(A.south west) -- (A.south east)
(B.south west) -- (B.south east);
\draw[arr] (A.south) -- + (0,-2ex) -| (C.north);
\draw[arr] (B.south) -- + (0,-2ex) -| (C.north);
\end{tikzpicture}
\end{equation}
\lipsum[12]
\end{document}
笔记:
- 请始终提供 MWE(最小工作示例)而不是代码片段,这是一个完整的小型可编译文档,它可以演示您的问题并且我们可以按原样进行测试。
- MWE 序言中包含有关文档页面布局、定义(例如 的定义
\eqtnine
,我使用=
)的信息 - 我留给你的前两个等式的项之间的联系。从给出的例子来看,应该可以直接将它们相加。
- 为了显示结果,您需要至少编译两次文档。