v0=0 ;a0=−ag ;for i=1 to N do ,[XJi,si]=jcalc(jtype(i),qi) ,iXλ(i)=XJiXT(i) ,vi=iXλ(i)vλ(i)+siq˙i ,ai=iXλ(i)aλ(i)+siq¨i+vi×siq˙i ,fi=Iiai+vi×∗Iivi ;end ;for i=N to 1 do ,τi=siTfi ,if λ(i)≠0 then ,fλ(i)=fλ(i)+λ(i)XiTfi ,end ,end . \begin{aligned} &\boldsymbol{v}_0 = 0 \ ; \\ &\boldsymbol{a}_0 = -\boldsymbol{a}_g \ ; \\ &\text{for } i = 1 \text{ to } N \text{ do} \ , \\ &\quad [X_{J_i}, \boldsymbol{s}_i] = \text{jcalc}(jtype(i), q_i) \ , \\ &\quad {}^iX_{\lambda(i)} = X_{J_i}X_T(i) \ , \\ &\quad \boldsymbol{v}_i = {}^iX_{\lambda(i)}\boldsymbol{v}_{\lambda(i)} + \boldsymbol{s}_i\dot{q}_i \ , \\ &\quad \boldsymbol{a}_i = {}^iX_{\lambda(i)}\boldsymbol{a}_{\lambda(i)} + \boldsymbol{s}_i\ddot{q}_i + \boldsymbol{v}_i \times \boldsymbol{s}_i\dot{q}_i \ , \\ &\quad \boldsymbol{f}_i = \boldsymbol{I}_i\boldsymbol{a}_i + \boldsymbol{v}_i \times^* \boldsymbol{I}_i\boldsymbol{v}_i \ ; \\ &\text{end} \ ; \\ &\text{for } i = N \text{ to } 1 \text{ do} \ , \\ &\quad \tau_i = \boldsymbol{s}_i^{\mathrm{T}} \boldsymbol{f}_i \ , \\ &\quad \text{if } \lambda(i) \neq 0 \text{ then} \ , \\ &\qquad \boldsymbol{f}_{\lambda(i)} = \boldsymbol{f}_{\lambda(i)} + {}^{\lambda(i)}X_i^{\mathrm{T}} \boldsymbol{f}_i \ , \\ &\quad \text{end} \ , \\ &\text{end} \ . \end{aligned} v0=0 ;a0=−ag ;for i=1 to N do ,[XJi,si]=jcalc(jtype(i),qi) ,iXλ(i)=XJiXT(i) ,vi=iXλ(i)vλ(i)+siq˙i ,ai=iXλ(i)aλ(i)+siq¨i+vi×siq˙i ,fi=Iiai+vi×∗Iivi ;end ;for i=N to 1 do ,τi=siTfi ,if λ(i)=0 then ,fλ(i)=fλ(i)+λ(i)XiTfi ,end ,end .
明白了!你提到的是在 Vscode 中渲染的效果没有缩进,而公式伪代码的缩进需要以数学公式的形式正确显示。我们可以通过调整公式的格式来实现缩进效果,同时确保公式在 Markdown 或 LaTeX 中正确渲染。
以下是调整后的公式伪代码,使用 LaTeX 的 \quad 和 \qquad 来实现缩进效果:
\[
\begin{aligned}
&\boldsymbol{v}_0 = 0 \ ; \\
&\boldsymbol{a}_0 = -\boldsymbol{a}_g \ ; \\
&\text{for } i = 1 \text{ to } N \text{ do} \ , \\
&\quad [X_{J_i}, \boldsymbol{s}_i] = \text{jcalc}(jtype(i), q_i) \ , \\
&\quad {}^iX_{\lambda(i)} = X_{J_i}X_T(i) \ , \\
&\quad \boldsymbol{v}_i = {}^iX_{\lambda(i)}\boldsymbol{v}_{\lambda(i)} + \boldsymbol{s}_i\dot{q}_i \ , \\
&\quad \boldsymbol{a}_i = {}^iX_{\lambda(i)}\boldsymbol{a}_{\lambda(i)} + \boldsymbol{s}_i\ddot{q}_i + \boldsymbol{v}_i \times \boldsymbol{s}_i\dot{q}_i \ , \\
&\quad \boldsymbol{f}_i = \boldsymbol{I}_i\boldsymbol{a}_i + \boldsymbol{v}_i \times^* \boldsymbol{I}_i\boldsymbol{v}_i \ ; \\
&\text{end} \ ; \\
&\text{for } i = N \text{ to } 1 \text{ do} \ , \\
&\quad \tau_i = \boldsymbol{s}_i^{\mathrm{T}} \boldsymbol{f}_i \ , \\
&\quad \text{if } \lambda(i) \neq 0 \text{ then} \ , \\
&\qquad \boldsymbol{f}_{\lambda(i)} = \boldsymbol{f}_{\lambda(i)} + {}^{\lambda(i)}X_i^{\mathrm{T}} \boldsymbol{f}_i \ , \\
&\quad \text{end} \ , \\
&\text{end} \ .
\end{aligned}
\]
说明:
\quad:用于表示一级缩进(相当于 1 个空格宽度)。\qquad:用于表示二级缩进(相当于 2 个空格宽度)。aligned环境:用于对齐公式,确保每一行的公式在等号或其他符号处对齐。\text{}:用于在公式中插入文本(如for、if等关键字)。
渲染效果:
- 初始化部分(
\(\boldsymbol{v}_0\)和\(\boldsymbol{a}_0\))没有缩进。 - 第一个
for循环内的语句使用\quad缩进。 - 第二个
for循环内的语句使用\quad缩进,而嵌套的if语句使用\qquad进一步缩进。
在 Vscode 中渲染:
如果你使用的是 Markdown 文件(.md),可以直接将上述代码粘贴到 Markdown 中,Vscode 的 Markdown 预览会正确渲染公式和缩进。如果你使用的是 LaTeX 文件(.tex),也可以直接使用上述代码。
335

被折叠的 条评论
为什么被折叠?



