subtable non si allinea correttamente
Ho provato ad allineare 2 tabelle per risparmiare spazio usando \subtablescome mostrato qui . Quindi lo stesso pezzo di codice risulta essere così:
Per facilitare il lettore allego qui il pezzo di lattice:
\documentclass{article} % For LaTeX2e
\usepackage{iclr2021_conference,times}
% Optional math commands from https://github.com/goodfeli/dlbook_notation.
\input{math_commands.tex}
\usepackage{hyperref}
\usepackage{url}
% add by yang
\usepackage{graphicx}
\usepackage{graphics}
\usepackage{color}
\usepackage{mathtools}
\usepackage{multirow}
\usepackage{subfigure}
\usepackage{tabularx}
\usepackage{amsfonts}
\usepackage{wrapfig,lipsum,booktabs}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{floatflt}
\usepackage{wrapfig,lipsum,booktabs}
\usepackage{amssymb}
\usepackage{caption}
\usepackage{subcaption}
\begin{table}[h]
\centering
\begin{subtable}[c]{0.45\textwidth}
\centering
\begin{tabular}{l | l | l}
Day & Max Temp & Min Temp \\
\hline \hline
Mon & 20 & 13\\
Tue & 22 & 14\\
Wed & 23 & 12\\
Thurs & 25 & 13\\
Fri & 18 & 7\\
Sat & 15 & 13\\
Sun & 20 & 13
\end{tabular}
\caption{First Week}
\label{tab:week1}
\end{subtable}
\hfill
\begin{subtable}[c]{0.45\textwidth}
\centering
\begin{tabular}{l | l | l}
Day & Max Temp & Min Temp \\
\hline \hline
Mon & 17 & 11\\
Tue & 16 & 10\\
Wed & 14 & 8\\
Thurs & 12 & 5\\
Fri & 15 & 7\\
Sat & 16 & 12\\
Sun & 15 & 9
\end{tabular}
\caption{Second Week}
\label{tab:week2}
\end{subtable}
\caption{Max and min temps recorded in the first two weeks of July}
\label{tab:temps}
\end{table}
Qualche idea sul perché ottengo queste schede disallineate?
- modifica - ho aggiunto i pacchetti.
Risposte
Un esempio minimo (non) funzionante che riproduce qualcosa di simile al tuo screenshot sarebbe il seguente:
\documentclass{article}
\begin{document}
\begin{table}[h]
\centering
\begin{subtable}[c]{0.45\textwidth}
\centering
\begin{tabular}{l | l | l}
Day & Max Temp & Min Temp \\
\hline \hline
Mon & 20 & 13\\
\end{tabular}
\caption{First Week}
\label{tab:week1}
\end{subtable}
\hfill
\begin{subtable}[c]{0.45\textwidth}
\centering
\begin{tabular}{l | l | l}
Day & Max Temp & Min Temp \\
\hline \hline
Mon & 17 & 11\\
\end{tabular}
\caption{Second Week}
\label{tab:week2}
\end{subtable}
\caption{Max and min temps recorded in the first two weeks of July}
\label{tab:temps}
\end{table}
\end{document}
Il tentativo di compilare l'esempio precedente si traduce in un mucchio di messaggi di errore con il primo che è
LaTeX Error: Environment subtable undefined.
Questo messaggio di errore viene visualizzato perché si fogrot per aggiungere il subcaptionpacchetto, che definisce l' subtableambiente. Correggere nell'esempio precedente aggiungendo \usepackage{subcaption}ai risultati del preambolo il codice seguente che viene compilato senza messaggi di errore e restituisce il seguente output previsto:
\documentclass{article}
\usepackage{subcaption}
\begin{document}
\begin{table}[h]
\centering
\begin{subtable}[c]{0.45\textwidth}
\centering
\begin{tabular}{l | l | l}
Day & Max Temp & Min Temp \\
\hline \hline
Mon & 20 & 13\\
\end{tabular}
\caption{First Week}
\label{tab:week1}
\end{subtable}
\hfill
\begin{subtable}[c]{0.45\textwidth}
\centering
\begin{tabular}{l | l | l}
Day & Max Temp & Min Temp \\
\hline \hline
Mon & 17 & 11\\
\end{tabular}
\caption{Second Week}
\label{tab:week2}
\end{subtable}
\caption{Max and min temps recorded in the first two weeks of July}
\label{tab:temps}
\end{table}
\end{document}
Conclusione: non ignorare i messaggi di errore! Anche se ottieni qualcosa che a prima vista assomiglia a un file pdf, possono comunque esserci problemi con esso. Dopo un errore, TeX cerca solo di recuperare quanto basta per controllare la sintassi di una parte maggiore del file, non cerca di creare un output ragionevole dopo un errore. Quindi, prova a correggere tutti i messaggi di errore prima ancora di dare un'occhiata al file pdf risultante. Se non sai cosa fare per correggere un messaggio di errore di questo tipo, puoi porre una domanda menzionando esplicitamente i messaggi di errore che ricevi.
Dato che hai menzionato una delle pagine Overleaf How To ..., presumo che tu usi Overleaf per compilare il tuo codice. Se è corretto, dovresti vedere qualcosa di simile al seguente:
Se fai clic sul pulsante con il "6" all'interno di un rettangolo rosso puoi vedere i messaggi di errore. Dai un'occhiata all'output solo se non c'è un rettangolo rosso. (= nessun messaggio di errore)