如何防止包干扰 \hfill

如何防止包干扰 \hfill

考虑一下这个 MWE(取自这个答案):

\documentclass{article}

\makeatletter
\newcommand*{\phoncrossbar}{\leavevmode\leaders\hrule height .5pt\hfill\kern\z@}
\newcommand*{\phonfeat}[1]{%
  \ensuremath{%
    \left[\begin{tabular}{@{}l@{}}#1\end{tabular}\right]%
  }%
}
\makeatother

%\usepackage[notipa]{ot-tableau}

\begin{document}
\phonfeat{\phoncrossbar\\ +abcdefg}
\end{document}

在此处输入图片描述

如果我取消注释该行ot-tableau\hrule不再填充括号内的空间:

在此处输入图片描述

我怎样才能阻止该ot-tableau包这样做(希望不会破坏该包的一些必要功能)?

答案1

罪魁祸首是colortbl。这个问题可以通过高阶无限胶水来解决。

\documentclass{article}

\usepackage{colortbl}

\makeatletter
\newcommand*{\phoncrossbar}{%
  \leavevmode\leaders\hrule height .5pt\hskip 0pt plus 1filll\kern\z@ 
}
\newcommand*{\phonfeat}[1]{%
  \ensuremath{%
    \left[\begin{tabular}{@{}l@{}}#1\end{tabular}\right]%
  }%
}
\makeatother

\begin{document}

\begin{tabular}{l}abcdef\\\hrulefill\end{tabular}

\phonfeat{\phoncrossbar\\ +abcdefg}

\end{document}

正如您所见,\hrulefill并没有真正填满这条线,但修改后确实\phoncrossbar填满了。

在此处输入图片描述

相关内容