如何使居中对齐列中的文本左对齐?

如何使居中对齐列中的文本左对齐?

在此处输入图片描述

就像照片一样,每个文本都按列居中对齐,但“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}

相关内容