字体使用次数改变对齐方式 (gb4e.sty)

字体使用次数改变对齐方式 (gb4e.sty)

我的标签如下:

\documentclass{book}
%\usepackage{times}
\usepackage{tikz,tikz-qtree, tikz-qtree-compat}
\usepackage{gb4e}%


\begin{document}
\newcommand{\LT}[1]{{\Large #1}}
\newcommand{\TS}[1]{\textsubscript{#1}}
\newcommand{\TSS}[1]{\textsuperscript{#1}}
\newcommand{\erg}{\textsc{erg}}
\newcommand{\BF}[1]{\textbf{#1}}
\newcommand{\wh}{\textsc{wh}}
\newcommand{\SC}[1]{\textsc{#1}}
\newcommand{\BFSC}[1]{\textbf{\textsc{#1}}}

\begin{exe}
\ex \begin{tabular}[t]{@{}l}%\toprule[-18pt]
\label{candytree}
\begin{tikzpicture}[baseline]
\node(a){\LT{[}\TS{CP}~Op\TS{i}~~~...~~\LT{[}\TS{TP}~~{\it t}\TS{i}(\erg)\BF{[\wh]}~~...~~\LT{[}\TS{ApplP}~[\TS{DP(IO)}~~{\it pro}\TS{i}\BF{[\wh]}~~~]~...~\LT{]~]~]}};
\draw[semithick] (-2.8,-.2) -- (-2.8,-.5);
\draw[semithick] (-2.8,-.5) -- (-4.9,-.5);
\draw[semithick,->] (-4.9,-.5) -- (-4.9,-.2);
\draw[thick,->] (-2.8,-.2)..controls +(south:.6) and +(south:.6)..(2.6,-.2);
\node(b) at (4.3,-.5) {\SC{Agree via binding}};
\end{tikzpicture}
\end{tabular}
\end{exe}

\end{document}

它创建如下output内容:

在此处输入图片描述

当我使用字体包时times,对齐方式变为:

在此处输入图片描述

CMR需要与字体对齐,请告知出了什么问题...

答案1

提供的代码使用绝对坐标定义箭头位置,例如(-2.8,-.5) -- (-4.9,-.5)。当示例的宽度由于字体不同而改变时,这些坐标也应该改变。

为了使代码更加灵活,您可以使用 tikzlibrary tikzmark,它允许您在代码中的任何位置添加标记。您可以在 中引用这些标记tikzpicture。这还允许您使用常规gb4e语法来创建示例,而不是使用tikz句子。

例如,在下面的代码中,使用代码cp为括号 [ CP定义了一个标记\lb{CP}\tikzmark{cp},为括号 [ TP定义了另一个标记。完成句子后,使用键添加gb4e一个。在此 tikzpicture 中,使用先前定义的坐标绘制箭头,基本语法为。需要部分来指定这是一个 tikzmark 坐标。tikzpictureremember picture, overlay\draw[->] (pic cs:tp) -- (pic cs:cp)pic cs:

要微调定位,您可以shift在参考坐标时使用该选项,例如([shift={(-8pt,-5pt)}]pic cs:tp)将锚点向下和向左移动。

箭头中的角是通过+(x,y)在绘制路径中插入一个相对点来创建的,这意味着箭头首先绘制到该点,然后绘制到第二个坐标。这样就创建了第一个角。第二个角是通过使用-|第二段来实现的。

弯曲箭头由语法制成\draw (a) to (b),其中to关键字允许选项inout指定曲线的角度。

对于 Times 字体来说,newtxtext,newtxmath它是作为该times包的现代替代品来使用的。

下面是完整的 MWE。请注意,您可能需要编译两次才能将tikzmark正确的坐标写入aux文件。

\documentclass{book}
\usepackage{newtxtext,newtxmath}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\makeatletter
% see https://tex.stackexchange.com/a/364179/
\def\new@fontshape{}
\makeatother
\usepackage{gb4e}

\begin{document}
\begin{exe}
\ex \lb{CP}\tikzmark{cp} Op_i \ldots \lb{TP}\tikzmark{tp} \textit{t}_i(\textsc{erg\textbf{[wh]}} \ldots \lb{ApplP}\lb{DP(IO)} \textit{pro}_i\tikzmark{pro}\textsc{\textbf{[wh]}} ] \ldots ] ] ]
\end{exe}
\begin{tikzpicture}[remember picture,overlay]
\draw[semithick,->] ([shift={(-8pt,-5pt)}]pic cs:tp) -- +(0,-0.3) -| ([shift={(-8pt,-5pt)}]pic cs:cp);
\draw[semithick,->] ([shift={(-8pt,-5pt)}]pic cs:tp) to [out=340,in=200] ([shift={(-8pt,-5pt)}]pic cs:pro) node[below,xshift=10mm] {\textsc{Agree via binding}};
\end{tikzpicture}

\end{document}

结果:

在此处输入图片描述

相关内容