我有时需要编写包括在某一点求导的表达式(例如泰勒级数)。我首选的符号(见附录)是下面 MWE 的第一个方程。
现在,我最讨厌的事情之一就是在 LaTeX 中手动设置字体大小(或其他任何大小)。我目前正在使用\bigg|
,但如果函数和/或变量变得更大,这种方法将不再有效,我真的不想手动设置所有方程式的大小(我在文档的不同章节中的特定点处计算了相当多的导数实例,并且每个章节都在自己的 .tex 文件中)。我试过\vrule
,但这导致下标的垂直定位不理想(请参阅下面的 MWE)。是否有一个命令可以生成一个垂直条,该垂直条会缩放到与其相邻的垂直条的高度和下标位置是否合适?
MWE(有些包可能是不需要的;对此深表抱歉):
\documentclass[11pt]{book}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{mathrsfs}
\usepackage{esvect}
\usepackage{latexsym}
\usepackage{mathtools}
\newcommand{\der}[2]{\frac{\text{d}{#1}}{\text{d}{#2}}}
\newcommand{\dder}[3]{\frac{\text{d}^{#1}{#2}}{\text{d}{#3}^{#1}}}
\begin{document}
\noindent This looks nice:
\begin{eqnarray}
f(x) & = & \sum_{k=0}^\infty\frac{(x-x_0)^k}{k!}\,\dder{k}{f}{x}\bigg|_{x=x_0}
\end{eqnarray}
But this doesn't:
\begin{eqnarray}
f(x) & = & \sum_{k=0}^\infty\frac{(x-x_0)^k}{k!}\,\dder{k}{f}{x}\vrule_{x=x_0}
\end{eqnarray}
\end{document}
作为补充,我确实欣赏文档的简洁性,但我也重视清晰度。我不愿意使用f'
来表示df/dx
或,\partial f/\partial x
因为 f 可能是许多变量的函数(如 s 的情况\partial
)。我也不愿意使用f_x
来表示,df/dx
因为我经常使用下标来区分数量的不同贡献(或组成部分)。因此,我不想写f^{(k)}(x_0)
或 其他类似的东西。这是不可商量的;我宁愿不要得到“更改你的符号”这样的答案。:)
提前致谢!
答案1
我提出了两个解决方案:一个\eval
带有两个参数的宏,它是从这个网站上找到的代码改编而来的——我不记得在哪里了,还有一个与 不同的版本,带有星号的版本\diff
,来自包esdiff
。请注意,同一个包有方便的\diffp
和它的带星号的版本用于偏导数。
我还用 替换了eqnarray
,以便在对齐点周围获得更好的水平间距。另请注意,如果您加载 ,则align
无需加载。amsmath
mathtools
\documentclass[11pt]{book}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{mathrsfs}
\usepackage{esvect, esdiff}
\usepackage{latexsym}
\usepackage{mathtools}
\def\eval#1#2{\mathchoice
{\setbox0\hbox{${\displaystyle #1}_{\scriptstyle #2}$}
\evalaux{#1}{#2}}
{\setbox0\hbox{${\textstyle #1}_{\scriptstyle #2}$}
\evalaux{#1}{#2}}
{\setbox0\hbox{${\scriptstyle #1}_{\scriptscriptstyle #2}$}
\evalaux{#1}{#2}}
{\setbox0\hbox{${\scriptscriptstyle #1}_{\scriptscriptstyle #2}$}
\evalaux{#1}{#2}}}
\def\evalaux#1#2{{#1\,{\vrule height .67\ht0 depth 1.2\dp0}_{\,#2}} }
\begin{document}
\begin{align}
f(x) & =\sum_{k=0}^\infty\frac{(x-x_0)^k}{k!}\,\eval{\diff[k]{f}{x}}{x=x_0}\\[1ex]
f(x) & =\sum_{k=0}^\infty\frac{(x-x_0)^k}{k!}\diff*[k]{f}{x}{x = x_0}
\end{align}
\end{document}