带有 siunitx 的欧元符号表

带有 siunitx 的欧元符号表

我正在尝试使用包的 S 列类型在表中对齐一些钱siunitx,但 € 符号一直在乱跑(对齐不一致)。

使用该eurosym包有助于对齐,但会将货币符号放在前面,而我希望将其放在数字后面。有什么建议吗?

\documentclass{article} 
\usepackage[ngerman]{babel}
\usepackage[locale = DE]{siunitx}
\usepackage[gen]{eurosym}

\begin{document}    

\begin{table}[h]
    \centering
    \begin{tabular}{|S|S|S|S|}  

    \hline
    {A} & {B} & {C} & {D} \\ 
    \hline
    -199,37 € & 0,00 € & 33,27 € & 166,10 € \\
    252,56 € & 0,00 € & -409,58 € & 157,02 € \\
    104,67 € & 0,00 € & -40,18 € & -64,48 € \\
    0,17 € & 0,00 € & -2,52 € & 2,35 € \\
    0,00 € & 0,00 € & 0,00 € & 0,00 € \\
    \hline

    \end{tabular}
\end{table}

\begin{table}[h]
    \centering
    \begin{tabular}{|S|S|S|S|}  

    \hline
    {A} & {B} & {C} & {D} \\ 
    \hline
    \euro{-199,37} & \euro{0,00} & \euro{33,27} & \euro{166,10} \\
    \euro{252,56} & \euro{0,00} & \euro{-409,58} & \euro{157,02} \\
    \euro{104,67} & \euro{0,00} & \euro{-40,18} & \euro{-64,48} \\
    \euro{0,17} & \euro{0,00} & \euro{-2,52} & \euro{2,35} \\
    \euro{0,00} & \euro{0,00} & \euro{0,00} & \euro{0,00} \\
    \hline

    \end{tabular}
\end{table}

\end{document}

平均能量损失

答案1

那这个呢?

在此处输入图片描述

\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[locale = DE]{siunitx}
\usepackage{textcomp}
\usepackage{booktabs, makecell}
\newcommand\mc[1]{\multicolumn{1}{c}{#1}}

\begin{document}

\begin{table}[h]
    \centering
\setcellgapes{3pt}
\makegapedcells
\sisetup{table-space-text-post={\,€}, 
         table-align-text-post=false}
    \begin{tabular}{S[table-format=-3.2]<{\,€}
                    S[table-format= 1.2]<{\,€} 
               *{2}{S[table-format=-3.2]<{\,€}}
                    }
    \toprule
\mc{A}  & \mc{B} & \mc{C} & \mc{D}  \cr
    \midrule
-199,37 & 0,00  &   33,27  & 166,10 \cr
 252,56 & 0,00  & -409,58  & 157,02 \cr
 104,67 & 0,00  &  -40,18  & -64,48 \cr
   0,17 & 0,00  &   -2,52  &   2,35 \cr
   0,00 & 0,00  &    0,00  &   0,00 \cr
    \bottomrule
    \end{tabular}
\end{table}

\end{document} 

答案2

我想建议一个替代解决方案:将欧元符号放在列标题中。

而且egreg建议不要使用eurosymgen选项,这样欧元符号会更美观。

\documentclass{article} 
\usepackage[ngerman]{babel}
\usepackage[locale = DE]{siunitx}
\usepackage{eurosym}
\usepackage{booktabs}
\begin{document}    
\begin{table}[h]
    \centering
    \begin{tabular}{SSSS}  
    \toprule    
    {A (\euro)} & {B (\euro)} & {C (\euro)} & {D (\euro)} \\ 
    \midrule
    -199,37  & 0,00  & 33,27  & 166,10  \\
    252,56  & 0,00  & -409,58  & 157,02  \\
    104,67  & 0,00  & -40,18  & -64,48  \\
    0,17  & 0,00  & -2,52  & 2,35  \\
    0,00  & 0,00  & 0,00  & 0,00  \\
    \bottomrule    
    \end{tabular}
\end{table}
Or:
\begin{table}[h]
    \centering
    \begin{tabular}{SSSS}  
    \toprule    
    {A} & {B} & {C} & {D} \\ 
    {(\euro)} & {(\euro)} & {(\euro)} & {(\euro)} \\ 
    \midrule
    -199,37  & 0,00  & 33,27  & 166,10  \\
    252,56  & 0,00  & -409,58  & 157,02  \\
    104,67  & 0,00  & -40,18  & -64,48  \\
    0,17  & 0,00  & -2,52  & 2,35  \\
    0,00  & 0,00  & 0,00  & 0,00  \\
    \bottomrule    
    \end{tabular}
\end{table}
\end{document}

在此处输入图片描述

答案3

使用适合table-format各个单元格的选项以及和table-space-text-post=€table-align-text-post=true您可以获得以下输出:

在此处输入图片描述

\documentclass{article} 
\usepackage[ngerman]{babel}
\usepackage[locale = DE]{siunitx}
\usepackage[gen]{eurosym}

\begin{document}    

\begin{table}[h]
\sisetup{table-space-text-post=€, table-align-text-post=true}
    \centering
    \begin{tabular}{|S[table-format=-3.2]|
                    S[table-format=1.2]|
                    S[table-format=-3.2]
                    |S[table-format=-3.2]|}  

    \hline
    {A} & {B} & {C} & {D} \\ 
    \hline
    -199,37 € & 0,00 € & 33,27 € & 166,10 € \\
    252,56 € & 0,00 € & -409,58 € & 157,02 € \\
    104,67 € & 0,00 € & -40,18 € & -64,48 € \\
    0,17 € & 0,00 € & -2,52 € & 2,35 € \\
    0,00 € & 0,00 € & 0,00 € & 0,00 € \\
    \hline

    \end{tabular}
\end{table}
\end{document}

为了避免一遍又一遍重复 € 符号,我会将其放入相应列的列标题中,甚至放入表格的标题中。

答案4

基本上相同的解决方案,但略有改进,在数字和欧元之间有一个薄的不可破坏的空间,并且在行末有一些填充\extrarowheight

\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[locale = DE]{siunitx}
\usepackage{textcomp}
\setlength{\extrarowheight}{2pt}

\begin{document}

\begin{table}[h]
    \centering
\sisetup{table-format =-3.2, table-number-alignment=center, table-space-text-post=€, table-align-text-post=false}
    \begin{tabular}{|S|S|S|S|}
    \hline
    {A} & {B} & {C} & {D} \\
    \hline
    -199,37\,€ & 0,00 \,€ & 33,27 \,€ & 166,10 \\
    252,56 \,€ & 0,00 \,€ & -409,58 \,€ & 157,02 \,€ \\
    104,67 \,€ & 0,00 \,€ & -40,18 \,€ & -64,48 \,€ \\
    0,17 \,€ & 0,00 \,€ & -2,52 \,€ & 2,35 \,€ \\
    0,00 \,€ & 0,00 \,€ & 0,00 \,€ & 0,00 \,€ \\
    \hline
    \end{tabular}
\end{table}

\end{document} 

在此处输入图片描述

相关内容