tabularx
我为带有列说明符的两列表的自定义行定义了以下命令rX
:
\newcommand{\pbrow}[2]{\pbox[t]{\linewidth}{#1} & \pbox[t]{\linewidth}{#2} \\}
左列的内容将始终使用打字机字体进行格式化。现在,我需要在文档中使用两种不同的打字机字体,其中第一种我已设置为默认电传打字机字体。对于第二种,我定义了以下命令:
\newcommand{\nkeyw}[1]{\begingroup \fontfamily{qcr}\selectfont #1\endgroup}
在上表中,我需要使用第二种打字机字体。由于单元格的内容是在 内排版的pbox
,因此我明确需要使用 来划定行尾\\
。因此,我对pbrow
命令的用法如下:
\pbrow{\nkeyw{line 1} \\ \nkeyw{line 2} \\ .... \nkeyw{line n}}{Not concerned with 2nd arg}
现在这有点累人,所以我想到重新定义pbrow
以格式化整个参数,如下nkeyw
所示:
\newcommand{\pbrow}[2]{\pbox[t]{\linewidth}{\nkeyw{#1}} & \pbox[t]{\linewidth}{#2} \\}
\\
不幸的是,我收到了一个错误,因为
答案1
我将定义一个可以在单元格或 内使用的字体切换命令\pbox
。例如:
\documentclass{article}
\usepackage{tabularx}
\usepackage{pbox}
\newcommand*{\nkeywfont}{\fontfamily{pcr}\selectfont}
\newcommand{\nkeyw}[1]{\begingroup\nkeywfont#1\endgroup}
\newcommand*{\pbrow}[2]{%
\pbox[t]{\linewidth}{\nkeywfont #1\unskip\strut} &
\pbox[t]{\linewidth}{#2} \\%
}
\begin{document}
\noindent
\begin{tabularx}{\linewidth}{rX}
\pbrow{Line 1\\Line 2}{2nd argument}
\pbrow{foo}{bar}
\end{tabularx}
\end{document}
评论:
\strut
我在最后一行添加了\pbox
行距以改善下一个表格行的行距。
选择
如果总是使用明确的换行符,那么tabular
可以使用 代替\pbox
:
\documentclass{article}
\usepackage{tabularx}
\usepackage{pbox}
\newcommand*{\nkeywfont}{\fontfamily{pcr}\selectfont}
\newcommand{\nkeyw}[1]{\begingroup\nkeywfont#1\endgroup}
\newcommand*{\pbrow}[2]{%
\nkeywfont
\begin{tabular}[t]{@{}l@{}}#1\end{tabular} &
\pbox[t]{\linewidth}{#2} \\%
}
\begin{document}
\noindent
\begin{tabularx}{\linewidth}{rX}
\pbrow{Line 1\\Line 2}{2nd argument}
\pbrow{foo}{bar}
\end{tabularx}
\end{document}
包裹array
也可以自动将命令添加到单元格。它可以被覆盖\multicolumn{1}{...}{...}
。
\documentclass{article}
\usepackage{tabularx}
\usepackage{pbox}
\newcommand*{\nkeywfont}{\fontfamily{pcr}\selectfont}
\newcommand{\nkeyw}[1]{\begingroup\nkeywfont#1\endgroup}
\newcommand*{\pbrow}[2]{%
\begin{tabular}[t]{@{}l@{}}#1\end{tabular} &
\pbox[t]{\linewidth}{#2} \\%
}
\begin{document}
\noindent
\begin{tabularx}{\linewidth}{>{\nkeywfont}rX}
\pbrow{Line 1\\Line 2}{2nd argument}
\pbrow{foo}{bar}
\end{tabularx}
\end{document}