Как выровнять эту вертикальную линию в конце многоколоночного текста?
Я искал, но не смог найти ответ на такую проблему. Это было созданоКак исправить эту ошибку массива пакетов: разрешена только одна спецификация столбца?
\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, чтобы сравнить исходный код и исправленный код:
Справа — фиксированный код, слева — исходный код.
Эта таблица исходит из этого:
В это:
Обновление 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
. Но лучше установить \tabcolsep
для 3pt
всей таблицы:
\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}