当我执行以下操作时,第二列中的文本由于某种原因确实垂直居中。
问题
有人能弄清楚如何垂直居中两列吗?
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{fontawesome5}
\begin{document}
\begin{tabular}{cl}
{\huge \faIcon{envelope}} \hspace{0.5em} & xxx\\\\
{\huge \faIcon{phone-square-alt}} \hspace{0.5em} & xxx\\\\
{\huge \faIcon{trophy}} \hspace{0.5em} & xxx y.o.\\\\
{\huge \faIcon{map-marker-alt}} \hspace{0.5em} & xxx
\end{tabular}
\end{document}
更新
该问题似乎与 Font awesome 有关?
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{fontawesome5}
\usepackage{tabularray}
\begin{document}
\begin{tblr}{Q[c,m]Q[l,m]]}
\hline
{\huge \faIcon{envelope}} \hspace{0.5em} & xxx\\\\
\hline
{\huge \faIcon{phone-square-alt}} \hspace{0.5em} & xxx\\\\
{\huge \faIcon{trophy}} \hspace{0.5em} & xxx y.o.\\\\
{\huge \faIcon{map-marker-alt}} \hspace{0.5em} & xxx
\end{tblr}
\end{document}
答案1
当涉及单行文本时,垂直居中定义不明确:您如何看待垂直居中?对于小写字母?或者那些既没有上升部也没有下降部?或者那些两者都有?
另一方面,fontawesome
符号对于其所在位置有不同的看法:
\_\faIcon{envelope}\_\faIcon{phone-square-alt}\_\faIcon{trophy}\_\faIcon{map-marker-alt}\_
为此,我重新定义了\_
命令,以便在其顶部边缘精确显示基线。
一个答案可能是将数学轴作为垂直中心,分数线就位于其上。如图所示,数学轴位于大写 X 的中心。
\documentclass{article}
%\usepackage[utf8]{inputenc}
\usepackage{fontawesome5}
\newcommand{\myfa}[1]{%
$\vcenter{\hbox{\huge\faIcon{#1}}}$%
}
\begin{document}
\begin{tabular}{c@{}cl}
$\frac{\quad}{}$&
\myfa{envelope}\hspace{0.5em} & Xyz\\\\
$\frac{\quad}{}$&
\myfa{phone-square-alt}\hspace{0.5em} & Xyz\\\\
$\frac{\quad}{}$&
\myfa{trophy}\hspace{0.5em} & Xyz y.o.\\\\
$\frac{\quad}{}$&
\myfa{map-marker-alt}\hspace{0.5em} & Xyz
\end{tabular}
\end{document}
答案2
array.sty
这可以通过使用和列格式来实现m
。并且MWE
是:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{fontawesome5}
\usepackage{array}
\begin{document}
\begin{tabular}{m{5pc}m{5pc}}%change the value as you like
{\huge \faIcon{envelope}} \hspace{0.5em} & xxx\\\\
{\huge \faIcon{phone-square-alt}} \hspace{0.5em} & xxx\\\\
{\huge \faIcon{trophy}} \hspace{0.5em} & xxx y.o.\\\\
{\huge \faIcon{map-marker-alt}} \hspace{0.5em} & xxx
\end{tabular}
\end{document}
答案3
使用 TikZ 矩阵的可能解决方案:
\documentclass{article}
%\usepackage[utf8]{inputenc}%no more needed
\usepackage{fontawesome5}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix[
matrix of nodes,
column 1/.style={nodes={font=\huge, anchor=center}},
column 2/.style={nodes={anchor=west}}
]
{
\faIcon{envelope} &[.5em] xxx\\
\faIcon{phone-square-alt} & xxx\\
\faIcon{trophy} & xxx y.o.\\
\faIcon{map-marker-alt} & xxx\\
};
\end{tikzpicture}
\end{document}
答案4
这不是一个好的解决方案,但是您可以手动将第二列的文本稍微提高一点:
\documentclass{article}
\usepackage{fontawesome5}
\usepackage{xcolor}
\usepackage{tabularray}
\usepackage{graphicx}
\begin{document}
\begin{tblr}{
colspec={c|[1cm,white]l},
column{1}={font=\huge},
}
\faIcon{envelope} & \raisebox{1.4ex}{xxx}\\
\faIcon{phone-square-alt} & \raisebox{1.4ex}{xxx}\\
\faIcon{trophy} & \raisebox{1.4ex}{xxx y.o.}\\
\faIcon{map-marker-alt} & \raisebox{1.4ex}{xxx}\\
\end{tblr}
\end{document}
(红线只是为了直观)