
tabularray
весьма полезно, так как мне нужно сделать следующее:
- Держите стол настолько широким, насколько это возможно.
\textwidth
- Мне нужно вставить
note{}
в заголовок таблицы - Заголовок таблицы — это два множества символов, поэтому они разделены на несколько строк в одной ячейке. В этом случае мне нужно сохранить короткие заголовки, чтобы они были в середине ячейки таблицы
- Сохраняйте выравнивание десятичных знаков числа
Как я знаю:
- Чтобы достичь
1
, я могу использоватьtblr
илиtalltblr
сX
форматом - Чтобы достичь
2
, мне нужно использоватьtalltblr
- Чтобы достичь
4
, я могу использоватьtalltblr
сX
иsi={}
Но как я могу достичь этого 3
с помощью talltblr
? Если мы сможем объединить Q
формат в talltblr
, эти четыре функции могут быть достигнуты одновременно.
Например:
\documentclass{article}
\usepackage{tabularray}
\usepackage{siunitx}
\usepackage{romannum}
\UseTblrLibrary{booktabs, siunitx}
\begin{document}
\begin{table}[h]
\begin{talltblr}
[caption={Main component geographic information table\TblrNote{1}},
label={tab:Main component geographic information table},
note{1}={The data is obtained through satellite maps, and there are certain errors},
note{2}={The latitude and longitude of the surface is the latitude and longitude of its centroid. There is a certain error in the measurement of latitude and longitude, for reference},
note{3}={This length is the length in our study area}
]
{colspec={
X[1.5,r] X[1.3,c] X[1.3,c] X[c,si={table-format=4.2},0.8] X[c,si={table-format=4.2},0.8] X[c,si={table-format=1.2},0.8]
}
}
\toprule
name & latitude\TblrNote{2} & longitude &{gggggg\unit{\m}} & gggggg\unit{\m} \TblrNote{3} &{{{area total\unit{\km\squared}}}}\\
\midrule
DongLake &\ang{30;33;29.52}N &\ang{114;22;47.55}E & & & 12.74 \\
dongtinglake &\ang{30;33;12.71}N &\ang{114;20;46.87}E & & &0.12 \\
great river &\ang{30;33;33.66}N &\ang[minimum-integer-digits=2]{114;20;09.29}E & 1682.88& & \\
bigbig lake &\ang[minimum-integer-digits=2]{30;34;06.02}N &\ang{114;19;45.86}E & & & 2.74 \\
inside the gate &\ang{30;33;54.85}N &\ang{114;18;35.99}E & & & 0.06 \\
new ditches &\ang{30;35;33.19}N &\ang[minimum-integer-digits=2]{114;23;02.77}E & 977 & & \\
west part of new gate &\ang{30;35;26.31}N &\ang{114;21;43.67}E & 5213.77 & & \\
luoai port &\ang[minimum-integer-digits=2]{30;37;08.49}N &\ang{114;21;27.93}E & 3770.58 & & \\
qingling port &\ang[minimum-integer-digits=2]{30;39;02.32}N &\ang{114;24;30.27}E & & & 0.13 \\
from port to lake &\ang[minimum-integer-digits=2]{30;37;03.06}N &\ang{114;24;22.99}E & 345.15 & & \\
east part of the gate &\ang[minimum-integer-digits=2]{30;38;05.41}N &\ang{114;24;27.64}E &2926.08 & & \\
Yangzi river &\ang{30;37;43.29}N &\ang{114;20;58.87}E & & & \\
east part of the lake &\ang{30;35;55.14}N &\ang{114;23;14.49}E & 1090.45 & & \\
donghu port &\ang{30;35;37.38}N &\ang{114;23;45.81}E & 7332.3 & \num{4614.19} & \\
west section of qingqing &\ang[minimum-integer-digits=2]{30;38;01.20}N &\ang{114;24;11.10}E & 3449.86 & & \\
new road drainage station &\ang{30;33;55.17}N &\ang{114;18;48.14}E & & & \\
nanjing drainage station &\ang{30;33;52.23}N &\ang{114;18;29.72}E & & & \\
beijing pumping station &\ang{30;37;22.34}N &\ang[minimum-integer-digits=2]{114;21;01.01}E & & & \\
guilin road gata &\ang{30;37;19.42}N &\ang{114;20;57.23}E & & & \\
the last gate &\ang{30;39;16.08}N &\ang{114;24;31.97}E & & & \\
\bottomrule
\end{talltblr}
\end{table}
\end{document}
Как составить эту таблицу, чтобы выполнить четыре запроса?
Еще вопрос: почему я не могу заменить gggggg
на Length
? Когда я это сделал, возникла ошибка:Package siunitx Error: Invalid number 'e'.
решение1
Редактировать: ups, я не загрузил последнюю версию кода и изображения. Сейчас исправил. Извините за шум...
В качестве отправной точки:
\documentclass{article}
\usepackage{tabularray}
\UseTblrLibrary{booktabs, siunitx} % libraries loads packages of the same names
\begin{document}
\begin{table}[h]
\sisetup{minimum-integer-digits=2}
\begin{talltblr}[
caption = {Main component geographic information table},
label = {tab:Main component geographic information table},
remark{Note} = {The data are obtained through satellite maps, and there are certain errors},
note{1} = {The latitude and longitude of the surface is the latitude and longitude of its centroid. There is a certain error in the measurement of latitude and longitude, for reference},
note{2} = {This length is the length in our study area},
note{3} = {Total area}
]{colsep = 3pt,
colspec = {@{} X[2,l, m, font=\linespread{0.84}\selectfont] r r
*{2}{X[c, si={table-format=4.2}]}
X[c, si={table-format=2.2,
minimum-integer-digits=1}]
@{}},
row{1} = {font=\small\bfseries, c, m}
}
\toprule
name & latitude\TblrNote{1}
& longitude
& {{{gggggg \unit{\metre}}}}
& {{{gggggg\TblrNote{2} \unit{\metre}}}}
& {{{area\TblrNote{3} \unit{\km\squared}}}}\\
\midrule
Dong Lake & \ang{30;33;29.52}N
& \ang{114;22;47.55}E
& & & 12.74 \\
Dongting Lake
& \ang{30;33;12.71}N
&\ang{114;20;46.87}E
& & & 0.12 \\
Great river & \ang{30;33;33.66}N
& \ang{114;20;09.29}E
& 1682.88
& & \\
Big lake & \ang{30;34;06.02}N
& \ang{114;19;45.86}E
& & & 2.74 \\
inside the gate
& \ang{30;33;54.85}N
& \ang{114;18;35.99}E
& & & 2.74 \\
new ditches & \ang{30;35;33.19}N
&\ang{114;23;02.77}E
& 977
& & \\
west part of new gate
& \ang{30;35;26.31}N
& \ang{114;21;43.67}E
& 5213.77
& & \\
Luoai port & \ang{30;37;08.49}N
&\ang{114;21;27.93}E
& 3770.58
& & \\
qingling port
& \ang{30;39;02.32}N
&\ang{114;24;30.27}E
& & & 0.13 \\
from port to lake
& \ang{30;37;03.06}N
& \ang{114;24;22.99}E
& 345.15
& & \\
east part of the gate
& \ang{30;38;05.41}N
& \ang{114;24;27.64}E
& 2926.08
& & \\
Yangzi river
& \ang{30;37;43.29}N
& \ang{114;20;58.87}E
& & & \\
east part of the lake
& \ang{30;35;55.14}N
& \ang{114;23;14.49}E
& 1090.45
& & \\
Donghu port & \ang{30;35;37.38}N
& \ang{114;23;45.81}E
& 7332.3
& 4614.19
& \\
west section of qingqing
& \ang{30;38;01.20}N
& \ang{114;24;11.10}E
& 3449.86
& & \\
new road drainage station
& \ang{30;33;55.17}N
&\ang{114;18;48.14}E
& & & \\
nanjing drainage station
& \ang{30;33;52.23}N
& \ang{114;18;29.72}E
& & & \\
Beijing pumping station
& \ang{30;37;22.34}N
&\ang{114;21;01.01}E
& & & \\
Guilin road gata
& \ang{30;37;19.42}N
&\ang{114;20;57.23}E
& & & \\
the last gate
& \ang{30;39;16.08}N
& \ang{114;24;31.97}E
& & & \\
\bottomrule
\end{talltblr}
\end{table}
\end{document}
Примечания:
Вы действительно читаете (снова и снова) документацию пакета. Не просто читаете, а экспериментируете с различными настройками форматирования столбцов. Мой опыт показывает мне, что лучший метод обучения — этообучение в процессе работы. Поначалу это займет немного времени, но вскоре вы поймете философию синтаксиса tabularray
.
- Значение опций
c
(center),l
(left),r
(right) иm
(middle),t
(top)b
(low, последние три определены вarray
пакете) такое же, как и в классических таблицах. - Помимо указанных опций,tabularray
введите еще три опции:h
(head, вверху ячейки),f
(foot, внизу ячейки) иj
(выравнивание). - Эти параметры можно использовать отдельно или как атрибуты типов
X
столбцовQ
. Например:X[c]
имеет ширину, которая рассчитывается LaTeX, а содержимое столбца горизонтальное- `X[2,l] имеет удвоенную ширину, которая вычисляется LaTeX и выровнена по левому краю содержимого столбца
Q[c, 2cm]
илиQ[c, wd=2cm]
определить столбец шириной 2 см и горизонтально отцентрированным содержимымX[j]
имеет выровненный текст, который при необходимости переносится через дефис- столбцы
c
ведут себя так же, как и в «классических» таблицах: ширина столбца равна ширине самого длинного содержимого в ячейках и выравнивается по горизонтали (аналогично и для других опций)
- В столбцах ( например
S
, определяемых как столбец или , где форматирование может быть определено за пределами таблицы, см. документацию) нечисловое содержимое такого элемента cel должно быть заключено в соответствии с пакетом в классических таблицах в пару фигурных скобок:S
Q[c, si]
\sisetup
siunitx
siunitx
- этим прерываются
table-format
настройки, - отключена неверная интерпретация смысла содержания (имейте в виду, что
siunitx
использование некоторых букв для обозначения чисел, например,10e5
означает10 x 10^5
!
- этим прерываются
- Из
tabularray
-за различной обработки таблиц (использованияl3exp
) требуется добавить еще две пары фигурных скобок (этоsiunitx
требование работает во всех случаях). - Пакет
tabularray
позволяет форматировать строки. Например:- с
row{1} = {font=\bfseries}
прописным жирным шрифтом текста во всех ячейках строки в первой строке, - с
row{Z} = {font=\scfaily, c}
прописными буквами и центрированием содержимого в последней строке таблицы
- с
- и т. д.,
Приложение: вам может понравиться форматирование таблицы, которое группирует строки, например, по три, и вставляет между ними некоторое дополнительное вертикальное пространство. Для этого добавьте в преамбулу
\ExplSyntaxOn
\NewChildSelector{eachthree}
{
\int_step_inline:nnnn {5}{3}{\l_tblr_childs_total_tl}
{ \clist_put_right:Nn \l_tblr_childs_clist {##1} }
}
\ExplSyntaxOff
и к преамбуле таблицы:
row{eachthree} = {abovesep=2ex},
Учитывая эти дополнения, таблица потеряет следующий вид: