Проблема с горизонтальным выравниванием текста в ячейке при использовании пакета vcell в Latex

Здравствуйте уважаемое сообщество!

Подскажите, пожалуйста, как решить следующую проблему:

Я пытаюсь создать таблицу в Latex, в которой используется различное горизонтальное и вертикальное выравнивание. Для этого я использую пакет vcell. Но я заметил, что если указать горизонтальное выравнивание по центру, то текст выравнивается не правильно.

Например, если я использую следующий код

\documentclass{article}

\usepackage{vcell}
\usepackage{lipsum}
\usepackage{longtable}
\usepackage{array}
\usepackage{url}

\usepackage{geometry}
\geometry{
 a4paper,
 left=2 cm,
 top=2.75 cm,
 bottom=4 cm,
 right=2 cm,
 }

\begin{document}

\begin{longtable}[h!]{|>{\raggedright}p{9 cm}|>{\centering}p{3 cm}|>{\raggedright}p{3,5 cm}|}
\hline

\centering\vcell{File path} &\centering\vcell{Modification date}    &\centering\vcell{Content}  \tabularnewline   [-\rowheight]
\printcellmiddle            & \printcellmiddle              & \printcellmiddle          \tabularnewline  \hline

\vcell{\path{some\long\\path}}  &\vcell{24.03.2022\newline 08:28:04}    & \vcell{Some text from file}   \tabularnewline [-\rowheight]
\printcelltop               &\printcellmiddle               &\printcelltop          \tabularnewline  \hline

\vcell{\path{some\long\\path}}  &\vcell{24.03.2022\newline 08:28:04}    & \vcell{Some text from file}   \tabularnewline [-\rowheight]
\printcelltop               &\printcellmiddle               &\printcelltop          \tabularnewline  \hline

\vcell{\path{some\long\\path}}  &\vcell{24.03.2022\newline 08:28:04}    & \vcell{Some text from file}   \tabularnewline [-\rowheight]
\printcelltop               &\printcellmiddle               &\printcelltop          \tabularnewline  \hline

\vcell{\path{some\long\\path}}  &\vcell{24.03.2022\newline 08:28:04}    & \vcell{Some text from file}   \tabularnewline [-\rowheight]
\printcelltop               &\printcellmiddle               &\printcelltop          \tabularnewline  \hline
\end{longtable}

\end{document}

то я получаю следующий результат введите сюда описание изображения

Как видите выравнивание по центру в колонке "Modification date" не правильное. Но если я добавлю пустую строку (\newline) в конце этих ячеек, выравнивание станет правильным

\documentclass{article}

\usepackage{vcell}
\usepackage{lipsum}
\usepackage{longtable}
\usepackage{array}
\usepackage{url}

\usepackage{geometry}
\geometry{
 a4paper,
 left=2 cm,
 top=2.75 cm,
 bottom=4 cm,
 right=2 cm,
 }

\begin{document}

\begin{longtable}[h!]{|>{\raggedright}p{9 cm}|>{\centering}p{3 cm}|>{\raggedright}p{3,5 cm}|}
\hline

\centering\vcell{File path}     &\centering\vcell{Modification date}    &\centering\vcell{Content}  \tabularnewline   [-\rowheight]
\printcellmiddle            & \printcellmiddle              & \printcellmiddle          \tabularnewline  \hline

\vcell{\path{some\long\\path}}  &\vcell{24.03.2022\newline 08:28:04\newline}    & \vcell{Some text from file}   \tabularnewline [-\rowheight]
\printcelltop               &\printcellmiddle               &\printcelltop          \tabularnewline  \hline

\vcell{\path{some\long\\path}}  &\vcell{24.03.2022\newline 08:28:04\newline}    & \vcell{Some text from file}   \tabularnewline [-\rowheight]
\printcelltop               &\printcellmiddle               &\printcelltop          \tabularnewline  \hline

\vcell{\path{some\long\\path}}  &\vcell{24.03.2022\newline 08:28:04\newline}    & \vcell{Some text from file}   \tabularnewline [-\rowheight]
\printcelltop               &\printcellmiddle               &\printcelltop          \tabularnewline  \hline

\vcell{\path{some\long\\path}}  &\vcell{24.03.2022\newline 08:28:04\newline}    & \vcell{Some text from file}   \tabularnewline [-\rowheight]
\printcelltop               &\printcellmiddle               &\printcelltop          \tabularnewline  \hline
\end{longtable}

\end{document}

введите сюда описание изображения

Подскажите, пожалуйста, почему так происходит и как решить эту проблему? И как задать отступ текста от верхней границы ячейки, т.к. текст сейчас очень сильно прижимается к ней?


Ответы (1 шт):

Автор решения: Kontzid

Попробуйте заменить команду \newline на \\. Да, она может сломать таблицу, но если применять её в рамках vcell - она работает, и выравнивание улучшилось (хотя конечный результат оценивать Вам).

Изменённый код:

\documentclass{article}

\usepackage{vcell}
\usepackage{lipsum}
\usepackage{longtable}
\usepackage{array}
\usepackage{url}

\usepackage{geometry}
\geometry{
    a4paper,
    left=2 cm,
    top=2.75 cm,
    bottom=4 cm,
    right=2 cm,
}

\begin{document}
    
    \begin{longtable}[h!]{|>{\raggedright}p{9 cm}|>{\centering}p{3 cm}|>{\raggedright}p{3,5 cm}|}
        \hline
        
        \centering\vcell{File path} &\centering\vcell{Modification date}    &\centering\vcell{Content}  \tabularnewline   [-\rowheight]
        \printcellmiddle            & \printcellmiddle              & \printcellmiddle          \tabularnewline  \hline
        
        \vcell{\path{some\long\\path}}  &\vcell{24.03.2022\\ 08:28:04}    & \vcell{Some text from file}   \tabularnewline [-\rowheight]
        \printcelltop               &\printcellmiddle               &\printcelltop          \tabularnewline  \hline
        
        \vcell{\path{some\long\\path}}  &\vcell{24.03.2022\\ 08:28:04}    & \vcell{Some text from file}   \tabularnewline [-\rowheight]
        \printcelltop               &\printcellmiddle               &\printcelltop          \tabularnewline  \hline
        
        \vcell{\path{some\long\\path}}  &\vcell{24.03.2022\\ 08:28:04}    & \vcell{Some text from file}   \tabularnewline [-\rowheight]
        \printcelltop               &\printcellmiddle               &\printcelltop          \tabularnewline  \hline
        
        \vcell{\path{some\long\\path}}  &\vcell{24.03.2022\\ 08:28:04}    & \vcell{Some text from file}   \tabularnewline [-\rowheight]
        \printcelltop               &\printcellmiddle               &\printcelltop          \tabularnewline  \hline
    \end{longtable}
    
\end{document}

Результат: результат

→ Ссылка