使用 psmatrix 对齐图表

使用 psmatrix 对齐图表

下面的虚拟幻灯片中有两个并排的图表。我想将它们对齐,使节点 7、8 和 9 位于同一条线上。您对如何实现此结果有什么建议吗?谢谢。

\documentclass[xcolor=dvipsnames,compress,aspectratio=169]{beamer}
\usepackage[T1]{fontenc}
\usepackage{bold-extra}
\usepackage{subfigure}
\usepackage{tcolorbox}
\usepackage{pstricks}
\usepackage{tikz}
\usetikzlibrary{calc, chains, fit, positioning, shapes}
\usepackage{pst-node}% http://ctan.org/pkg/pst-node
\usepackage{multido}% http://ctan.org/pkg/multido
\usepackage{pst-poly}
\usetheme[progressbar=frametitle]{metropolis}

\makeatletter
\newcommand{\srcsizefour}{\@setfontsize{\srcsize}{4pt}{4pt}}


\newcommand{\mytextsizesmaller}{\srcsizefour}
\definecolor{platinum}{rgb}{0.9, 0.89, 0.89}
\definecolor{myred}{RGB}{255, 73, 93}

\begin{document}
\begin{frame}{Dummy example}
\hfill
    \begin{center}
    \begin{columns}
    \begin{column}{0.45\textwidth}
    
    \centering
    \psmatrix[mnode=Circle,radius=5pt,colsep=0.5cm,rowsep=0.25cm,fillcolor=myred!95,fillstyle=solid,linewidth=0.5pt]
    \mytextsizesmaller2 &                                          & \mytextsizesmaller3                     & \mytextsizesmaller4                      & &\mytextsizesmaller5   \\ 
                        & [fillcolor=platinum]\mytextsizesmaller7  & [fillcolor=platinum]\mytextsizesmaller8 & [fillcolor=platinum]\mytextsizesmaller9  & [fillcolor=platinum]\mytextsizesmaller10     \\  
    \mytextsizesmaller1 &                                          &                                         &                                          & &\mytextsizesmaller6   \\
    \endpsmatrix     
    \ncline[linewidth=0.25pt]{-}{1,1}{2,2} 
    \ncline[linewidth=0.25pt]{-}{1,3}{2,3}
    \ncline[linewidth=0.25pt]{-}{1,4}{2,4}
    \ncline[linewidth=0.25pt]{-}{1,6}{2,5}
    
    \ncline[linewidth=0.25pt]{-}{2,2}{2,3} 
    \ncline[linewidth=0.25pt]{-}{2,3}{2,4}
    \ncline[linewidth=0.25pt]{-}{2,4}{2,5} 
    
    \ncline[linewidth=0.25pt]{-}{3,1}{2,2}
    \ncline[linewidth=0.25pt]{-}{3,6}{2,5}
    \end{column}
    \begin{column}{0.45\textwidth}
    \centering%
    \psmatrix[mnode=Circle,radius=5pt,colsep=0.5cm,rowsep=0.25cm,fillcolor=myred!95,fillstyle=solid,linewidth=0.5pt]
                          &     \mytextsizesmaller3                  &                                         &  \mytextsizesmaller4                                             \\ 
    \mytextsizesmaller 2  &                                          & [fillcolor=platinum]\mytextsizesmaller10&                                          & \mytextsizesmaller5   \\ 
                          & [fillcolor=platinum]\mytextsizesmaller7  & [fillcolor=platinum]\mytextsizesmaller8 & [fillcolor=platinum]\mytextsizesmaller9          \\  
    \mytextsizesmaller 1  &                                          &                                         &                                          & \mytextsizesmaller6   \\
    \endpsmatrix     
    \ncline[linewidth=0.25pt]{-}{1,2}{2,3} 
    \ncline[linewidth=0.25pt]{-}{1,4}{2,3} 
    
    \ncline[linewidth=0.25pt]{-}{2,1}{3,2} 
    \ncline[linewidth=0.25pt]{-}{4,1}{3,2} 
    
    \ncline[linewidth=0.25pt]{-}{2,5}{3,4} 
    \ncline[linewidth=0.25pt]{-}{4,5}{3,4} 
    
    \ncline[linewidth=0.25pt]{-}{3,2}{3,3} 
    \ncline[linewidth=0.25pt]{-}{3,3}{3,4} 
    \ncline[linewidth=0.25pt]{-}{3,3}{2,3} 
    \end{column}
    \vspace{0pt}
    \end{columns}
    \end{center}
    \hfill

