我的一些文档被编译成多个输出。有些版本包含某些部分,而其他版本仅包含占位符。为此,我有一个宏\markup
,在某些版本中将其参数标记为红色,而在其他版本中则省略它。显然,该宏应该可以在任何地方工作,例如在普通文本中、表格内、标题或标题中等。
现在,当我在环境内的列中使用\markup
(或只是\color
)时,它会创建一个不应该出现的奇怪换行符。当在其他列类型中使用时,例如,则没有换行符:p
tabular
c
我知道我可以使用\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}