![Código](https://rvso.com/image/266415/C%C3%B3digo.png)
Considere la siguiente captura de pantalla.
Las características que quiero tener son:
- Puedo reducir el tamaño de la página y se permite que la tabla se divida en páginas.
- El fondo de las filas impares debe ser diferente al de las filas pares para facilitar la lectura.
- Los valores deben calcularse automáticamente y no mediante la entrada de datos hecha a mano.
MWE
\documentclass[preview,border=12pt,varwidth]{standalone}
\usepackage[nomessages]{fp}
\usepackage[table]{xcolor}
\usepackage{longtable}
\usepackage{pgffor}
\begin{document}
\topskip=0pt
\begin{longtable}{*2{|>{$\displaystyle}c<{$}}|}\hline
\theta & \sin \theta\\
\foreach \x in {0,10,...,360}{\x & \FPeval\temp{round(\x:3)}\temp\\}
\end{longtable}
\end{document}
Respuesta1
Más fácilmente, puedes utilizar elcalculadoraPaquete que le permitirá evaluar las funciones trigonométricas. También elsupertabularEl paquete le permitirá hacer el encabezado/pie de página repetido en cada tabla.
Aquí hay un ejemplo más simple:
Código
\documentclass{article}
\usepackage[nomessages]{fp}
\usepackage[table]{xcolor}
\usepackage{calculator}
\usepackage{forloop}
\usepackage{supertabular}
\usepackage{longtable}
\usepackage{fullpage}
\begin{document}
\newcounter{theangle}
\tablefirsthead{
\cline{2-4}
\rowcolor{white}
\multicolumn{1}{c|}{ } &
\cos \theta & \sin \theta & \tan \theta &
\multicolumn{1}{c}{ } \\
\hline
}
\tablehead{
\rowcolor{white}
\multicolumn{5}{c}{Table continued \ldots}\\
\cline{2-4}
\rowcolor{white}
\multicolumn{1}{c|}{ } &
\cos \theta & \sin \theta & \tan \theta &
\multicolumn{1}{c}{ } \\
\hline
}
\tablelasttail{
\rowcolor{white}
\multicolumn{1}{c|}{ } &
\cos \theta & \sin \theta & \tan \theta &
\multicolumn{1}{c}{ }\\
\cline{2-4}
}
\tabletail{
\hline
\rowcolor{white}
\multicolumn{1}{c|}{ } &
\cos \theta & \sin \theta & \tan \theta &
\multicolumn{1}{c}{ } \\
\cline{2-4}
\rowcolor{white}
\multicolumn{5}{c}{Continued on next page \ldots}\\
}
\rowcolors{2}{gray!50}{white}
\begin{center}
\begin{supertabular}{*5{|>{$}c<{$}}|}
\forloop{theangle}{0}{\value{theangle} < 360}{
\arabic{theangle}^\circ &
\DEGREESCOS{\value{theangle}}{\solx} \solx &
\DEGREESSIN{\value{theangle}}{\solx} \solx &
\DEGREESTAN{\value{theangle}}{\solx} \solx &
\arabic{theangle}^\circ\\
\addtocounter{theangle}{4}
}
\end{supertabular}
\end{center}
\end{document}
Producción
Respuesta2
Paquetes
xcolor
con la opcióntable
de\rowcolor
pgfplotstable
(e internamentepgfmath
) que se utiliza para construir toda la tabla. Elpgfmath
paquete nos ayuda a crear los valores trigonométricos (que están todos integrados)longtable
para permitir saltos de página en una tabla (necesita varias pasadas)siunitx
para componer números en tablas (pgfmath
ya hace un buen trabajo en la impresión de números, pero no es muy adecuado para tablas)booktabs
por buenas reglas.
\pgfplotstableset
Estilos auxiliares
Los estilos precedidos por un @
son estilos nuevos creados por mí. Tampoco es @
necesario (solo para separar pgfplotstable
los estilos de los míos) ni los nombres están escritos en piedra. Estos estilos se utilizan con el .list
controlador para facilitar la creación de las columnas.
La línea
@create function/.list={sin,cos,tan,cot,cosec,sec},
construye las columnas principales, tenga en cuenta que la csc
función se nombra cosec
en PGF. La columna tiene nombre cosec
pero luego la cambio column name
a csc
. (También se puede tener en cuenta que se deben utilizar nombres de columna adecuados, por ejemplo, $\phi$
y $\sin \phi$
en lugar de nombres de columnas vacíos y nombres de funciones matemáticas que no sean de modo matemático).
Tenga en cuenta la string type
clave: esto desactiva las funciones de números de impresión PGF (pero no el cálculo matemático PGF de las columnas).
longtable
configuración
Las claves básicas begin table
y end table
se utilizan para configurar el entorno de la tabla interna de tabular
a longtable
.
El every head row
estilo se usa (mal) para configurar las filas especiales (estas son longtable
características). Consulte el longtable
manual para obtener más información.
\pgfplotstablenew
Creemos 91 filas (+ encabezado (por ejemplo, longtable
preámbulo)):
\pgfplotstablenew[
columns={left,sin,cos,tan,cot,sec,cosec,right},
]{91}\myTable
\sisetup
Ciertos siunitx
ajustes se realizan antes de la composición tipográfica (esto también podría haberse hecho en las S[…]
especificaciones de la columna). Estas configuraciones son necesarias para siunitx
no intentar configurar números en notación científica, ya que las matemáticas PGF pueden dar un resultado en forma de 1.746e-2
(prácticamente en todas partes).
\pgfplotstabletypeset
¡Finalmente!
column type
Aquí se utilizan los estilos auxiliares para configurar los s.
Utiliza @secure header
la \multicolumn
macro para ocultar el contenido del siunitx
análisis. El enfoque habitual de poner el contenido entre llaves, por ejemplo, {sin}
no parece funcionar aquí.
La columna left
y la right
columna solo usa r
columnas (podríamos usar S
aquí también) con una sintaxis de \si{\degree}
vía adjunta . Esta es también la razón por la que el encabezado necesita una entrada vacía.array
<{…}
\multicolumn{1}{c}{}
Código
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{pgfplotstable}
\usepackage{longtable}
\usepackage{siunitx}
\usepackage{booktabs}
\pgfplotstableset{
% helpers
@create function/.style={
create on use/#1/.style={
create col/expr=#1(\thisrow{left})}},
@secure header/.style={
columns/#1/.append style={
column name=\multicolumn{1}{c}{#1}}},
@set columns to siunitx type 1/.style={
columns/#1/.append style={
string type,
column type={S[table-format=1.4]}}},
@set columns to siunitx type 2/.style={
columns/#1/.append style={
string type,
string replace={inf}{\multicolumn{1}{c}{$\infty$}},
column type={S[table-format=2.4]}}},
@set columns to siunitx type 3/.style={
columns/#1/.append style={
string type,
string replace={inf}{\multicolumn{1}{c}{$\infty$}},
column type={S[table-format=2.3]}}},
@set columns to basic style/.style={
columns/#1/.append style={
column type={r<{\si{\degree}}}}},
@set empty header/.style={
columns/#1/.append style={
column name={\multicolumn{1}{c}{}}}},
%
% the left and right columns
create on use/left/.style={
create col/expr=\pgfplotstablerow},
create on use/right/.style={
create col/expr={90-\thisrow{left}}},
%
% Let's start: the functions
@create function/.list={sin,cos,tan,cot,cosec,sec},
% The longtable setup
begin table=\begin{longtable},
end table=\end{longtable},
every head row/.append style={
before row=\toprule,
after row=%
\midrule \endhead
\midrule
\multicolumn{1}{c}{} & {cos} & {sin} & {cot} & {tan} & {csc} & {sec} & \multicolumn{1}{r}{\dots}\\ \bottomrule
\endfoot
\midrule
\multicolumn{1}{c}{} & {cos} & {sin} & {cot} & {tan} & {csc} & {sec} & \multicolumn{1}{r}{} \\ \bottomrule
\endlastfoot},
every odd row/.style={before row={\rowcolor[gray]{.9}}},
}
\pgfplotstablenew[
columns={left,sin,cos,tan,cot,sec,cosec,right},
]{91}\myTable
\begin{document}
\sisetup{scientific-notation = fixed, fixed-exponent = 0, table-auto-round=true}
\pgfplotstabletypeset[
% the column types
@set columns to siunitx type 1/.list={sin,cos},
@set columns to siunitx type 2=tan,
@set columns to siunitx type 3/.list={cot,sec,cosec},
@set columns to basic style/.list={left,right},
% setup for the headers
@secure header/.list={sin,cos,tan,cot,sec},
@set empty header/.list={left,right},
columns/cosec/.append style={column name={\multicolumn{1}{c}{csc}}},
]\myTable
\end{document}