我尝试使用 \textwidth 将表格精确地放在边距之间。不幸的是,当我使用 \textwidth 时,我的表格太大了,我不知道为什么。(我的代码是针对 django 模板的,但我也在 TexStudio 中检查它)。
我正在尝试制作这样的表格(请注意,18cm 是我的 \textwidth,因为我有 a4paper 并且左右边距 = 1,5cm)
\begin{tabular}{|p{18cm}|}
\hline
aaa\\
\hline
\end{tabular}
\begin{tabular}{|p{.08\textwidth}|p{.08\textwidth}|p{.08\textwidth}|p{.08\textwidth}|p{.16\textwidth}|p{.2\textwidth}|p{.2\textwidth}|p{.12\textwidth}|}
\hline
PWM & O2 & CO & CO2 & Temp. spalin & Ciśni. gaz przed EV & Ciśn gazu ze EV & Prąd jon. \\ \hline
- & \% & ppm & \% & oC & mbar & mbar & microA \\ \hline
& & & & & & & \\ \hline
\end{tabular}
所有宽度总和为 1,但表格太宽(当我以厘米为单位指定宽度时,结果相同)。在序言中,我将其用于整个文档,但无论是否注释掉它都无关紧要:
\setlength{\parindent}{0cm}
全部序言:
\documentclass[8pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[left=1.50cm, right=1.50cm, top=1.50cm, bottom=1.50cm, width=18cm]{geometry}
\usepackage{showframe}
\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{multirow}
\usepackage{titlesec}
\usepackage{hyperref}
\hypersetup{
colorlinks,
citecolor=black,
filecolor=black,
linkcolor=black,
urlcolor=black
}
\titleformat{\section}
{\normalfont\Large\bfseries\filcenter}{\thesection}
{0em}{}
% \usepackage{roboto}
% \usepackage[sfdefault, thin]{roboto}
\setlength{\parindent}{0cm}
\newcommand{\mySmallSkip}{\hspace*{10mm}}
\pagestyle{fancy}
%\usepackage{showframe}
\fancyhf{}
\renewcommand{\footrulewidth}{0.4pt}% default is 0pt
\textheight=160mm
答案1
p
列类型的参数说明可用的水平空间,而不是全部的列占用的水平空间。由于tabular
代码中的第二个环境包含 8 列和 9 个竖线符号,因此其总宽度为。对于和,1\textwidth+16\tabcolsep+9\arrayrulewidth
默认值分别为6pt
和,超出的宽度为-- 大约 1.4 英寸,或约 3.5 厘米。哎呀!0.4pt
\tabcolsep
\arrayrulewidth
\textwidth
99.6pt
你写了,
我正在尝试使用 让表格精确地位于边距之间
\textwidth
。
然后,一定要使用tabularx
或tabular*
环境并将其宽度设置为\textwidth
。
以下屏幕截图中的第一个表使用tabularx
列类型,并对全部 8 列使用列类型的居中版本X
。它计算相对的列宽如下。首先,注意 8 列的宽度必须满足 2:2:2:2:4:5:5:3 的比例。其次,和相对列宽必须等于 8,即 X 类型的列数。因此,25x=8,或 x=8/25=32/100。因此,相对列宽计算为 0.64(4 倍)、1.28、1.6(2 倍)和 0.96。
虽然第一个表格使用了\hline
指令和大量垂直条(实际上有 9 条!),但第二个表格表明,只需摆脱所有垂直条并使用间距适当的替代方案,就可以轻松实现巨大的美学改善\hline
。
由于自动换行实际上似乎并不需要,因此使用 确实tabularx
是一种过度杀伤。最后一张表显示了如何在tabular*
具有 8 个 LaTeX 基本c
列类型实例的环境中获得几乎相同的输出。这难道不比*{8}{c}
容易得多吗*{4}{C{0.64}} C{1.28} *{2}{C{1.6}} C{0.96}
?
无论您做什么,请使用诸如\mhchem
排版化合物名称的包和siunitx
排版科学单位的包。
\documentclass[a4paper]{article} % A4: 21cm wide
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[margin=1.5cm]{geometry}
\usepackage{tabularx,mhchem,siunitx,booktabs}
\newcolumntype{C}[1]{>{\centering\arraybackslash\hsize=#1\hsize}X}
\begin{document}
\setlength\tabcolsep{4pt} % for the first two tables
\noindent
\begin{tabularx}{\textwidth}{| *{4}{C{0.64}|} C{1.28}| *{2}{C{1.6}|} C{0.96} |}
\hline
PWM & \ce{O2} & \ce{CO} & \ce{CO2} & Temp.\ spalin & Ciśni.\ gaz przed EV & Ciśn gazu ze EV & Prąd jon. \\
\hline
-- & \% & ppm & \% & \si{\celsius} & \si{\milli\bar} & \si{\milli\bar} & \si{\micro\ampere} \\
\hline
\end{tabularx}
\vspace{1cm}
\noindent
\begin{tabularx}{\textwidth}{@{} *{4}{C{0.64}} C{1.28} *{2}{C{1.6}} C{0.96} @{}}
\toprule
PWM & \ce{O2} & \ce{CO} & \ce{CO2} & Temp.\ spalin & Ciśni.\ gaz przed EV & Ciśn gazu ze EV & Prąd jon. \\
\midrule
-- & \% & ppm & \% & \si{\celsius} & \si{\milli\bar} & \si{\milli\bar} & \si{\micro\ampere} \\
\bottomrule
\end{tabularx}
\vspace{1cm}
\setlength\tabcolsep{0pt}
\noindent
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} *{8}{c} }
\toprule
PWM & \ce{O2} & \ce{CO} & \ce{CO2} & Temp.\ spalin & Ciśni.\ gaz przed EV & Ciśn gazu ze EV & Prąd jon. \\
\midrule
-- & \% & ppm & \% & \si{\celsius} & \si{\milli\bar} & \si{\milli\bar} & \si{\micro\ampere} \\
\bottomrule
\end{tabular*}
\end{document}
答案2
这是表格的两个版本。在这两个版本中,我都使用了siunitx
单位包和chemformula
化学式包。在第一个表中,我已更正列宽计算以考虑\tabcolsep
和\arrayrulewidth
。在第二个表中,我使用了简单l
类型列,因为即使不使用类型列,表格也足够窄以适合文本宽度p
:
\documentclass[a4paper]{article} % removed invalid 8pt option
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[margin=1.50cm]{geometry} % summarized left=1.50cm, right=1.50cm, top=1.50cm, bottom=1.50cm to margin=1.50cm
\usepackage{showframe}
\usepackage{siunitx} % used for \si{...} command
\usepackage{chemformula} % added for \ch{...} command
\usepackage{calc}
\setlength{\parindent}{0cm}
\begin{document}
\begin{tabular}{|*{4}{p{.08\textwidth-2\tabcolsep-\arrayrulewidth}|}
p{.16\textwidth-2\tabcolsep-\arrayrulewidth}|
p{.2\textwidth-2\tabcolsep-\arrayrulewidth}|
p{.2\textwidth-2\tabcolsep-\arrayrulewidth}|
p{.12\textwidth-2\tabcolsep-2\arrayrulewidth}|}
\hline
PWM & \ch{O2} & CO & \ch{CO2} & Temp. spalin & Ciśni. gaz przed EV & Ciśn gazu ze EV & Prąd jon. \\ \hline
- & \si{\percent} & \si{ppm} & \% & \si{\celsius} & \si{mbar} & \si{mbar} & \si{\micro\ampere} \\ \hline
& & & & & & & \\ \hline
\end{tabular}
\begin{tabular}{|l|l|l|l|l|l|l|l|}
\hline
PWM & \ch{O2} & CO & \ch{CO2} & Temp. spalin & Ciśni. gaz przed EV & Ciśn gazu ze EV & Prąd jon. \\ \hline
- & \si{\percent} & \si{ppm} & \% & \si{\celsius} & \si{mbar} & \si{mbar} & \si{\micro\ampere} \\ \hline
& & & & & & & \\ \hline
\end{tabular}
\end{document}