Итак, у меня возникли некоторые проблемы с таблицами в Latex. Я пытался найти решение в уже заданных вопросах, но не смог ни понять, ни заставить их работать. Вот мой код таблицы:
\begin{table}[ht]
\caption{Model Input Information: Materials}
\centering
\begin{tabular}{c c c}
\toprule
Available Materials & Material Input Parameters & Description \\
\midrule
Fused Silica (delta eV = 9) & alpha & Avalanche Coefficient [\si{\cm\squared\per\joule}] \\
Fused Silica (delta eV = 7.5) & delta eV & Material Band Gap [\si{\electronvolt}] \\
\ce{GaAs} & me & Effective Electron Mass [\si{\kilogram}] \\
\ce{ZnSe} & n0 & Linear Refractive Index \\
\ce{Ge} & n2 & Non-Linear Refractive Index \\
\ce{HfO_2} & T & Effective Decay Constant [fs] \\
\ce{TiO_2} & & \\
\ce{Ta_2O_5} & & \\
\ce{Al_2O_3} & & \\
\ce{SiO_2} & & \\
\bottomrule
\end{tabular}
\label{table:MaterialInputs}
\end{table}
Таблица выглядит хорошо, но она простирается слишком далеко вправо, почти до края страницы. Мне нужен способ это исправить. Я пробовал использовать p в команде tabular, чтобы вручную задать ширину, но мне не нравится, как она работает при переносе текста. Она создает переносы в словах вместо того, чтобы переносить их на строку ниже.
Любые предложения будут ценны!
решение1
Здесь показаны столбцы фиксированной ширины с неровной настройкой:
\documentclass{article}
\usepackage{array,mhchem,booktabs,siunitx}% please don't leave it to people to guess these
\begin{document}
\begin{table}[htp]% don't forget p
\caption{Model Input Information: Materials}
\centering
\begin{tabular}{
>{\raggedright\arraybackslash}p{4cm}
c
>{\raggedright\arraybackslash}p{2.5cm}}
\toprule
Available Materials & Material Input Parameters & Description \\
\midrule
Fused Silica (delta eV = 9) & alpha & Avalanche Coefficient [\si{\cm\squared\per\joule}] \\
Fused Silica (delta eV = 7.5) & delta eV & Material Band Gap [\si{\electronvolt}] \\
\ce{GaAs} & me & Effective Electron Mass [\si{\kilogram}] \\
\ce{ZnSe} & n0 & Linear Refractive Index \\
\ce{Ge} & n2 & Non-Linear Refractive Index \\
\ce{HfO_2} & T & Effective Decay Constant [fs] \\
\ce{TiO_2} & & \\
\ce{Ta_2O_5} & & \\
\ce{Al_2O_3} & & \\
\ce{SiO_2} & & \\
\bottomrule
\end{tabular}
\label{table:MaterialInputs}
\end{table}
\end{document}
решение2
Вы можете использовать makecell
пакет: он позволяет вам изменять строку в ячейке, определяет команду для заголовков столбцов и вы можете увеличить вертикальный интервал между строками, обычно слишком узкий. Я также добавил пакет caption
, поэтому вертикальный интервал между заголовком и таблицей.
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{array, booktabs}
\usepackage{siunitx}
\usepackage{makecell}
\usepackage{caption}
\def\ce#1{\ensuremath{\mathrm{#1}}}
\begin{document}
\begin{table}[ht]
\caption{Model Input Information: Materials}
\centering
\renewcommand{\theadfont}{\normalsize\bfseries}
\begin{tabular}{ccc}
\toprule
\thead{Available Materials} & \thead{Material Input Parameters} & \thead{Description} \\
\midrule
\makecell*{Fused Silica\\ (delta eV = 9)} & alpha & \makecell{Avalanche Coefficient\\{ [\si{\cm\squared\per\joule}]}} \\
\makecell*{Fused Silica\\ (delta eV = 7.5)} & delta eV & \makecell{Material Band Gap\\{[\si{\electronvolt}]}} \\
\makecell*{\ce{GaAs}} & me & Effective Electron Mass [\si{\kilogram}]\\
\makecell*{\ce{ZnSe}} & n0 & Linear Refractive Index \\
\makecell*{\ce{Ge}} & n2 & Non-Linear Refractive Index \\
\makecell*{\ce{HfO_2}} & T & Effective Decay Constant [fs] \\
\makecell*{\ce{TiO_2}} & & \\
\makecell*{\ce{Ta_2O_5}} & & \\
\makecell*{\ce{Al_2O_3}} & & \\
\makecell*{\ce{SiO_2}} & & \\
\bottomrule
\end{tabular}
\label{table:MaterialInputs}
\end{table}
\end{document}
Примечание: Поскольку у меня не установлен пакет mhchem, я переопределил команду \ce, чтобы она больше походила на настоящую химическую формулу.