У меня есть текст в таблице, и я хочу добавить принудительный перенос строки. Я хочу вставить принудительный перенос строки без необходимости указывать ширину столбца, т.е. что-то вроде следующего:
\begin{tabular}{|c|c|c|}
\hline
Foo bar & Foo <forced line break here> bar & Foo bar \\
\hline
\end{tabular}
Я знаю, что \\\\
вставляет перенос строки в большинстве случаев, но здесь он вместо этого начинает новую строку таблицы.
Похожий вопрос был задан ранее: Как сделать разрыв строки в таблице
Это'ы довольно старый вопрос, но я'будете добавлять мой ответ в любом случае, как способ предлагаю я'т появляются в других
\begin{tabular}{|c|c|c|}
\hline
Foo bar & \begin{tabular}[x]{@{}c@{}}Foo\\bar\end{tabular} & Foo bar \\
\hline
\end{tabular}
где X
или Т
, С
, или B
, чтобы заставить нужные вертикальное выравнивание.
В случае, если это необходимо, более чем в паре мест, это's лучше, чтобы определить команду
\newcommand{\specialcell}[2][c]{%
\begin{tabular}[#1]{@{}c@{}}#2\end{tabular}}
таким образом, строка таблицы, прежде чем может быть одним из
Foo bar & \specialcell{Foo\\bar} & Foo bar \\ % vertically centered
Foo bar & \specialcell[t]{Foo\\bar} & Foo bar \\ % aligned with top rule
Foo bar & \specialcell[b]{Foo\\bar} & Foo bar \\ % aligned with bottom rule
Возможны еще вариации, например указав также горизонтальное выравнивание в специальные ячейки.
Обратите внимание на @{}
для подавления добавлены пробелы перед и после текста в ячейке.
Странно, нет ответа (если я не'вэ понял их) упоминает пакет, который посвящен данный конкретный вопрос: makecell, что позволяет обеспечить единое форматирование отдельных ячеек, благодаря своей
\потокаи
\makecellкоманды, и для разрывы строк внутри этих клеток. Горизонтальных и вертикальных трасс могут выбираться независимо друг от эти таблицы, они'вновь включенных в. Значение по умолчанию -
чч`, но вы можете изменить его в глобальном масштабе в преамбулу
\renewcommand{\cellalign/theadalign}{vh}
где V-один из Т,с,Б
и н из Л,С,Р. Кроме того, для каждой ячейки, вы можете использовать
\makecell " или " команды\потокас необязательный аргумент
[ВХ]`.
Так вот демо:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{fourier}
\usepackage{array}
\usepackage{makecell}
\renewcommand\theadalign{bc}
\renewcommand\theadfont{\bfseries}
\renewcommand\theadgape{\Gape[4pt]}
\renewcommand\cellgape{\Gape[4pt]}
\begin{document}
\begin{center}
\begin{tabular}{ | c | c | c |}
\hline
\thead{A Head} & \thead{A Second \\ Head} & \thead{A Third \\ Head} \\
\hline
Some text & \makecell{Some really \\ longer text} & Text text text \\
\hline
\end{tabular}
\end{center}
\end{document}
Это действительно не удивительно, почему латекс считается сложным! Просто посмотри на свои ответы на такой простой вопрос! Как насчет простого решения ежедневных проблем?
\usepackage{pbox}
\begin{tabular}{|l|l|} \hline
\pbox{20cm}{This is the first \\ cell} & second \\ \hline
3rd & and the last cell \\ \hline
\end{tabular}
который выглядит как:
Обратите внимание, что ширина поставляемых в `\и pbox-это максимальная ширина. Если содержание меньше длина самой длинной строки.
Чтобы использовать команду \newline
, можно переключить раскладку ячеек на абзац.
\begin{tabular}{|p{2cm}|p{2cm}|}
\hline
Test & foo \newline bar \\
...
Редактирование:
Используйте следующие команды вместо p
, если вы хотите также указать выравнивание:
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
Использовать окружающая среда tabularx
вместо табличный
, а затем использовать \перевод строки
, где вы хотите, разрывы строк внутри ячейки.
\usepackage{tabularx}
\begin{tabularx}{\textwidth}{lX}
Section: & This is my \newline
long paragraph \\
\end{tabularx}
В tabularx
среда имеет специальный тип столбца, х
, в дополнение к обычным, и его первый аргумент-это желаемая ширина таблицы. Столбец Х
будет иметь необходимую ширину для того, чтобы сделать всю таблицу нужной ширины.
Примечание: \перевод строки
не вступят в силу в колонках стандартного типа.
Подробные сведения о tabularx можно найти здесь.
Здесь's очень простой способ сделать это, используя простые команды Теха в в табличной среде:
\begin{tabular}{|c|c|c|}
\hline
here&\vtop{\hbox{\strut top line}\hbox{\strut botline}}&more\\
\hline
x&y&z\\
\hline
\end{tabular}
С помощью hboxes в vtop мы'вэ остался в вертикальном режиме
и, следовательно, ширину текста в hboxes определяет
ширина vtop. Таким образом, мы не'т должны знать
ширина текста заранее. \стойка
будет поддерживать право
пространство выше и ниже текста в Хbox.
Вы также можете просто фейк это:
\begin{tabular}{|c|c|c|}
\hline
Foo bar & Foo & Foo bar \\
~ & bar & ~ \\
\hline
\end{tabular}
Это очень старый вопрос, но так как это было связано с недавним вопрос о разделения содержания и представления, я'будете добавлять контексте ответа для сравнения.
В контексте \возврата каретки и перевода строки
добавляет принудительного разрыва строки, чтобы добиться принудительного разрыва строки в таблице это также просто, как просто добавление `\переводы строк в соответствующем месте. Вот полный пример:
% Setup for rules at the top and bottom
\startsetups table:rules
\setupTABLE[frame=off]
\setupTABLE[row][first][topframe=on]
\setupTABLE[row][last][bottomframe=on]
\stopsetups
% Setups for middle alignment
\startsetups table:middle
\setupTABLE[align=middle]
\stopsetups
\starttext
\startTABLE[setups={table:rules, table:middle}]
\NC Foo bar \NC Foo \crlf Bar \NC Foo bar \NC \NR
\NC Foo bar \NC Foo \crlf Bar \NC Foo bar \NC \NR
\stopTABLE
\stoptext
что дает:
Здесь я использую стеки для ее выполнения. Некоторые вещи заслуживают внимания:
Я демонстрирую \Longstack
, Longunderstack \
и `\таких, которые дают три разных трассы.
Для того, чтобы не выжать против вертикальных полей, а \strutlongstacks{Т}
была выпущена декларация. Кроме того, можно обернуть стопку внутри \addstackgap[<разрыв>]{содержание}
чтобы добавить вертикальное буферов выше/ниже по стеку.
Не показана возможность установить горизонтальное выравнивание с накоплением контента с необязательным аргументом, или изменить характер Эол (от\\
, Чтобы другой пользователь-указанный маркер)
Вот МВТЭ.
\documentclass{article}
\usepackage[usestackEOL]{stackengine}
\begin{document}
\strutlongstacks{T}
\begin{tabular}{|c|c|c|}
\hline
Foo bar & \Longstack{ Foo \\ bar \\ baz} & Foo bar \\
\hline
Foo bar & \Longunderstack{ Foo \\ bar \\ baz} & Foo bar \\
\hline
Foo bar & \Centerstack{ Foo \\ bar} & Foo bar \\
\hline
\end{tabular}
\end{document}
Как насчет того, используя \parbox
в пользовательской команды
\documentclass{article}
\newsavebox\mybox
\newlength\mylength
\newcommand\boxup[2]{%
\savebox\mybox{#1}%
\setlength\mylength{\wd\mybox}%
\parbox{\mylength}{#1 \\ #2}%
}
\begin{document}
\begin{tabular}{|c|c|c|}
Foo bar & \boxup{Foo}{bar} & Foo bar \\
\end{tabular}
\end{document}
Это принимает два аргумента, в предположении, что первая строка больше, чем вторая. Можно было бы доработать код, чтобы работать через произвольное количество линий и найти самый длинный. Если это's для интереса я'будете что-то писать, наверное, используя expl3
для цикла.
Я думаю, что многорядное
- это простое элегантное решение, по крайней мере для простых таблиц.
Например, я пробовал несколько предложений, но я нашел это работает лучше всего:
\usepackage{multirow}
\begin{table}[ht]
\caption{RESTful Resources}
\centering
\begin{tabular}{l l l}
\hline
Resource & Methods & Description \\
\hline
\multirow{2}{*}{Resource1} & \multirow{2}{*}{POST, PUT}
& This resource contains ...\\
& & \emph{Media types: text/plain, application/json}\\
\multirow{2}{*}{Resource2} & \multirow{2}{*}{POST, PUT}
& This resource contains ...\\
& & \emph{Media types: text/plain, application/json} \\
\hline
\end{tabular}
\label{table:resources}
\end{table}
Я полагаю, что самым простым ответом здесь:
Если вы используете колонки пункту в таблице, вы можете поместить текст в условиях трассы и таблица не забрать \\
в новую строку таблицы, так что вы можете использовать его в обычном режиме. Например:
\begin{tabular}{p{2in}p{2in}}
\begin{flushleft}
Some text over here \\
newline! \\
\bigskip all the way down
\end{flushleft}
&
\begin{flushleft}
Lorem ipsum dolor sit amet, consectetur
adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore
magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo\\ \bigskip
consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia
deserunt mollit anim id est laborum.\\
\bigskip \bigskip lorem ipsum\\
\end{flushleft}\\
\end{tabular}\
Приведу вам таблицу с разрывы строк с помощью команды\\
.
У меня нет прямой информации о том, как добавить разрыв строки, но использование пакета multirow может обеспечить различные пути к одному и тому же желаемому результату. Вы можете прочитать учебник здесь:
Но у меня есть ощущение, что ответ \parbox в аналогичном вопросе, на который вы ссылались, это то, что вы ищете. Я думаю, что использование ячейки в ячейке будет самым простым и лучшим способом, было ли что-то в этом, что не работало для вас?
Если вы хотите использовать parbox без необходимости вводить ширину, вот один из способов, который работает для меня. Он не идеален, поскольку требует, чтобы вы заранее знали текст самой длинной строки в многострочной колонке, но он работает:
% define new length and set to length of longest line
\newlength{\longline}
\settowidth{\longline}{longest line in table}\\
\begin{tabular}{lll}
one line & \parbox[t]{\longline}{longest line in table \\ and another line} & more text \\
second line here& and what & more text
\end{tabular}
Добрый день, когда я был моложе, я был верстка табличная среда в табличной среде. Поскольку у нас TikZ я использую tikzpicture среды внутри таблитчатые, или даже tikzpicture внутри tikzpicture. Я предпочитаю класть простых узлов TikZ рядом и ниже друг друга, но это зависит от конкретной задачи. Я прилагаю МВт с быстрый текстовый коррекции высоты. в
\documentclass{article}
\usepackage{tikz}\pagestyle{empty}
\begin{document}
\tikzset{inner sep=0pt}
\begin{tabular}{|l|l|} \hline
\begin{tikzpicture}
\node[align=left, text height=4.5ex]{This is the\\[3pt]first cell};
\end{tikzpicture}
& second \\ \hline
3rd & and the last cell \\ \hline
\end{tabular}
\end{document}
Лично я предпочитаю использовать \usepackage{многорядное} \многорядное{"по-количество строк", У} {с"ширина", У} {с"содержание" и}
за все остальное, за исключением информации, которые должны находиться на разных строках.
Например:
\begin{tabular}{p{2.5cm}@{\hskip 0mm} p{5cm}@{\hskip 4mm} p{5cm} }
Parameter & Description & Used by\\
\hline
\\[-0.1cm]
\multirow{2}{*}{Accuracy}&1. The error rate or frequency of correctness of sensor readings. & \\[0.3cm]
& 2. The degree of correspondence of measured values to actual values.& \\[0.3cm]
\hline
\\[-0.1cm]
\end{tabular}
Кажется, есть довольно простое решение. Просто обернуть текст в\raggedright currly скобки и используйте такой:
{\raggedright \bfseries WS 2016 \\(average)}
Вот простой пример:
\begin{tabularx}{\textwidth}[ht]{|X|p{1.8cm}|}
\hline
Some Longer Column &
{\raggedright \bfseries Line \\Break} \\\hline
This is a wide line with some text & Small \\\hline
\end{tabularx}
Это дает:
Вы можете использовать minipage:
\begin{minipage}[t]{0.2\columnwidth}%
This is the first line
\newline
second line
\newline
...
\end{minipage}
Такой подход вовсе'т так сильно отличаются от некоторых других уже дал, за исключением того, что ее "externalises" Все дизайн-решения из таблицы определение само по себе (то есть, делая ее чище, читать и писать каждая таблица должна Вы хотите содержать несколько таблиц, как это на протяжении всей вашей doc или документы).
Предварительные (предположительно в преамбуле):
\usepackage{array} % needed if you're going to use \\ together with centering,
% raggedright, raggedleft in your column specifier (see
% manuals on \arraybackslash)
\newlength{\mywidestcolwidth}
\newcommand*\mycellformat{\protect\footnotesize}
\newcommand*\mytableparskip{\setlength\parskip{4pt}}
\newcommand*\setmywidestcolwidth[1]{
\settowidth{\mywidestcolwidth}{\mycellformat #1}
}
Использование:
\setmywidestcolwidth{foo baz bar}
\begin{tabular}{|>{\mycellformat}c
|>{\mytableparskip\mycellformat\centering\arraybackslash}p{\mywidestcolwidth}
|>{\mycellformat}c|}
\hline
foo bar baz&
foo
foo baz bar
baz&
foo
foo baz bar
baz\\ \hline
\end{tabular}
Пропустить \mycellformat
и \parskip
если у вас нет необходимости их (хотя и не обязательно в вашем случае, я включил \parskip, так как он's полезный, чтобы визуально выделить абзацы друг от друга, поскольку отступ абзаца автоматически отключается в таблицах, и добавил
\mycellformat` чтобы обеспечить однородное документа таблица параметров настройки).