Проблема с \tabular в booktabs

Проблема с \tabular в booktabs

У меня есть основной документ со следующими пакетами.

\documentclass[11pt,a4paper, twoside]{report}
 \usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{fancyhdr}
\usepackage{geometry}
\usepackage{upgreek}
\usepackage{tikz}%Rahmen der Titelseite
\usepackage{textpos}%Befehl \begin{textblock}
\usepackage{hyperref}
\usepackage{booktabs} %Für die schönen Tabellen
\usepackage{pdfpages}
\usepackage{siunitx}
\usepackage{url}
\geometry{a4paper,left=30mm,right=30mm, top=3cm, bottom=2cm} 
%\pagestyle{fancy}
    %\fancyhead[OR]{\chaptermark}
\usepackage{framed}
\usepackage{ftnxtra}
\usepackage{fnpos}

Я не могу заставить работать следующие строки:

\begin{table} 
\centering
\caption{Messwerte für die spez. Wärmekapazität des Kalorimeters}
\label{Tab:Waermekap:Kal}
\begin{tabular}{p{3cm}p{3cm}} %p{Spaltenbreite} 
\toprule
 \textbf{Parameter} & \textbf{Wert}\\
\midrule
$m_\text{Warmw.}$ & $0{,}0602$\,kg\\
$m_\text{Kaltw.}$ & $0{,}1693$\,kg\\
$m_\text{Kal}$ & $0{,}2355$\,kg\\
$T_\text{Mittel}$ & $311{,}15$\,K\\
$T_\text{Kaltw.}$ & $297{,}45$\,K\\
$T_\text{Warmw.}$ & $353{,}15$\,K\\
\bottomrule
\end{tabular} 
\end{table}

При попытке компиляции TexMaker выдает мне ошибку:

"! Отсутствует # вставлен в преамбулу выравнивания. &l.91 \begin{tabular}{p{3cm} p{3cm}}%p{Spaltenbreite} "

Кто-нибудь видит ошибку?

решение1

Кажется ftnxtra, что табличный ломается. Это работает без ошибок.

\documentclass[11pt,a4paper, twoside]{report}
 \usepackage[utf8]{inputenc}
\usepackage[german]{babel}

\usepackage{booktabs} %Für die schönen Tabellen

\usepackage{siunitx}

%\usepackage{ftnxtra}
\usepackage{fnpos}

\begin{document}

\begin{table} 
\centering
\caption{Messwerte für die spez. Wärmekapazität des Kalorimeters}
\label{Tab:Waermekap:Kal}
\begin{tabular}{p{3cm}p{3cm}} %p{Spaltenbreite} 
\toprule
 \textbf{Parameter} & \textbf{Wert}\\
\midrule
$m_\text{Warmw.}$ & $0{,}0602$\,kg\\
$m_\text{Kaltw.}$ & $0{,}1693$\,kg\\
$m_\text{Kal}$ & $0{,}2355$\,kg\\
$T_\text{Mittel}$ & $311{,}15$\,K\\
$T_\text{Kaltw.}$ & $297{,}45$\,K\\
$T_\text{Warmw.}$ & $353{,}15$\,K\\
\bottomrule
\end{tabular} 
\end{table}

\end{document}

решение2

Несовместим ftnxtraс arrayпакетом, который загружается siunitx. Это является препятствием для использования пакета: arrayвходит в число «стандартных» инструментов LaTeX (хотя и необязательных).

Несколько пакетов загружают array, поскольку это помогает строить таблицы более сложных типов, чем те, которые разрешены функциями ядра.

Происходит то, что происходит ftnxtraпереопределение \@tabular, но делать это слишком поздно, если arrayоно уже загружено.

Вы можете загрузить его до siunitxзагрузки любого другого пакета array, но я не уверен, что он будет делать то, что обещает.

\documentclass[11pt,a4paper, twoside]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{amsmath}
\usepackage{booktabs} %Für die schönen Tabellen
\usepackage{ftnxtra}
\usepackage{siunitx}
\usepackage{fnpos}
\usepackage[
  hyperfootnotes=false,% doesn't work with fnpos and ftnxtra
]{hyperref}

\sisetup{locale=DE} % German conventions for numbers

\setlength{\textheight}{8cm} % just to minimize output

\begin{document}

\begin{table} 
\centering
\caption{Messwerte für die spez. Wärmekapazität des Kalorimeters\footnote{Xyz}}
\label{Tab:Waermekap:Kal}
\begin{tabular}{p{3cm}p{3cm}S[table-format=1.1]} %p{Spaltenbreite} 
\toprule
 \textbf{Parameter} & \textbf{Wert}\\
\midrule
$m_\text{Warmw.}$            & \SI{0,0602}{\kilo\gram} & 1.1\\
$m_\text{Kaltw.}$            & \SI{0,1693}{\kilo\gram} & 0.1\\
$m_\text{Kal}$\footnote{Abc} & \SI{0,2355}{\kilo\gram}\\
$T_\text{Mittel}$            & \SI{311,15}{\kelvin}\\
$T_\text{Kaltw.}$            & \SI{297,45}{\kelvin}\\
$T_\text{Warmw.}$            & \SI{353,15}{\kelvin}\\
\bottomrule
\end{tabular} 
\end{table}

\end{document}

Я добавил Sстолбец только для тестирования и несколько сносок. Обратите внимание, что единицы измерения следует вводить с помощью \SI.

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

Пара заметок.

  1. hyperrefдолжен быть загружен последним (только несколько пакетов должны идти после него)
  2. Оба варианта ftnxtraи fnposиграют со сносками, поэтому гиперссылки ломаются; поэтому необходимо отключить их с помощью hyperfootnotes=false: эффект тот же, то есть никаких гиперссылок, но, по крайней мере, вы не получаете раздражающих предупреждений.

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