箭头图中的文字

箭头图中的文字

有人能帮我在 tikz 上写这个图表吗?

在此处输入图片描述

我会很感激

答案1

您可以使用tikz-cd

\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\[\begin{tikzcd}[column sep=-3em,every arrow/.append style={<->}]
 & \begin{tabular}{@{}c@{}}
    topos (or topological space\\
    or semi-simplical complex)\\
    \textit{modulo} $n$-homotopy
   \end{tabular}
   \arrow[dl]\arrow[dr]&\\
 \begin{tabular}{@{}l@{}}
    $n$-groupoids\\
    (up to $n$-equivalence)
   \end{tabular}
   \arrow[rr]&
 & \begin{tabular}{@{}l@{}}
    ``special'' $n$-categories\\
    (up to $n$-equivalence)
   \end{tabular}\\
\end{tikzcd}
\]
\end{document}

在此处输入图片描述

答案2

感谢@David Carlisle 提供旧打字机字体(使用 LaTeX 模拟老式打字机书写的文本)。

这里还有另一种选择,始终使用tikz-cd包裹。

\documentclass[a4paper,12pt]{article}
\usepackage{amsmath,amssymb}
\usepackage{geometry}
\usepackage{tikz-cd}
\usepackage{luaotfload}
\font\cmuntt = cmuntt at 12pt \cmuntt
\edef\cmunttid{\fontid\cmuntt}


\expandafter\let\expandafter\%\csname @percentchar\endcsname
\directlua{
    local cbl = luatexbase.callback_descriptions('define_font')
    % print('\string\n======' .. cbl[1] .. '===\string\n')
    original_fontloader = luatexbase.remove_from_callback('define_font', cbl[1])
    luatexbase.add_to_callback(
        'define_font',
        function(name, size, i)
            if (name=='cmtt10x') then
                % this works in my dev version but for older setups
                % make sure cmuntt.otf has been loaded before we mess
                % up the font loader.
                % f = original_fontloader('cmuntt.otf',size)
                f = font.getfont(\cmunttid)
                f.name = 'cmtt10x'
                f.type = 'virtual'
                f.fonts = {{name = 'cmuntt', size = size}}
                for j, v in pairs(f.characters) do
                    local gr  = 0.4*math.random()
                    local gr2 = 0.4*math.random()
                    v.commands = {
                        {
                            'lua',
                            'r1 = 0.01*math.random(-10, 10)
                            pdf.print(string.format(
                                " q \%f \%f \%f \%f 0 0 cm ",
                                math.cos(r1), - math.sin(r1), 
                                math.sin(r1),   math.cos(r1)
                            ))'
                        },
                        {'special', 'pdf: ' .. gr2 .. ' g'},
                        {'push'},
                        {'right', math.random(-20000,20000)},
                        {'down', math.random(-20000,20000)},
                        {'char', j},
                        {'pop'},
                        {'lua', 'pdf.print(" Q ")'},
                        {'down', math.random(-20000,20000)},
                        {'special', 'pdf: ' .. gr .. ' g'},
                        {'char', j},
                        {'special', 'pdf: 0 g'}
                    }
                end  % end of for
                return f
            else
                return original_fontloader(name, size, i)
            end  % end of if
        end,  % end of function
        'define font'
    )  % end of add_to_callback
}

\def\sqrt#1{^^^^221a\overline{#1}}

\begin{document}
$\relax$
\font\myfont= cmtt10x at 12pt \myfont
\font\myfonts= cmtt10x at 7pt
\let\selectfont\relax

\textfont0=\myfont
\scriptfont0=\myfonts 
\scriptscriptfont0=\myfonts 
\textfont1=\myfont
\textfont2=\myfont
\textfont3=\myfont



\[\begin{tikzcd}[column sep=-4pt,every arrow/.append style={<->}]
 & \begin{array}{c}
    topos\, (or\, topological\, space\\
    or\, semi$-$simplical\, complex)\\
    modulo\, n$-$homotopy  
    \end{array} &  \\
\begin{array}{c}
     n$-$\,groupoids\\
    (up\, to\, n$-$equivalence)
\end{array} \arrow[rr] \arrow[ru] &   & \begin{array}{c}
     \mbox{\textquotedbl} special\mbox{\textquotedbl}\, n$-$categories\\
    (up\, to\, n$-$equivalence)
   \end{array} \arrow[lu]
\end{tikzcd}\]
\end{document}

在此处输入图片描述

答案3

使用tikz-cd包(与其他答案一样)进行节点放置,makecell进行多行文本包并\ttfamily在节点中使用字体:

\documentclass[border=3.141592]{standalone}
\usepackage{makecell}
\usepackage{tikz-cd}

\begin{document}
    \begin{tikzcd}[column sep=-2em, row sep=5ex,
                   cells={nodes={
                          font=\ttfamily\linespread{0.92}\selectfont,
                          align=center}
                          },
                   ]
    &   \makecell{topos (or topological space\\
                  or semi-simplical complex)\\
                  \textit{modulo} $n$-homotopy} \ar[dl, <->] \ar[dr, <->]
        &   \\
\makecell{$n$-groupoids (up\\  
          to $n$-equivalence)}  \ar[rr,<->]        
    &   &   \makecell{``special'' $n$-categories\\
                      (up to $n$-equivalence)} 
            \\
    \end{tikzcd}
\end{document}

在此处输入图片描述

相关内容