使用 \selectfont 命令后,\pbox 中的换行符不起作用

使用 \selectfont 命令后,\pbox 中的换行符不起作用

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}

结果

相关内容