Bezug in Text auf Tabelle im Querformat (hvfloat)

Tabellen und Grafiken erstellen und anordnen


tk79
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Sa 19. Sep 2020, 14:53

Bezug in Text auf Tabelle im Querformat (hvfloat)

Beitrag von tk79 »

Hallo zusammen,

ich habe folgende Herausforderung, die ich bereits größtenteils mittels Google- und Forumssuche selbst herausfinden konnte: Ich habe eine Tabelle, die aufgrund der Breite ihrer Spalten seitwärts gedreht werden muss. Da es die erste Tabelle des Anhangs ist, scheidet sidewaystable aus, da (so wie ich es verstehe) diese Lösung nicht Tabelle und Kapitelüberschrift auf der gleichen Seite zulässt. Ich nutze daher das Paket hvfloat, was zunächst auch funktioniert.
Zwei Probleme bleiben jedoch:
(1) Obwohl die Nummerierung der Tabellen im Anhang korrekt erfolgt, stimmt die Nummerierung nicht bei Verweis auf die Tabelle im Text mit dem Befehl \ref{} (siehe Beispiel). Sprich obwohl ich \ref{tab:1} schreibe, erscheint im pdf Tabelle "2" - wobei die Verlinkung bei Klick auf die Zahl zur korrekten Tabelle 1 erfolgt... Was geht hier vor?
(2) Ich formatiere in meinen übrigen Tabellen die Tabellen-Überschrift in kursiv sowie den Bezeichner "Table" fett. Die kursive Schrift für die Überschrift bekomme ich bei der gedrehten Tabelle auch hin, wie kann ich aber den Bezeichner auch fett darstellen?

Hier ein Beispiel, mit dem sich das Problem nachvollziehen lässt:

Code: Alles auswählen

\documentclass[12pt,a4paper]{article}

\usepackage{setspace} 
\usepackage{hyperref}
\usepackage{caption}
\usepackage{subcaption}
\usepackage[backend = biber, style = apa]{biblatex}
\usepackage{booktabs}
\usepackage{hvfloat}
\usepackage{tabularx}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} % linksbündig mit Breitenangabe
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} % zentriert mit Breitenangabe
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} % rechtsbündig mit Breitenangabe

\captionsetup[table]{labelfont=bf,textfont=it,font=normalsize, justification=centering}
\newcommand{\note}[1]{\smallskip\footnotesize #1}
\captionsetup[figure]{labelfont=bf,textfont=it,font=normalsize, justification=centering}

\usepackage{lipsum}

\begin{document}
\section{Text}
Der Verweis auf Test-Tabelle~\ref{tab:1} erfolgt nicht korrekt.
\newpage

\section{Tables}
\begin{center}
\hvFloat[nonFloat=true, capPos=top, rotAngle=90, objectPos=c]%
{table}%
{\begin{tabular*}{19.5cm}{L{6.5cm}L{5.5cm}L{7.5cm}}
    \toprule
    \toprule
    \textbf{Col A} & \textbf{Col B} & \textbf{Col C} \\
    \bottomrule
    A & 123 & 123 \\
    \bottomrule
    B & 123 & 123\\
    \bottomrule
   	C & 123 & 123\\
    \bottomrule
    \bottomrule
\multicolumn{3}{@{}p{19.5cm}@{}}{\footnotesize \lipsum[1]}\\
\end{tabular*}}
{\textit{Test-Tabelle 1}}
{tab:1}
\end{center}
\clearpage

\begin{table}[hb]
	{
		\centering
		\caption{Test-Tabelle 2}
		\label{tab:2}
		\begin{tabular}{lcc}
Year & Col1 & Col2\\
1999 & 1 & 2\\
2000 & 3 & 4\\
2001 & 5 & 6\\
		\end{tabular}
		\par}
\note{\lipsum[1]}
\end{table}
\clearpage

\begin{table}[hb]
	{
		\centering
		\caption{Test-Tabelle 3}
		\label{3}
		\begin{tabular}{lcc}
Year & Col1 & Col2\\
1999 & 1 & 2\\
2000 & 3 & 4\\
2001 & 5 & 6\\
		\end{tabular}
		\par}
\note{\lipsum[1]}
\end{table}

\end{document}

Ich würde mich über Hinweise freuen... Danke!


sommerfee
Forum-Century
Forum-Century
Beiträge: 216
Registriert: Sa 12. Jul 2008, 08:02

Re: Bezug in Text auf Tabelle im Querformat (hvfloat)

Beitrag von sommerfee »

Ich schaue mir das am Wochenende an, vorher komme ich leider nicht dazu.


tk79
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Sa 19. Sep 2020, 14:53

Re: Bezug in Text auf Tabelle im Querformat (hvfloat)

Beitrag von tk79 »

Das wäre wirklich sehr nett. Danke.


sommerfee
Forum-Century
Forum-Century
Beiträge: 216
Registriert: Sa 12. Jul 2008, 08:02

Re: Bezug in Text auf Tabelle im Querformat (hvfloat)

Beitrag von sommerfee »

Für mich sieht das nach einem Fehler im hvfloat-Paket aus: Innerhalb von \do@@@hvFloat wird die Beschriftung mit \tabcaption gesetzt, und im Anschluß wird intern \label verwendet. \tabcaption setzt aber dummerweise die \caption innerhalb einer Gruppe (\begingroup...\endgroup), und damit ist die Referenz von der Beschriftung anschließend futsch.

Solange man innerhalb seines Dokumentes nicht selber \figcaption oder \tabcaption verwendet, sollte folgendes nach dem Laden des hvfloat-Paketes helfen:

Code: Alles auswählen

% Work-around: Remove \begingroup and \endgroup from \figcaption and \tabcaption
\makeatletter
\renewcommand\figcaption[2][]{\def\@captype{figure}%
  \ifx\relax\hv@caption@format\relax\else\expandafter\captionsetup\expandafter{\hv@caption@format}\fi
  \ifx\relax#1\relax \caption{#2}\else\caption[#1]{#2}\fi}
\renewcommand\tabcaption[2][]{\def\@captype{table}%
  \ifx\relax\hv@caption@format\relax\else\expandafter\captionsetup\expandafter{\hv@caption@format}\fi
  \ifx\relax#1\relax \caption{#2}\else\caption[#1]{#2}\fi}
\makeatother

(Ich melde das mal Herbert Voß, dem Autor des hvfloat Paketes.)


Bartman
Forum-Meister
Forum-Meister
Beiträge: 2226
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Re: Bezug in Text auf Tabelle im Querformat (hvfloat)

Beitrag von Bartman »

Da die beiden \captionsetup-Befehle im Beispiel die gleichen Einstellungen für Tabellen und Abbildungen veranlassen, kannst Du sie in einem Befehl zusammenfassen und das optionale Argument entfernen. Durch diese Maßnahme wird die gewünschte Formatierung auch auf die Beschriftung von \hvfloat angewandt. Das mag keine Lösung des Problems sein, aber Du bekommst, was Du haben möchtest.


CrazyHorse
Forum-Guru
Forum-Guru
Beiträge: 252
Registriert: Di 16. Mär 2010, 09:39

Re: Bezug in Text auf Tabelle im Querformat (hvfloat)

Beitrag von CrazyHorse »

Teste mal http://archiv.dante.de/~herbert/hvfloat.sty
Einfach im gleichen Verzeichnis wie dein Testdokument speichern.
Der Fehler sollte dann nicht mehr auftreten.

Für die Formatierung:

Code: Alles auswählen

\captionsetup{labelfont=bf,textfont=it,font=normalsize, justification=centering}
\hvFloatSet{capFormat={labelfont=bf,textfont=it,font=normalsize, justification=centering}}

Doppelt, da du sowohl \hvFloat als auch die normalen Gleitumgebungen verwendest.
Nur mit \hvFloat könntest du dir \captionsetup sparen.


tk79
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Sa 19. Sep 2020, 14:53

Re: Bezug in Text auf Tabelle im Querformat (hvfloat)

Beitrag von tk79 »

Herzlichen Dank!


Antworten