就像照片一样,每个文本都按列居中对齐,但“ADC_CH115”的长度不同..所以我可以让它与其他文本左对齐,而其他文本仍然按列居中对齐吗?
另一个问题是,我曾经\\[-0.5em]
在表格中添加了一些 vspace,但它导致线条断开。我该如何修复它?
测试的 MWE:
\documentclass{article}
\usepackage{array}
\usepackage{caption}
\usepackage{tabularx}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{document}
\begin{table}[h]
\renewcommand\arraystretch{1.3}
\begin{tabularx}{\textwidth}{|Y|Y|Y|Y|}
\noalign{\hrule height 0.75pt}
\textsf{\bfseries Funktion} & \textsf{\bfseries STM32\_Pin} & \textsf{\bfseries Pin\_Name} & \textsf{\bfseries Pin\_Funktion} \\
\noalign{\hrule height 0.5pt}
ADC\_CH1 & PA0 & A0 & ADC1\_IN1 \\
ADC\_CH2 & PA1 & A1 & ADC1\_IN2 \\
ADC\_CH3 & PA2 & A7 & ADC1\_IN3 \\
ADC\_CH4 & PA3 & A2 & ADC1\_IN4 \\ \\[-0.5em]
ADC\_CH6 & PA4 & A3 & ADC2\_IN1 \\
ADC\_CH115 & PB1 & D6 & ADC1\_IN12 \\
ADC\_CH7 & PA6 & A5 & ADC2\_IN3 \\
ADC\_CH8 & PA7 & A6 & ADC2\_IN4 \\
\noalign{\hrule height 0.75pt}
\end{tabularx}
\end{table}
\end{document}
答案1
我建议你使用\rlap
使“多余”的数字突出到右侧,而不会影响其他居中操作。如果只有 1 或 2 个“多余”的数字,这种方法“有效”,幸运的是,这里的情况就是这样。
并且,而不是\\ \\[-0.5em]
,输入\\[1ex]
。
\documentclass{article}
\usepackage{caption}
\usepackage{tabularx} % 'tabularx' loads 'array' automatically
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{document}
\begin{table}[h]
\renewcommand\arraystretch{1.3}
\begin{tabularx}{\textwidth}{|Y|Y|Y|Y|}
\noalign{\hrule height 0.75pt}
\textsf{\bfseries Funktion} &
\textsf{\bfseries STM32\_Pin} &
\textsf{\bfseries Pin\_Name} &
\textsf{\bfseries Pin\_Funktion} \\
\noalign{\hrule height 0.5pt}
ADC\_CH1 & PA0 & A0 & ADC1\_IN1 \\
ADC\_CH2 & PA1 & A1 & ADC1\_IN2 \\
ADC\_CH3 & PA2 & A7 & ADC1\_IN3 \\
ADC\_CH4 & PA3 & A2 & ADC1\_IN4 \\[1ex]
ADC\_CH6 & PA4 & A3 & ADC2\_IN1 \\
ADC\_CH1\rlap{15} & PB1 & D6 & ADC1\_IN1\rlap{2} \\
ADC\_CH7 & PA6 & A5 & ADC2\_IN3 \\
ADC\_CH8 & PA7 & A6 & ADC2\_IN4 \\
\noalign{\hrule height 0.75pt}
\end{tabularx}
\end{table}
\end{document}
答案2
间隙问题可以这样解决:\ &&&[-0.5em](即使列为空,也必须保留列分隔符。)。如果没有幻像或类似的东西,一般的对齐问题会变得有点复杂,但可以通过添加幻像来解决:
\documentclass{article}
\usepackage{array}
\usepackage{caption}
\usepackage{tabularx}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{document}
\begin{table}[h]
\renewcommand\arraystretch{1.3}
\begin{tabularx}{\textwidth}{|Y|Y|Y|Y|}
\noalign{\hrule height 0.75pt}
\textsf{\bfseries Funktion} & \textsf{\bfseries STM32\_Pin} & \textsf{\bfseries Pin\_Name} & \textsf{\bfseries Pin\_Funktion} \\
\noalign{\hrule height 0.5pt}
ADC\_CH1 & PA0 & A0 & ADC1\_IN1 \\
ADC\_CH2 & PA1 & A1 & ADC1\_IN2 \\
ADC\_CH3 & PA2 & A7 & ADC1\_IN3 \\
ADC\_CH4 & PA3 & A2 & ADC1\_IN4 \\ &&&\\[-0.5em]
ADC\_CH6 & PA4 & A3 & ADC2\_IN1 \\
$\hphantom{15}$ADC\_CH115 & PB1 & D6 & $\hphantom{2}$ADC1\_IN12 \\
ADC\_CH7 & PA6 & A5 & ADC2\_IN3 \\
ADC\_CH8 & PA7 & A6 & ADC2\_IN4 \\
\noalign{\hrule height 0.75pt}
\end{tabularx}
\end{table}
\end{document}
第二种方法(分列):
\documentclass{article}
\usepackage{array}
\usepackage{caption}
\usepackage{tabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\newcolumntype{R}{>{\raggedleft\arraybackslash}X}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{document}
\begin{table}[h]
\renewcommand\arraystretch{1.3}
\begin{tabularx}{\textwidth}{|R@{\_}L|Y|Y|R@{\_}L|}
\noalign{\hrule height 0.75pt}
\multicolumn{2}{|c|}{\textsf{\bfseries Funktion}} & \textsf{\bfseries STM32\_Pin} & \textsf{\bfseries Pin\_Name}
& \multicolumn{2}{c|}{\textsf{\bfseries Pin\_Funktion}} \\
\noalign{\hrule height 0.5pt}
ADC&CH1 & PA0 & A0 & ADC1&IN1 \\
ADC&CH2 & PA1 & A1 & ADC1&IN2 \\
ADC&CH3 & PA2 & A7 & ADC1&IN3 \\
ADC&CH4 & PA3 & A2 & ADC1&IN4 \\ \multicolumn{2}{|c|}{}&&&\multicolumn{2}{c|}{}\\[-0.5em]
ADC&CH6 & PA4 & A3 & ADC2&IN1 \\
ADC&CH115 & PB1 & D6 & ADC1&IN12 \\
ADC&CH7 & PA6 & A5 & ADC2&IN3 \\
ADC&CH8 & PA7 & A6 & ADC2&IN4 \\
\noalign{\hrule height 0.75pt}
\end{tabularx}
\end{table}
\end{document}