如何轻松使表格中的文本和图像水平和垂直对齐?我希望每个单元格内的每部分内容都放在中间。
我还想删除列出的项目前面的点,我尝试了[]
下一个\begin itemize
,但没有成功。
以下是该文档所使用的软件包:
\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
应在之后加载)。并且不要加载两次包!