我有两个小页面,问题是文本行的高度取决于我使用的字符。如何才能使小页面中的文本行的高度始终相同?
我使用 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
我在下图中使用了彩色规则来显示结果。