Estoy intentando hacer una tabla grande que tenga cuatro columnas, con dos columnas numeradas de forma incremental. Tenga en cuenta que la tabla real tendrá alrededor de 40 entradas numeradas.
Aquí se muestra aproximadamente el comportamiento deseado y un MWE torpe, usando dos contadores con el totcount
paquete ( rowA
y rowB
, tenga en cuenta el uso de \setcounter{rowB}{\totvalue{rowA}}
).
\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}
Preguntas
- ¿Existe una forma menos complicada de hacer esto? ¿Idealmente algo que solo requiera un contador y un comando de numeración?
- Estoy particularmente molesto con esta solución porque tengo que decidir qué información termina en cada columna al principio --- muy WYSIWYG/no TeX. Me encantaría poder ingresar las fórmulas como una tabla de dos columnas y luego ajustarlas con
multicols
. Estoy tratando de hacer esto conlongtable
encabezados repetidos, pero hasta ahora no hay alegría.
Respuesta1
Abordé la primera pregunta aquí, aplicando pasos automáticos en los tipos de columnas (definiendo nuevos tipos de columnas, para esto)
La razón por la que se utilizan los tipos A
y es que no está permitido en el modo matemático, que está activo allí.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}
Camino con un solo contador.
\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}