
Почему содержимое, предписанное кодом, содержащимся в 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 options
preview and
tightpage are superfluous. The package
siunitx is also exploited for numbers in your table, and
makecell` для более компактных заголовков столбцов.