I have a table where I am dynamically loading values. For now, just a single value for testing, but all the numbers here will eventually be loaded.
\documentclass{article} \usepackage{booktabs} \usepackage{threeparttable} \usepackage{amsmath} \usepackage{datatool} \DTLloaddb{baseline}{data.csv} \usepackage{siunitx} % For number formatting \sisetup{ round-mode=places, round-precision=3, % 3 decimal places table-format=-1.3, % Format for negative numbers with 1 digit before decimal, 3 after table-alignment-mode=format, table-number-alignment=center, input-signs=, % Accept both - and − for minus input-decimal-markers={.}, group-separator={,}, group-minimum-digits=4 } \begin{document} \begin{table}[htbp] \centering \begin{threeparttable} \caption{Model Calibration and Moments} \label{tab:model_calibration_moments} \begin{tabular}{ cl| S[table-format=-1.3]| S[table-format=-1.3]S[table-format=-1.3]| S[table-format=-1.3]S[table-format=-1.3] } \toprule \multicolumn{7}{l}{\textbf{Panel A: Calibrated Parameters}} \\ \toprule \multicolumn{3}{c|}{} & \multicolumn{2}{c|}{Baseline Calibration} & \multicolumn{2}{c}{Alternative Calibration} \\ \midrule \multicolumn{3}{l|}{Common parameters} & & & & \\ $c$ & \multicolumn{2}{l|}{Vacancy search cost} & \multicolumn{2}{c|}{ \num{\DTLfetch{baseline}{parameter}{c}{value}}} & \multicolumn{2}{c}{0.0042} \\ $\alpha$ & \multicolumn{2}{l|}{Matching elasticity} & \multicolumn{2}{c|}{\DTLfetch{baseline}{parameter}{alphaMatch}{value}} & \multicolumn{2}{c}{0.4800} \\ $\sigma_z$ & \multicolumn{2}{l|}{Productivity dispersion} & \multicolumn{2}{c|}{\DTLfetch{baseline}{parameter}{z_std}{value}} & \multicolumn{2}{c}{0.1200} \\ $A$ & \multicolumn{2}{l|}{Asset supply} & \multicolumn{2}{c|}{\DTLfetch{baseline}{parameter}{asset_net_supply}{value}} & \multicolumn{2}{c}{0.5500} \\ $\rho$ & \multicolumn{2}{l|}{Discount rate} & \multicolumn{2}{c|}{0.0025} & \multicolumn{2}{c}{0.0030} \\ \midrule \multicolumn{3}{l|}{Type-specific parameters} & {Stable} & {Marginal} & {Stable} & {Marginal} \\ $b_i$ & \multicolumn{2}{l|}{Income of unemployed} & 1.025 & 0.697 & 1.050 & 0.710 \\ $z_i$ & \multicolumn{2}{l|}{Log productivity} & 0.000 & -0.252 & 0.000 & -0.270 \\ $h_i$ & \multicolumn{2}{l|}{Utility from non-employment} & 0.000 & 0.309 & 0.000 & 0.325 \\ $\delta_i$ & \multicolumn{2}{l|}{Exogenous sep. rate} & 0.005 & 0.030 & 0.006 & 0.035 \\ \midrule \end{tabular} \end{threeparttable} \end{table} \end{document} with the data file containing
parameter,value c,0.024123123 The problem is that siunitx formatting (-1.3) does not work in multicolumn by default. Apparently, it does work if I wrap it around with \num{0.123123123}. However, If the numbers are dynamically loaded, it again won't work. (In my example, the one loaded value is simply blank in the table).
How could I approach this?

data.csv?