免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 发帖

求助对齐排版

我在自己的网站中用KATEX进行排版,网站是财务会计类的内容,涉及许多规定格式的要求。比如目前碰到的难题是下面会计分录的格式:
用于katex.png
2021-2-21 01:16


我的代码:
  1. \begin{aligned}借:&银行存款\qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad &12\ &600\ &000\\&其他综合收益——其他债权投资公允价值&&100\ &000\\&其他债权投资——利息调整&&600\ &000\\&贷:其他债权投资——成本 &&12\ &500\ &000\\&        ——公允价值变动损益&&&100\ &000\\&  投资收益&&&700\ &000\end{aligned}
复制代码
我的效果:

$\begin{aligned}借:&银行存款\qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad &12\ &600\ &000\\&其他综合收益——其他债权投资公允价值&&100\ &000\\&其他债权投资——利息调整&&600\ &000\\&贷:其他债权投资——成本 &&12\ &500\ &000\\&        ——公允价值变动损益&&&100\ &000\\&  投资收益&&&700\ &000\end{aligned}$

改了很多次,始终达不到以下要求:
1. 第二行开始,需要空两格对齐文字。
2. 所有借方相比所有贷方文字要往左移两格,数字恰好左移一个千分位
3. 数字全部右对齐
4. 千分位对齐

我用word排版也只能使用表格才能排除这个效果。
不知道有没有大神使用latex/katex达到上面效果
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

真 latex 的话用 array 调一下列距即可。

网页上,选择 MathJax 渲染的话,似乎无法调 array 的列距,不过可以改用 alignat* :
\begin{alignat*}{2}
借:&银行存款 &\qquad\qquad\qquad 12\ 600\ 000 \\
&其他综合收益——其他债权投资公允价值 & 100\ 000 \\
&其他债权投资——利息调整 & 600\ 000 \\
&贷:其他债权投资——成本 & 12\ 500 &\ 000 \\
&        ——公允价值变动损益 & 100 &\ 000 \\
&   投资收益 & 700 &\ 000
\end{alignat*}
  1. \begin{alignat*}{2}
  2. 借:&银行存款 &\qquad\qquad\qquad 12\ 600\ 000 \\
  3. &其他综合收益——其他债权投资公允价值 & 100\ 000 \\
  4. &其他债权投资——利息调整 & 600\ 000 \\
  5. &贷:其他债权投资——成本 & 12\ 500 &\ 000 \\
  6. &        ——公允价值变动损益 & 100 &\ 000 \\
  7. &   投资收益 & 700 &\ 000
  8. \end{alignat*}
复制代码
但 MathJax 对汉字的宽度判断似乎不太准,上面第一行加了三个 \qquad 才能隔开,不然会重叠(也可能会与浏览器有关……

TOP

而选择 KaTeX 渲染的话,得用 alignedat ,还得对汉字加 \text ,最麻烦,但没有 MathJax 的宽度不准问题,一个 \quad 就顺利隔开了:
\[\begin{alignedat}{2}\text{借:}&\text{银行存款} &\quad 12\ 600\ 000 \\ &\text{其他综合收益——其他债权投资公允价值} & 100\ 000 \\ &\text{其他债权投资——利息调整} & 600\ 000 \\ &\text{贷:其他债权投资——成本} & 12\ 500 &\ 000 \\ &\text{        ——公允价值变动损益} & 100 &\ 000 \\ &\text{   投资收益} & 700 &\ 000\end{alignedat}\]
  1. \[\begin{alignedat}{2}
  2. \text{借:}&\text{银行存款} &\quad 12\ 600\ 000 \\ &\text{其他综合收益——其他债权投资公允价值} & 100\ 000 \\ &\text{其他债权投资——利息调整} & 600\ 000 \\ &\text{贷:其他债权投资——成本} & 12\ 500 &\ 000 \\ &\text{        ——公允价值变动损益} & 100 &\ 000 \\ &\text{   投资收益} & 700 &\ 000
  3. \end{alignedat}\]
复制代码

TOP

感谢大神

TOP

更新一下:
\[\begin{alignedat}{3}\text{借:}&\text{银行存款} &\quad 12\ 600\ 000 \\ &\text{其他综合收益——其他债权投资公允价值} & 100\ 000 \\ &\text{其他债权投资——利息调整} & 600\ 000 \\ &\text{贷:其他债权投资——成本} & 12\ 500 &&\ 000 \\ &\text{        ——公允价值变动损益} & 100 &&\ 000 \\ &\text{  投资收益} & 700 &&\ 000 \\ &\text{  啥啥} & && 10\end{alignedat}\]
添加的最后一行表示即使只有两位数也是靠右的(原先的方式会向左)
  1. \[\begin{alignedat}{3}
  2. \text{借:}&\text{银行存款} &\quad 12\ 600\ 000 \\ &\text{其他综合收益——其他债权投资公允价值} & 100\ 000 \\ &\text{其他债权投资——利息调整} & 600\ 000 \\ &\text{贷:其他债权投资——成本} & 12\ 500 &&\ 000 \\ &\text{        ——公允价值变动损益} & 100 &&\ 000 \\ &\text{  投资收益} & 700 &&\ 000 \\ &\text{  啥啥} & && 10
  3. \end{alignedat}\]
复制代码

TOP

试一下这个对齐方式
\begin{alignedat}{2}
\text{I}\,\,)&\enspace\enspace\enspace\enspace  & &\sum_{k=1}^{n}\sin\left(\dfrac{k\pi}{n}\right)=\cot\left(\dfrac{2\pi}{n}\right)&\\
\text{II}\,)& & &\sum_{k=1}^{n}\sin\left[\dfrac{\left(2k-1\right)\pi}{n}\right]=0\\
\text{III)}& & &\sum_{k=1}^{n}\sin\left(\dfrac{k\pi}{2n-1}\right)=\dfrac{1}{2}\cot\left[\dfrac{\pi}{2(2n-1)}\right]-\cos\left[\dfrac{\pi}{2(2n-1)}\right]
\end{alignedat}

TOP

at 范例:
$\begin{alignedat}{3}
R & L & R & L & R & L \\
RR & LL & RR & LL & RR & LL
\end{alignedat}$
  1. $\begin{alignedat}{3}
  2. R & L & R & L & R & L \\
  3. RR & LL & RR & LL & RR & LL
  4. \end{alignedat}$
复制代码
这里的参数 {3} 表示公式数(一对 RL 看成一个公式,这个数字其实大于实际公式数好像也没问题)

alignat、alignat* 以及 alignedat 的对齐方式其实和 align 一样,差别只是 at 的列距为零,故而适合于楼主右边那些大数目的对齐,可以错开更多的千分位,像这样:
\[\begin{alignedat}{6} 100 &\ & &\ & &\ & &\ & &\ & \\ 10 && 000 \\ 1 && 000 && 000 \\ && 10 && 000 && 000 \\ && && 10 && 000 && 000 \\ && && && 10 && 000 && 000 \\ && && && && 10 && 000 \\ && && && && && 10 \\ \end{alignedat}\]
  1. \[\begin{alignedat}{6}
  2. 100 &\ & &\ & &\ & &\ & &\ & \\
  3. 10 && 000 \\
  4. 1 && 000 && 000 \\
  5. && 10 && 000 && 000 \\
  6. && && 10 && 000 && 000 \\
  7. && && && 10 && 000 && 000 \\
  8. && && && && 10 && 000 \\
  9. && && && && && 10 \\
  10. \end{alignedat}\]
复制代码

TOP

返回列表 回复 发帖