固定文本行高?

固定文本行高?

我有两个小页面,问题是文本行的高度取决于我使用的字符。如何才能使小页面中的文本行的高度始终相同?

我使用 Tikz 演示了我的问题。如您所见,每行的基线未对齐。

\documentclass{article}
\usepackage[english]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}

\node[anchor=north west, inner sep=0, rectangle, red, draw, minimum width=0.5cm](A) {%
\begin{minipage}{0.5cm}%
x\\
x%
\end{minipage}};

\node[inner sep=0, rectangle, blue, draw, minimum width=0.5cm, right=0.1cm of A.north east, anchor=north west](B) {%
\begin{minipage}{0.5cm}%
M\\
M%
\end{minipage}};

\end{tikzpicture}
\end{document}

在此处输入图片描述

答案1

只要小页面中包含的内容作为“段落”输入,并且字体大小具有适当的基线,则两个支撑(一个在开头,一个在结尾)将保证内容的统一处理。严格来说,底部的支撑通常不是必要的,但如果内容是框起来的,并且您有多个这样的框(例如在流程图中),如果其中一个框中的最后一行没有降部,则看起来会更好。

正如各种评论所指出的那样,[t]如果要将顶线(的基线)作为定位盒子的“钩子”,则需要该选项。

您甚至可以创建一个命令来管理所有细节。

\documentclass{article}
\usepackage[english]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}

\node[anchor=north west, inner sep=0, rectangle, red, draw, minimum width=0.5cm](A) {%
\begin{minipage}[t]{0.5cm}%
\strut x\\
x\\
x\\
\strut x%
\end{minipage}};

\node[inner sep=0, rectangle, blue, draw, minimum width=0.5cm, right=0.1cm of A.north east, anchor=north west](B) {%
\begin{minipage}[t]{0.5cm}%
\strut M\\
M\\
M\\
\strut M%
\end{minipage}};

\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

没有必要使两个框具有相同的高度来在基线上对齐,您只需要在基线上对齐而不是使框垂直居中。

如果要在框周围制作可见的框架,那么使用 来确保它们具有相同的高度会很方便\strut,如第二个示例所示。

如果您不需要可见的 tikz 框架,那就简单多了,只需将它们并排放置minipage,并在其顶部基线上对齐,如第三个示例所示。

在此处输入图片描述

\documentclass{article}
\usepackage[english]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}

\node[anchor = base west, inner sep=0, rectangle, red, draw, minimum width=0.5cm](A) {%
\begin{minipage}[t]{0.5cm}%
x\\
x%
\end{minipage}};

\node[anchor = base west, inner sep=0, rectangle, blue, draw, minimum width=0.5cm, base right=0.1cm of A.base east, ](B) {%
\begin{minipage}[t]{0.5cm}%
M\\
M%
\end{minipage}};

\end{tikzpicture}


\begin{tikzpicture}

\node[anchor = base west, inner sep=0, rectangle, red, draw, minimum width=0.5cm](A) {%
\begin{minipage}[t]{0.5cm}%
\strut x\\
x%
\end{minipage}};

\node[anchor = base west, inner sep=0, rectangle, blue, draw, minimum width=0.5cm, base right=0.1cm of A.base east, ](B) {%
\begin{minipage}[t]{0.5cm}%
\strut M\\
M%
\end{minipage}};

\end{tikzpicture}


\begin{minipage}[t]{0.5cm}%
x\\
x
\end{minipage}
\begin{minipage}[t]{0.5cm}%
M\\
M
\end{minipage}

\end{document}

答案3

如果您确实想minipage在内部使用,node您可以在两个小页面的第一行插入一个宽度为零的垂直规则。

\begin{minipage}{0.5cm}
x\rule{0pt}{1cm} \\  %% choose the height
x
\end{minipage}

\begin{minipage}{0.5cm}
\rule{0pt}{1cm}M \\  %% choose the height
M
\end{minipage}

0.4pt我在下图中使用了彩色规则来显示结果。

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

相关内容