我用 LaTeX 编写了一个表格tabular
,并且想将一列垂直居中。
这是我的代码:
\documentclass{11pt}{article}
\usepackage{pst-all}
\usepackage{pstricks-add}
% to choose length and the left/right/center text
\usepackage{array,multirow,makecell}
\setcellgapes{1pt}
\makegapedcells
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash }b{#1}}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash }b{#1}}
\newcolumntype{C}[1]{>{\centering\arraybackslash }b{#1}}
\renewcommand{\arraystretch}{1.6}
\begin{tabular}{|C{2cm}|C{2cm}|C{6cm}|C{3cm}|C{3cm}|}
\hline
$I$ & $J$ & $\textrm{Représentation graphique}$ & $I\cap J$ & $I \cup J$ \\
\hline
$]-4;5]$ & $[0;6[$ & \psset{xunit=0.4cm, yunit=0cm, yAxis=false} %scales the picture, removes the y-axis
\begin{pspicture}(-5,0)(7,0)
\psaxes[Dx=2, subticks=0]{->}(0,0)(-5,0)(7,0) %creates axes
\psline[linewidth=1pt, linecolor=red]{]-]}(-4,0)(5,0)
\psline[linewidth=1pt, linecolor=blue]{[-[}(0,0)(6,0)
\end{pspicture} & $[0;5]$ & $]-4;6[$ \\
\hline
\end{tabular}
\end{document}
但是我的间隔超出了界限,我注意到文本实际上没有垂直居中。
我该如何解决这个问题?我的意思是,我不想写很长的行来解决我的问题。
答案1
(1) 表格本身超出了文本的宽度。使用tabularx
计算所选列的宽度以使表格适合文本宽度的包可以轻松修复此问题。
(2) pspicture
可以使用可选的 进行移位[shift=<number>]
。
% !TeX TS-program =xelatex
\documentclass[11pt]{article}
\usepackage{pst-all}
\usepackage{pstricks-add}
\usepackage{array}
\newcolumntype{C}[1]{>{\centering\arraybackslash }b{#1}}
\usepackage{tabularx}% added <<<<<<<<<
\newcolumntype{W}{>{\centering\arraybackslash}X} % added <<<<<<<<<
\usepackage{showframe} % ONLY to show the magins <<<<<<<<<
\begin{document}
\renewcommand{\arraystretch}{1.8}
\noindent\begin{tabularx}{\textwidth}{|W|W|C{6cm}|W|W|}
\hline
$I$ & $J$ & Représentation graphique & $I\cap J$ & $I \cup J$ \\
\hline
$]-4;5]$ & $[0;6[$ & \psset{xunit=0.4cm, yunit=0cm, yAxis=false} %scales the picture, removes the y-axis
\begin{pspicture}[shift=0.3](-5,0)(7,0)
\psaxes[Dx=2, subticks=0]{->}(0,0)(-5,0)(7,0) %creates axes
\psline[linewidth=1pt, linecolor=red]{]-]}(-4,0)(5,0)
\psline[linewidth=1pt, linecolor=blue]{[-[}(0,0)(6,0)
\end{pspicture} & $[0;5]$ & $]-4;6[$ \\[0.7ex]% increase the height of the row
\hline
\end{tabularx}
\end{document}