我想询问一个关于范畴论中以下运算符的漂亮宏,用于表示逗号范畴:
它接受两个参数,例如 (类别,对象)、(对象,函子)、(函子,函子) 等。该符号的使用示例如下:对于拓扑空间 $B$,
表示以 $B$ 为底的拓扑束的逗号类别,其对象为对 $(E,p)$,其中 $E$ 是拓扑空间,$p:E\to B$ 是连续映射,其箭头$\phi:(E,p)\to (F,q)$ 是连续的 $\phi:E\to F$,并且 $q\circ \phi=p$。
至于属性,它应该是可扩展的,垂直和水平(独立),并且它应该具有像这样的反射(为了方便):
我没有创建这种复杂度的宏的经验,因此我希望有一个完整的示例,但也欢迎提出建议。谢谢您的时间。
编辑:使用 egreg 的答案和此 tex.SE 条目我想出了自己的版本,以防其他人也想使用这种符号,但又懒得调整楼梯的高度。我去掉了 egreg 版本的第三个调整参数,改用了 cellspace 包:
\documentclass{article}
\usepackage{amsmath,hhline}
\usepackage{amssymb,faktor}
\usepackage{cellspace}
\setlength\cellspacetoplimit{1pt}
\setlength\cellspacebottomlimit{1pt}
\newcommand{\cat}[1]{\mathbf{#1}} % or whatever YOU like
\newcommand{\rcom}[2]{%
\begingroup
\renewcommand{\arraystretch}{1}%
\setlength{\arraycolsep}{2pt}%
\begin{array}{Sr|Sl}
\hhline{~|-}
${#1}$ & ${#2}$\\
\hhline{-|~}
\end{array}%
\endgroup
}
\newcommand{\lcom}[2]{%
\begingroup
\renewcommand{\arraystretch}{1}%
\setlength{\arraycolsep}{2pt}%
\begin{array}{r|l}
\hhline{-|~}
#1\\
\hhline{~|-}
\end{array}%
\endgroup
}
\begin{document}
$\lcom{\overline{\underline{R}}}{\cat{Rng}}$\\
$\rcom{\cat{Ab}}{\faktor{G}{H}}$\\
$\rcom{\underline{\cat{Top}}}{\widetilde{G}}$\\
$\rcom{\cat{Ab}}{\dfrac{G}{H}}$
\end{document}
答案1
您可以array
在软件包的帮助下使用hhline
。如果需要容纳较大的对象,则提供了一个可选参数来增加分配的空间。
\documentclass{article}
\usepackage{amsmath,hhline}
\newcommand{\cat}[1]{\mathbf{#1}} % or whatever you like
\newcommand{\commacat}[3][1]{%
\begingroup
\renewcommand{\arraystretch}{#1}%
\setlength{\arraycolsep}{2pt}%
\begin{array}{r|l}
\hhline{~|-}
#2\\
\hhline{-|~}
\end{array}%
\endgroup
}
\newcommand{\cocommacat}[3][1]{%
\begingroup
\renewcommand{\arraystretch}{#1}%
\setlength{\arraycolsep}{2pt}%
\begin{array}{r|l}
\hhline{-|~}
#2\\
\hhline{~|-}
\end{array}%
\endgroup
}
\begin{document}
\[
\commacat{\cat{Top}}{B}
\qquad
\cocommacat{X}{\cat{Set}}
\]
\[
\commacat[1.8]{\cat{Top}}{\dfrac{A}{B}}
\qquad
\cocommacat[1.8]{\dfrac{A}{B}}{\cat{Top}}
\]
\end{document}