Советы по использованию автономного пакета с табличной средой

Советы по использованию автономного пакета с табличной средой

Почему содержимое, предписанное кодом, содержащимся в tabularсреде, усекается (крайне справа) при вызове с использованием standaloneкласса документа, настроенного в приведенном ниже mwe?

\documentclass[preview,border=7pt,active,tightpage]{standalone}
\usepackage{booktabs}
\usepackage{chemfig}
\usepackage{filecontents} 
\usepackage[scaled]{helvet}

\begin{filecontents}{methane.tex}
\chemfig{
H% 2
    -[:210]% 1
              (
        -[:210]H% 3
              )
              (
        -[:300]H% 5
              )
    -[:120]H% 4
    }
\end{filecontents}

% sans serif font
\renewcommand\familydefault{\sfdefault} 

% define formula
\def\methane{\mathrm{CH_{4}}}

\begin{document}
\begin{center}
\begin{tabular}[]{lp{3.5cm}ccc}
\toprule
\textbf{Formula} & \textbf{Structure} & \textbf{Molar mass} (g mol$^{-1}$) & \textbf{Melting point} ($^{\circ}\mathrm{C}$) & \textbf{Boiling point} ($^{\circ}\mathrm{C}$) \\
\midrule%
$\methane$ & \begin{minipage}[]{1cm} \input{methane.tex} \end{minipage} & 16.043 & -182.50 & -161.50 \\ [2mm]
\bottomrule
\end{tabular}
\end{center}
\end{document}

Вероятно, это случай неправильной настройки с standaloneмоей стороны.

решение1

Чтобы удалить усечение, я удалил environmant, centerа также некоторые параметры класса в следующем примере. Чтобы удалить предупреждение о недозаполненном поле, я также изменил ширину мини-страницы с 1cmна \linewidth. С этой настройкой мини-страницы автоматически наследуют ширину pстолбца tpe, в котором они используются.

\documentclass[border=7pt]{standalone}
\usepackage{booktabs}
\usepackage{chemfig}
\usepackage{filecontents} 
\usepackage[scaled]{helvet}

\begin{filecontents}{methane.tex}
\chemfig{
H% 2
    -[:210]% 1
              (
        -[:210]H% 3
              )
              (
        -[:300]H% 5
              )
    -[:120]H% 4
    }
\end{filecontents}

% sans serif font
\renewcommand\familydefault{\sfdefault} 

% define formula
\def\methane{\mathrm{CH_{4}}}

\begin{document}
\begin{tabular}[]{lp{3.5cm}ccc}
\toprule
\textbf{Formula} & \textbf{Structure} & \textbf{Molar mass} (g mol$^{-1}$) & \textbf{Melting point} ($^{\circ}\mathrm{C}$) & \textbf{Boiling point} ($^{\circ}\mathrm{C}$) \\
\midrule%
$\methane$ & \begin{minipage}[]{\linewidth} \input{methane.tex} \end{minipage} & 16.043 & -182.50 & -161.50 \\ [2mm]
\bottomrule
\end{tabular}
\end{document}

Для набора химических формул я бы рекомендовал использовать mhchem(или chemformula) и для единиц, которые я бы использовал sinuintx. Я включил оба в следующий пример:

\documentclass[border=7pt]{standalone}
\usepackage{booktabs}
\usepackage{chemfig}
\usepackage{filecontents} 
\usepackage[scaled]{helvet}

\usepackage[version=4]{mhchem}
\usepackage{siunitx}

\begin{filecontents}{methane.tex}
\chemfig{
H% 2
    -[:210]% 1
              (
        -[:210]H% 3
              )
              (
        -[:300]H% 5
              )
    -[:120]H% 4
    }
\end{filecontents}

% sans serif font
\renewcommand\familydefault{\sfdefault} 

% define formula
\def\methane{\ce{CH4}}

\begin{document}
\begin{tabular}[]{lp{3.5cm}ccc}
\toprule
\textbf{Formula} & \textbf{Structure} & \textbf{Molar mass} (\si{\gram\per\mole}) & \textbf{Melting point} (\si{\celsius}) & \textbf{Boiling point} (\si{\celsius}) \\
\midrule%
$\methane$ & \begin{minipage}[]{\linewidth} \input{methane.tex} \end{minipage} & 16.043 & -182.50 & -161.50 \\ [2mm]
\bottomrule
\end{tabular}
\end{document}

решение2

Вы можете использовать специализированные пакеты, кроме того, чтобы не использовать previewи просто набрать таблицу. Вместо , minipageгде ширина должна быть угадана, используйте вложенный tabular.

\documentclass[margin=4]{standalone}
\usepackage{booktabs}
\usepackage{chemfig,chemformula,siunitx}
\usepackage{filecontents} 
\usepackage[scaled]{helvet}

\begin{filecontents}{methane.tex}
\chemfig{
H% 2
    -[:210]% 1
              (
        -[:210]H% 3
              )
              (
        -[:300]H% 5
              )
    -[:120]H% 4
    }
\end{filecontents}

% sans serif font
\renewcommand\familydefault{\sfdefault} 

\begin{document}

\begin{tabular}{
  l
  c
  S[table-format=2.3]
  S[table-format=-3.2]
  S[table-format=-3.2]
}
\toprule
\textbf{Formula} &
\textbf{Structure} &
{\textbf{Molar mass} (\si{\gram\per\mol})} &
{\textbf{Melting point} (\si{\celsius})} &
{\textbf{Boiling point} (\si{\celsius})} \\
\midrule
\ch{CH4} & \begin{tabular}{@{}c@{}}\input{methane.tex}\end{tabular} & 16.043 & -182.50 & -161.50 \\
\bottomrule
\end{tabular}

\end{document}

введите описание изображения здесь

решение3

Немного изменено @leandriisотвечать:

введите описание изображения здесь

\documentclass[border=7pt]{standalone}
\usepackage[scaled]{helvet}
\renewcommand\familydefault{\sfdefault}

\usepackage{booktabs, makecell}
\renewcommand\theadfont{\small\bfseries}
\renewcommand\theadgape{}
\setcellgapes{3pt}
\makegapedcells

\usepackage{chemfig}
\newcommand\methane{\chemfig{H -[:0]C (-[:90]H)(-[:270]H)(-[:0]H)}}
\usepackage[version=4]{mhchem}
\usepackage{siunitx}


\begin{document}
\setchemfig{atom sep=2em}
\begin{tabular}[]{l c SSS}
    \toprule
\thead{Formula}
            & \thead{Structure}
                & {\thead{Molar mass\\ (\si{\gram\per\mole})}}
                            & {\thead{Melting point\\ (\si{\celsius})}}
                                        & {\thead{Boiling point\\ (\si{\celsius})}}  \\
    \midrule
\ce{CH4}    & \methane 
                & 16.043    & -182.50   & -161.50 \\
\bottomrule
\end{tabular}
\end{document}

Как я отметил в своем комментарии ниже, причиной вашей проблемы является использование centerокружения . Also options optionspreview andtightpage are superfluous. The packagesiunitx is also exploited for numbers in your table, andmakecell` для более компактных заголовков столбцов.

Связанный контент