
Я работаю с tikz и мне интересно, есть ли простой способ выравнивать текст по-разному в одном узле?
Например, в моем MWE ниже я хотел бы иметьблабла1центрированный, ноблабла2иблабла3Выровнен по левому краю. Сейчас я попробовал установить выравнивание по левому краю по умолчанию и использовать \centering наблабла1; но он также центрируетблабла2(но не третий...)
Как это исправить и есть ли лучший способ?
\documentclass[a4paper]{article}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{tikz-cd}
\usepackage{lscape}
\usetikzlibrary{shapes,arrows}
\usetikzlibrary{calc,trees,positioning,arrows,chains,shapes.geometric,shapes}
\begin{document
\tikzstyle{block4} = [rectangle, draw, fill=blue!20, text width=6cm, rounded corners, minimum height=4em]
\begin{tikzpicture}[node distance = 2cm, auto]
\centering
% Place nodes
\node [block4] (Foyer)
{\centering{\emph{blabla1} }
\\ blabla2
\\ blabla3};
\end{tikzpicture}
\end{document}
решение1
В общем случае используйте стили для узлов.
Если у вас есть строка с другим выравниванием или другим размером шрифта, закончите строку или абзац до того, как изменится выравнивание или стиль, т. е. \\
внутри, перед закрывающей фигурной скобкой, здесь.
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[node distance = 2cm, auto,
block4/.style = {rectangle, draw, fill=blue!20, text width=6cm,
rounded corners, minimum height=4em}]
\node [block4] (Foyer) { {\centering \emph{line1} \\ }
line2 \\
line3};
\end{tikzpicture}
\end{document}