为什么当使用下面 mwe 中配置的文档类调用时,环境内包含的代码规定的内容tabular
会被截断(最右边) ?standalone
\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
为了消除截断,我center
在以下示例中删除了环境以及一些类选项。为了消除框未满警告,我还将 minipage 的宽度从 更改为1cm
。\linewidth
通过此设置,minipages 会自动继承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
预览and
tightpage are superfluous. The package
siunitx is also exploited for numbers in your table, and
makecell`来获得更紧凑的列标题。