我正在复制文章的表格,我需要表格是工作表文字的宽度,并在字样下方添加垂直线 ,我附上我的代码。
% Please add the following required packages to your document preamble:
% \usepackage{booktabs}
\begin{table}[h]
\centering
\label{my-label}
\begin{tabular}{@{}l@{}}
\toprule
\textbf{Algorithm 2:} The Forward algorithm \\ \midrule
\textbf{Initialization:} \\
\ $\alpha_1(i) = \pi_i bi(O_1), \ 1 \leq i \leq K$ \\
\\
\textbf{Recursion:} \\
\textbf{for} t = 1,..., T-1 \textbf{do} \\
\ \ \ \textbf{for} j = 1,..., K do \\
\ \ \ \ \ \ \ $\alpha_{t+1}(j) = \left [\sum_{i=1}^{k} \alpha_t (i) \alpha_{ij},\right ] b_j(O_{t+1})$ \\
\ \ \ \textbf{end} \\
\textbf{end} \\
\\
\textbf{Result:} $P(O_{1:T}) = \sum_{i=1}^N \alpha_T (i)$ \\ \bottomrule
\end{tabular}
\end{table}
我期望的结果是优秀形象中的结果。任何想法。
答案 0 :(得分:1)
为宽度文字添加\vline
和usepackage{tabularx}
。
\begin{table}[h]
\centering
\label{my-label}
\begin{tabularx}{\textwidth}{X}
\toprule
\textbf{Algorithm 2:} The Forward algorithm \\ \midrule
\textbf{Initialization:} \\
\ $\alpha_1(i) = \pi_i bi(O_1), \ 1 \leq i \leq K$ \\
\\
\textbf{Recursion:} \\
\textbf{for} $t = 1,..., T-1$ \textbf{do} \\
\ \ \vline \ \ \textbf{for} $j = 1,..., K$ \textbf{do} \\
\ \ \vline \ \ \ \ \vline \ \ $\alpha_{t+1}(j) = \left [\sum_{i=1}^{k} \alpha_t (i) \alpha_{ij},\right ] b_j(O_{t+1})$ \\
\ \ \vline \ \ \textbf{end} \\
\textbf{end} \\
\\
\textbf{Result:} $P(O_{1:T}) = \sum_{i=1}^N \alpha_T (i)$ \\ \bottomrule
\end{tabularx}
\end{table}
答案 1 :(得分:1)
如果您只想复制算法显示,表格可能就足够了:
\documentclass{article}
\usepackage{float,tabularx,booktabs,amsmath,mleftright}
\usepackage{lipsum}
\begin{document}
\sloppy % Just for this example
\lipsum[1]
\begin{table}[H]
\begin{tabularx}{\textwidth}{ @{} X @{} }
\toprule
\textbf{Algorithm 2:} The Forward algorithm \\
\midrule
\textbf{Initialization:} \\
\ $\alpha_1(i) = \pi_i b_i(O_1), \ 1 \leq i \leq K$ \\
\\
\textbf{Recursion:} \\
\textbf{for} $t = 1, \dots, T - 1$ \textbf{do} \\
\begin{tabular}{ @{\hspace{\tabcolsep}} | l }
\textbf{for} $j = 1, \dots, K$ \textbf{do} \\
\begin{tabular}{ @{\hspace{\tabcolsep}} | l }
$\displaystyle \alpha_{t + 1}(j) = \mleft[ \sum_{i = 1}^k \alpha_t (i) \alpha_{i j} \mright] b_j(O_{t + 1})$ \\
\end{tabular} \\
\textbf{end}
\end{tabular} \\
\textbf{end} \\
\\
\textbf{Result:} $\displaystyle P(O_{1:T}) = \sum_{i = 1}^N \alpha_T(i)$ \\
\bottomrule
\end{tabularx}
\end{table}
\lipsum[2]
\end{document}
一些注意事项:
使用[H]
ere float说明符来保持算法的位置与代码一致。这有效地消除了浮动能力。需要float
package。
tabularx
使用X
- 列将表拉伸到指定的宽度。同时使用X
删除@{}
- 列周围的空格,以便算法与列边齐平。
booktabs
提供整齐的线条和垂直间距布局。
amsmath
' \dots
提供了\dots
周围的最佳间距,具体取决于其使用的实例。避免使用{{1} }表示省略号。
通过...
实现在数学模式的文本式使用中拉伸显示操作符。它确实拉伸了线高。
mleftright
' \displaystyle
... \mleft
对在分隔符周围提供了比传统\mright
... {{1}更好的间距}}
垂直规则源自嵌套\left
,使用自然列宽和宽度为\right
的强制缩进。