我想實現這樣的事情。但我發現很難將多行對齊方程式放入一個單元格中。我搜索了很多,即使我使用\parbox
將對齊的方程式放入單元格中,我仍然無法將該單元格向左對齊或將其旁邊的單元格中的內容頂部對齊。以下是我想要的,是在 Microsoft Word 中完成的。請注意,虛線網格線不會列印到 pdf 中,僅顯示以顯示對齊方式。
這是我嘗試過的一些不完美的程式碼。我的目標包括:
- 表優於其他實現,例如
align
,framed
。因為我有一個關於三角函數的很長的表格,必須優雅地對齊。 - 在單元格中插入多行方程,並希望(不一定)在同一單元格中將方程式與符號對齊
=
。 - 所有單元格均左上角對齊,沒有任何左邊距。
- 最好有一些頂部和底部填充。 (我現在可以做到
\renewcommand{\arraystretch}{2}
,但我想知道是否有更好的方法。)
編譯好的pdf貼在下面。我目前的解決方案以某種方式導致第二行出現奇怪的右移。我不知道出了什麼問題。此外,我認為我的解決方案無論如何都不是正確的方法。
\documentclass{article}
\usepackage{enumitem,amssymb}
\usepackage{amsmath}
\usepackage{hyperref}
\usepackage{array}
\usepackage{booktabs}
\begin{document}
\everymath{\displaystyle}
\renewcommand{\arraystretch}{2}
\begin{tabular}[t]{|lll|}
\hline
\(\sin (x + \pi) = -\sin x\) &
\(\sin (x + \pi) = -\sin x\) &
\(\tan (x + \pi) = \tan x\) \\ \hline
\parbox{100pt}{
\begin{align*}
& \sin (\alpha+\beta) \\
& = \sin\alpha\cos\beta + \cos\alpha\sin\beta
\end{align*}
} &
\parbox{100pt}{
\begin{flalign*}
& \cos (\alpha+\beta) \\
& = \sin\alpha\cos\beta + \cos\alpha\sin\beta
\end{flalign*}
} &
\parbox{100pt}{
\begin{flalign*}
& \tan (\alpha+\beta) \\
& = \frac{\tan\alpha + \tan\beta}{1 - \tan\alpha\tan\beta}
\end{flalign*}
} \\
\(\sin 2x = 2 \cos x \sin x\) &
\parbox{100pt}{
\begin{flalign*}
\cos 2x & = \cos^2 x - \sin^2 x \\
& = 2\cos^2 x - 1 \\
& = 1 - 2\sin^2 x
\end{flalign*}
} &
\(\tan 2x = \frac{2\tan x}{1 - \tan^2 x}\) \\
\(\sin \frac{x}{2} = \sqrt{\frac{1 - \cos x}{2}}\) &
\(\cos \frac{x}{2} = \sqrt{\frac{1 + \cos x}{2}}\) &
\(\tan \frac{x}{2} = \sqrt{\frac{1 - \cos x}{1 + \cos x}}\) \\
\hline
\end{tabular}
\end{document}
答案1
前面的一般評論:聲稱某些解決方案是沒有意義的最好的不知道排版目標和限制可能是什麼。希望以下解決方案建議能夠解決有用。但可以肯定的是,我並不聲稱它們是「最好的」。
以下螢幕截圖和程式碼顯示了兩種可能的解決方案:第一個表使用固定列寬(因為這就是您發布的螢幕截圖中所做的操作),而第二個表使用自然列寬。在我看來,使用自然的列寬看起來更好——至少對於手頭上的表格來說是這樣。
在這兩個解決方案中,單元格內容都是左對齊排版的,同樣是因為這就是螢幕截圖中顯示的內容;如果您喜歡其他對齊選擇,請告知。請注意在「中間」儲存格中使用環境來以垂直aligned
對齊三個符號的方式排版三行表達式。=
最後,在這兩個解決方案中,我故意省略了所有垂直規則,並使用套件的巨集booktabs
僅建立兩個可見的水平規則;這樣做是為了讓桌子看起來更開放和誘人。
\documentclass{article}
\usepackage{fourier} % optional (to match font used in OP's screenshot)
\usepackage{array} % for 'w' col. type and '\newcolumntype' macro
\newcolumntype{W}[1]{>{$\displaystyle}w{l}{#1}<{$}}
\newcolumntype{L}{>{\displaystyle}l}
\usepackage{amsmath} % for 'aligned' env.
\usepackage{booktabs} % for well-spaced horizontal rules
\usepackage{geometry} % (set page parameters suitably)
%% Material that's common to both tables created below:
\newcommand\blurb{%
\toprule
\sin(x+\pi)=-\sin x & \cos(x+\pi)=-\cos x & \tan(x+\pi)=\tan x \\
\addlinespace[2ex]
\sin2x=2\sin x\cos x &
\begin{aligned}[t] % <-- note the 't' ("top") placement specifier
\cos2x &=\cos^2x-\sin^2x\\
&=2\cos^2x-1\\
&=1-2\sin^2x
\end{aligned} &
\tan2x = \frac{2\tan x}{1-\tan^2x} \\
\addlinespace[2ex]
\sin\frac{x}{2}=\sqrt{\frac{1-\cos x}{2}} &
\cos\frac{x}{2}=\sqrt{\frac{1+\cos x}{2}} &
\tan\frac{x}{2}=\sqrt{\frac{1-\cos x}{1+\cos x}} \\
\addlinespace
\bottomrule}
\begin{document}
\[
\begin{array}{@{} *{3}{W{4cm}} @{}}
\blurb
\end{array}
\]
\[
\setlength\arraycolsep{15pt} % default is '5pt'
\begin{array}{@{} *{3}{L} @{}}
\blurb
\end{array}
\]
\end{document}