我还有另一个问题,希望您能帮忙。我想在表格中设置填充/间距,但只在单元格的右侧。当我设置时\setlength{\tabcolsep}{5pt}%
,填充也会在两侧。
所以,我的问题是,有没有办法只在单元格的一侧设置填充?
这是我现在拥有的一个例子,您可以看到,从名称到下一个单元格的间距非常小。
\documentclass[10pt,a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[paper=a4paper,left=20mm,right=20mm,top=15mm,bottom=15mm]{geometry}
\setlength{\parindent}{0pt}
\begin{document}
{\huge Information} \hfill \today \\
\begin{figure}[h]
\sffamily
\begin{minipage}[t]{13cm}
\renewcommand{\arraystretch}{1.4}
\setlength{\tabcolsep}{0pt}%
\begin{tabular}{p{2.5cm}p{4cm}p{2.5cm}p{4cm}}
\textbf{Personalnr.:} &101 &\textbf{Gesch.-St.:} &1 \\
\textbf{Nachname:} &BrahamanenSiddhartha123 &\textbf{Kost.-St.: } &900 \\
\textbf{Vorname:} &Chandrakanta Umashankar &\textbf{Geschlecht:} &männlich \\
\end{tabular}
\end{minipage}
\hfill
\begin{minipage}[t]{3cm}
\vspace{8pt}
%\includegraphics[height=5cm]{personalbild.png}
\end{minipage}
\end{figure}
\end{document}
答案1
每tabular
列在实际单元格内容的左右两侧都有一个空格——这个空格的宽度通常用 指定\tabcolsep
,默认值为6pt
。这些空格与单元格内容一起构成全细胞。
可以使用@{}
说明符完全擦除该空间:
例如:(请同时查看图片)
\begin{tabular}{llll}
会有8
\tabcolsep
空格( 的左右两侧l
)
\begin{tabular}{@{}l@{}@{}l@{}@{}l@{}@{}l@{}
不会有这样的空间,它很紧。@{}
指定符的权利l
属于那个指定符,而不是下一个指定符!
但是@{}
可以用来设置另一个跳过,比如@{\hskip5pt}
另一个间距。
如果有垂直线,则每增加一条垂直线,表格的宽度就会增加\arrayrulewidth
。(我省略了上图中的线条——显示的边框只是为了更好的印象,并不代表表格的潜在垂直线)
我已经这样做了,并明确引入了垂直线,只是为了展示效果,而不是为了真正的运行!
此外,我删除了minipage
并添加了\usepackage[utf8]{inputenc}
(用于单元格垂直间距\usepackage{cellspace}
可能有用,但我省略了它)
关于表格设计还有什么评论吗→OP!
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[paper=a4paper,left=20mm,right=20mm,top=15mm,bottom=15mm]{geometry}
\setlength{\parindent}{0pt}
\begin{document}
{\huge Information} \hfill \today \\
\begin{figure}[h]
\sffamily
\renewcommand{\arraystretch}{1.4}
% \setlength{\tabcolsep}{0pt}%
\begin{tabular}{|p{2.5cm}|p{4cm}|p{2.5cm}|p{4cm}|}
\textbf{Personalnr.:} &101 &\textbf{Gesch.-St.:} &1 \\
\textbf{Nachname:} &BrahamanenSiddhartha123 &\textbf{Kost.-St.: } &900 \\
\textbf{Vorname:} &Chandrakanta Umashankar &\textbf{Geschlecht:} &männlich \\
\end{tabular}
\begin{tabular}{|p{2.5cm}@{\hskip5pt}|p{4cm}@{\hskip5pt}|p{2.5cm}@{\hskip5pt}|p{4cm}@{\hskip5pt}|}
\textbf{Personalnr.:} &101 &\textbf{Gesch.-St.:} &1 \\
\textbf{Nachname:} &BrahamanenSiddhartha123 &\textbf{Kost.-St.: } &900 \\
\textbf{Vorname:} &Chandrakanta Umashankar &\textbf{Geschlecht:} &männlich \\
\end{tabular}
\hfill
\vspace{8pt}
%\includegraphics[height=5cm]{personalbild.png}
\end{figure}
\end{document}
答案2
我建议您设置\tabcolsep
为3pt
(默认值:),并通过如下方式6pt
设置环境强制 LaTeX 不在第一列的左侧或最后一列的右侧插入空格:tabular
\begin{tabular}{@{} *{2}{p{2.5cm}p{4cm}} @{}}
粒子@{}
的作用是抑制相应位置的空白。
顺便说一句,我还将放弃环境minipage
中的环境,并用宽度的环境figure
替换环境。figure
minipage
\textwidth
重新编写的示例的输出如下所示:
\documentclass[10pt,a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[paper=a4paper, hmargin=20mm, vmargin=15mm]{geometry}
\setlength{\parindent}{0pt}
\usepackage[demo]{graphicx} % omit "demo" option in real document
\begin{document}
{\huge Information} \hfill \today
\bigskip
\begin{minipage}{\textwidth}
\sffamily
%\begin{minipage}[t]{13cm}
\renewcommand{\arraystretch}{1.4}
\setlength{\tabcolsep}{3pt} % default value: 6pt
\begin{tabular}{@{} *{2}{p{2.5cm}p{4cm}} @{}}
\textbf{Personalnr.:} &101 &\textbf{Gesch.-St.:} &1 \\
\textbf{Nachname:} &BrahamanenSiddhartha123 &\textbf{Kost.-St.: } &900 \\
\textbf{Vorname:} &Chandrakanta Umashankar &\textbf{Geschlecht:} &männlich \\
\end{tabular}
%%\end{minipage}
%%\hfill
%%\begin{minipage}[t]{3cm}
\vspace{8pt}
\includegraphics[height=5cm]{personalbild.png}
%%\end{minipage}
\end{minipage}
\end{document}