Создание столбцов таблицы небольшой фиксированной ширины и выравнивание по правому краю/по центру/по левому краю?

Создание столбцов таблицы небольшой фиксированной ширины и выравнивание по правому краю/по центру/по левому краю?

Я прочитал первый ответ на этот вопрос

Как создать столбцы таблицы фиксированной ширины с текстом raggedright/centered/raggedleft?

Я пытался

\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}

\begin{tabular}{|C{0.2cm}|C{0.5cm}|}
\hline
b & c \\
\hline
B & C \\
\hline
\end{tabular}

Результат показан ниже. Почему при малых размерах у нас такой эффект? Как это исправить?

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

решение1

позвольте мне подробнее остановиться на моем комментарии ниже:

  • Буквы Bтакже bшире 2 мм, что определяется шириной первого столбца.
  • опция \hspace{0pt}в Cопределении столбца предотвращает перетекание содержимого ячеек в следующий столбец. следовательно, latexпереносит содержимое ячеек на следующую строку, где это ограничение не действует. следовательно, вы получаете свой результат.

возможные методы лечения:

  • опустить \hspace{0pt}и тем самым разрешить содержимому ячейки использовать \tabcolsepпространство с правой стороны ячеек и при необходимости переходить в следующий столбец
  • увеличить ширину ячеек. Например, если вы хотите, чтобы соотношение ширины столбцов составляло 2:5 (как можно заключить из вашего фрагмента кода), то вы можете определить ширину столбца как\begin{tabular}{|C{1em}|C{2.5em}|}

Пример полного небольшого документа (называемого минимальным рабочим примером: mwe):

\documentclass{article}
\usepackage{array}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash}m{#1}}

\begin{document}
    \begin{center}
\renewcommand\arraystretch{1.2}% for more vertical space in cells
\begin{tabular}{|C{1em}|C{2.5em}|}
    \hline
b & c \\
    \hline
B & C \\
    \hline
\end{tabular}
    \end{center}
\end{document}

который дает:

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

Конечно, вы можете определить другую ширину столбца, но она не должна быть меньше ширины буквы M, т. е 1em.

Примечание: пожалуйста, в будущем всегда предоставляйте MWe, а не просто фрагмент кода. Этим вы поможете нам помочь вам.

решение2

почему бы вместо этого не использовать «табу»?

Примером может быть

\documentclass{article}
\usepackage{tabu}

\begin{document}

\begin{tabu} to 3cm {|X[cm]|X[2cm]|}
    \hline
    b & c \cr
    \hline
    B & C \cr
    \hline
\end{tabu}

\end{document}

Связанный контент