\psmatrix 基线

\psmatrix 基线

\enumsentence我正在使用带有内部的lingmacros \psmatrix

\enumsentence{
\psset{linewidth=.5pt}
\begin{psmatrix}[rowsep=.2cm,nodesep=.05cm,colsep=.1cm]
&\rnode{gm}{grammatical morphemes}\\
\rnode{m}{\textit{bound}}&&\rnode{s}{free}\\
&\rnode{h}{\textit{head}}&&\rnode{d}{dependent}\\
&&\rnode{c}{\textit{complement}}&&\rnode{mod}{\textit{modifier}}
\ncline{gm}{m}\ncline{gm}{s}
\ncline{s}{h}\ncline{s}{d}
\ncline{d}{c}\ncline{d}{mod}
\end{psmatrix}
}

这会导致示例编号与 底部对齐 psmatrix。我希望它与顶部对齐。通常,我认为 minipage是用于这种事情的。然而, minipage在这种情况下,这似乎没有帮助(我不知道为什么。)

我找到了一个似乎有类似问题的帖子这里。但我没有看到给出的答案。

有任何想法吗?

编辑:在回复评论时,我添加了一个最小的工作示例:

\documentclass{article}
\usepackage{pstricks,pst-node}
\usepackage{lingmacros}
\begin{document}


\enumsentence{
\psset{linewidth=.5pt}
\begin{psmatrix}[rowsep=.2cm,nodesep=.05cm,colsep=.1cm]
&\rnode{gm}{grammatical morphemes}\\
\rnode{m}{\textit{bound}}&&\rnode{s}{free}\\
&\rnode{h}{\textit{head}}&&\rnode{d}{dependent}\\
&&\rnode{c}{\textit{complement}}&&\rnode{mod}{\textit{modifier}}
\ncline{gm}{m}\ncline{gm}{s}
\ncline{s}{h}\ncline{s}{d}
\ncline{d}{c}\ncline{d}{mod}
\end{psmatrix}
}

\end{document}

上述代码可以编译,但会产生与上述基线对齐的示例编号psmatrix

答案1

有人可能会考虑使用包\adjustbox中的adjustbox,但事实证明,该包与 不兼容,pstricks因为它们都定义了\clipbox。一种解决方法是在我们需要的情况下模拟包的功能:

\documentclass{article}
\usepackage{pstricks,pst-node}
\usepackage{lingmacros}
\newcommand{\tstrut}{\vrule width 0pt height\ht\strutbox depth 0pt}
\begin{document}

\enumsentence{\raisebox{\dimexpr-\height+\ht\strutbox}{%
\psset{linewidth=.5pt}
\begin{psmatrix}[rowsep=.2cm,nodesep=.05cm,colsep=.1cm]
&\rnode{gm}{\tstrut grammatical morphemes}\\
\rnode{m}{\textit{bound}}&&\rnode{s}{free}\\
&\rnode{h}{\textit{head}}&&\rnode{d}{dependent}\\
&&\rnode{c}{\textit{complement}}&&\rnode{mod}{\textit{modifier}}
\ncline{gm}{m}\ncline{gm}{s}
\ncline{s}{h}\ncline{s}{d}
\ncline{d}{c}\ncline{d}{mod}
\end{psmatrix}}%
}

\end{document}

诀窍是降低其psmatrix高度减去标准支柱的高度。但是,矩阵中的第一条线必须与支柱一样高(但不能低于基线那么深,否则线条会被剪掉),所以我定义了一个“顶部支柱”。

在此处输入图片描述

或者,您可以加载adjustbox,但需要一些技巧使其与兼容;的pstricks宏(这里不需要)变成。\clipboxadjustbox\adjclipbox

\documentclass{article}
\usepackage{pstricks,pst-node}

%%% trick for using adjustbox
\let\pstricksclipbox\clipbox
\let\clipbox\relax

\usepackage{adjustbox}

\let\adjclipbox\clipbox
\let\clipbox\pstricksclipbox
%%% end

\usepackage{lingmacros}

\begin{document}

\enumsentence{\begin{adjustbox}{valign=t}
\psset{linewidth=.5pt}
\begin{psmatrix}[rowsep=.2cm,nodesep=.05cm,colsep=.1cm]
&\rnode{gm}{grammatical morphemes}\\
\rnode{m}{\textit{bound}}&&\rnode{s}{free}\\
&\rnode{h}{\textit{head}}&&\rnode{d}{dependent}\\
&&\rnode{c}{\textit{complement}}&&\rnode{mod}{\textit{modifier}}
\ncline{gm}{m}\ncline{gm}{s}
\ncline{s}{h}\ncline{s}{d}
\ncline{d}{c}\ncline{d}{mod}
\end{psmatrix}
\end{adjustbox}%
}

\end{document}

相关内容