我一直尝试用 Tex 重写下面的图像(但没有成功),但遇到了几个问题:
如何协调
\varphi
职能如何绘制垂直线
这就是我所拥有的:
这是我的代码:
\documentclass{article}
\usepackage{calrsfs}
% Language setting
% Replace `english' with e.g. `spanish' to change the document language
\usepackage[english]{babel}
\usepackage[letterpaper,top=2cm,bottom=2cm,left=3cm,right=3cm,marginparwidth=1.75cm]{geometry}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage[colorlinks=true, allcolors=blue]{hyperref}
\DeclareMathOperator{\Nat}{Nat}
\DeclareMathOperator{\Hom}{Hom}
\title{Your Paper}
\author{You}
\begin{document}
\begin{matrix}
G(f,\gamma): & \Nat (\Hom_A,F) & \longrightarrow & \Nat(\Hom_A,F')
\\
& \varphi & \longmapsto &
\begin{matrix}
\varphi': & \mathbb{\Hom_B} & \longrightarrow & \mathbb{F'}
\\
&
\begin{matrix}
\bigg|^{\varphi_X': & \mathbb{(\Hom_B,\times)} & \longrightarrow & \mathbb{F'(x)} \\
& h & \longmapsto & (\gamma \circ \varphi) \times (h \circ f)}}
\end{matrix}
\end{matrix}
\end{matrix}
\end{document}
通过对齐\varphi'
,\varphi'_X
我的意思是让它看起来像这样:
答案1
这个想法是,修复符号。但是,请应用于\mathbb
单个大写字母;这\mathbb{\Hom_B}
是错误的\mathbb{F'}
。如果您希望字母以黑板粗体显示,请使用
\Hom_{\mathbb{B}}
\mathbb{F}'
这是代码。
\documentclass{article}
\usepackage{amsmath,array}
\DeclareMathOperator{\Nat}{Nat}
\DeclareMathOperator{\Hom}{Hom}
\begin{document}
\[
\renewcommand{\arraystretch}{1.2}
\setlength{\arraycolsep}{0pt}
\begin{array}{l@{\;}c>{{}}c<{{}}l}
G(f,\gamma)\colon & \Nat (\Hom_A,F) & \longrightarrow & \Nat(\Hom_A,F') \\
& \varphi & \longmapsto &
\begin{array}[t]{|@{\;}l@{\;}l}
\varphi'\colon & \Hom_B \longrightarrow F' \\
& \varphi_X'\colon \begin{array}[t]{|@{\;}c>{{}}c<{{}}l}
\Hom(B,x) & \longrightarrow & F'(x) \\
h & \longmapsto & (\gamma\circ\varphi)\times(h \circ f)
\end{array}
\end{array}
\end{array}
\]
\end{document}
设置\arraycolsep
为零允许手动添加正确的间距。
该[t]
选项意味着array
在顶行垂直对齐;@{\;}
我们用 指定一个类似关系的空间;>{{}}c<{{}}
我们用 指定一个为关系保留的居中列(此处的箭头),因此净效果将是{}\longrightarrow{}
TeX 自行在关系周围添加空格。
替代:
\documentclass{article}
\usepackage{amsmath,array}
\DeclareMathOperator{\Nat}{Nat}
\DeclareMathOperator{\Hom}{Hom}
\begin{document}
\[
\renewcommand{\arraystretch}{1.2}
\setlength{\arraycolsep}{0pt}
\begin{array}{l@{\;}c>{{}}c<{{}}l}
G(f,\gamma)\colon & \Nat (\Hom_A,F) & \longrightarrow & \Nat(\Hom_A,F') \\
& \varphi & \longmapsto &
\begin{array}[t]{|@{\;}l@{\;}l}
\varphi'\colon & \Hom_B \longrightarrow F' \\
\varphi_X'\colon & \begin{array}[t]{|@{\;}c>{{}}c<{{}}l}
\Hom(B,x) & \longrightarrow & F'(x) \\
h & \longmapsto & (\gamma\circ\varphi)\times(h \circ f)
\end{array}
\end{array}
\end{array}
\]
\end{document}
使用括号:顶部对齐需要delarray
,居中对齐不需要(显然是更可取的)。
\documentclass{article}
\usepackage{amsmath,array,delarray}
\DeclareMathOperator{\Nat}{Nat}
\DeclareMathOperator{\Hom}{Hom}
\begin{document}
\[
\renewcommand{\arraystretch}{1.2}
\setlength{\arraycolsep}{0pt}
\begin{array}{l@{\;}c>{{}}c<{{}}l}
G(f,\gamma)\colon & \Nat (\Hom_A,F) & \longrightarrow & \Nat(\Hom_A,F') \\
& \varphi & \longmapsto &
\begin{array}[t]\{{@{\;}l@{\;}l}.
\varphi'\colon & \Hom_B \longrightarrow F' \\
\varphi_X'\colon & \begin{array}[t]\{{@{\;}c>{{}}c<{{}}l}.
\Hom(B,x) & \longrightarrow & F'(x) \\
h & \longmapsto & (\gamma\circ\varphi)\times(h \circ f)
\end{array}
\end{array}
\end{array}
\]
\[
\renewcommand{\arraystretch}{1.2}
\setlength{\arraycolsep}{0pt}
\begin{array}{l@{\;}c>{{}}c<{{}}l}
G(f,\gamma)\colon & \Nat (\Hom_A,F) & \longrightarrow & \Nat(\Hom_A,F') \\
& \varphi & \longmapsto &
\left\{\begin{array}{@{\;}l@{\;}l}
\varphi'\colon & \Hom_B \longrightarrow F' \\
\varphi_X'\colon & \left\{\begin{array}{@{\;}c>{{}}c<{{}}l}
\Hom(B,x) & \longrightarrow & F'(x) \\
h & \longmapsto & (\gamma\circ\varphi)\times(h \circ f)
\end{array}\right.
\end{array}\right.
\end{array}
\]
\end{document}