degryuter 템플릿: 숲 나무와 langsci-avm 행렬이 표시되지 않습니다.

degryuter 템플릿: 숲 나무와 langsci-avm 행렬이 표시되지 않습니다.

기사용 degruyter 라텍스 템플릿에 몇 가지 문제가 있습니다. 구문 트리 및 lfg AVM을 제외한 모든 것이 작동합니다. 저는 xelatex로 컴파일하고 있으며 다음과 같이 포리스트와 langsci-avm을 사용하고 있습니다.언어학그리고lfg각각 옵션으로. 누군가 나를 도와줄 수 있나요? 감사해요. 다음은 최소한의 코드입니다.

\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}

오류 메시지는 다음과 같습니다.

! 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.)

답변1

DeGruyter 패키지는 모든 테이블 형식을 테이블 형식으로 재정의하여 booktabs내부적으로 일반 테이블 형식 환경을 사용하는 패키지를 망칩니다. 운 좋게도 변경 사항을 취소할 수 있는 방법도 제공하므로 forest이 오류가 발생하는 환경에서는 다음을 사용할 수 있습니다.

\AtBeginEnvironment{forest}{\baretabulars}

langsci-avm명령 의 경우 \avm환경이 아닌 매크로이므로 다음을 사용하여 명령을 패치할 수 \pretocmd있습니다 etoolbox.

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

패치하려는 특정 명령이 정의된 방식으로 인해 패치가 실패하는 경우 매크로는 \fail정의되지 않은 제어 시퀀스 오류를 반환하며, 이 경우 해당 특정 명령을 패치할 다른 방법을 찾아야 합니다.

다음은 최소한의 작업 예제입니다(작동하지 않는 예제의 모습은 다음과 같습니다).

\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}

코드 출력

관련 정보