![语言学:使用哪些软件包来创建带有移动线的括号结构最好?](https://linux22.com/image/304586/%E8%AF%AD%E8%A8%80%E5%AD%A6%EF%BC%9A%E4%BD%BF%E7%94%A8%E5%93%AA%E4%BA%9B%E8%BD%AF%E4%BB%B6%E5%8C%85%E6%9D%A5%E5%88%9B%E5%BB%BA%E5%B8%A6%E6%9C%89%E7%A7%BB%E5%8A%A8%E7%BA%BF%E7%9A%84%E6%8B%AC%E5%8F%B7%E7%BB%93%E6%9E%84%E6%9C%80%E5%A5%BD%EF%BC%9F.png)
我一直在使用 gb4e 来管理编号示例,但我想知道是否可以合并移动线,或者我是否应该使用其他包。更具体地说,我想生成类似以下内容的内容:
答案1
我不知道创建括号结构的最佳方法,但在这里我展示了如何插入所谓的移动线:\connect[direction]{left-end}{mid-text}{right-end}
。这是 MWE。
\documentclass{article}
\usepackage{stackengine,amssymb}
\def\stacktype{L}
\newsavebox\tmpbox
\def\rlht{3ex} \def\rlwd{.8pt} \def\rloffset{3pt}
\newcommand\vstrut[1][x]{%
\def\stacktype{S}%
\if x#1%
\smash{\makebox[0pt]{\rule{\rlwd}{\rlht}}}%
\else%
\smash{\makebox[0pt]{\stackon[-5pt]{\rule{\rlwd}{\rlht}}%
{\hspace{.5\dimexpr\rlwd\relax}$\blacktriangle$}}}%
\fi%
}
\newcommand\conR[2][x]{%
\savebox\tmpbox{#2}%
\stackunder[\dimexpr\rlht-\rlwd\relax+\rloffset]{\usebox{\tmpbox}}{%
\rule{.5\wd\tmpbox}{0pt}\vstrut[#1]\rule{.5\wd\tmpbox}{\rlwd}}%
}
\newcommand\conL[2][x]{%
\savebox\tmpbox{#2}%
\stackunder[\dimexpr\rlht-\rlwd\relax+\rloffset]{\usebox{\tmpbox}}{%
\rule{.5\wd\tmpbox}{\rlwd}\vstrut[#1]\rule{.5\wd\tmpbox}{0pt}}%
}
\newcommand\conM[1]{%
\savebox\tmpbox{#1}%
\stackunder[\dimexpr\rlht-\rlwd\relax+\rloffset]{\usebox{\tmpbox}}{%
\rule{\wd\tmpbox}{\rlwd}}%
}
\newcommand\connect[4][x]{%
\if l#1\conR[a]{#2}\else\conR{#2}\fi%
\conM{#3}%
\if r#1\conL[a]{#4}\else\conL{#4}\fi\ignorespaces%
}
\newcommand\lb[1]{[$_\mathrm{\scriptscriptstyle#1}\,$}
\begin{document}
\lb{TP}\itshape Seve%
\connect[l]{r}{al riots\upshape\lb{T}are]\lb{VP}\lb{V}believed]\lb{TP}%
\lb{T}to]\lb{AUXP}\lb{AUX}have]\lb{VP}\lb{V}occurred]\lb{QP}}{t}%
\upshape]]]]]]
\end{document}
答案2
就我个人而言,我曾将linguex
其与 结合使用pst-jtree
。这样可以为您提供所需的所有功能。请原谅我略微缩短了示例。\jtree
出于某种原因,必须在示例之前在文档中调用该命令一次。另请注意,必须首先编译文档.ps
。
\documentclass[12pt]{article}
\usepackage{linguex}
\usepackage[usenames,dvipsnames]{pstricks}
\usepackage{pst-xkey}
\usepackage{epsfig}
\usepackage{pst-jtree}
\begin{document}
\jtree
\endjtree
\exi. \rnode{a1}{X} [CP $\ldots$ [TP $\ldots$ \rnode{a2}{t} $\ldots$]]
\ncbar[angleA=270, angleB=270, linestyle=dashed]{<-}{a1}{a2}
\end{document}
答案3
您知道,实际上在文档的最后有一个这样的例子gb4e
。
\documentclass{article}
\usepackage{gb4e}
\begin{document}
\begin{exe}
\ex\atcenter{\arrowalign{
\lb{TP} & \emph{Seveal riots} & \lb{T}are]\lb{VP}\lb{V}believed]\lb{TP}\lb{T}to]\lb{AUXP}\lb{AUX}have]\lb{VP}\lb{V}occurred]\lb{QP}&\emph{t}&]]]]]] \cr
&\fillright\pu&\link1&\fillleft\vrule & \cr}}
\end{exe}
\end{document}
但是对齐存在问题:数字位于箭头和示例之间……Steven B. Segletes 的解决方案不存在这样的问题。首先我尝试用 来做 tikz-dependency
,但存在同样的对齐问题。