\end{frame}
\end{document}

答案1

通过在两者之一中放置一个简单的 \vspace 即可对齐图像。例如如下所示。

\hfill
\begin{center}
\begin{columns}
\begin{column}{0.45\textwidth}
\centering
\vspace{0.25cm}\\
\psmatrix[mnode=Circle,radius=5pt,colsep=0.5cm,rowsep=0.25cm,fillcolor=myred!95,fillstyle=solid,linewidth=0.5pt]
\mytextsizesmaller2 &                                          & \mytextsizesmaller3                     & \mytextsizesmaller4                      & &\mytextsizesmaller5   \\ 
                    & [fillcolor=platinum]\mytextsizesmaller  & [fillcolor=platinum]\mytextsizesmaller & [fillcolor=platinum]\mytextsizesmaller  & [fillcolor=platinum]\mytextsizesmaller     \\  
\mytextsizesmaller1 &                                          &                                         &                                          & &\mytextsizesmaller6   \\
\endpsmatrix     
\ncline[linewidth=0.25pt]{-}{1,1}{2,2} 
\ncline[linewidth=0.25pt]{-}{1,3}{2,3}
\ncline[linewidth=0.25pt]{-}{1,4}{2,4}
\ncline[linewidth=0.25pt]{-}{1,6}{2,5}

\ncline[linewidth=0.25pt]{-}{2,2}{2,3} 
\ncline[linewidth=0.25pt]{-}{2,3}{2,4}
\ncline[linewidth=0.25pt]{-}{2,4}{2,5} 

\ncline[linewidth=0.25pt]{-}{3,1}{2,2}
\ncline[linewidth=0.25pt]{-}{3,6}{2,5}
\end{column}
\begin{column}{0.45\textwidth}
\centering%
\psmatrix[mnode=Circle,radius=5pt,colsep=0.5cm,rowsep=0.25cm,fillcolor=myred!95,fillstyle=solid,linewidth=0.5pt]
                      &     \mytextsizesmaller3                  &                                         &  \mytextsizesmaller4                                             \\ 
\mytextsizesmaller 2  &                                          & [fillcolor=platinum]\mytextsizesmaller&                                          & \mytextsizesmaller5   \\ 
                      & [fillcolor=platinum]\mytextsizesmaller  & [fillcolor=platinum]\mytextsizesmaller & [fillcolor=platinum]\mytextsizesmaller          \\  
\mytextsizesmaller 1  &                                          &                                         &                                          & \mytextsizesmaller6   \\
\endpsmatrix     
\ncline[linewidth=0.25pt]{-}{1,2}{2,3} 
\ncline[linewidth=0.25pt]{-}{1,4}{2,3} 

\ncline[linewidth=0.25pt]{-}{2,1}{3,2} 
\ncline[linewidth=0.25pt]{-}{4,1}{3,2} 

\ncline[linewidth=0.25pt]{-}{2,5}{3,4} 
\ncline[linewidth=0.25pt]{-}{4,5}{3,4} 

\ncline[linewidth=0.25pt]{-}{3,2}{3,3} 
\ncline[linewidth=0.25pt]{-}{3,3}{3,4} 
\ncline[linewidth=0.25pt]{-}{3,3}{2,3} 
\end{column}
\vspace{0pt}
\end{columns}
\end{center}

或许还有更优雅的解决方案,但无论如何这都是有效的。

相关内容