با سلام
مسأله این است که اعداد جدول را میتوان با استفاده از نوع ستون S
که در بسته siunitx
تعریف شده، فرمتدهی کرد. تا زمانی که جدول بدون استفاده از بسته xepersian
حروفچینی میشود مشکلی وجود ندارد. همانطور که مشاهده میشود، تراز افقی ستونها به گونهای است که علامت اعشار اعداد همه ستونها دقیقا زیر هم قرار گرفتهاند.
مشاهده برنامه:
\documentclass{article}
\usepackage{color, makecell, multirow, booktabs, siunitx}
\DeclareSIUnit[quantity-product = {\,}]\degreeFahrenheit{^\circ\text{F}}
\DeclareSIUnit[quantity-product = {\,}]\psi{\text{psi}}
\begin{document}
\begin{table}
\caption{Expected minimum stress-to-rupture values, \(\qty{1000}{\psi}\), Type \(304\) stainless steel}
\label{tab:expected-minimum-stress-to-rupture-values,-1000-psi,-type-304-stainless-steel}
\newcolumntype{y}{S[table-format = 2.1]}
\small
\begin{tabular}{@{}S[table-format = 4.0] y y y y y y y y y y y @{}}
%\small
\toprule
\multicolumn{12}{c}{US customary units}\\
\midrule
{\multirow[c]{2}{*}{\centering\makecell{Temp.\\(\unit{\degreeFahrenheit})}}}
& & & & & {\(3 \times\)\hfill} & & {\(3 \times\)\hfill} & & {\(3 \times\)\hfill} & & {\(3 \times\)\hfill}\\
& {\(\qty{1}{\hour}\)} & {\(\qty{10}{\hour}\)} & {\(\qty{30}{\hour}\)} & {\(\qty{e2}{\hour}\)} & {\(\qty{e2}{\hour}\)} & {\(\qty{e3}{\hour}\)} & {\(\qty{e3}{\hour}\)} & {\(\qty{e4}{\hour}\)} & {\(\qty{e4}{\hour}\)} & {\(\qty{e5}{\hour}\)} & {\(\qty{e5}{\hour}\)}\\
\midrule
800 & 57.0 & 57.0 & 57.0 & 57.0 & 57.0 & 57.0 & 57.0 & 57.0 & 51.0 & 44.3 & 39.0 \\
850 & 56.5 & 56.5 & 56.5 & 56.5 & 56.5 & 56.5 & 50.2 & 45.4 & 40.0 & 34.7 & 30.5 \\
900 & 55.5 & 55.5 & 55.5 & 55.5 & 51.5 & 46.9 & 41.2 & 36.1 & 31.5 & 27.2 & 24.0 \\\\
950 & 54.2 & 54.2 & 51.0 & 48.1 & 43.0 & 38.0 & 33.5 & 28.8 & 24.9 & 21.2 & 18.3 \\
1000 & 52.5 & 50.0 & 44.5 & 39.8 & 35.0 & 30.9 & 26.5 & 22.9 & 19.7 & 16.6 & 14.9 \\
1050 & 50.0 & 41.9 & 37.0 & 32.9 & 28.9 & 25.0 & 21.6 & 18.2 & 15.5 & 13.0 & 11.0 \\\\
1100 & 45.0 & 35.2 & 31.0 & 27.2 & 23.9 & 20.3 & 17.3 & 14.5 & 12.3 & 10.2 & 8.6 \\
1150 & 38.0 & 29.5 & 26.0 & 22.5 & 19.3 & 16.5 & 13.9 & 11.6 & 9.6 & 8.0 & 6.6 \\
1200 & 32.0 & 24.7 & 21.5 & 18.6 & 15.9 & 13.4 & 11.1 & 9.2 & 7.6 & 6.2 & 5.0 \\\\
1250 & 27.0 & 20.7 & 17.9 & 15.4 & 13.0 & 10.8 & 8.9 & 7.3 & 6.0 & 4.9 & 4.0 \\
1300 & 23.0 & 17.4 & 15.0 & 12.7 & 10.5 & 8.8 & 7.2 & 5.8 & 4.8 & 3.8 & 3.1 \\
1350 & 19.5 & 14.6 & 12.6 & 10.6 & 8.8 & 7.2 & 5.8 & 4.6 & 3.8 & 3.0 & 2.4 \\\\
1400 & 16.5 & 12.1 & 10.3 & 8.8 & 7.2 & 5.8 & 4.7 & 3.7 & 3.0 & 2.3 & 1.9 \\
1450 & 14.0 & 10.2 & 8.8 & 7.3 & 5.8 & 4.6 & 3.8 & 2.9 & 2.3 & 1.8 & 1.4 \\
1500 & 12.0 & 8.6 & 7.2 & 6.0 & 4.9 & 3.8 & 3.0 & 2.4 & 1.8 & 1.4 & 1.1 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
مشاهده خروجی:
به محض اینکه جدول با بسته xepersian
حروفچینی میشود، اعداد به هم میریزند.
مشاهده برنامه:
\documentclass{article}
\usepackage{color, makecell, multirow, booktabs, siunitx}
\DeclareSIUnit[quantity-product = {\,}]\degreeFahrenheit{^\circ\text{\lr{F}}}
\DeclareSIUnit[quantity-product = {\,}]\psi{\text{\lr{psi}}}
\usepackage{xepersian}
\settextfont{Calibri}
\setdigitfont{Calibri}
\begin{document}
\begin{table}
\caption{%
کمترین مقادیر مورد انتظار تنش-به-گسیختگی،
\(\qty{1000}{\psi}\)،
فولاد زنگنزن نوع
\(304\)%
}
\label{tab:expected-minimum-stress-to-rupture-values,-1000-psi,-type-304-stainless-steel}
\newcolumntype{y}{S[table-format = 2.1]}
\small
\begin{tabular}{@{}S[table-format = 4.0] y y y y y y y y y y y @{}}
%\small
\toprule
\multicolumn{12}{c}{%
یکاهای رایج ایالات متحده%
}\\
\midrule
{\multirow[c]{2}{*}{\centering\makecell{%
دما\\
(\unit{\degreeFahrenheit})}}} & & & & & {\hfill\(3 \times\)} & & {\hfill\(3 \times\)} & & {\hfill\(3 \times\)} & & {\hfill\(3 \times\)}\\
& {\(\qty{1}{\hour}\)} & {\(\qty{10}{\hour}\)} & {\(\qty{30}{\hour}\)} & {\(\qty{e2}{\hour}\)} & {\(\qty{e2}{\hour}\)} & {\(\qty{e3}{\hour}\)} & {\(\qty{e3}{\hour}\)} & {\(\qty{e4}{\hour}\)} & {\(\qty{e4}{\hour}\)} & {\(\qty{e5}{\hour}\)} & {\(\qty{e5}{\hour}\)}\\
\midrule
800 & 57.0 & 57.0 & 57.0 & 57.0 & 57.0 & 57.0 & 57.0 & 57.0 & 51.0 & 44.3 & 39.0 \\
850 & 56.5 & 56.5 & 56.5 & 56.5 & 56.5 & 56.5 & 50.2 & 45.4 & 40.0 & 34.7 & 30.5 \\
900 & 55.5 & 55.5 & 55.5 & 55.5 & 51.5 & 46.9 & 41.2 & 36.1 & 31.5 & 27.2 & 24.0 \\\\
950 & 54.2 & 54.2 & 51.0 & 48.1 & 43.0 & 38.0 & 33.5 & 28.8 & 24.9 & 21.2 & 18.3 \\
1000 & 52.5 & 50.0 & 44.5 & 39.8 & 35.0 & 30.9 & 26.5 & 22.9 & 19.7 & 16.6 & 14.9 \\
1050 & 50.0 & 41.9 & 37.0 & 32.9 & 28.9 & 25.0 & 21.6 & 18.2 & 15.5 & 13.0 & 11.0 \\\\
1100 & 45.0 & 35.2 & 31.0 & 27.2 & 23.9 & 20.3 & 17.3 & 14.5 & 12.3 & 10.2 & 8.6 \\
1150 & 38.0 & 29.5 & 26.0 & 22.5 & 19.3 & 16.5 & 13.9 & 11.6 & 9.6 & 8.0 & 6.6 \\
1200 & 32.0 & 24.7 & 21.5 & 18.6 & 15.9 & 13.4 & 11.1 & 9.2 & 7.6 & 6.2 & 5.0 \\\\
1250 & 27.0 & 20.7 & 17.9 & 15.4 & 13.0 & 10.8 & 8.9 & 7.3 & 6.0 & 4.9 & 4.0 \\
1300 & 23.0 & 17.4 & 15.0 & 12.7 & 10.5 & 8.8 & 7.2 & 5.8 & 4.8 & 3.8 & 3.1 \\
1350 & 19.5 & 14.6 & 12.6 & 10.6 & 8.8 & 7.2 & 5.8 & 4.6 & 3.8 & 3.0 & 2.4 \\\\
1400 & 16.5 & 12.1 & 10.3 & 8.8 & 7.2 & 5.8 & 4.7 & 3.7 & 3.0 & 2.3 & 1.9 \\
1450 & 14.0 & 10.2 & 8.8 & 7.3 & 5.8 & 4.6 & 3.8 & 2.9 & 2.3 & 1.8 & 1.4 \\
1500 & 12.0 & 8.6 & 7.2 & 6.0 & 4.9 & 3.8 & 3.0 & 2.4 & 1.8 & 1.4 & 1.1 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
مشاهده خروجی:
دو مشکل زیر به چشم میخورند:
۱- ارقام یکان اعداد غیر اعشاری زیر هم چاپ نمیشوند. در این رابطه به اولین ستون از سمت راست متن فارسی و اولین ستون از سمت چپ متن انگلیسی توجه بفرمایید.
۲- اعداد اعشاری به دو قسمت مجزا تفکیک میشوند. قسمت اول، اعداد صحیح و قسمت دوم، اعداد اعشاری (به صورت علامت اعشار و ارقام بعد از آن) است. بنابراین در هنگام حروفچینی، ابتدا عدد صحیح چاپ میشود و سپس، بر سیاق متون راست به چپ، عدد اعشاری بدون هیچ فاصلهای در سمت چپ عدد صحیح چاپ میشود. در نتیجه عدد اعشاری که باید در سمت راست قرار داشته باشد در سمت چپ، و عدد صحیح که باید در سمت چپ قرار داشته باشد در سمت راست چاپ میشود. به عنوان مثال، عدد ۵۶ ممیز ۵، از چپ به راست و به صورت ممیز ۵، ۵۶ چاپ میشود که به عبارتی میشود ۵۶۵ هزارم (٬۵۶۵). یا مثلا ۵۷ ممیز صفر به صورت ممیز صفر، ۵۷ چاپ میشود که خوانده میشود: ۵۷ هزارم (٬۰۵۷). در این رابطه به ستونهای دوم تا آخر هر دو جدول توجه بفرمایید.
شاید بتوان گفت که اعداد وارد شده در ستون، نه در محیط ریاضی، بلکه در محیط متن تفسیر میشوند.
لطفا راهنمایی فرمایید که با چه روشی میتوان این مشکل را برطرف کرد.