表格中的文本垂直对齐(无 Tikz)

表格中的文本垂直对齐(无 Tikz)

我正在尝试编写下表:

Tarraconensis   |                               |
Baetica         |                               |Roman Spain
Lusitania       |                               |
%Here it goes today Iberian Peninsula
Coastal         | Mainland  |1. from Castilla   | This
cities          |           |2. from Catalonia  | is (kind of)
of              |           |3. From Portugal   |Iberian
all             | cities:   |...                |Peninsula
the Peninsula   |           |                   |today

不需要垂直线;我只是为了陈述我的情况而添加它们。我需要中间对齐的单元格。我尝试了这里提出的一些解决方案,但没有成功。

我尝试使用此代码制作一个略有不同的表格(此处顶层单元格/标签位于列的顶部),但省份和城市(oppida)的划分实际上并不在同一级别。除此之外,表格超出了页面范围:

\documentclass[10pt,a4paper]{book} 
\usepackage[utf8]{inputenc} 
\usepackage[T1]{fontenc} 
\usepackage[portuguese]{babel} 
\usepackage{amsmath} 
\usepackage{amsfonts} 
\usepackage{amssymb} 
\usepackage{graphicx} 
\usepackage{array} 
\usepackage{tabularx} 
\usepackage{makecell} 
\usepackage{multirow} 
\begin{document} 
\begin{table}[]
    \begin{tabular}{lllllll}
        \multicolumn{3}{l}{Hispania Romana}                                      & \multicolumn{4}{l}{Hispania recentior}       \\
        \multicolumn{3}{l}{divisa in}                                      & \multicolumn{4}{l}{divisa in}       \\
        \multicolumn{3}{l}{prouincias}                                      &      \multicolumn{4}{c}{oppida} \\ \cline{1-3}
        \multirow{2}{*}{} & \multirow{2}{*}{} & \multirow{2}{*}{} &     maritima & \multicolumn{3}{c}{mediterranea} \\ \cline{4-7} 
    Tarraconensis cap. 1    &          Baetica cap. 2         &          Lusitania uetus cap. 3         &  Totius Hispaniae cap. 4   &   Tarraconensis cap. 5    &   Baeticae cap. 6    &   Lusitaniae recentioris cap. 7  
    \end{tabular}
\end{table}
\end{document}

这正是我需要的。但是沿海城市和

通常我会与 Latex 斗争以解决表格问题(Latex 总是获胜...)

答案1

这是一个尝试性的答案,看看我是否正确地解释了您想要获得的表格。我使用了该nicematrix包,这是该表唯一需要的包(目前)。

该软件包提供\Block以下命令:

(1)同时取代multirowmulticolumn

\\(2)允许在单元格内部使用(新行);

(3)内容水平、垂直居中;

\Block{2-3}{..}将生成一个 2 行高 x 3 列宽的单元格。

\Block{}{..}将生成一个 1 行高 x 1 列宽的单元格,这看起来似乎是多余的,但允许将底行分成两行(与第一行一样),而无需添加新行。

因此,总体而言,代码更简单、更易于理解和更改。该表仅由三行构成。

如您所见,我使用了横向显示,因为否则它无法适合 A4 纸。假设这是“桌子”,则需要执行其他操作。

第一次或更改表布局时需要进行两次编译。

a3

\documentclass[12pt,a4paper,landscape]{article}

\usepackage[left=2.00cm, right=2.00cm, top=2.00cm, bottom=2.00cm]{geometry}
\usepackage{nicematrix}

\begin{document}
    
\NiceMatrixOptions{cell-space-top-limit = 4pt,cell-space-bottom-limit = 4pt} %expand the cells vertically and horizontally

\begin{NiceTabular}{*{9}{c}} % nine identical columns
    \hline
    \Block{2-3}{Hispania Romana \\ divisa in prouincias} & & & & \Block{1-5}{Hispania recentior \\ divisa in oppida}\\
    \cline{5-9} 
                                                         & & & & maritima & &\Block{1-3}{mediterranea}               \\
    \cline{1-3} \cline{5-5}  \cline{7-9} 
    \Block{}{Tarraconensis   \\ cap. 1}& 
    \Block{}{Baetica         \\ cap. 2}&
    \Block{}{Lusitania uetus \\ cap. 3}& &
    \Block{}{Hispaniae       \\ cap. 4}& &
    \Block{}{Tarraconensis   \\ cap. 5}& 
    \Block{}{Baeticae        \\ cap. 6}& 
    \Block{}{Lusitaniae recentioris \\ cap. 7}                                      \\  
    \hline  
\end{NiceTabular}
    
\end{document}

肖像的选项是将桌子一分为二。

b3

相关内容