![什么原因导致siunitx和ot-tableau不兼容?](https://linux22.com/image/433385/%E4%BB%80%E4%B9%88%E5%8E%9F%E5%9B%A0%E5%AF%BC%E8%87%B4siunitx%E5%92%8Cot-tableau%E4%B8%8D%E5%85%BC%E5%AE%B9%EF%BC%9F.png)
ot-tableau
是一个用于生成语言学中使用的最优理论表的包。这些表基本上是程式化的tabu
环境。ot-tableau
在约束(=列)之间提供虚线,以 标记。但是,如果在加载:
时使用这些虚线,则会产生此错误:siunitx
Package array Error: Illegal pream-token (:): 'c' used. \begin{tableau}{c:c|c}
列分隔:
符定义为
\newcolumntype{:}{|[dashed]}
在ot-tableau.sty
(第 147 行)中。尝试|[dashed]
在列定义中使用会失败,将虚线发送到另一个列定义也会失败,例如\newcolumntype{B}{|[dashed]}
(“border”)。
我无法在任何地方找到对这个问题的参考,也无法联系ot-tableau
作者。
MNWE:
\documentclass{standalone}
\usepackage{siunitx}
\usepackage{ot-tableau}
\begin{document}
\begin{tableau}{c:c|c}
\inp{\ips{stap}} \const{*Complex} \const{Anchor-IO} \const{Contiguity-IO}
\cand{stap} \vio{*!} \vio{} \vio{}
\cand[\Optimal]{sap} \vio{} \vio{} \vio{*}
\cand{tap} \vio{} \vio{*!} \vio{}
\end{tableau}
\end{document}
答案1
很可能是tabu
它导致了问题。我已更新软件包以避免出现tabu
,您的 MNWE 现在是 MWE。:-) 我已将更新提交给 CTAN,它也在GitHub现在。