tamanho do mdframe não corresponde ao tamanho da tabela

tamanho do mdframe não corresponde ao tamanho da tabela

Estou tendo alguns problemas com o mdframedpacote em combinação com o tabular. Depois de descobrir como fazer com que a largura do quadro corresponda à largura do objeto (uma tabela no meu caso) usando um hack descritoaqui, não há o mesmo espaço da mesa até a moldura em ambos os lados.

insira a descrição da imagem aqui

De alguma forma parece que há um pouco mais de espaço no lado esquerdo, cerca de 30%. Aqui está um MWE:

\documentclass[a4paper,12pt]{article}
\usepackage{environ}
\usepackage{varwidth}
\usepackage{siunitx}
\usepackage[version=3]{mhchem} % den nemmeste måde at skrive kemiske navne
\usepackage[framemethod=TikZ]{mdframed} % frame i images/figures
\newlength{\MyMdframedWidthTweak}%
\NewEnviron{MyMdframed}[1][]{%
    \setlength{\MyMdframedWidthTweak}{\dimexpr%
        +\mdflength{innerleftmargin}
        +\mdflength{innerrightmargin}
        +\mdflength{leftmargin}
        +\mdflength{rightmargin}
        }%
    \savebox0{%
        \begin{varwidth}{\dimexpr\linewidth-\MyMdframedWidthTweak\relax}%
            \BODY
        \end{varwidth}%
    }%
    \begin{mdframed}[
        linecolor=red,
        linewidth=3pt,
        roundcorner=5pt,
        userdefinedwidth=\dimexpr\wd0+\MyMdframedWidthTweak\relax, 
        #1]
        \usebox0
    \end{mdframed}
}
\begin{document}
\begin{MyMdframed}
\begin{tabular}{l r}
    Trivialnavn & vanillin \\
    Sumformel & \ce{C8H8O3} \\
    Kemisk struktur & \ce{(CH3O)C6H3(OH)CHO} \\
    IUPAC & 4-hydroxy-3-methoxybenzaldehyde \\
    CAS nummer & 121-33-5 \\
    Farve & hvid-gullig \\
    Duft & behagelig, blomstret \\
    Molarmasse & \SI{152,15}{\gram\per\mole} \\
    Smeltepunkt & \SI{82}{\celsius} \\
    Kogepunkt & \SI{170}{\celsius} \\
    Kilde & Wolfram|Alpha \& Databogen
\end{tabular}
\end{MyMdframed}
\end{document}

Não é exatamente mínimo, mas você entendeu. Achei que fosse algo relacionado à forma como a largura da mesa é calculada, mas não tenho ideia de como ajustar. Eu tive o mesmo problema ao usar plain tikzpara a tarefa descritaaqui.

Responder1

Você tem que adicionar duas vezes o tamanho linewidthdo quadro (aqui 3pt) parauserdefinedwidth

userdefinedwidth=\dimexpr\wd0+\MyMdframedWidthTweak+6pt\relax,

Código completo:

\documentclass[a4paper,12pt]{article}
\usepackage{environ}
\usepackage{varwidth}
\usepackage{siunitx}
\usepackage[version=3]{mhchem} % den nemmeste måde at skrive kemiske navne
\usepackage[framemethod=TikZ]{mdframed} % frame i images/figures
\newlength{\MyMdframedWidthTweak}%
\NewEnviron{MyMdframed}[1][]{%
    \setlength{\MyMdframedWidthTweak}{\dimexpr%
        +\mdflength{innerleftmargin}
        +\mdflength{innerrightmargin}
        +\mdflength{leftmargin}
        +\mdflength{rightmargin}
        }%
    \savebox0{%
        \begin{varwidth}{\dimexpr\linewidth-\MyMdframedWidthTweak\relax}%
            \BODY
        \end{varwidth}%
    }%
    \begin{mdframed}[
        linecolor=red,
        linewidth=3pt,
        roundcorner=5pt,
        userdefinedwidth=\dimexpr\wd0+\MyMdframedWidthTweak+6pt\relax,
        #1]
        \usebox0%
    \end{mdframed}%
}
\begin{document}
\begin{MyMdframed}
\begin{tabular}{l r}
    Trivialnavn & vanillin \\
    Sumformel & \ce{C8H8O3} \\
    Kemisk struktur & \ce{(CH3O)C6H3(OH)CHO} \\
    IUPAC & 4-hydroxy-3-methoxybenzaldehyde \\
    CAS nummer & 121-33-5 \\
    Farve & hvid-gullig \\
    Duft & behagelig, blomstret \\
    Molarmasse & \SI{152,15}{\gram\per\mole} \\
    Smeltepunkt & \SI{82}{\celsius} \\
    Kogepunkt & \SI{170}{\celsius} \\
    Kilde & Wolfram|Alpha \& Databogen
\end{tabular}%
\end{MyMdframed}
\end{document}

insira a descrição da imagem aqui

informação relacionada