![如何在表格列中水平对齐复选标记?](https://linux22.com/image/283785/%E5%A6%82%E4%BD%95%E5%9C%A8%E8%A1%A8%E6%A0%BC%E5%88%97%E4%B8%AD%E6%B0%B4%E5%B9%B3%E5%AF%B9%E9%BD%90%E5%A4%8D%E9%80%89%E6%A0%87%E8%AE%B0%EF%BC%9F.png)
在我的表格中,我使用不同的组合,包括单独使用复选标记、使用括号使用复选标记或使用星号使用复选标记。我希望有一个居中的列,其中复选标记对齐。
通过使用该包dcolumn
并将复选标记定义为小数点,我得到了所需的对齐方式。但是,当通过 pdfLaTeX 运行它时,我遇到了两个问题:
\ding{51}
尽管我加载了包,但打印仍然不正确pifont
。- 该列不再居中对齐。
为什么会发生这种情况?我该如何获得期望的结果?
\documentclass[a5paper, 11pt]{scrbook}
\usepackage{pifont}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{dcolumn}
\newcolumntype{A}{D{.}{\ding{51}}{-1}}
\begin{document}
\begin{table}
\centering
\begin{tabularx}{\textwidth}{Xc}
\textbf{Element} & \textbf{Availability}\\
\midrule
Some Element & \ding{51}\\
Another Element & \ding{51}\textsuperscript{\textasteriskcentered}\\
Yet Another Element & (\ding{51})\\
One More Element & (\ding{51}\textsuperscript{\textasteriskcentered})\\
\end{tabularx}
\caption{Unaligned example table}
\end{table}
\begin{table}
\centering
\begin{tabularx}{\textwidth}{XA}
\textbf{Element} & \textbf{Availability}\\
\midrule
Some Element & .\\
Another Element & .\textsuperscript{\textasteriskcentered}\\
Yet Another Element & (.)\\
One More Element & (.\textsuperscript{\textasteriskcentered})\\
\end{tabularx}
\caption{Aligned example table, but with problems displaying the checkmark and messed up centering.}
\end{table}
\end{document}
答案1
问题是包D
中的类型的列dcolumn
总是使用数学模式,并且\ding{51}
在数学模式下打印为3
。
因此,您可以强制其内容处于文本模式,替换行
\newcolumntype{A}{D{.}{\ding{51}}{-1}}
和
\newcolumntype{A}{D{.}{\textrm{\ding{51}}}{-1}}
请注意,出于同样的原因,你可以\textsuperscript{\textasteriskcentered}
用^*
要保持第一行居中,请使用\multicolumn
,否则它将检查对齐点。
梅威瑟:
\documentclass[a5paper, 11pt]{scrbook}
\usepackage{pifont}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{dcolumn}
\newcolumntype{A}{D{.}{\textrm{\ding{51}}}{-1}}
\begin{document}
\begin{table}
\centering
\begin{tabularx}{\textwidth}{Xc}
\textbf{Element} & \textbf{Availability}\\
\midrule
Some Element & \ding{51}\\
Another Element & \ding{51}\textsuperscript{\textasteriskcentered}\\
Yet Another Element & (\ding{51})\\
One More Element & (\ding{51}\textsuperscript{\textasteriskcentered})\\
\end{tabularx}
\caption{Unaligned example table}
\end{table}
\begin{table}
\centering
\begin{tabularx}{\textwidth}{XA}
\textbf{Element} & \multicolumn{1}{c}{\textbf{Availability}}\\
\midrule
Some Element & .\\
Another Element & .^*\\
Yet Another Element & (.)\\
One More Element & (.^*)\\
\end{tabularx}
\caption{Aligned example table, but with problems displaying the checkmark and messed up centering.}
\end{table}
\end{document}
输出: