我正在与莱克斯。
我想将箭头的长度从顶点更改为自身。我想让箭头向上延伸更长,然后再返回到包围的顶点。到目前为止,我在\xymatrix
LyX Math-box 中使用的代码是:
*+[o][F-]{e}\ar@(ul,ur)
在 LyX 中应如何修改此代码以加长箭头?
答案1
正如 canaaerus 所说,控制点选项是可行的。要重现方向,ul
请使用形式为 的点(-x,x)
,并将 用作ur
方向(x,x)
。标准尺寸x
大致为10
。现在,使用正确的语法,您可以编写
\documentclass{article}
\usepackage[arrow, matrix, curve]{xy}
\begin{document}
\( \begin{xy}\xymatrix{ e\ar @`{(-10,10),(10,10)} }\end{xy} \qquad
\begin{xy}\xymatrix{ e\ar @`{(-20,20),(20,20)} }\end{xy} \)
\end{document}
并得到
为了使其更窄,请减小控制点的 x 坐标的大小
\( \begin{xy}\xymatrix{ e\ar @`{(-10,20),(10,20)} } \end{xy} \)
查看手册xypic
,特别是有关曲线的部分,以获取有关控制点的更多信息。
请注意,如果您希望将这些箭头放置在您的不同节点上,\xymatrix
那么您应该小心绝对坐标与相对坐标,处理此问题的一种方法是将节点打包成\xybox
。这是一个示例,包括您原始问题中的节点格式:
\documentclass{article}
\usepackage[all]{xy}
\begin{document}
\( \begin{xy}\xymatrix{ \xybox{ *=+[o][F]{e}\ar @`{(-10,10),(10,10)} } &
\xybox{ *=+[o][F]{e}\ar @`{(-20,20),(20,20)} } }\end{xy} \)
\end{document}
这里是另一个例子,说明如何xypic
正确处理这些节点,其中箭头指向带圆圈的节点:
\documentclass{article}
\usepackage[all]{xy}
\begin{document}
\begin{displaymath}
\begin{xy}
\xymatrix{
\xybox{ *=+<12pt>[o][F]{e}\ar @`{(-10,10),(10,10)} }
\ar[r]^\pi
\ar@{.>}[rd]_q &
\xybox{ *=+<12pt>[o][F]{g}\ar @`{(-20,20),(20,20)} } \ar[d]^p \\
& \xybox{ *=+<12pt>[o][F]{f}\ar @`{(-10,-20),(10,-20)}|a }
}
\end{xy}
\end{displaymath}
\end{document}
请注意,我已经习惯+<12pt>
在节点周围画出更大的圆圈。
答案2
首先,e\ar@(ul,ur)
对我来说似乎和你的例子有同样的效果。要使其成为完整的 MWE:
\documentclass{article}
\usepackage[arrow, matrix, curve]{xy}
\begin{document}
\[ \begin{xy}\xymatrix{ e\ar@(ul,ur) }\end{xy} \]
\end{document}
现在我认为可以通过放置明确的曲线控制点来解决这个问题。24q
比较XY-pic 参考手册。那么语法看起来应该像e\ar@'{a,b}
这样,其中a
和b
是位于左上角和右上角但距离足够远的控制点。
不幸的是我对这个功能还不够熟悉。