我正在创建一个包含多个外国名字的表变音符号在其中,而且我觉得它们破坏了垂直对齐,因为它们太靠近顶部水平线。我应该如何正确地将它们居中?虚构的首字母缩略词是否O\'O\"O\H{O}
正确地呈现自超调观点,还是应该把首字母O
稍微往上移一点?
\documentclass{article}
\begin{document}
\begin{table}[!h]
\begin{tabular}{|c|c|c|c|c|c|}
\hline
\"Ostersund & \AA m\aa l & Oxel\"osund & Alings\aa s & \'Orlaith &O\'O\"O\H{O}\\
\hline
\end{tabular}
\end{table}
\end{document}
答案1
我认为最好的方法是停止使用\hline
——并且在使用时,放弃所有竖线——并使用booktabs
包的线条绘制宏。对于手头的表格,应该使用和\toprule
。\bottomrule
如果由于某种原因您必须使用垂直线(因此不能使用\toprule
和\bottomrule
),我建议您加载array
包并将的长度设置\extrarowheight
为2pt
或之类的值3pt
。
\documentclass{article}
\usepackage{array,booktabs}
\begin{document}
%% original form
\begin{tabular}{|c|c|c|c|c|c|}
\hline
\"Ostersund & \AA m\aa l & Oxel\"osund & Alings\aa s & \'Orlaith & O\'O\"O\H{O}\\
\hline
\end{tabular}
\medskip
%% with rule-drawing macros of the booktabs package
\begin{tabular}{cccccc}
\toprule
\"Ostersund & \AA m\aa l & Oxel\"osund & Alings\aa s & \'Orlaith & O\'O\"O\H{O}\\
\bottomrule
\end{tabular}
\medskip
%% with \extrarowheight set to 3pt
\setlength\extrarowheight{3pt}
\begin{tabular}{|c|c|c|c|c|c|}
\hline
\"Ostersund & \AA m\aa l & Oxel\"osund & Alings\aa s & \'Orlaith & O\'O\"O\H{O}\\
\hline
\end{tabular}
\end{document}
答案2
问题不在于变音符号,而在于 LaTeX 表格。您可以使用cellspace
包为行添加一些垂直填充,以确保最小单元格与上方和下方规则之间的垂直距离。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{array, cellspace}
\setlength\cellspacetoplimit{3pt}
\setlength\cellspacebottomlimit{3pt}
\begin{document}
\begin{table}[!h]
\begin{tabular}{|*{6}{Sc|}}
\hline
\"Ostersund & \AA m\aa l & Oxel\"osund & Alings\aa s & \'Orlaith &O\'O\"O\H{O}\\
\hline
\end{tabular}
\end{table}
\end{document}
答案3
答案4
选项1:行特定填充
可以向行的给定元素添加一个\stackgap
,这会按可选参数的量(默认为 3pt)垂直填充元素。下面的 MWE 显示了分别用 1pt、3pt 和 5pt 填充的 3 行。
\documentclass{article}
\usepackage{stackengine}
\begin{document}
\begin{table}[!h]
\begin{tabular}{|c|c|c|c|c|c|}
\hline
\addstackgap[1pt]{\"Ostersund} & \AA m\aa l & Oxel\"osund & Alings\aa s & \'Orlaith &O\'O\"O\H{O}\\
\hline
\addstackgap[3pt]{\"Ostersund} & \AA m\aa l & Oxel\"osund & Alings\aa s & \'Orlaith &O\'O\"O\H{O}\\
\hline
\addstackgap[5pt]{\"Ostersund} & \AA m\aa l & Oxel\"osund & Alings\aa s & \'Orlaith &O\'O\"O\H{O}\\
\hline
\end{tabular}
\end{table}
\end{document}
选项 2:统一(和自动)填充
另一种方法是,如果希望每行使用相同的填充,则使用tabularx
和>{}
功能自动填充内容,具体来说,
>{\addstackgap[2pt]{\vphantom{\"Xg}}}
它向高度和深度为 的内容添加一个 2pt 缓冲区\"Xg
,该缓冲区被选择来表示典型的变音修改文本的垂直范围:
\documentclass{article}
\usepackage{stackengine}
\usepackage{tabularx}
\begin{document}
\begin{table}[!h]
\begin{tabular}{|>{\addstackgap[2pt]{\vphantom{\"Xg}}}c|c|c|c|c|c|}
\hline
\"Ostersund & \AA m\aa l & Oxel\"osund & Alings\aa s & \'Orlaith &O\'O\"O\H{O}\\
\hline
\"Ostersund & \AA m\aa l & Oxel\"osund & Alings\aa s & \'Orlaith &O\'O\"O\H{O}\\
\hline
\"Ostersund & \AA m\aa l & Oxel\"osund & Alings\aa s & \'Orlaith &O\'O\"O\H{O}\\
\hline
\end{tabular}
\end{table}
\end{document}