电子表格中的彩色元素在 siunitx 包中存在问题

电子表格中的彩色元素在 siunitx 包中存在问题

我想要一个牛顿迭代表。第一个值和最后一个值应该有颜色。所以我尝试了以下代码,它有效。但彩色数字设置不正确,表格编号对齐=左,好像没什么效果。

感谢帮助!

在此处输入图片描述

\documentclass[fleqn,dvipsnames,x11names,svgnames,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage[upint,sansmath]{libertinust1math}  % Mathe Font
\usepackage[sb,sfdefault]{libertine}  % für Textschrift in rm und sf
\usepackage{soul}
\usepackage{etex} % um die Anzahl der Register zu erhöhen (sonst nur 256)
\usepackage{eurosym}
\usepackage{xcolor}
\usepackage{booktabs}  % für bessere Abstände in Tabellen
\usepackage{calc}      % Zum Rechnen
\usepackage{array}     % Für arrays
\usepackage{tabularx}  % Für erweiterte Tabellenoptionen
\usepackage{colortbl}  % Für farbige Tabellen
\usepackage{ragged2e}  % Für besseres links-, rechtsbündig
\usepackage{numprint}
\selectlanguage{ngerman}
\usepackage{spreadtab} % Berechnet Werte in einer Tabelle
\STsetdecimalsep{,}
\usepackage{siunitx}
\sisetup{group-separator={\,},output-decimal-marker = {,}}
\DeclareMathSymbol{,}{\mathord}{letters}{"3B}
\parindent0pt
\begin{document}
\renewcommand{\arraystretch}{1.2}
\sisetup{detect-display-math=true,
%round-mode=places,
%round-precision=9,
table-number-alignment=left,
table-format=1.9,
table-figures-integer = 1,
table-figures-decimal = 9,
}
\STautoround{9}
%\renewcommand\STprintnum[1]{\num{#1}}
\def\mcc#1{\multicolumn{1}{c|}{$#1$}}
\def\mccl#1{\multicolumn{1}{|c|}{$#1$}}
\begin{spreadtab}[\STsavecell{\Ergeb}{e6}]{{tabular}{|S[table-format=1.0]|S|S|S[table-format=2.9,table-figures-integer = 2]|S|}}\hline
@\mccl{n}                  & @\mcc{x_{n}}   & @\mcc{f(x_{n})=x^{4}-3x-3} & @\mcc{f^{\prime}(x_{n})=4x^{3}-3}  &@\mcc{x_{n+1}}  \\\hline
0                                    & {\color{BrickRed}$\num{:={1.7}}$} & \STcopy{v}{b2*b2*b2*b2-3*b2-3} & \STcopy{v}{4*b2*b2*b2-b2} & \STcopy{v}{b2-c2/d2} \\\hline
\STcopy{v}{[0,-1]+1} & \STcopy{v}{e2} &   &  &   \\\hline
                                       &                                            &   & &    \\\hline
                                       &                                            &   &  &   \\\hline
                                       &                                            &   &  & {\color{BrickRed}\num{:={}}}   \\\hline
\end{spreadtab}
\\[5pt]
$ x\approx \num{\Ergeb}$

\end{document}

答案1

对于彩色单元格,您可以使用\multicolumn左对齐并通过以下方式包含值\tablenum

\multicolumn{1}{l|}{\color{BrickRed}\tablenum[table-format=1.9]{:=1.7}}

这可能是在本地宏中最好的打包,这就是我在下面的代码中所做的。

示例输出

\documentclass[12pt]{article}

\usepackage[dvipsnames]{xcolor}
\usepackage{spreadtab}
\usepackage{siunitx}

\sisetup{group-separator={\,},output-decimal-marker = {,}}
\DeclareMathSymbol{,}{\mathord}{letters}{"3B}

\begin{document}

\sisetup{detect-display-math=true,
table-number-alignment=left,
table-format=1.9,
table-figures-integer = 1,
table-figures-decimal = 9,
round-mode=places,
round-precision=9
}

\newcommand{\mBRl}[1]{\multicolumn{1}{l|}{\color{BrickRed}\tablenum[table-format=1.9]{#1}}}

\noindent
\begin{spreadtab}[\STsavecell{\Ergeb}{e6}]{{tabular}{
  |S[table-format=1.0]
  |S
  *2{|S[table-format=2.9, table-figures-integer=2]}
  |S|}}
  \hline
  @{$n$} & @{$x_{n}$}& @{$f(x_{n})=x^{4}-3x-3$} &
  @{$f'(x_{n})=4x^{3}-3$}
  &@{$x_{n+1}$} \\
  \hline
  0
  & \mBRl{:=1.7}
  & \STcopy{v}{b2*b2*b2*b2-3*b2-3} &
  \STcopy{v}{4*b2*b2*b2-b2} &
  \STcopy{v}{b2-c2/d2} \\
  \hline
  \STcopy{v}{[0,-1]+1} & \STcopy{v}{e2} & & & \\\hline & & & & \\
  \hline
  & & & & \\
  \hline
  & & & & \mBRl{:={}} \\
  \hline
\end{spreadtab}

\smallskip\noindent
$ x\approx \num{\Ergeb}$

\bigskip
\begin{tabular}{SS}
  {Long header is long}&{Short}\\
  1.87&1.98\\
  1.33&1.1
\end{tabular}
\end{document}

我已经删除了代码中不必要的部分。你的\mcc宏太复杂了,标题只需包含在S列中的括号中,然后它们就会自动居中。

上面还包括一​​个普通表格的演示,其中的S列表明对齐问题发生在任何具有非常宽的标题的列中。

示例输出 2

正如 samcarter 所说,你可以用如下规范来“修复”这个问题

S[table-space-text-post={\hspace{4em}}]

示例输出 3

相关内容