函数符号表,包含一阶和二阶导数,加上凹度/凸度和渐近行为 - 更好的方法?

函数符号表,包含一阶和二阶导数,加上凹度/凸度和渐近行为 - 更好的方法?

一定有更好/更简单的方法可以做到这一点!!顺便问一下,如何格式化代码(发布问题时),使其看起来美观、紧凑且色彩丰富?

\documentclass{article}

\usepackage[2.5cm]{geometry}% http://ctan.org/pkg/geometry
\usepackage{amsmath}% http://ctan.org/pkg/amsmath

\begin{document}
\begin{tabular}{ l || l c c c c c c c r |}  
  $x$ \vspace{1pt}  
  & $ -\, \infty $  
  & \hspace*{-0.5cm}   
  & \hspace*{-0.5cm} $ -\, 1 $  
  & \hspace*{-0.5cm}  
  & \hspace*{-0.7cm} $0$  
  & \hspace*{-1.0cm}  
  & \hspace*{-0.5cm} $+\, 1$  
  & \hspace*{-0.5cm}  
  & \hspace*{-0.5cm} $ +\, \infty $ \\  
\hline

  \parbox[t][1.0cm]{2.0cm}{\vspace{1pt} $y' \,=\, \dfrac{\,x^{2} \,-\, 1\,}{x^{2}}$ \vspace{1pt}}  
  & $\begin{array}{c} \\ + \quad +\\ \end{array}$  
  & \hspace*{-0.5cm} $\begin{array}{c} \\ + \quad + \quad +  \\ \end{array}$  
  & \hspace*{-0.5cm} $\begin{array}{c} \\ 0 \\ \end{array}$  
  & \hspace*{-0.5cm} $\begin{array}{c} \\ - \quad - \quad - \\ \end{array}$  
  & \hspace*{-0.7cm} $\begin{array}{c} \\ \vert \\ \end{array}$  
  & \hspace*{-1.0cm} $\begin{array}{c} \\ - \quad - \quad - \\ \end{array}$  
  & \hspace*{-0.5cm} $\begin{array}{c} \\ 0 \\ \end{array}$  
  & \hspace*{-0.5cm} $\begin{array}{c} \\ + \quad + \quad + \\ \end{array}$  
  & \hspace*{-1.0cm} $\begin{array}{c} \\ + \\ \end{array}$ \\  
\hline 

  \parbox[t][1.0cm]{2.0cm}{\vspace{1pt} $y'' \,=\, \dfrac{2}{\,x^{3}\,}$ \vspace{1pt}}  
  & $\begin{array}{c} \\ - \quad - \\ \end{array}$  
  & \hspace*{-0.5cm} $\begin{array}{c} \\ - \quad - \quad - \\ \end{array}$  
  & \hspace*{-0.5cm} $\begin{array}{c} \\ - \\ \end{array}$  
  & \hspace*{-0.5cm} $\begin{array}{c} \\ - \quad - \quad - \\ \end{array}$  
  & \hspace*{-0.7cm} $\begin{array}{c} \\ \vert \\ \end{array}$  
  & \hspace*{-1.0cm} $\begin{array}{c} \\ + \quad + \quad + \\ \end{array}$  
  & \hspace*{-0.5cm} $\begin{array}{c} \\ + \\ \end{array}$  
  & \hspace*{-0.5cm} $\begin{array}{c} \\ + \quad + \quad + \\ \end{array}$  
  & \hspace*{-1.0cm} $\begin{array}{c} \\ + \\ \end{array}$ \\  
\hline 

  \parbox[t][1.0cm]{2.0cm}{ $y \,=\, x \,+\, \dfrac{1}{\,x\,}$ }  
  & $-\, \infty \;\; \nearrow$  
  & \hspace*{-0.5cm} $ \begin{array}{c} \\ \nearrow \quad \nearrow \quad \nearrow \\ \bigcap \end{array} $  
  & \hspace*{-0.5cm} $ -\, 2 $  
  & \hspace*{-0.5cm} $ \begin{array}{c} \\ \searrow \quad \searrow \quad \searrow \\ \bigcap \end{array} $  
  & \hspace*{-0.7cm} $ \;\genfrac{}{}{0.0pt}{}{}{}_{-\,\infty} {\Big |}^{+\, \infty}\; $  
  & \hspace*{-0.7cm} $ \begin{array}{c} \\ \searrow \quad \searrow \quad \searrow \\ \bigcup \end{array} $  
  & \hspace*{-0.5cm} $ +\, 2 $  
  & \hspace*{-0.5cm} $ \begin{array}{c} \\ \nearrow \quad \nearrow \quad \nearrow \\ \bigcup \end{array} \vspace{2pt} $  
  & \hspace*{-1.0cm} $+\, \infty$ \\  
\hline  

\end{tabular}\\
\end{document}

答案1

在我最初的评论中,我问过你的代码是否来自WYSIWYG,因为它看起来好像有很多不必要的代码 - 通常当你(尝试)从另一个程序导出到时会得到这种代码TeX

无论如何,这是我的表格版本:

截屏

在下面的代码中我有

  • 删除了所有\begin{array}{c}...\end{array}
  • 删除了所有\hspace*{...}
  • 加载了booktabs为表格提供许多有用功能的包,包括\toprule\midrule\bottomrule
  • 加载tabularx包以允许表拉伸到(在这种情况下)\textwidth
  • 通过改变使行间距更大\arraystretch

您还会注意到,我对+-\searrow和的使用非常谨慎\nearrow。随着示例变得越来越复杂,您需要考虑更多间隔,无论如何您都必须删除其中的许多。

如果你想查看表格的宽度,你可以在包showframe=true的加载中进行更改geometry。如果你想让你的表格比标准宽度更宽textwidth,那么你可以将它放在包adjustwidth的环境中changepage

\documentclass{article}

\usepackage[showframe=false]{geometry}
\usepackage{booktabs}
\usepackage{amsmath}
\usepackage{tabularx}

% use this package if you want to temporarily 
% widen the page
%\usepackage{changepage}

% use this columntype if you want to RIGHT justify your columns
\newcolumntype{Y}{>{\raggedleft\arraybackslash}X}


\begin{document}

\renewcommand{\arraystretch}{3}

\noindent\begin{tabularx}{\textwidth}{p{2cm}XXXXXXXXX}
 \toprule
    $x$                         &       $-\infty$   &                  &  $-1$ &                   &   $0$                      &                  &   $+1$  &                   &   $\infty$    \\ \midrule
    $y'=\dfrac{x^2-1}{x^2}$     &       $+$         &      $+$         &  $0$  &       $-$         &   $|$                      &   $-$            &   $0$   &      $+$          &   $+$         \\
    $y''=\dfrac{2}{x^3}$        &       $-$         &      $-$         &  $-$  &       $-$         &   $|$                      &   $+$            &   $+$   &      $+$          &   $+$         \\
    $y=x+\dfrac{1}{x}$          &       $-\infty$   & $\nearrow\bigcap$&  $-2$ & $\searrow\bigcap$ &   ${}_{-\infty}|^{+\infty}$&$\searrow\bigcup$ &   $+2$  & $\nearrow\bigcup$ &   $\infty$\\
 \bottomrule
\end{tabularx}



\end{document}

答案2

您可能正在寻找该tablor软件包。其文档为法语,但包含丰富的示例(示例代码可在 TeX Live 上找到,作者texdoc tablor.html:)。

还有一个基于 TikZ 的包,tkz-tab也包含许多示例(和法语文档)。

答案3

这里尝试通过降低到更原始的级别来进一步简化 cmhughes 的答案(没有包,每一列都在对齐前言中定义了数学模式,以及几个宏来缩短输入):

\documentclass{minimal}
\def\myalign#1{% should be used inside displayed equation
  \def\trule{\noalign{\medskip\hrule\medskip}}
  \def\nebc{\nearrow\bigcup}
  \def\sebc{\searrow\bigcup}
  \def\pminf{{}_{-\infty}|^{+\infty}}
  \let\Inf\infty
  % ^make a couple of macros to shorten the input (scoped inside this macro)
  \vbox{% enclose inside a vbox so it will not be broken across pages
  \openup2\jot% increase interlineskips by a multiple of symbolic unit of
              % measure (jot default is 3pt) for consistency
  \mathsurround0pt
  \tabskip1em plus\displaywidth % tabskip glue gets inserted between columns
  % with "optimal" value of 1em, but with stretchability to displaywidth.
  \halign to\displaywidth{% try to stretch the table to accomodate the whole
                          % equation display width
  &$\displaystyle\hfil##\hfil$\crcr
  % ^alignment preamble; the definition gets repeated for every column by the
  % first ampersand. The column content will be centered (\hfil##\hfil)
  #1% user input
  \crcr}}}
\begin{document}
\[
\myalign{
x                   & -\Inf &       & -1 &       & 0      &       & +1 &       & \Inf \cr
\trule
y'={x^2-1\over x^2} & +     & +     & 0  & -     & |      & -     & 0  & +     & + \cr
y''={2\over x^3}    & -     & -     & -  & -     & |      & +     & +  & +     & + \cr
y=x+{1\over x}      & -\Inf & \nebc & -2 & \sebc & \pminf & \sebc & +2 & \nebc & \Inf \cr
}
\]
\end{document}

注意事项:

  • 我看到有人说不鼓励原始使用(但我不知道为什么)
  • 在开始和结束时有多余的制表符粘连(不过,当列内容居中时,我认为这并不重要)。

编辑:根据评论,为了使它看起来更相似,需要额外的规则,左对齐列并删除多余的制表符粘连。但只是为了制造一些差异,我选择不让它看起来完全相同:

\documentclass{article}
\def\myalign#1{%
  \def\trule{\noalign{\smallskip\hrule\medskip}}
  \def\nebc{\nearrow\bigcup}
  \def\sebc{\searrow\bigcup}
  \def\pminf{{}_{-\infty}|^{+\infty}}
  \let\Inf\infty
  \def\amp{&}% props to Bruno; I just love this trick
  \vbox{\mathsurround0pt\openup1\jot
    \halign{%
      &$\displaystyle##\hfil\tabskip0pt$&\amp##\tabskip1em\crcr
      \noalign{\hrule height1pt\smallskip}#1\noalign{\smallskip\hrule height1pt}\crcr}}}
\begin{document}
\[
\myalign{
x                   & -\Inf &       & -1 &       & 0      &       & +1 &       & \Inf \cr
\trule
y'={x^2-1\over x^2} & +     & +     & 0  & -     & |      & -     & 0  & +     & + \cr
y''={2\over x^3}    & -     & -     & -  & -     & |      & +     & +  & +     & + \cr
y=x+{1\over x}      & -\Inf & \nebc & -2 & \sebc & \pminf & \sebc & +2 & \nebc & \Inf \cr
}
\]
\end{document}

看起来像:
在此处输入图片描述

它删除了第一个版本的第二个警告,但引入了另一个警告:因为它本质上使列数加倍(\amp在序言中),所以它会影响用于跨越多列的命令。

现在,我想提醒一下,为了保持文档范围的一致性,您需要保持所有这些跳过和规则等内容不变。诸如此类的软件包booktabs可帮助您轻松实现这一点。

相关内容