表格中文本和数字的对齐方式不同

表格中文本和数字的对齐方式不同

我正在尝试制作一个表格,其中文本为粗体,并在第一行左对齐。任何文本都必须在左对齐,数字必须在小数点分隔符(“,”)上对齐。我尝试使用,\dcolumn但没有成功。我还想要一些样式功能,例如渐变黑色、行内垂直对齐。在底行中,当与第二列的内容对齐时,“总计”可能没问题。按照图片中的方式操作,即与第一行、第三列的内容对齐,并且数字与上面行的数字对齐将涉及多列。

这是我的妈妈:

%% start of file `*.tex'.

\documentclass[a4paper,12pt]{article}
%\usepackage{siunitx}
\usepackage{booktabs,dcolumn}

\renewcommand{\familydefault}{\sfdefault}

\newcolumntype{,}{D{,}{,}{2}}

\begin{document}    
\centering
\begin{tabular}{lp{4cm}lp{10cm},p{4cm}}
  \textbf{date} & \textbf{opération} & \multicolumn{2}{l}{\textbf{montant (€)}} \\
  \specialrule{2pt}{0pt}{0pt}
  janv. 2022 & transaction A & 100,00 \\
  fevr. 2022 & achat en ligne & 3000,20 \\
  mars 2022 & boutique bio & 228,21 \\
  \specialrule{2pt}{0pt}{0pt}
  & \textbf{total} & \textbf{3328,21}
\end{tabular}

\end{document}

输出大致如下: 在此处输入图片描述

编辑:实际上,.tex 文件中的日期格式为 dd/mm/yyyy。我使用isodate选项french\printdate{}显示任何日期。有没有办法让所有日期都垂直对齐,月份也一样,年份也一样?

例如:

\printdate{01/01/2022} & transaction A & 100,00 \\
\printdate{01/02/2022} & achat en ligne & 3000,20 \\
\printdate{31/03/2022} & boutique bio & 228,21 \\

我希望这是输出: 在此处输入图片描述

答案1

siunitx以下是使用该包及其列类型的解决方案S。请注意,我保留了示例代码中包含的一些\textbf指令,尽管它们似乎与您发布的屏幕截图无关。

在此处输入图片描述

% !TEX TS-program = lualatex   %% or pdflatex, etc.
\documentclass[a4paper,12pt]{article}
\renewcommand{\familydefault}{\sfdefault}
\usepackage[T1]{fontenc}

\usepackage{siunitx}
\newcolumntype{T}[1]{S[table-format=#1]}
\usepackage{booktabs}
\usepackage[colorlinks,allcolors=blue]{hyperref} % optional

\begin{document}
\sisetup{detect-weight,detect-family,
         output-decimal-marker={\text{,}}}
\centering
\begin{tabular}{@{} p{2.5cm} p{3.5cm} p{1.5cm} T{4.2} @{}}
  \textbf{date} & 
  \textbf{opération} & 
  \multicolumn{2}{l}{\textbf{montant (€)}} \\
  \midrule[2pt]
  janv.\ 2022 & transaction A  &&  100,00 \\
  fevr.\ 2022 & achat en ligne && 3000,20 \\
  mars 2022   & boutique bio   &&  228,21 \\
  \midrule[2pt]
  & & \textbf{total} & 3328,21 \\
  \bottomrule[2pt]
\end{tabular}

\end{document}

相关内容