4 つの列があり、そのうち 2 つの列に増分番号が付けられた大きなテーブルを作成しようとしています。実際のテーブルには、約 40 個の番号付きエントリが含まれることに注意してください。
totcount
これは、パッケージで 2 つのカウンター (rowA
およびrowB
、 の使用に注意\setcounter{rowB}{\totvalue{rowA}}
)を使用した、おおよその望ましい動作と不格好な MWE です。
\documentclass[11pt,letterpaper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{totcount}
\usepackage{array}
\newtotcounter{rowA}
\newcommand\rowA{\stepcounter{rowA}{\bf \arabic{rowA}.~}}
\newcounter{rowB}
\newcommand\rowB{\stepcounter{rowB}{\bf \arabic{rowB}.~}}
\renewcommand{\arraystretch}{2}
\begin{document}
\setcounter{rowB}{\totvalue{rowA}}
\[ \begin{array}{*2{>{\displaystyle}l}*2{>{\displaystyle}l}}
f(t) & \mathcal{L}\{f\}(s) & f(t) & \mathcal{L}\{f\}(s) \\ \hline
\rowA e^{at} & \frac{1}{s-a} & \rowB t^n & \frac{n!}{s^{n+1}} \\
\rowA \sin(bt) & \frac{b}{s^2 + b^2} & \rowB u(t-a), \, a\geq 0 & \frac{e^{-as}}{s}\\
\rowA \cos(bt) & \frac{s}{s^2+b^2} & \rowB \delta(t-a), \, a \geq 0 & e^{-as}
\end{array}\]
\end{document}
質問
- これを行うための、より簡単な方法はありますか? 理想的には、カウンターと番号付けコマンドを 1 つだけ必要とするものはありますか?
- このソリューションでは、最初に各列にどのような情報を配置するかを決めなければならないという点で特に困っています。非常に WYSIWYG/非 TeX です。数式を 2 列の表として入力し、 で折り返せると良いのですが
multicols
。 と繰り返しヘッダーを使用してこれを実行しようとしていますlongtable
が、今のところうまくいきません。
答え1
ここでは、列タイプに自動ステップを適用することで最初の質問に対処しました(このために新しい列タイプを定義します)。
A
およびB
型が を使用している理由は、そこでアクティブになっている数式モードでは が許可されていない\text{\bfseries ...}
ためです。\bfseries
\documentclass[11pt,letterpaper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{totcount}
\usepackage{array}
\newtotcounter{rowA}
\newcounter{rowB}
\newcolumntype{A}{>{\stepcounter{rowA}{\text{\bfseries\therowA.~}}}l}
\newcolumntype{B}{>{\stepcounter{rowB}{\text{\bfseries\therowB.~}}}l}
\newcolumntype{M}{>{\displaystyle}l}
\renewcommand{\arraystretch}{2}
\begin{document}
\setcounter{rowB}{\totvalue{rowA}}
\[ \begin{array}{AMBM}
\multicolumn{1}{M}{f(t)} & \multicolumn{1}{M}{\mathcal{L}\{f\}(s)} & \multicolumn{1}{M}{f(t)} & \multicolumn{1}{M}{\mathcal{L}\{f\}(s)} \\ \hline
e^{at} & \frac{1}{s-a} & t^n & \frac{n!}{s^{n+1}} \\
\sin(bt) & \frac{b}{s^2 + b^2} & u(t-a), \, a\geq 0 & \frac{e^{-as}}{s}\\
\cos(bt) & \frac{s}{s^2+b^2} & \delta(t-a), \, a \geq 0 & e^{-as} \\
& & & \\ % Fake line
\end{array}\]
\end{document}
カウンターが1つだけの方法
\documentclass[11pt,letterpaper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{totcount}
\usepackage{array}
\newtotcounter{rowA}
\newcolumntype{A}{>{\displaystyle\stepcounter{rowA}{\mathbf{\therowA.~}}}l}
\makeatletter
% Using one counter only: add the current value of \rowA and the total counter value -- this will give the 'rowB'
\newcolumntype{B}{>{\displaystyle\mathbf{\@arabic{\numexpr \c@rowA + \totvalue{rowA}}.~}}l}
\makeatother
\newcolumntype{M}{>{\displaystyle}l}
\renewcommand{\arraystretch}{2}
\begin{document}
\[ \begin{array}{AMBM}
\multicolumn{1}{M}{f(t)} & \multicolumn{1}{M}{\mathcal{L}\{f\}(s)} & \multicolumn{1}{M}{f(t)} & \multicolumn{1}{M}{\mathcal{L}\{f\}(s)} \\ \hline
e^{at} & \frac{1}{s-a} & t^n & \frac{n!}{s^{n+1}} \\
\sin(bt) & \frac{b}{s^2 + b^2} & u(t-a), \, a\geq 0 & \frac{e^{-as}}{s}\\
\cos(bt) & \frac{s}{s^2+b^2} & \delta(t-a), \, a \geq 0 & e^{-as} \\
\frac{1}{t} f(t) & \int_s^\infty F(u) ~\mathrm{d} u & \frac{1}{\sqrt{t}} & \frac{\sqrt{\pi}}{\sqrt{s}}\\
\end{array}\]
\end{document}