我想用下面的代码写出如下图所示的内容。但是,代码不能使文本对齐,有没有简单的方法可以对齐文本?
\begin{figure*}[t]
\begin{small}
\emph{Role Buyer \{var counter $=$ 0; }\\
\emph{ Main () $=$ B2S!\{bch\} $\rightarrow$ Session();} \\
\emph{~~~~~Session() $=$ bch!QuoteRequest $\rightarrow$ $counter++$; bch?QuoteResonse.x $\rightarrow$ }\\
\emph{~~~~~~~~~~~~~~~if (x $\leq$ 1000) \{ ~ bch!QuoteAccept $\rightarrow$ bch?OrderConfirmation $\rightarrow$ bch?DeliveryDetails.y $\rightarrow$ Stop ~ \}} \\
\emph{ elseif (counter > 3) \{ bch!QuoteReject $\rightarrow$ Session() \} ~else~ \{ Stop \}; ~\} }\\
\} \\
\end{small}
\end{figure*}
答案1
经典tabular
环境有什么问题?您也可以将此代码放在图形浮点数内。
您只需要一个\begin{tabular}{lll} ...
,但我留下了一个更复杂的例子,因为@{}
您可以轻松地控制等号的填充。
该示例为横向显示,因为即使使用小字体,表格也太宽了。您还可以考虑将左列更改l
为类似p{11cm}
“Session()”结果的多行单元格,这样您就可以在窄表格中保持合适的字体大小,而不会分割结果。
顺便问一下,你听说过这个包裹吗?列表?
\documentclass[10pt,landscape]{article}
\usepackage[margin=1cm]{geometry}
\begin{document}
\em\small
\begin{tabular}{l@{\hspace{.5em}}l@{\hspace{.5em}}l}
Role Buyer \{var counter &$=$& 0;\\
Main () &$=$& B2S!\{bch\} $\rightarrow$ Session();\\
Session() &$=$& bch!QuoteRequest $\rightarrow$ $counter++$; bch?QuoteResonse.x $\rightarrow$\\
&& if (x $\leq$ 1000) \{ ~ bch!QuoteAccept $\rightarrow$ bch?OrderConfirmation $\rightarrow$ bch?DeliveryDetails.y $\rightarrow$ Stop ~ \} \\
&& elseif (counter > 3) \{ bch!QuoteReject $\rightarrow$ Session() \} ~else~ \{ Stop \}; ~\} \\
\end{tabular}
\vspace{2cm}\large
\begin{tabular}{l@{\hspace{.5em}}l@{\hspace{.5em}}p{13cm}}
Role Buyer \{var counter &$=$& 0;\\
Main () &$=$& B2S!\{bch\} $\rightarrow$ Session();\\
Session() &$=$& bch!QuoteRequest $\rightarrow$ $counter++$; bch?QuoteResonse.x $\rightarrow$ if (x $\leq$ 1000) \{ ~ bch!QuoteAccept $\rightarrow$ bch?OrderConfirmation $\rightarrow$ bch?DeliveryDetails.y $\rightarrow$ Stop ~ \} elseif (counter > 3) \{ bch!QuoteReject $\rightarrow$ Session() \} ~else~ \{ Stop \}; ~\} \\
\end{tabular}
\end{document}