更新 1

更新 1

如何将这条垂直线对齐在多列的末尾?

我搜索了一下,但找不到这个问题的答案。这源于如何修复此包数组错误:只允许一个列规范?

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}

\usepackage[T1]{fontenc}
\usepackage[brazil]{babel}
\usepackage[a4paper, margin=2cm]{geometry}

\usepackage{newtxtext,newtxmath}
\usepackage{array,ragged2e,tabularx,multirow}

\begin{document}

\section{Custos}

    \begin{tabular}
    {|
        *1{@{\hspace{3.0pt}}>{ \RaggedRight\arraybackslash\hsize=1.1\hsize }p{3.9cm}|} % Item
        *1{@{\hspace{3.0pt}}>{ \RaggedRight\arraybackslash\hsize=1.1\hsize }p{1.9cm}|} % Quantidade
        *1{@{\hspace{3.0pt}}>{ \RaggedRight\arraybackslash\hsize=1.1\hsize }p{3.0cm}|} % Valor
        *1{@{\hspace{3.0pt}}>{ \RaggedRight\arraybackslash\hsize=1.1\hsize }p{2.6cm}|} % Valor
    }

        \hline Item &   Quantidade  &   Valor Unitário (R\$) & Valor Total (R\$) \\ \hline
        Total       & \multicolumn{2}{c|}{}                  & 165,00            \\ \hline

    \end{tabular}

\end{document}

更新 1

我发现另一个问题似乎有同样的问题,但很难理解他们做了什么来解决这个问题。我必须打开我的 diff 程序来比较原始代码和修复后的代码:

  1. 为什么我的多列单元格周围的线条未对齐?

在此处输入图片描述

右边是固定代码,左边是原始代码。

该表的内容如下:

在此处输入图片描述

变成这样:

在此处输入图片描述


更新 2

经过@大卫·卡莱尔评论,我发现上面提到的问题Update 1与这个不同:

编辑后的问题完全不同,请不要以这种方式更改问题,导致所有已发布的答案无效。添加的问题是将 | 放在单元格边界错误的一侧的常见问题,原始问题与此无关,只是关于你对

答案1

您的序言掩盖了必要的列规范:

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}

\usepackage[T1]{fontenc}
\usepackage[brazil]{babel}
\usepackage[a4paper, margin=2cm]{geometry}

\usepackage{newtxtext,newtxmath}
\usepackage{array,ragged2e,tabularx,multirow}

\begin{document}

\section{Custos}

    \begin{tabular}
    {|
        *1{@{\hspace{3.0pt}}>{ \RaggedRight\arraybackslash\hsize=1.1\hsize }p{3.9cm}|} % Item
        *1{@{\hspace{3.0pt}}>{ \RaggedRight\arraybackslash\hsize=1.1\hsize }p{1.9cm}|} % Quantidade
        *1{@{\hspace{3.0pt}}>{ \RaggedRight\arraybackslash\hsize=1.1\hsize }p{3.0cm}|} % Valor
        *1{@{\hspace{3.0pt}}>{ \RaggedRight\arraybackslash\hsize=1.1\hsize }p{2.6cm}|} % Valor
    }

        \hline Item &   Quantidade  &   Valor Unitário (R\$) & Valor Total (R\$) \\ \hline
        Total       & \multicolumn{2}{c|@{\hspace{3.0pt}}}{}                  & 165,00            \\ \hline

    \end{tabular}

\end{document}

我把它留在了,\hsize=1.1\hsize但它完全是错的!正如问题下的评论,@这里的用法是使垂直规则不再以列间空间为中心。

答案2

您在这里把事情搞得太复杂了。如果您需要调整,只需用tabcolsep覆盖默认值即可。4pt\setlength{\tabcolsep}{3pt}

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}

\usepackage[T1]{fontenc}
\usepackage[brazil]{babel}
\usepackage[a4paper, margin=2cm]{geometry}

