在投影仪中更改 tikz-cd 箭头“背景颜色”

在投影仪中更改 tikz-cd 箭头“背景颜色”

我正在排版一个图表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 colorcolorbg其他事情(交叉和描述节点)也是必要的之外,很棒的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-21-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]

相关内容