我想放置一个深度为零的多行文本(无需事先了解行数)。当 n = 1 时,解决方案很简单 ( text depth = 0pt
),但当 n > 1 时,此方法无法正常工作。我必须做什么才能达到想要的效果?
在示例的第二部分中,文本的基线与所绘制的线条相同。在第三个示例中,我希望获得相同的效果,但这里绘制的线条上有下划线。
\documentclass{minimal}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[inner sep=0pt]
\draw (0,0) -- (5,0);
\node[text width=5cm,above] at (2.5,0)
{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Lorem ipsum dolor sit amet, };
\begin{scope}[yshift=3cm]
\draw (0,0) -- (5,0);
\node[text width=5cm,text depth=0pt,above] at (2.5,0)
{Lorem ipsum dolor sit amet, };
\end{scope}
\begin{scope}[yshift=6cm]
\draw (0,0) -- (5,0);
\node[text width=5cm,text depth=0pt,above] at (2.5,0)
{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Lorem ipsum dolor sit amet, };
\end{scope}
\end{tikzpicture}
\end{document}
答案1
这是你想要的吗?
如果是,则解决方案是具有的节点inner sep=-depth("p")
。
\documentclass{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[inner sep=0pt]
\draw (0,0) -- (5,0);
\node[text width=5cm,above, inner sep=-depth("p")] at (2.5,0)
{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Lorem ipsum dolor sit amet, };
\end{tikzpicture}
\end{document}
答案2
不幸的是,当textwidth
使用时minipage
,安装在节点内容之前会使用选项,并且这是不可自定义的。但是,可以使用和键[t]
或多或少地成功实现此自定义:execute at begin node
execute at end node
\documentclass[tikz,border=5]{standalone}
\tikzset{minipage/.style 2 args={%
execute at begin node=\begin{minipage}[#1]{#2}\raggedright,
execute at end node=\end{minipage},
anchor=base
}}
\begin{document}
\begin{tikzpicture}
\draw (0,0) -- (5,0);
\node[minipage={b}{5cm}] at (2.5,0) {Lorem ipsum dolor sit amet};
\tikzset{shift=(270:2)}
\draw (0,0) -- (5,0);
\node[minipage={b}{5cm}] at (2.5,0) {Lorem ipsum dolor sit amet,
consectetuer adipiscing elit};
\tikzset{shift=(270:2)}
\draw (0,0) -- (5,0);
\node[minipage={b}{5cm}] at (2.5,0) {Lorem ipsum dolor sit amet,
consectetuer adipiscing elit. Lorem ipsum dolor sit amet};
\end{tikzpicture}
\end{document}