Ich habe einige Probleme mit der Degruyter-Latex-Vorlage für Artikel. Alles funktioniert, außer syntaktischen Bäumen und lfg-AVMs. Ich kompiliere mit xelatex und verwende den Forest und langsci-avm mitLinguistikUndlfgals Optionen. Kann mir bitte jemand helfen? Danke. Hier ist der minimale Code.
\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}
Hier ist die Fehlermeldung:
! 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.)
Antwort1
Das DeGruyter-Paket definiert alle Tabellen als booktabs
Tabellen um, was ein Paket durcheinander bringt, das intern normale Tabellenumgebungen verwendet. Glücklicherweise haben sie auch eine Möglichkeit bereitgestellt, die Änderung rückgängig zu machen, sodass forest
Sie für jede Umgebung, die diesen Fehler verursacht, Folgendes verwenden können:
\AtBeginEnvironment{forest}{\baretabulars}
Falls es sich bei langsci-avm
dem \avm
Befehl um ein Makro und nicht um eine Umgebung handelt, können Sie den Befehl mit „ \pretocmd
from “ patchen etoolbox
:
\usepackage{etoolbox}
\pretocmd{\avm}{\baretabulars}{}{\fail}
Wenn das Patchen fehlschlägt, weil der bestimmte Befehl, den Sie patchen möchten, nicht definiert ist, \fail
gibt das Makro einen Fehler wegen einer nicht definierten Steuersequenz zurück. In diesem Fall müssen Sie eine andere Möglichkeit zum Patchen dieses bestimmten Befehls finden.
Hier ist ein minimal funktionierendes Beispiel (und so hätte Ihr nicht funktionierendes Beispiel aussehen sollen).
\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}