在表格环境内的段落列中使用 \color 会导致换行

在表格环境内的段落列中使用 \color 会导致换行

我的一些文档被编译成多个输出。有些版本包含某些部分,而其他版本仅包含占位符。为此,我有一个宏\markup,在某些版本中将其参数标记为红色,而在其他版本中则省略它。显然,该宏应该可以在任何地方工作,例如在普通文本中、表格内、标题或标题中等。

现在,当我在环境内的列中使用\markup(或只是\color)时,它会创建一个不应该出现的奇怪换行符。当在其他列类型中使用时,例如,则没有换行符:ptabularc

断线

我知道我可以使用\textcolor而不是\color(这可以解决问题),但是当参数包含段落时,我的宏将不起作用,因为\textcolor不是\long。还有其他方法可以修复奇怪的换行符,接受单独的参数,并且仍然有一个在(几乎)所有情况下都有效的宏吗?

\documentclass[margin=1pt]{standalone}
\usepackage{xcolor}

% The actual \markup macro is a bit more complicated and contains an \if
\newcommand\markup[1]{{\color{red}#1}}

\begin{document}
\begin{tabular}{| p{2cm} | c |} 
        \hline
        p\{2cm\}   & c          \\ \hline
        \markup{1} & 2          \\ \hline
        3          & \markup{4} \\ \hline
\end{tabular}
\end{document}

答案1

\markup首先定义。\leavevmode抱歉,这不是我的错:-)

答案2

如果手动修正就足够了……

\documentclass[margin=1pt]{standalone}
\usepackage{xcolor}

% The actual \markup macro is a bit more complicated and contains an \if
\newcommand\markup[1]{{\color{red}#1}}

\begin{document}
\begin{tabular}{| p{2cm} | c |} 
        \hline
        p\{2cm\}   & c          \\ \hline
      \noindent\markup{1} & {2}          \\ \hline
        3          & \markup{4} \\ \hline
\end{tabular}
\end{document}

在此处输入图片描述

相关内容