![重构更复杂的 TeX 的最佳方法](https://linux22.com/image/401964/%E9%87%8D%E6%9E%84%E6%9B%B4%E5%A4%8D%E6%9D%82%E7%9A%84%20TeX%20%E7%9A%84%E6%9C%80%E4%BD%B3%E6%96%B9%E6%B3%95.png)
我需要重构丑陋的方程式。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
$
\sum_{l=1}^{n}
\frac{x_{k}}{\left(\overset{n}{\underset{l=1}{\sum}}\vert
x_{l}\vert^{p}\right)^{\frac{1}{p}}}\
\frac{y_{k}}{\left(\overset{n}{\underset{l=1}{\sum}}\vert
y_{l}\vert^{q}\right)^{\frac{1}{q}}} \text{ } \leq
\overset{n}{\underset{l=1}{\sum}} \frac{x_{i}^{p}}{p
\sum_{j=1}^n (x_{i}^{p})^{\frac{1}{p} p}} + \frac{y_{i}}{(q
\sum_{j=1}^n y_{i}^{q})^{\frac{1}{q}q}}= \frac{1}{p} +
\frac{1}{q} = 1
$
\end{document}
您有何经验来创建更具灵活性的 TeX?
我考虑使用command
来强调\sum
。您对这个解决方案有什么看法?
答案1
发布的代码缺少一个,\right
因此会产生错误。一旦修复,编码中的主要风格错误就是在总和中使用\underset
and而不是 limits,并且在表达式中使用 textstyle 而不是 displaystyle。\overset
我会使用更像下面这样的东西,尽管它相当宽,所以也许使用 amsmath 多行显示环境,而align
不是\[ \]
\documentclass[a4paper]{article}
\usepackage{amsmath}
\begin{document}
\[
\sum_{l=1}^{n}
\frac{x_{k}}{\left(\sum_{l=1}^{n}\lvert x_{l}\rvert^{p}\right)^{\frac{1}{p}}}
\frac{y_{k}}{\left(\sum_{l=1}^{n}\lvert y_{l}\rvert^{q}\right)^{\frac{1}{q}}}
\leq
\left(\sum_{l=1}^{n} \frac{x_{i}^{p}}{p \sum_{j=1}^n (x_{i}^{p})^{\frac{1}{p} p}} +
\frac{y_{i}}{(q \sum_{j=1}^n y_{i}^{q})^{\frac{1}{q}q}}\right)
= \frac{1}{p} +\frac{1}{q}
= 1
\]
\end{document}
答案2
我还建议您为常用表达式定义宏。以下是 David Carlisle 使用宏的回答的改编版:
下面,我为两个重复的表达式定义了两个宏。它们之间的唯一区别是一个使用x/p
,另一个使用y/q
。当然,你应该为这两个宏选择更有意义的名称。
除了确保一致性之外,这还使代码更易于阅读。
代码:
\documentclass[a4paper]{article}
\usepackage{amsmath}
\newcommand*{\AbsSumFraction}[2]{%
% #1 = variable: x,y
% #2 = exponent p, q
\frac{#1_{k}}{\left(\sum_{l=1}^{n}\lvert #1_{l}\rvert^{#2}\right)^{\frac{1}{#2}}}%
}
\newcommand*{\SumFraction}[2]{%
% #1 = variable: x,y
% #2 = exponent p, q
\frac{x_{i}^{p}}{p \sum_{j=1}^n (x_{i}^{p})^{\frac{1}{p} p}}
}
\begin{document}
\[
\sum_{l=1}^{n} \AbsSumFraction{x}{p} \AbsSumFraction{y}{q}
\le \left( \sum_{l=1}^{n} \SumFraction{x}{p} + \SumFraction{y}{q} \right)
= \frac{1}{p} + \frac{1}{q}
= 1
\]
\end{document}