la sous-table ne s'aligne pas correctement

Oct 01 2020

J'ai essayé d'aligner 2 tables pour économiser de l'espace en utilisant \subtablescomme indiqué ici . Donc, le même morceau de code se révèle être comme ceci:

Pour faciliter le lecteur, je vais attacher le morceau de latex ici:

\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}

Avez-vous une idée de la raison pour laquelle ces onglets sont mal alignés?

- modifier - J'ai ajouté les packages.

Réponses

1 leandriis Oct 03 2020 at 10:01

Un exemple minimal (non) fonctionnel qui reproduit quelque chose de proche de votre capture d'écran serait le suivant:

\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}

Essayer de compiler l'exemple ci-dessus entraîne un tas de messages d'erreur, le premier étant

 LaTeX Error: Environment subtable undefined.

Ce message d'erreur s'affiche car vous devez ajouter le subcaptionpackage, qui définit l' subtableenvironnement. Corrigez dans l'exemple ci-dessus en ajoutant \usepackage{subcaption}au préambule les résultats du code suivant qui se compile sans messages d'erreur et aboutit à la sortie attendue suivante:

\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}

Conclusion: n'ignorez pas les messages d'erreur! Même si vous obtenez quelque chose qui à première vue ressemble à un fichier PDF, il peut toujours y avoir des problèmes. Après une erreur, TeX essaie seulement de récupérer suffisamment pour vérifier la syntaxe d'une plus grande partie du fichier, il n'essaye pas de produire une sortie raisonnable après une erreur. Ainsi, essayez de corriger tous les messages d'erreur avant même de jeter un œil au fichier pdf résultant. Si vous ne savez pas quoi faire pour corriger un tel message d'erreur, vous pouvez poser une question mentionnant explicitement les messages d'erreur que vous obtenez.

Puisque vous avez mentionné l'une des pages Overleaf How To ..., je suppose que vous utilisez Overleaf pour compiler votre code. Si c'est correct, vous devriez voir quelque chose comme ce qui suit:

Si vous cliquez sur le bouton avec le "6" à l'intérieur d'un rectangle rouge, vous pouvez voir les messages d'erreur. Ne regardez la sortie que s'il n'y a pas de rectangle rouge. (= aucun message d'erreur)