我有一个简单的图形,我想用表格制作,但为了使它工作,我需要将文本扩展到表格单元格之外 - 通过负边距之类的东西 - 这可能吗?具体来说,表格的底行 (0,c,r) 应该与上方的垂直边框对齐 - 目前也略微位于每个边框的右侧。图形表示数字线。
\documentclass[11pt]{article}
\usepackage{array}
\usepackage[math]{cellspace}
\begin{document}
\begin{table}[!htdp]
\begin{center}
\begin{tabular}{Sc m{5cm} m{5cm}}
\cline{2-3}
$\dfrac{1}{x}$ & \multicolumn{1}{|c}{F} & \multicolumn{1}{|c|}{O} \\
\cline{2-3}
0 & \flushright{c} & \flushright{r} \\
\end{tabular}
\end{center}
\end{table}
\end{document}
答案1
含包装mathtools
:
\documentclass[11pt]{article}
\usepackage{mathtools}
\usepackage{array}
\usepackage[math]{cellspace}
\begin{document}
\begin{table}[!htdp]
\begin{center}
\begin{tabular}{Sc @{\clap{0}} m{5cm} @{$\mathclap{c}$} m{5cm} @{$\mathclap{r}$}}
\cline{2-3}
\multicolumn{1}{c}{$\dfrac{1}{x}$} & \multicolumn{1}{|c}{F} & \multicolumn{1}{|c|}{O} \\
\cline{2-3}
&&
\end{tabular}
\end{center}
\end{table}
\end{document}
请注意,这\clap{text}
是排版为普通文本,这$\mathclap{\alpha}$
是排版为内联数学。它们都创建了零宽度的框,条目居中。
答案2
我找到了如何使用图形包来实现这一点。我仍然对是否有使用表格的方法感兴趣。
\documentclass[11pt]{article}
\usepackage{array}
\usepackage[math]{cellspace}
\usepackage{tikz}
\definecolor{fillcolour}{HTML}{eeeeee}
\begin{document}
\begin{tikzpicture}
\draw (5,0) -- (5,1);
\draw (0,0) rectangle (10,1);
\draw [fill=fillcolour] (0,0) rectangle (5,1);
\node at (2.5,.5) {F};
\node at (7.5,.5) {O};
\node at (-0.5,0.5) {$\dfrac{1}{x}$};
\node at (0,-0.5) {0};
\node at (5,-0.5) {c};
\node at (10,-0.5) {r};
\end{tikzpicture}
\end{document}
答案3
和tabularx
:
\documentclass[11pt]{article}
\usepackage{amsmath} %% showframe just for demo
\usepackage{tabularx}
\usepackage[table]{xcolor}
\begin{document}
\noindent\arrayrulewidth1pt
\begin{tabularx}{\textwidth}{>{\hsize=0.05\hsize}XXX}
\cline{2-3}
\noalign{\vspace{\arrayrulewidth}}
\raggedleft$\dfrac{1}{x}$ & \multicolumn{1}{|c}{\cellcolor{gray!30} F} & \multicolumn{1}{|c|}{O} \\ \cline{2-3}
\noalign{\vspace{2ex}}
\makebox[\dimexpr\hsize+1.5\tabcolsep][r]{0} & \makebox[\dimexpr\hsize+1.5\tabcolsep][r]{c} & \makebox[\dimexpr\hsize+1.5\tabcolsep][r]{r}
\end{tabularx}
\end{document}
答案4
{NiceTabular}
这是一个使用nicematrix
和 TikZ 来放置0
和c
到r
它们的位置的解决方案。
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
\renewcommand{\arraystretch}{1.3}
\begin{NiceTabular}{w{c}{5cm}w{c}{5cm}}[first-col,hvlines]
$\frac{1}{x}$ & F & O \\
\CodeAfter
\begin{tikzpicture}
\node at (2-|1) [below] { \small $0$ } ;
\node at (2-|2) [below] { \small $\strut c$ } ;
\node at (2-|3) [below] { \small $\strut r$ } ;
\end{tikzpicture}
\end{NiceTabular}
\end{document}