我正在排版一个图表beamer
。它呈现如下:
编辑:问题似乎只是箭头的背景颜色。它是白色的,不透明的,因此在黑色背景上很显眼。
这是我想要的结果:
以下是 MWE:
\documentclass[10pt, notheorems]{beamer}
\usepackage{tikz}
\usetikzlibrary{cd, arrows, decorations.pathmorphing}
\definecolor{colornormaltext}{HTML}{e5e8f8}
\definecolor{colorbg}{HTML}{101316}
\definecolor{colorgold}{HTML}{db9a46}
\setbeamercolor{background canvas}{bg=colorbg}
\setbeamercolor{normal text}{fg=colornormaltext}
\begin{document}
\begin{frame}
\begin{equation*}
\begin{tikzcd}[ampersand replacement=\&]
Sh_ W \&[-3ex] \&[-3ex] Sh_ V\\
\& Msbl
\arrow[""{name=0, anchor=center, inner sep=0}, "{f_*}"', shift right=2, from=1-1, to=1-3]
\arrow[""{name=1, anchor=center, inner sep=0}, "{f^*}"', shift right=2, from=1-3, to=1-1]
\arrow["{O_W}", from=2-2, to=1-1]
\arrow[""{name=2, anchor=center, inner sep=0}, "{O_V}"', from=2-2, to=1-3]
\arrow["\dashv"{anchor=center, rotate=-90}, draw=none, from=1, to=0]
\arrow[shift left=2, Rightarrow, "\hat f", from=2, to=1-1]
\end{tikzcd}
\end{equation*}
\end{frame}
\end{document}
被指控的箭头是代码中的最后一支:
\arrow[shift left=2, Rightarrow, "\hat f", from=2, to=1-1]
答案1
在另一个地方找到了答案线。
tikz-cd 环境有一个背景颜色设置,您需要将其设置为黑色,即只需更改
\begin{tikzcd}[ampersand replacement=\&]
到
\begin{tikzcd}[ampersand replacement=\&, background color=black]
并给出了期望的结果。
答案2
除了将设置background color
为colorbg
其他事情(交叉和描述节点)也是必要的之外,很棒的nfold
图书馆可以使用不以背景颜色绘制粗线的方式。
代码
\documentclass[10pt, notheorems]{beamer}
\usepackage{tikz}
\usetikzlibrary{cd, decorations.pathmorphing, nfold}
\definecolor{colornormaltext}{HTML}{e5e8f8}
\definecolor{colorbg}{HTML}{101316}
\definecolor{colorgold}{HTML}{db9a46}
\setbeamercolor{background canvas}{bg=colorbg}
\setbeamercolor{normal text}{fg=colornormaltext}
\tikzcdset{
diagrams={/tikz/double/.append style=/tikz/nfold},% every cd should use nfold
background color=colorbg
}
\begin{document}
\begin{frame}
\begin{equation*}
\begin{tikzcd}[column sep=small, ampersand replacement=\&]
Sh_W \& \& Sh_V\\
\& Msbl
\arrow["f_*"', shift right=2, from=1-1, to=1-3]
\arrow[from=1-1, to=1-3, draw=none, "\dashv" {rotate=-90, auto=false}]
\arrow["f^*"', shift right=2, from=1-3, to=1-1]
\arrow["{O_W}" name=OW, from=2-2, to=1-1]
\arrow["{O_V}"' name=OV, from=2-2, to=1-3]
\arrow[Rightarrow, "\hat f" near start, from=OV, to=1-1, bend left=10]
\end{tikzcd}
\end{equation*}
\end{frame}
\end{document}
输出
答案3
- 您应该提供完整的 MWE,而不仅仅是片段图代码。
- 您的代码片段有点奇怪,所以很难理解您的问题是什么。
- 我只是清理了你的代码并尝试重现显示的图像(没有粗箭头,其目的不明确)
\documentclass{beamer}
\usepackage{tikz-cd}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{frame}[fragile]
\frametitle{tikz-cd diagram}
\[
\begin{tikzcd}[
row sep = large,
arrow style = tikz,
> = {Straight Barb[scale=0.8]}
]
Sh_{\mathrm{a.e.}}W_{\infty} \ar[rr,shift right=0.5em, "1_t*" ', "\bot"]
& & Sh_{\mathrm{a.e.}}W_t \ar[ll,shift right=0.5em,"1^*_t" '] \\
& \mathsf{Msbl} \ar[ul, "\mathcal{O}_{\infty}"]
\ar[ur, "\mathcal{O}_t" ']
&
\end{tikzcd}
\]
\end{frame}
\end{document}
附录:
不幸的是,图表中间的箭头应该放在哪里仍然不清楚。此外,如果需要的话,从节点到结果Rightarrow
需要交叉箭头,这可能会很丑陋(在我看来)。下面是两个例子:2-2
1-3
\documentclass{beamer}
\usepackage{tikz-cd}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{frame}[fragile]
\frametitle{tikz-cd diagram}
\[
\begin{tikzcd}[
row sep = large,
arrow style = tikz,
> = {Straight Barb[scale=0.8]},
]
Sh_{\mathrm{a.e.}}W_{\infty} \ar[rr,shift right=0.5em, "1_t*" ', "\bot"]
& & Sh_{\mathrm{a.e.}}W_t \ar[ll,shift right=0.5em,"1^*_t" '] \\
& \mathsf{Msbl} \ar[ul, "\mathcal{O}_{\infty}"]
\ar[ur, ""{name=Ot,right}]
\ar[ur, "\mathcal{O}_t" ']
\ar[dashrightarrow, from=Ot, to=1-1,yshift=-1ex]
&
\end{tikzcd}
\]
\end{frame}
\end{document}
或(仅限图表代码):
Sh_{\mathrm{a.e.}}W_{\infty} \ar[rr,shift right=0.5em, "1_t*" ', "\bot"]
& & Sh_{\mathrm{a.e.}}W_t \ar[ll,shift right=0.5em,"1^*_t" '] \\
& \mathsf{Msbl} \ar[ul, "\mathcal{O}_{\infty}"]
\ar[ur, draw=none, ""{name=Ot,right}]
\ar[ur, "\mathcal{O}_t" ']
\ar[Rightarrow, crossing over, from=Ot, to=1-1,yshift=-1ex]
&
或者使用Rightarrow
内部图表:
Sh_{\mathrm{a.e.}}W_{\infty} \ar[rr,shift right=0.5em, "1_t*" ', "\bot"]
& & Sh_{\mathrm{a.e.}}W_t \ar[ll,shift right=0.5em,"1^*_t" '] \\
& \mathsf{Msbl} \ar[ul, "\mathcal{O}_{\infty}"]
\ar[ur, "\mathcal{O}_t" ', ""{name=Ot}]
\ar[Rightarrow, from=Ot, to=1-1,yshift=-1ex]
&
答案4
我不会创建 MWE,但你试过 \usetikzlibrary{arrows.meta}
在序言中添加吗?然后,试试这个:
\arrow[""{name=0, anchor=center, inner sep=0,latex-}, "{f_*}"', shift right=2, from=1-1, to=1-3]