![表格和格式中的数学运算](https://linux22.com/image/245965/%E8%A1%A8%E6%A0%BC%E5%92%8C%E6%A0%BC%E5%BC%8F%E4%B8%AD%E7%9A%84%E6%95%B0%E5%AD%A6%E8%BF%90%E7%AE%97.png)
我正在尝试用 LaTeX 编写一个数学分析的小总结,这对我的大学很有用。我被一个问题困扰着,那就是如何创建漂亮的表格,用不同的颜色来包含各种排列的方程式。
displaymath
我成功地在内部构建了这样的表格\parbox
,它不允许方程对齐,但使用 则不行align*
。
这是我的代码:
\documentclass[a4paper]{article}
\usepackage{multicol}
\usepackage[table]{xcolor}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{lipsum}
\begin{document}
\begin{multicols}{2}
\lipsum[1-3]
% Row color alternating
\rowcolors{1}{gray!25}{white}
\begin{tabular}{c}
\hline
\parbox{\linewidth}{$$f : \mathbb{R} \to \mathbb{Q}$$}\\
\parbox{\linewidth}{$$g : \mathbb{Z} \to \mathbb{C}$$}\\
\parbox{\linewidth}{$$h : \mathbb{R} \to \mathbb{Q}$$}\\
$f(g(x)) = \frac{\pi}{2}$\
% This doesn't work
%\begin{align*}&f(g(x)) = \frac{\pi}{2}&&\forall x > 0\end{align*}\\
\hline
\end{tabular}
\lipsum[4-6]
\end{multicols}
\end{document}
答案1
可能有很多方法可以做到这一点。但是,需要一个具有交替行颜色的表格结构会限制您的可能性。这是您当前文档的模型,并进行了一些更改:
\documentclass[a4paper]{article}
\usepackage[margin=1in]{geometry}% http://ctan.org/pkg/geometry
\usepackage{multicol}% http://ctan.org/pkg/multicol
\usepackage{array}% http://ctan.org/pkg/array
\usepackage[table]{xcolor}% http://ctan.org/pkg/xcolor
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\usepackage{amsfonts}% http://ctan.org/pkg/amsfonts
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\renewcommand{\arraystretch}{1.5}% Increase the row height of tabular/array
\newcolumntype{C}{>{\centering\arraybackslash$}p{\linewidth}<{$}}
\begin{document}
\begin{multicols}{2}
\lipsum[1-5] \par \medskip
% Row color alternating
\rowcolors{1}{gray!25}{white}%
\setlength{\tabcolsep}{0pt}%
\noindent\begin{tabular}{C}
\hline
f : \mathbb{R} \to \mathbb{Q} \\
g : \mathbb{Z} \to \mathbb{C} \\
h : \mathbb{R} \to \mathbb{Q} \\
f(g(x)) = \frac{\pi}{2}\phantom{\ \forall x > 0} \\
f(g(x)) = \frac{\pi}{2}\ \forall x > 0 \\
\hline
\end{tabular} \par \medskip
\lipsum[6-8]
\end{multicols}
\end{document}
以下是针对调整后的示例的一些评论:
- 我用过
geometry
调整边距,因为我觉得双列模式下的默认边距设置太窄了; - 表格与流动的文本区分开来,采用
\par\medskip
中等垂直跳跃作为分隔; - 由于
tabular
本身就是一个元素(水平模式),它以 为段落开头,因此缩进为\parindent
。使用 可\noindent
删除此缩进,设置 为 与列边距左对齐; - 单个列的宽度
\linewidth
会tabular
拉伸到整个列的宽度(\columnwidth
效果一样好); \setlength{\tabcolsep}{0pt}
通过;删除左列和右列填充tabular
行高通过以下方式增加 50%\renewcommand{\arraystretch}{1.5}
;虽然单曲
tabular
设置为段落样式 (p{\linewidth}
),但array
包裹列规范允许<stuff>
使用 在每个列条目之前插入,>{<stuff>}
并在之后使用 附加<{<stuff>}
。因此,\newcolumntype{C}{>{\centering\arraybackslash$}p{\linewidth}<{$}}
定义一种新的列类型,
C
将其内容\centering
置于数学模式的中心()$
...。$
- 通过充分使用 ,可以与其他行元素进行水平对齐
\phantom{...}
,因为使用align
环境不能跨行工作tabular
。
答案2
我宁愿忘记条纹,它们实际上是留给斑马而不是数学书的,而且它们不会像有时声称的那样提高可读性(参见评论中的链接)。如果你想要更现代的外观,并且与你想要的类似,请使用tcolorbox
Thomas F. Sturm 教授的优秀软件包,他是
–文本体系的引介 他们现在还好心地提供了英文文件。
以下是 MWE:
\documentclass[twocolumn]{article}
\usepackage[listings,theorems]{tcolorbox}
\tcbset{before={\par\medskip\pagebreak[0]\noindent},after={\par\medskip}}%
\begin{document}
\section{Table of Equations}
\newcounter{texercise}[section]
\begin{tcolorbox}[colback=blue!5,colframe=blue!50!black,arc=0mm,
theorem={Equation}{texercise}{Summation}{myMarker}]{Summation of Numbers}{summation}
For all natural number $n$ it holds:\\[2mm]
\[\displaystyle\sum\limits_{i=1}^n i = \frac{n(n+1)}{2}\]
\end{tcolorbox}
\begin{tcolorbox}[colback=blue!5,colframe=blue!50!black,arc=0mm,
theorem={Equations}{texercise}{More on summation}{myMarker}]{Summation of Numbers}{summation}
For all natural number $n$ it holds:\\[2mm]
\[\displaystyle\sum\limits_{i=1}^n i = \frac{n(n+1)}{2}\]
\[\displaystyle\sum\limits_{i=1}^n i = \frac{n(n+1)}{2}+ \frac{n(n+1)}{2}\]
\end{tcolorbox}
\end{document}
您可以在提供的框中包含任何材料tcolorbox
,包括表格。
\begin{tcolorbox}[colback=blue!5,colframe=blue!50!black,arc=0mm,
theorem={Equations}{texercise}{More on summation}{myMarker}]{Summation of Numbers}{summation}
\medskip
\begin{tabular}{lr@{~}c@{~}l@{\qquad}r}
\multicolumn{5}{l}{\hspace{-2ex}\textbf{Line Values.}} \\
\multicolumn{5}{r}{}\\
\multicolumn{4}{l}{Altitude of triangle on side $a$,} \\
& $h$ &=& \( \displaystyle \frac{2}{a}
\sqrt{s(s-a)(s-b)(s-c)} \) & \\
%
\multicolumn{4}{l}{Median of triangle on side $a$,} \\
& $m$ &=& \( \frac{1}{2} \sqrt{2(b^2+c^2) - a^2} \) & \ \\
\multicolumn{5}{l}{\hspace{-2ex}\textbf{Areas.}} \\
%
Rectangle, & $S$ &=& $b\times h$ & \\
Square, & $S$ &=& $b^2$ & \\
\end{tabular}
\end{tcolorbox}
该软件包有很多选项,需要仔细研究文档。英文文档是最近才添加的,因此您可能需要更新您的发行版。