表格居中并水平对齐

表格居中并水平对齐

如何轻松使表格中的文本和图像水平和垂直对齐?我希望每个单元格内的每部分内容都放在中间。

我还想删除列出的项目前面的点,我尝试了[]下一个\begin itemize,但没有成功。

以下是当前代码显示的表格(请注意图像与水平线重叠): 请注意,表格中的图像与 \hline 重叠,这是不应该发生的。

以下是该文档所使用的软件包:

    \documentclass[twoside, openright, 12pt, a4paper]{book}

    \usepackage[T1]{fontenc}
    \usepackage[Swedish]{babel}
    \usepackage[utf8x]{inputenc}
    \usepackage[a4paper, margin=2cm]{geometry}
    \usepackage{color}
    \usepackage{graphicx}
    \usepackage{times}
    \usepackage{etoolbox}
    \usepackage{fancyhdr}
    \usepackage{enumitem}
    \usepackage{indentfirst}
    \usepackage{titlesec}
    \usepackage{hyperref}
    \usepackage{epstopdf}
    \usepackage{amsmath}
    \usepackage{subfigure}
    \usepackage{amssymb}
    \usepackage{epstopdf}
    \usepackage{enumitem}
    \usepackage{multirow}
    \usepackage{array}
    \usepackage{textcomp}
    \usepackage{gensymb}
    \usepackage{upgreek}
    \usepackage{float}
    %Paket som jag själv lagt in
    \usepackage{todonotes}
    \usepackage{mathtools}
    \usepackage{array}

    %\usepackage{tabularx}
    %\usepackage{titlesec}
    %\newcommand{\sectionbreak}{\clearpage}


    \renewcommand{\chaptername}{}

    \begin{document}

这是我用于该表的代码:

\begin{table}[H]

\caption{Upplag med symbol, förskjutningsvillkor och upplagskrafter. Förskjutning i horisontal- och vertikalled samt vinkeländring (rotation) betecknas med   $u$, $v$ respektive $\Theta$.}
\begin{center}
\begin{tabular}{| c | c | c | c |}
\hline
\textbf{Beteckning} & \textbf{Symbol} & \textbf{Förskjutningsvillkor} & \textbf{Upplagskrafter}\\
\hline
Fixlager
&
\includegraphics[width=0.08\textwidth]{Upplag2.PNG}
&
\begin{minipage}[t]{0.4\textwidth}
\begin{itemize}[]
\item $ u = 0$
\item $ v = 0$
\end{itemize}
\end{minipage}
&
\includegraphics[width=0.09\textwidth]{Upplag5.PNG}\\
\hline
Rullager
&
\includegraphics[width=0.14\textwidth]{Upplag1.PNG}
&
\begin{minipage}[t]{0.4\textwidth}
\begin{itemize}[]
\item $ v = 0$
\end{itemize}
\end{minipage}
&
\includegraphics[width=0.09\textwidth]{Upplag4.PNG}\\
\hline
Fast inspänning
&
\includegraphics[width=0.07\textwidth]{Upplag3.PNG}
&
\begin{minipage}[t]{0.4\textwidth}
\begin{itemize}[]
\item $ u = 0$
\item $ v = 0$
\item $ \Theta $
\end{itemize}
\end{minipage}
&
\includegraphics[width=0.09\textwidth]{Upplag6.PNG}\\
\hline

\end{tabular}
\end{center}
\end{table} 

\end{document}

诚挚的埃米尔·尼尔森

答案1

如果您不想在第 3 列的列表中添加任何类型的标签,那么它实际上不是一个列表,因此我建议使用 \makecell允许在标准单元格中换行的命令。您可以定义水平内容的垂直对齐(默认为cc)。要将图像居中,adjustbox\adjincludegraphics一个接受valign键的命令。最后,我们必须向单元格添加一些垂直填充,以便图像不会接触水平线。cellspace为此,定义最小单元格顶部和底部的填充。

因此我提出以下代码:

    \documentclass[twoside, 12pt, a4paper, swedish]{book}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{newtxtext, newtxmath} 
    \usepackage[a4paper, margin=2cm]{geometry}
    \usepackage{babel} 
    \usepackage[demo]{adjustbox}
   \usepackage{float, caption, makecell, cellspace}
    \setlength{\cellspacetoplimit}{4pt}
    \setlength{\cellspacebottomlimit}{4pt}

    \begin{document}

    \begin{table}[H]
    \renewcommand{\cellalign}{lc}
    \adjustboxset{valign=c}
    \caption{Upplag med symbol, förskjutningsvillkor och upplagskrafter. Förskjutning i horisontal- och vertikalled samt vinkeländring (rotation) betecknas med $u$, $v$ respektive $\Theta$.}
    \centering
    \begin{tabular}{| Sc | Sc | Sl | Sc |}
    \hline
    \textbf{Beteckning} & \textbf{Symbol} & \textbf{Förskjutningsvillkor} & \textbf{Upplagskrafter}\\
    \hline
    Fixlager
    & \adjincludegraphics[width=0.08\textwidth]{Upplag2.PNG}
    &
   $ \makecell{ u = 0\\ v = 0} $
    & \adjincludegraphics[width=0.09\textwidth]{Upplag5.PNG}\\
    \hline
    Rullager
    & \adjincludegraphics[width=0.14\textwidth]{Upplag1.PNG}
    & $ v = 0$
    & \adjincludegraphics[width=0.09\textwidth]{Upplag4.PNG}\\
    \hline
    Fast inspänning
    & \adjincludegraphics[width=0.07\textwidth]{Upplag3.PNG}
    & $ \makecell{ u = 0 \\ v = 0 \\ \Theta} $
    & \adjincludegraphics[width=0.09\textwidth]{Upplag6.PNG}\\
    \hline
    \end{tabular}
    \end{table}

    \end{document} 

在此处输入图片描述

无关注释:您加载了一些过时的软件包:times不支持数学运算,因此任何公式都将使用 Computer Modern 输入,而且字体的混合看起来很难看。在我的代码中newtxtext, newtxmath,我将其替换为基于 Times 克隆的:TeX Gyre Termes

subfigure 包也已过时,不再维护。您应该使用subfigure来自 的环境subcaption

最后,您不必amsmath在加载时加载mathtools ,因为后者会为您完成,hyperref应作为最后一个包加载(异常cleveref应在之后加载)。并且不要加载两次包!

相关内容