如何将标志(来自 \worldflag)与表格中的文本对齐(从而删除表格单元格中产生的空白)

如何将标志(来自 \worldflag)与表格中的文本对齐(从而删除表格单元格中产生的空白)

在下面的例子中,\worldflag命令将标志推到表格单元格的顶部,从而产生一些垂直空白。如何将标志与表格中的文本垂直对齐,从而删除表格单元格内的垂直空白?

\documentclass{article}
\usepackage[a4paper,margin=0.1cm]{geometry} 
\usepackage{tabularray}
\usepackage{worldflags}
\flagsdefault[width=0.5cm]

\begin{document}

\begin{longtblr}{ colspec = {|X|X|},hlines}
First variable \newline Second variable & \worldflag{FR} \\
First variable & \worldflag{BR} \\
First variable \newline Second variable & \worldflag{CH} \\
\end{longtblr}

\end{document}

在此处输入图片描述

答案1

在这里,我将旗帜稍微放大一些,并创建\Worldflag宏,将旗帜的上部高度设置为\ht\strutbox高于基线的高度。

\documentclass{article}
\usepackage[a4paper,margin=0.1cm]{geometry} 
\usepackage{tabularray}
\usepackage{worldflags}
\usepackage{stackengine}
\flagsdefault[width=1.9\baselineskip]
\newcommand\Worldflag[1]{\belowbaseline[-\ht\strutbox]{\worldflag{#1}}}
\begin{document}

\begin{longtblr}{ colspec = {|X|X|},hlines}
First variable \newline Second variable & \Worldflag{FR} \\
First variable & \Worldflag{BR} \\
First variable \newline Second variable & \Worldflag{CH} \\
\end{longtblr}

\end{document}

在此处输入图片描述

附录

原帖者问,当旗帜变小时,如何实现类似的效果?

在这里,我把标志变小,在每个标志的上方和下方添加一个垂直缓冲区,通过\addstackgap[.6\ht\strutbox]{...}并调整的垂直偏移\belowbaseline。虽然可以调整特定值,但我建议 stackgap 减去 belowbaseline 偏移加起来等于\ht\strutbox

\documentclass{article}
\usepackage[a4paper,margin=0.1cm]{geometry} 
\usepackage{tabularray}
\usepackage{worldflags}
\usepackage{stackengine}
\flagsdefault[width=1\baselineskip]
\newcommand\Worldflag[1]{\addstackgap[.6\ht\strutbox]{%
  \belowbaseline[-0.4\ht\strutbox]{\worldflag{#1}}}}
\begin{document}

\begin{longtblr}{ colspec = {|X|X|},hlines}
First variable \newline Second variable & \Worldflag{FR} \\
First variable & \Worldflag{BR} \\
First variable \newline Second variable & \Worldflag{CH} \\
\end{longtblr}

\end{document}

在此处输入图片描述

答案2

降低旗帜的高度,使其与支柱的高度相同。由于longtblr增加了一个小的填充,旗帜不会触及规则。

\documentclass{article}
\usepackage[a4paper,margin=0.1cm]{geometry}
\usepackage{tabularray}
\usepackage{worldflags}

\flagsdefault[width=0.5cm]
\newcommand{\tflag}[1]{%
  \raisebox{\dimeval{\ht\strutbox-\height}}{\worldflag{#1}}%
}

\begin{document}

\begin{longtblr}{ colspec = {|X|X|},hlines}
First variable \newline Second variable & \tflag{FR} \\
First variable & \tflag{BR} \\
First variable \newline Second variable & \tflag{CH} \\
\end{longtblr}

\end{document}

在此处输入图片描述

相关内容