Снова TeX, кого бы следовало...

mtk79

Вопрос:
1) Если идут несколько абзацев подряд (ну например, 30 к которым я бы хотел применить настройки, заканчивающие действие по окончании абзаца (в частности, запрет абзацного отступа (\noindent) или, наоборот, отступы 1cm у всех строчек, кроме первой ( \hangindent=1cm \hangafter=1 — то можно ли это сделать не копируя команды для каждого абзаца
2) Если есть таблица на n>1 колонок, и я, например, точно знаю ширину текста — то можно ли как-то сделать так, чтобы таблица, например, с колонками равной ширины, автоматически выравнивалась под текст.
я делаю ширину колонки p{0.333\textwidth} (для трех колонок, абзацный отступ подавлен) — но таблица вылазит право за текст (на фиксированное расстояние, если менять \textwidth). Скорее всего, это \tabcolsep. Я его делаю \tabcolsep=0cm — тогда выравнивается, но текст идет вплотную к линиям, без отступа.
Вычитание двух \tabcolsep'ов, конечно, спасает — но очень уж топорно
3) Если колонка (или вся таблица) идет с фиксированной шириной (например, m{5cm}) — то как сделать, например, центрирование для всех ячеек таблицы, не делая в каждой?

Irina_Afanaseva

конструкция называется "окружения"

olga-sklyarova

Для 1) можно воспользоваться командой \everypar, но при этом могут возникнуть проблемы с сложными таблицами и использованием \parbox и minipage.
Не вижу проблемы в 2) в вычитании tabcolsep, но можно сделать так, как в таблице ниже. Используется пакет tabularx, X в спецификации колонки означает возможность её растягивать так, чтобы таблица стала заданной ширины. Если среди спецификаций 2 буквы X, то соответствующие колонки будут иметь одинаковую ширину.
Для 3) можно использовать в шапке вставки в начало и конец строки (в примере ниже это >{\centering\arraybackslash}m{1cm}<{}); если в последние фигурные скобки вставить QWERTY, то в конце каждой ячейки в этом столбце будет напечатано QWERTY
 
\documentclass{article}

%забивает по команде \lipsum[i-j] i,i+1,...,j абзац бессмысленной фигнёй на латинском
\usepackage{lipsum}

%позволяет задавать таблицы фиксированной ширины
\usepackage{tabularx}

\newenvironment{newparatext}{\par\parindent=0cm\everypar={\hangindent=1cm\hangafter=1}}{}

\begin{document}

\lipsum[1-2]

\begin{newparatext}
\lipsum[3-4]
\end{newparatext}

\lipsum[5-6]

\bigskip

\renewcommand{\tabularxcolumn}[1]{>{\arraybackslash}m{#1}}
\noindent\begin{tabularx}{\textwidth}{|X|>{\centering\arraybackslash}m{1cm}<{}|>{\centering\arraybackslash}m{1cm}<{}|} \hline
\lipsum[1] & 2 & 3 \\ \hline
4 & 5 & 6 \\ \hline
\end{tabularx}

\end{document}

mtk79

спасибо.
молодец
Оставить комментарий
Имя или ник:
Комментарий: