文本块的水平对齐

文本块的水平对齐

我想要水平排列两个文本块。在它们中间应该有一个从左到右的箭头。

这是我目前拥有的:

enter image description here

如您所见,箭头不在两个文本块的中间。这正是我想要实现的。

现在我正在使用固定宽度的迷你页面来实现上述结果。

\begin{minipage}{.2\textwidth}
\begin{verbatim}
X := 3
Y := Z * W
Q := X + Y
\end{verbatim}
\end{minipage}
%
\begin{minipage}{.2\textwidth}
  \centering $\Rightarrow$
\end{minipage}
%
\begin{minipage}{.2\textwidth}
\begin{verbatim}
X := 3
Y := Z * W
Q := 3 + Y
\end{verbatim}
\end{minipage}

但使用这个解决方案,我必须调整小页面的绝对宽度,直到文本适合其中。但这不是一个干净的解决方案,因为当我更改文本大小(或与字体相关的任何其他内容)时,一切都会中断。

是否有一个干净的解决方案来水平对齐两个文本块,并在它们中间放置一个箭头,并且块和箭头之间的空白可以调整?

答案1

使用\hfill

\documentclass{article}
\begin{document}
\begin{minipage}{.2\textwidth}
\begin{verbatim}
X := 3
Y := Z * W
Q := X + Y
\end{verbatim}
\end{minipage}
\hfill $\Rightarrow$ \hfill
\begin{minipage}{.2\textwidth}
\begin{verbatim}
X := 3
Y := Z * W
Q := 3 + Y
\end{verbatim}
\end{minipage}
\end{document}

请注意,由于小页面中的空间未填充,箭头似乎未居中。为了获得更好的效果,您可以使用varwidth包代替minipage

\documentclass{article}
\usepackage{varwidth}
\begin{document}
\hfill
\begin{varwidth}{.2\textwidth}
\begin{verbatim}
X := 3
Y := Z * W
Q := X + Y
\end{verbatim}
\end{varwidth}%
\hfill$\Rightarrow$\hfill%
\begin{varwidth}{.2\textwidth}
\begin{verbatim}
X := 3
Y := Z * W
Q := X + Y
\end{verbatim}
\end{varwidth}
\hfill
\end{document}

使用\dotfill而不是,\hfill您可以直观地检查两个块是否真正等距分布。

MWE

注意:小心删除周围的空格\hfill(感谢 David 注意缺少结尾%)。

答案2

请始终发布完整的文档,而不仅仅是片段。

enter image description here

如果minipage包含,tabbing则其宽度与最宽的制表行一样宽。不要忘记%

\documentclass{article}

\begin{document}

\begin{minipage}{.2\textwidth}\ttfamily
\begin{tabbing}
X := 3\\
Y := Z * W\\
Q := X + Y
\end{tabbing}
\end{minipage}%
\hfill $\Rightarrow$\hfill
\begin{minipage}{.2\textwidth}\ttfamily
\begin{tabbing}
X := 3\\
Y := Z * W\\
Q := 3 + Y
\end{tabbing}
\end{minipage}

\end{document}

相关内容