我想在 内嵌套多个 psmatrix 环境psmatrix
,这样外部的每个单元psmatrix
本身又是一个 psmatrix。最终,我想使用 在这些内部矩阵内进行绘制pspicture
。beamer
如果相关的话,所有这些都在文档中。不幸的是,当嵌套 psmatrices 时,会以某种方式添加不必要的空间,导致外部psmatrix
不再相对于页面正确居中。
\documentclass{beamer}
\usepackage[utf8x]{inputenc}
\usepackage{pstricks}
\usepackage{pst-node}
\newcommand\mycirc{\pspicture(.5,.5)\pscircle(.25,.25){.25}\endpspicture}
\newcommand\myframe{\pspicture(.5,.5)\psframe(.5,.5)\endpspicture}
\begin{document}
\begin{frame}{Properly centered}
\begin{center}
\begin{psmatrix}
A & B \\
C & D
\end{psmatrix}
\end{center}
\end{frame}
\begin{frame}{Not centered}
\begin{center}
\begin{psmatrix}[rowsep=2,colsep=2]
\begin{psmatrix}[rowsep=0.5,colsep=0.5]A1&A2\\A3&A4\end{psmatrix}&
\begin{psmatrix}[rowsep=0.5,colsep=0.5]B1&B2\\B3&B4\end{psmatrix}\\
\begin{psmatrix}[rowsep=0.5,colsep=0.5]C1&C2\\C3&C4\end{psmatrix}&
\begin{psmatrix}[rowsep=0.5,colsep=0.5]D1&D2\\D3&D4\end{psmatrix}
\end{psmatrix}
\end{center}
\end{frame}
\begin{frame}{Not centered - pspicture example}
\begin{center}
\begin{psmatrix}[rowsep=2,colsep=2]
\begin{psmatrix}[rowsep=0.5,colsep=0.5]\mycirc&\mycirc\\ \mycirc&\mycirc\end{psmatrix}&
\begin{psmatrix}[rowsep=0.5,colsep=0.5]\myframe&\myframe\\ \myframe&\myframe\end{psmatrix}\\
\begin{psmatrix}[rowsep=0.5,colsep=0.5]\mycirc&\mycirc\\ \mycirc&\mycirc\end{psmatrix}&
\begin{psmatrix}[rowsep=0.5,colsep=0.5]\myframe&\myframe\\ \myframe&\myframe\end{psmatrix}
\end{psmatrix}
\end{center}
\end{frame}
\end{document}
我的问题是如何使 psmatrix 正确对齐。我pspicture
在这里提到环境,以防有人对此有更优雅的解决方案。注意:作为一种解决方法,我使用非嵌套,psmatrix
其中四个“块”之间的距离由额外的空列引入。请不要提出这一点。我更喜欢嵌入式解决方案,因为它允许更细粒度的定位。
在此先感谢所有花时间给我提示的人!
由 The Last Error 编辑
以下编辑尝试简化上面给出的 MWE。如果您不喜欢我的编辑,请随时回滚。
\documentclass[preview,border=12pt]{standalone}
\usepackage{pst-node}
\newcommand\mycirc{\pspicture(.5,.5)\pscircle(.25,.25){.25}\endpspicture}
\newcommand\myframe{\pspicture(.5,.5)\psframe(.5,.5)\endpspicture}
\begin{document}
\section{Properly centered}
\begin{center}
\begin{psmatrix}
A & B \\
C & D
\end{psmatrix}
\end{center}
\section{Not centered}
\begin{center}
\fbox{%
\begin{psmatrix}[rowsep=2,colsep=2,mcol=l]
\begin{psmatrix}[rowsep=0.5,colsep=0.5]A1&A2\\A3&A4\end{psmatrix}&
\begin{psmatrix}[rowsep=0.5,colsep=0.5]B1&B2\\B3&B4\end{psmatrix}\\
\begin{psmatrix}[rowsep=0.5,colsep=0.5]C1&C2\\C3&C4\end{psmatrix}&
\begin{psmatrix}[rowsep=0.5,colsep=0.5]D1&D2\\D3&D4\end{psmatrix}
\end{psmatrix}}
\end{center}
\section{Not centered - pspicture example}
\begin{center}
\fbox{%
\begin{psmatrix}[rowsep=2,colsep=2]
\begin{psmatrix}[rowsep=0.5,colsep=0.5]\mycirc&\mycirc\\ \mycirc&\mycirc\end{psmatrix}&
\begin{psmatrix}[rowsep=0.5,colsep=0.5]\myframe&\myframe\\ \myframe&\myframe\end{psmatrix}\\
\begin{psmatrix}[rowsep=0.5,colsep=0.5]\mycirc&\mycirc\\ \mycirc&\mycirc\end{psmatrix}&
\begin{psmatrix}[rowsep=0.5,colsep=0.5]\myframe&\myframe\\ \myframe&\myframe\end{psmatrix}
\end{psmatrix}}
\end{center}
\end{document}
答案1
OP 在评论中坚持认为替代方法(不采用psmatrix
)是不是\pspicture
他正在寻找什么。而且我还没有调试“psmatrices”的嵌套。此外,无论我运行什么 MWE,我的尝试都因始终产生空白图像这一事实而受阻。
无论如何,\kern
在输入外部时只需添加一个负数psmatrix
,其他一切都从那里开始。使用 MWE 的实验表明,kern 的大小应等于colsep
外部的值psmatrix
。
\documentclass[preview,border=12pt]{standalone}
\usepackage{pst-node}
\newcommand\mycirc{\pspicture(.5,.5)\pscircle(.25,.25){.25}\endpspicture}
\newcommand\myframe{\pspicture(.5,.5)\psframe(.5,.5)\endpspicture}
\begin{document}
\section{Properly centered}
\begin{center}
\begin{psmatrix}
A & B \\
C & D
\end{psmatrix}
\end{center}
\section{Not centered}
\begin{center}
\fbox{\kern-2cm%
\begin{psmatrix}[rowsep=2,colsep=2,mcol=l]
\begin{psmatrix}[rowsep=0.5,colsep=0.5]A1&A2\\A3&A4\end{psmatrix}&
\begin{psmatrix}[rowsep=0.5,colsep=0.5]B1&B2\\B3&B4\end{psmatrix}\\
\begin{psmatrix}[rowsep=0.5,colsep=0.5]C1&C2\\C3&C4\end{psmatrix}&
\begin{psmatrix}[rowsep=0.5,colsep=0.5]D1&D2\\D3&D4\end{psmatrix}
\end{psmatrix}}
\end{center}
\section{Not centered - pspicture example}
\begin{center}
\fbox{\kern-2cm% WITHOUT A VISUAL, DON'T KNOW IF AMOUNT IS CORRECT
\begin{psmatrix}[rowsep=2,colsep=2]
\begin{psmatrix}[rowsep=0.5,colsep=0.5]\mycirc&\mycirc\\ \mycirc&\mycirc\end{psmatrix}&
\begin{psmatrix}[rowsep=0.5,colsep=0.5]\myframe&\myframe\\ \myframe&\myframe\end{psmatrix}\\
\begin{psmatrix}[rowsep=0.5,colsep=0.5]\mycirc&\mycirc\\ \mycirc&\mycirc\end{psmatrix}&
\begin{psmatrix}[rowsep=0.5,colsep=0.5]\myframe&\myframe\\ \myframe&\myframe\end{psmatrix}
\end{psmatrix}}
\end{center}
\end{document}
答案2
使用嵌套的 是没有意义的psmatrix
。不用它也可以简单地完成:
\documentclass{beamer}
\usepackage{pst-node}
\begin{document}
\begin{frame}{centered}
\begin{center}
\fbox{%
\begin{psmatrix}[rowsep=0.5,colsep=0.5]
A1&A2 &&& B1&B2 \\
A3&A4 &&& B3&B4 \\[1cm]
C1&C2 &&& D1&D2 \\
C3&C4 &&& D3&D4
\end{psmatrix}}
\end{center}
\end{frame}
\end{document}