Как выровнять текст по вертикали в центре таблиц и добавить ввод при использовании tabularx?

Как выровнять текст по вертикали в центре таблиц и добавить ввод при использовании tabularx?

Как выровнять текст в таблицах по вертикали, например, «Автор 1 (год)», и как добавить символы ввода между словами в таблицах, чтобы текст располагался друг под другом, как в случае со словами «Война», «Революция» и «Гражданские беспорядки»?

\begin{table}[H]
\caption{Three levels of political risks} 
\label{tab:rcpol}
\footnotesize
\begin{tabularx}{\linewidth}{@{} c *{3}{>{\centering\arraybackslash}X} @{}}
\toprule 
\textbf{References} & \textbf{Macro risks} & \textbf{Meso risks} & \textbf{Micro risks}  \\
\midrule
Author 1 (Year)       
    &  Corruption   
        &  Government intervention
             &  Expropriation; 
                Nationalisation of assets
    \\ \midrule
Author 2 (Year)     
    &  War; Revolution; Civil disorders
        &   \multicolumn{2}{>{\hsize=\dimexpr2\hsize+2\tabcolsep+\arrayrulewidth
                          \centering\arraybackslash}X}{%
        Inconsistent government policies } 
    \\ 

\bottomrule
\end{tabularx}
\end{table}

введите описание изображения здесь

решение1

Внутри Xстолбца типа можно использовать \linebreakдля вставки переносов строк. Внутри обычной ячейки можно использовать \begin{tabular}{@{} <col> @{}}<content>\end{tabular}конструкцию для вставки переносов строк (или использовать \makecellиз makecellпакета, который делает то же самое).

Если вы хотите использовать определение , \\как если бы оно было внутри \centeringсреды, вы могли бы также использовать >{\centering\let\mynewline\\\arraybackslash}Xв своей преамбуле и в своей таблице \mynewlineвместо \linebreak.

Что касается вертикального выравнивания Xячеек текста: вы можете изменить определение , чтобы \tabularxcolumnиспользовать mвместо pстолбцов текста для вертикально центрированного содержимого.

\documentclass[]{article}

\usepackage{tabularx}
\usepackage{booktabs}

% change the column type of tabularx to use `m` instead of `p` for the vertical
% centering:
\renewcommand\tabularxcolumn[1]{m{#1}}

\begin{document}
\begin{table}
\caption{Three levels of political risks} 
\label{tab:rcpol}
\footnotesize
\begin{tabularx}{\linewidth}{@{} c *{3}{>{\centering\arraybackslash}X} @{}}
\toprule 
\textbf{References} & \textbf{Macro risks} & \textbf{Meso risks} & \textbf{Micro risks}  \\
\midrule
Author 1 (Year)       
    &  Corruption   
        &  Government intervention
             &  Expropriation; 
                Nationalisation of assets
    \\ \midrule
Author 2 (Year)     
    &  War; Revolution; Civil disorders
        &   \multicolumn{2}{>{\hsize=\dimexpr2\hsize+2\tabcolsep+\arrayrulewidth
                          \centering\arraybackslash}X}{%
        Inconsistent government policies } 
    \\ 
    author & En-\linebreak forcing\linebreak line\linebreak breaks 
    \\
    \begin{tabular}[]{@{}c@{}}
      line\\breaks\\in\\a\\normal\\cell
    \end{tabular}
    & other cell & other cell
    \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}

введите описание изображения здесь

Связанный контент