
Я хотел бы выровнять по центру (а также по левому и правому краю) часть предложенияв пределаходин абзац, что можно легко сделать в Word с помощью [newline] + [center this line] + [newline]
. Однако в LaTeX centering
команда влияет на весь абзац, а чтобы повлиять только на группы, требуется \par
в начале и конце этой группы. Между тем, center
среда добавляет дополнительное вертикальное пространство. Я знаю, что есть centerline
команда, которая соответствует моим потребностям, но, похоже, нет аналогов с точки зрения "left-align" или "right-align". Вот MWE:
\documentclass{article}
\begin{document}
I want to center\\
"This piece of text"\\
within this paragraph.
I don't want to break the
{\par\centering paragraph like\par}
this.
How to achieve the effect\\
\centerline{without \texttt{centerline}}\\
or \begin{center}
the \texttt{center} environment?
\end{center}
\end{document}
решение1
Новый ответ
Как отметил@кампавам не нужно определять собственные аналоги, поскольку они фактически уже содержатся в LaTeX и называются \leftline
и \rightline
. Таким образом, вы можете использовать
\documentclass[]{article}
\begin{document}
\hsize=5cm % just so that line breaks are a bit earlier
This is some longish text that is long and needs me to centre some
material\\
\centerline{here is center}
Also I'd like to display some stuff to the left\\
\leftline{here is left}
and to put something on the right\\
\rightline{here is right.}
\end{document}
Старый ответ
Сохранено для потомков.
Вы можете получить аналоги для выравнивания по левому и правому краю, определив их. Должно подойти следующее. Обратите внимание, что только содержимое, не шире одной строки, работает так, как задумано, внутри \@@line
не будет автоматического переноса строк.
Если вам интересно, \hss
это клей, которыйчасгоризонтальносрастягивается илиссжимается ровно настолько, насколько это необходимо для заполнения указанного пространства ( \@@line
это одинарный символ \hbox
, который должен быть такой же ширины, как текущая ширина \hsize
, то есть ширина текста).
\documentclass[]{article}
\makeatletter
\newcommand\leftalignline[1]{\@@line{#1\hss}}
\newcommand\rightalignline[1]{\@@line{\hss#1}}
\makeatother
\begin{document}
\hsize=5cm % just so that line breaks are a bit earlier
This is some longish text that is long and needs me to centre some
material\\
\centerline{here is center}
Also I'd like to display some stuff to the left\\
\leftalignline{here is left}
and to put something on the right\\
\rightalignline{here is right.}
\end{document}