
tabularray
é bastante útil porque preciso fazer o seguinte:
- Mantenha a mesa tão larga quanto
\textwidth
- Preciso inserir
note{}
na legenda da tabela - O cabeçalho da tabela tem dois caracteres, portanto eles são divididos em várias linhas em uma célula. Neste caso, preciso manter as cabeças curtas para ficar no meio da célula da tabela
- Mantenha o número decimal alinhado
Como eu sei:
- Para conseguir
1
, posso usartblr
outalltblr
comX
formato - Para conseguir
2
, preciso usartalltblr
- Para conseguir
4
, posso usartalltblr
comX
esi={}
Mas como posso conseguir 3
isso talltblr
? Se pudermos mesclar Q
o formato talltblr
, essas quatro funções poderão ser alcançadas ao mesmo tempo.
Por exemplo:
\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}
Como fazer essa tabela para atender as quatro solicitações?
Outra pergunta: por que não posso substituir gggggg
por Length
? Quando fiz isso, ocorreu um erro:Package siunitx Error: Invalid number 'e'.
Responder1
Editar: ups, não carreguei a última versão do código e da imagem. Corrigido agora. So4ry pelo barulho ...
Como ponto de partida:
\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}
Notas:
Você realmente lê (repetidamente) a documentação do pacote. Não apenas leia, mas também experimente diferentes configurações para formatação de colunas. Minhas experiências me mostram que o melhor método de aprendizagem éaprendendo fazendo. No início consome um pouco de tempo, mas logo você descobrirá a filosofia da tabularray
sintaxe.
- O significado das opções
c
(centro),l
(esquerda),r
(direita) em
(meio),t
(topo)b
(parte inferior, as três últimas são definidas noarray
pacote) é o mesmo das mesas clássicas. - Além das opções mencionadas,tabularray
introduza mais três opções:h
(cabeça, no topo da célula),f
(pé, na parte inferior da célula) ej
(justificado). - Essas opções podem ser usadas isoladamente ou como atributos de tipos
X
deQ
colunas. Por exemplo:X[c]
tem largura, que é calculada pelo LaTeX e o conteúdo da coluna é horizontal- `X[2,l] tem o dobro da largura, que é calculada pelo LaTeX e pelo conteúdo da coluna alinhada à esquerda
Q[c, 2cm]
ouQ[c, wd=2cm]
defina coluna com 2 cm de largura e conteúdo centralizado horizontalmenteX[j]
tem texto justificado, que é hifenizado quando necessário- a coluna
c
se comporta da mesma forma que nas tabelas "clássicas", a largura da coluna é igual à largura do conteúdo mais longo nas células e é centralizada horizontalmente (da mesma forma para outras opções)
- Nas
S
colunas (definir comoS
coluna ou por exemploQ[c, si]
, onde a formatação pode ser definida\sisetup
fora da tabela, consultesiunitx
a documentação) o conteúdo sem número de tal cel tinha que estar de acordo comsiunitx
o pacote nas tabelas clássicas entre chaves:- por isso são
table-format
configurações interrompidas, - desativou a interpretação errada do significado do conteúdo (tenha em mente que
siunitx
use algumas letras para designar números, por exemplo10e5
significar10 x 10^5
!
- por isso são
- Devido ao
tabularray
processamento diferente da tabela (usandol3exp
), é necessário adicionar mais dois pares de chaves (essesiunitx
requisito funciona em todas as circunstâncias). - O
tabularray
pacote permite a formatação de linhas para. Por exemplo:- com
row{1} = {font=\bfseries}
texto em negrito prescrito em todas as células da primeira linha, - com
row{Z} = {font=\scfaily, c}
prescrição de fonte em versalete e centralização do conteúdo na última linha da tabela
- com
- etc.,
Termo aditivo: você pode gostar da formatação da tabela, que agrupa linhas, por exemplo, com três delas e insere algum espaço vertical adicional entre elas. Para isso adicione ao preâmbulo
\ExplSyntaxOn
\NewChildSelector{eachthree}
{
\int_step_inline:nnnn {5}{3}{\l_tblr_childs_total_tl}
{ \clist_put_right:Nn \l_tblr_childs_clist {##1} }
}
\ExplSyntaxOff
e ao preâmbulo da tabela:
row{eachthree} = {abovesep=2ex},
Considerando esses acréscimos, a tabela ficará da seguinte forma: