Saltar al contenido

Cómo agregar un título a una tabla tabular de PyLaTeX

Solución:

los pylatex la biblioteca proporciona un Table() clase como se señaló en la pregunta. Esta clase genera el LaTeX table medio ambiente, por ejemplo:

table1 = Table(position="htb")

genera

begin{table}[htb]%
end{table}

los tabular El entorno se puede agregar al Table() objeto en PyLaTeX, similar a la forma en que se agrega una subsección a una sección. A su vez, la tabla se puede adjuntar a una subsección. Por ejemplo:

test1 = Subsection('MultiColumn')
table1 = Table(position="htb")
tabular1 = Tabular('|c|c|c|c|')
# fill tabular
table1.append(tabular1)
table1.add_caption("My Table Caption")
test1.append(table1)

los Table() la clase tiene una función add_caption() para agregar una leyenda. Si también desea agregar una etiqueta, entonces necesita un objeto separado de la clase Label() y agregue esto al objeto de tabla. Se pueden agregar más objetos o código a la tabla, por ejemplo, un centering comando para centrar el tabular en el medio de la página.

MWE:

from pylatex import Document, Section, Subsection, 
Table, Tabular, MultiColumn, MultiRow, Label, Ref, NoEscape

doc = Document("multirow")
section = Section('Multirow Test')

test1 = Subsection('MultiColumn')
# make table
table1 = Table(position="htb")
# make tabular
tabular1 = Tabular('|c|c|c|c|')
tabular1.add_hline()
tabular1.add_row((1, 2, 3, 4))
tabular1.add_hline()
# horizontally center tabular on page
table1.append(NoEscape(r'centering'))
# append tabular to table
table1.append(tabular1)
# add caption and label
table1.add_caption("My Table Caption")
label1 = Label("tab1")
table1.append(label1)
# append table to subsection
test1.append(table1)
section.append(test1)
# create and print reference to table
ref1 = Ref("tab1")
section.append("The numbers are in Table ")
section.append(ref1)
section.append(".")

doc.append(section)
doc.generate_pdf(clean_tex=False)

LaTeX generado:

documentclass{article}%
usepackage[T1]{fontenc}%
usepackage[utf8]{inputenc}%
usepackage{lmodern}%
usepackage{textcomp}%
usepackage{lastpage}%
begin{document}%
normalsize%
section{Multirow Test}%
label{sec:Multirow Test}%
subsection{MultiColumn}%
label{subsec:MultiColumn}%

begin{table}[htb]%
centering%
begin{tabular}{|c|c|c|c|}%
hline%
1&2&3&4\%
hline%
end{tabular}%
caption{My Table Caption}%
label{tab1}%
end{table}

The numbers are in Table %
ref{tab1}%
.
end{document}

Resultado:

ingrese la descripción de la imagen aquí

Bueno, Marijn se me adelantó. De todos modos, solo quería señalar que puede anidar los tabulares dentro de las tablas (y las otras estructuras también). De esa manera, obtiene un código mejor estructurado y no necesita declarar variables explícitamente todo el tiempo:

from pylatex import Document, Section, Subsection, Tabular, Table, MultiColumn, MultiRow

doc = Document('multirow')
with doc.create(Section('Multirow Test')):
    with doc.create(Subsection('MultiColumn')):
        with doc.create(Table(position='h!')) as table:
            with doc.create(Tabular('|c|c|c|c|')) as tabular:
                tabular.add_hline()
                tabular.add_row((1, 2, 3, 4))
                tabular.add_hline()
            table.add_caption('My Table Caption')

doc.generate_pdf(clean_tex=False)

Como puede ver en el siguiente ejemplo, no es necesario que invente nuevos nombres de variables (tabular1, tabular2, etc.) y no es necesario que lo haga. .append todo al final:

from pylatex import Document, Section, Subsection, Tabular, Table, MultiColumn, MultiRow

doc = Document('multirow')
with doc.create(Section('Multirow Test')):
    with doc.create(Subsection('MultiColumn')):
        with doc.create(Table(position='h!')) as table:
            with doc.create(Tabular('|c|c|c|c|')) as tabular:
                tabular.add_hline()
                tabular.add_row((1, 2, 3, 4))
                tabular.add_hline()
            table.add_caption('My Table Caption')
    with doc.create(Subsection('MultiColumn 2')):
        with doc.create(Table(position='h!')) as table:
            with doc.create(Tabular('|c|c|c|c|')) as tabular:
                tabular.add_hline()
                tabular.add_row((5, 6, 7, 8))
                tabular.add_hline()
            table.add_caption('My Table Caption 2')

doc.generate_pdf(clean_tex=False)

ingrese la descripción de la imagen aquí

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *