Я реализую идею для отображения авторов. Насколько я понял, никакой другой пакет не мог бы сделать это за меня, но я рад, что меня поправили. Идея заключается в том, чтобы разместить авторов в нескольких независимых колонках, но мой текущий вопрос касается конкретно плохого, что я получаю в MWE.
В качестве первого шага я хотел создать 3 независимых столбца и заполнить их содержимым. Я добавил немного клея, чтобы разделить столбцы на случай, если строки будут слишком близко. Это делает то, что я хотел, но я получаю предупреждение о переполнении
\documentclass{article}
\begin{document}
\makebox[\textwidth][c]{
\parbox[t]{0.3\textwidth}{
\noindent{}Item 1
Item 4
Item 7
}
\hskip 10pt plus 5pt minus 5pt\relax
\parbox[t]{0.3\textwidth}{%
\noindent{}Item 2
Item 5 is a little bit longer
Item 8
}
\hskip 10pt plus 5pt minus 5pt\relax
\parbox[t]{0.3\textwidth}{%
\noindent{}Item 3
Item 6
}
}
\end{document}
Я могу заставить это исчезнуть, либо центрируя, либо уменьшая ширину моего горизонтального блока, но может ли кто-нибудь объяснить, почему? Я чувствую, что я все еще злоупотребляю, а не использую макросы.
Если есть лучший способ добиться этого эффекта, пожалуйста, дайте мне знать. Я решил использовать блоки вместо таблиц, но я с удовольствием вернусь. Я думал, что блоки более естественны, когда вы заранее не знаете количество столбцов и строк.
решение1
Вы получаете
Overfull \hbox (15.0pt too wide) in paragraph at lines 5--28
так как ваш внешний элемент \makebox
имеет отступ, \parindent
это \noindent
исправит ситуацию, но вы также можете получить переполненные поля из внутреннего списка.
У вас есть \textwidth
коробка, содержащая
SPACE .3\textwidth SPACE 10pt .3\textwidth SPACE 10pt .3\textwidth SPACE
так что может поместиться или нет, в зависимости от того, больше ли 4 пробела между словами + 20pt, чем .1\textwidth.
\documentclass{article}
\begin{document}
\noindent\makebox[\textwidth][c]{%%%%
\parbox[t]{0.3\textwidth}{%
Item 1
Item 4
Item 7
}\hfill
\parbox[t]{0.3\textwidth}{%
Item 2
Item 5 is a little bit longer
Item 8
}\hfill
\parbox[t]{0.3\textwidth}{%
Item 3
Item 6
}%%%%
}
\end{document}
Концы отмеченных строк %
не нуждаются в комментариях, но это хорошая практика. Отмеченные %%%%
нужны для избежания плохих пробелов.
Одна из причин, по которой для такого рода макетов часто используются табличные форматы, заключается в том, что три блока одинаковой ширины, хотя технически они расположены на одинаковом расстоянии друг от друга и охватывают всю ширину, выглядят смещенными влево, если есть вероятность наличия коротких записей.
\documentclass{article}
\begin{document}
\hrule
\noindent X\dotfill X
\noindent\makebox[\textwidth][c]{%%%%
\parbox[t]{0.3\textwidth}{
Item 1
Item 4
Item 7
}\hfill
\parbox[t]{0.3\textwidth}{%
Item 2
Item 5 is a little bit longer
Item 8
}\hfill
\parbox[t]{0.3\textwidth}{%
Item 3
Item 6
}%%%
}
\bigskip
\hrule
\noindent X\dotfill X
\noindent\makebox[\textwidth][c]{%%%%
\begin{tabular}[t]{@{}l@{}}
Item 1\\
Item 4\\
Item 7
\end{tabular}\hfill
\begin{tabular}[t]{@{}l@{}}
Item 2\\
Item 5 is a little bit longer\\
Item 8
\end{tabular}\hfill
\begin{tabular}[t]{@{}l@{}}
Item 3\\
Item 6
\end{tabular}%%%
}
\end{document}