\usepackage{newtxtext,newtxmath}
\usepackage{array,ragged2e,tabularx,multirow}

\newcolumntype{R}[1]{>{\RaggedRight}p{#1}}
\setlength{\tabcolsep}{3pt}
\begin{document}

\section{Custos}

\begin{tabular}
    {| R{3.9cm}| % Item
       R{1.9cm}| % Quantidade
       R{3.0cm}| % Valor
       R{2.6cm}| % Valor
    }
    \hline 
    Item    & Quantidade    &   Valor Unitário (R\$) & Valor Total (R\$) \\ \hline
    Total   & \multicolumn{2}{c|}{}                  & 165,00            \\ \hline
\end{tabular}

\end{document}

答案3

第一个问题的解决方案:

罪魁祸首是@{\hspace{3pt}},您在中没有使用它\multicolumn。但最好将 整个表设置为\tabcolsep3pt

\documentclass[12pt, brazil]{article}
\usepackage[utf8]{inputenc}

\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[a4paper, margin=2cm, showframe]{geometry}

\usepackage{newtxtext,newtxmath}
\usepackage{array,ragged2e,tabularx,multirow}

\begin{document}

\section{Custos}

{\setlength\tabcolsep{3pt}
    \begin{tabular}
    {|>{\RaggedRight\arraybackslash}p{3.9cm}|% Item
    >{\RaggedRight\arraybackslash}p{1.9cm}| % Quantidade
    >{\RaggedRight\arraybackslash}p{3.0cm}| % Valor
    >{\RaggedRight\arraybackslash}p{2.6cm}|} % Valor
        \hline %
        Item & Quantidade & Valor Unitário (R\$) & Valor Total (R\$) \\ %
        \hline
        Total & \multicolumn{2}{c|}{Lalala} & 165,00 \\ %
        \hline
    \end{tabular}}

\end{document} 

在此处输入图片描述

答案4

在此处输入图片描述

我添加了显示页面布局的geometry选项showframe。现在表格大小更加清晰可见,列样式定义也不再那么复杂。

梅威瑟:

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}

\usepackage[T1]{fontenc}
\usepackage[brazil]{babel}
\usepackage[showframe,
            a4paper, margin=2cm]{geometry}

\usepackage{newtxtext,newtxmath}
\usepackage{array,ragged2e,tabularx,multirow}

\newcolumntype{R}[1]{>{\RaggedRight}p{#1}}
%\setlength{\tabcolsep}{3pt}
\begin{document}

\section{Custos}

\begin{tabular}
    {| R{4cm}| % Item
       R{2cm}| % Quantidade
       R{3.5cm}| % Valor
       R{3cm}| % Valor
    }
    \hline
    Item    & Quantidade    &   Valor Unitário (R\$) & Valor Total (R\$) \\ \hline
    Total   & \multicolumn{2}{R{4.9cm}|}{}                  & 165,00            \\ \hline
\end{tabular}    
\end{document}

编辑: 也许你会喜欢下面的解决方案:

在此处输入图片描述

其中表的使用tabularx环境是:

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}

\usepackage[T1]{fontenc}
\usepackage[brazil]{babel}
\usepackage[showframe,
            a4paper, margin=2cm]{geometry}

\usepackage{newtxtext,newtxmath}
\usepackage{array,ragged2e,tabularx,multirow}
\newcolumntype{R}{>{\RaggedRight}X|}

\begin{document}

\section{Custos}

    \begin{tabularx}{\linewidth}
    {| >{\hsize=1.75\hsize}R   % Item
                           R   % Quantidade
       >{\hsize=1.25\hsize}R   % Valor
                           R   % Valor
    }
    \hline
Item    &   Quantidade            &   Valor Unitário (R\$)  & Valor Total (R\$) \\ \hline
Total   &   \multicolumn{2}{R}{}                            &   165,00            \\ \hline
    \end{tabularx}
\end{document}

相关内容