У меня в принципе та же проблема, что и уэтотвопрос, только для узлов из нескольких частей: у меня есть узел, состоящий из 3 частей, каждая из которых содержит текст. Я хочу, чтобы текст был выровнен по базовой линии. Я попытался добиться этого с помощью и text height
, text depth
что отлично работает для обычных узлов, но не для узлов из нескольких частей. Как вы можете видеть на изображении ниже, только первая часть узла получает правильное выравнивание, которого я хочу добиться, остальные две получают «подталкивание» символами, которые выходят за базовую линию.
Это мой латекс-код:
\documentclass[tikz, 11pt,landscape]{article}
\usepackage[default,osfigures,scale=0.95]{opensans}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{tgbonum}
\usepackage{tikz}
\usetikzlibrary{shapes}
\usetikzlibrary{calc}
\usetikzlibrary{arrows.meta}
\usepackage[a3paper]{geometry}
\begin{document}
\thispagestyle{empty}
\tikzset{normal/.style = {rectangle split, rectangle split horizontal, rectangle split parts=3, very thick, draw=black, minimum height=0.6cm,text height=1.5ex, text depth=0.25ex}}
\begin{tikzpicture}[remember picture, overlay]
\node[normal] at (current page.center) {\nodepart{one} ag \nodepart{two} ag \nodepart{three} ag};
\end{tikzpicture}
\end{document}
я нашелдругой посто том, что у кого-то была такая же проблема с прозрачностью, примененной только к первой части, но ее решение не сработало для меня. Мне не важен многострочный текст, и на самом деле меня волнует только выравнивание во второй части узла, я просто включил два других текста для демонстрации. Похоже, что бы я ни пытался, это применяется только к первой части.
Редактировать:
Используя мой скриншот в качестве примера: я хочу, чтобы 2-й и 3-й блоки были выровнены по высоте 1-го. Я НЕ хочу выравнивать 1-й блок по высоте 2-го и 3-го, так как это довольно высоко и выглядит странно, если у меня есть текст без символов, которые находятся ниже базовой линии. Интервал будет выглядеть очень неровным.
решение1
Большое спасибо @CarlaTex за ее доброту и объяснения, которые помогли мне понять (надеюсь, на этот раз я не ошибся!), что на самом деле нужно для ответа на этот вопрос.
Обходным решением является использование невидимого объекта \rule
с правильными вертикальными размерами (высотой и глубиной):
\documentclass[tikz, 11pt,landscape]{article}
\usepackage[default,osfigures,scale=0.95]{opensans}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{tgbonum}
\usepackage{tikz}
\usetikzlibrary{shapes}
\usetikzlibrary{calc}
\usetikzlibrary{arrows.meta}
\usepackage[a3paper]{geometry}
\begin{document}
\thispagestyle{empty}
\tikzset{
normal/.style = {
rectangle split,
rectangle split horizontal,
rectangle split parts=3,
very thick, draw=black,
minimum height=2cm,
text height=1.5cm,
text depth=0.25cm
}
}
\begin{tikzpicture}[remember picture, overlay]
\node[normal] at (current page.center) {\nodepart{one} ag
\nodepart{two} \rule[-0.25cm]{0pt}{1.75cm}ag
\nodepart{three} \rule[-0.25cm]{0pt}{1.75cm}ag};
\end{tikzpicture}
\end{document}