如何在 \xymatrix 的框架上添加颜色?

如何在 \xymatrix 的框架上添加颜色?

*++[o][F-,]{3}例如,我正在写\xymatrix。我怎样才能使 3 变成绿色,框架变成红色?

还有一个问题:
我怎样才能让它*++[o][F-,]{3}更暗?(内部*++[o][F-,]{3}而不是框架......)

我怎样才能让 7 像这样? 在此处输入图片描述

谢谢你!

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\setlength{\parindent}{0bp}
\usepackage[all]{xy}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\makeatletter
\newcommand{\xyR}[1]{%
\xydef@\xymatrixrowsep@{#1}
} % end of \xyR

\newcommand{\xyC}[1]{%
\xydef@\xymatrixcolsep@{#1}
} % end of \xyC

\makeatother


\begin{document}
\L{$\xymatrix{ &  & *++[o][F]{3}\ar@{-}[rd]\ar@{-}[dl]\\
 & *++[o][F]{6} &  & *++[o][F]{7}\\
\\
}
$}
\end{document}

答案1

您可以使用XY-pic的颜色扩展。

  1. 导入 xcolor 包并向 xy 包添加颜色选项:
    \usepackage{xcolor}
    \usepackage[all,color]{xy}

  2. 使用格式的修饰符:[F*:颜色名称]。以下是一些示例:
    a) 灰色背景:*++[o][F*:gray]{1}
    b) 灰色背景 + 强调边界(默认:黑色):*++[o][F**:gray]{1}
    c) 灰色背景 + 红色边界:*++[o][F-:red][F*:gray]{1}
    d) 重叠框架:*++[o][F*:red]++[F*:gray]{1}

在此处输入图片描述

您的问题的解决方案:

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\setlength{\parindent}{0bp}

\usepackage{xcolor}
\usepackage[all,color]{xy}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\makeatletter
\newcommand{\xyR}[1]{%
\xydef@\xymatrixrowsep@{#1}
} % end of \xyR

\newcommand{\xyC}[1]{%
\xydef@\xymatrixcolsep@{#1}
} % end of \xyC

\makeatother


\begin{document}

\L{$\xymatrix{ &  & *++[o][F]{3}\ar@{-}[rd]\ar@{-}[dl]\\
 & *++[o][F]{6} &  & *++[o][F**:lightgray]{7}\\
\\
}
$}
\end{document}

输出如下。
在此处输入图片描述

有关详细信息,请参阅CTAN 上的 xypdf

答案2

可能有更“原生”的 xypic 方式,但我快速浏览手册后没有看到任何有关填充样式的信息。但是,您不能使用 xy 绘制框架,然后使用其他任何方式(pstricks、tikz 或此处的图片模式)绘制框架/填充节点

在此处输入图片描述

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\setlength{\parindent}{0bp}
\usepackage[all]{xy}
\usepackage{color,pict2e}
\newcommand\cfill[2]{%
\begin{picture}(0,0)%
\put(0,0){{\color[gray]{#1}\circle*{18}}}%
\put(0,0){{\circle{18}}}%
\put(0,0){\makebox(0,0){#2}}%
\end{picture}}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\makeatletter
\newcommand{\xyR}[1]{%
\xydef@\xymatrixrowsep@{#1}
} % end of \xyR

\newcommand{\xyC}[1]{%
\xydef@\xymatrixcolsep@{#1}
} % end of \xyC

\makeatother


\begin{document}
\L{$\xymatrix{ &  & 
*++{\color{red}\cfill{1}{\textcolor{green}{3}}}\ar@{-}[rd]\ar@{-}[dl]\\
 & *++[o][F]{6} &  & *++{\cfill{.9}{7}}\\
\\
}
$}
\end{document}

答案3

提醒一下,*++[o][F:red]{3}将绘制由红色圆圈框起来的文本 3。请记住在 tex 文件的开头
包含\usepackage{color}和。\xyoption{color}

相关内容