Plantilla degryuter: los árboles forestales y las matrices langsci-avm no se muestran

Plantilla degryuter: los árboles forestales y las matrices langsci-avm no se muestran

Tengo algunos problemas con la plantilla de látex degruyter para artículos. Todo funciona, excepto los árboles sintácticos y las AVM lfg. Estoy compilando con xelatex y estoy usando forest y langsci-avm conlingüísticaylfgcomo opciones respectivamente. ¿Alguien podría ayudarme por favor? Gracias. Aquí está el código mínimo.

\documentclass[english]{article}
\RequirePackage[no-math]{fontspec}[2017/03/31]%(only for the luatex or the xetex engine)
\usepackage{fontspec}
\setmainfont{Linux Libertine}
\usepackage[small]{dgruyter}
% get packages from local sty-file
\usepackage{packages}

% Note: A different font will be used in the final version
%\usepackage{times}
% Names for Tables, Figures
\AtBeginDocument{%
  \renewcommand\tablename{Table}
}

\AtBeginDocument{%
  \renewcommand\figurename{Figure}
}

% We use todonotes for margin notes

\newcommand{\jdg}[1]{\makebox[0pt][r]{\normalfont#1\ignorespaces}}

\usepackage{ifthen}
\newboolean{finalcompile}

% Please set finalcompile to true for the final version, to false otherwise

\setboolean{finalcompile}{true}
%\setboolean{finalcompile}{false}

\ifthenelse{\boolean{finalcompile}}{
\usepackage[disable]{todonotes}
\usepackage[final]{showlabels}
}{
\usepackage{todonotes}
\newcommand{\todonote}[2][]{\tikzexternaldisable\todo[#1]{#2}\tikzexternalenable} %needed for externalization
\usepackage[right]{showlabels}
\paperwidth=\dimexpr \paperwidth + 6cm\relax
\marginparwidth=\dimexpr \marginparwidth + 6cm\relax
%\makeatletter 
%\@mparswitchfalse
%\makeatother
%\normalmarginpar
%\reversemarginpar
}

\usepackage[linguistics]{forest}
\usepackage[lfg]{langsci-avm}
\usepackage{pst-node}
\avmdefinestyle{plain}{attributes=\scshape,
values=\scshape,
types=\normalfont}


\begin{document}

\begin{forest}
[IP[DP][I']]
\end{forest}


\avm[style=plain]{
[pred & `silue']}


\end{document}

Aquí está el mensaje de error:

! Misplaced \noalign.
\bottomrule ->\noalign
{\ifnum 0=`}\fi \@aboverulesep =\aboverulesep \global...
l.67 \end{forest}
I expect to see \noalign only after the \cr of
an alignment. Proceed, and I'll ignore this case.
! Missing } inserted.
<inserted text>
}
l.67 \end{forest}
I've inserted something that you may have forgotten.
(See the <inserted text> above.)
With luck, this will get me unwedged. But if you
really didn't forget anything, try typing `2' now; then
my insertion and my current dilemma will both disappear.
! Missing \endgroup inserted.
<inserted text>
\endgroup
l.67 \end{forest}
I've inserted something that you may have forgotten.
(See the <inserted text> above.)

Respuesta1

El paquete DeGruyter redefine todos los tabulares para que sean booktabstabulares, lo que arruina un paquete que utiliza entornos tabulares regulares internamente. Afortunadamente, también han proporcionado una forma de deshacer el cambio, por lo que para cualquier entorno forestque cause este error, puede usar:

\AtBeginEnvironment{forest}{\baretabulars}

En el caso del langsci-avmcomando \avmes una macro en lugar de un entorno, por lo que puede parchear el comando usando \pretocmddesde etoolbox:

\usepackage{etoolbox}
\pretocmd{\avm}{\baretabulars}{}{\fail}

Si el parche falla debido a cómo está definido el comando particular que está intentando parchear, la \failmacro devolverá un error de secuencia de control indefinido, en cuyo caso necesitará encontrar otra manera de parchear ese comando en particular.

Aquí hay un ejemplo mínimo que funciona (y así es como debería haberse visto su ejemplo que no funciona).

\documentclass[english]{article}
\RequirePackage[no-math]{fontspec}[2017/03/31]%(only for the luatex or the xetex engine)
\usepackage{fontspec}
\usepackage[small]{dgruyter}

\usepackage[linguistics]{forest}
\AtBeginEnvironment{forest}{\baretabulars}
\usepackage[lfg]{langsci-avm}
\pretocmd{\avm}{\baretabulars}{}{\fail}
\avmdefinestyle{plain}{attributes=\scshape,
values=\scshape,
types=\normalfont}


\begin{document}

\begin{forest}
[IP[DP][I']]
\end{forest}


\avm[style=plain]{
[pred & `silue']}


\end{document}

salida de código

información relacionada