
Beim Einrichten eines gedrehten Longtables mit ist mir etwas Merkwürdiges aufgefallen apa6
.
Im Einzelnen funktioniert das:
\documentclass[12pt
,man % manuscript mode; jou man doc
,babel, american % language
%,biblatex % loads biblatex or apacite
,a4paper % default:letter
% ,floatsintext
,noextraspace %removes extra space after headings; closer to "true" double-spacing
%,mask
,longtable
%,helv % font in man mode
%,tt % font in man mode
%,draftfirst
%,draftall
]{apa6}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{pdflscape}
\usepackage{lipsum}
\usepackage{threeparttablex}
\usepackage{siunitx}
%% for the huge table to avoid boxes warnings
\newcommand{\rr}{\raggedright}
\newcommand{\tn}{\tabularnewline}
\DeclareDelayedFloatFlavor*{landscape}{table}
\title{Longtables and Me: An Endless Story}
\shorttitle{Longtables}
\author{Me}
\affiliation{MeU}
\authornote{
Empty
}
\abstract{
Empty.
}
\keywords{Empty}
\begin{document}
\lipsum
\begin{landscape}
\begin{ThreePartTable}
\begin{TableNotes}
\rr \footnotesize %
\textit{Note.}
Just a TableNote to explain some stuff.
\end{TableNotes}
\begin{longtable}{p{7.3cm}
S[table-format = 5]
l
l
S[table-format = 2.2]
c
p{5cm}}
\caption{Longitudinal Studies Included in the Analysis} \\
\label{tab:studies} \\
\toprule
1st Column & {2nd Column} & 3rd Column & 4th Column & {5th Column} & 6th & 7th Column\\
\midrule
\endfirsthead
\multicolumn{7}{l}{{\tablename} \thetable{} (continued)} \\[0.5ex]
\toprule
1st Column & {2nd Column} & 3rd Column & 4th Column & {5th Column} & 6th & 7th Column\\
\midrule
\endhead
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry that is quite long and breaks to the next line & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr Another rather long Entry that also breaks and extends over two lines & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\bottomrule
\insertTableNotes
\end{longtable}
\end{ThreePartTable}
\end{landscape}
\lipsum
\end{document}
Das Einfügen eines Umlauts in eine der Tabellenzellen (erste Zeile, linke Spalte) bringt alles zum Erliegen und führt zu einem Fehler:
\documentclass[12pt
,man % manuscript mode; jou man doc
,babel, american % language
%,biblatex % loads biblatex or apacite
,a4paper % default:letter
% ,floatsintext
,noextraspace %removes extra space after headings; closer to "true" double-spacing
%,mask
,longtable
%,helv % font in man mode
%,tt % font in man mode
%,draftfirst
%,draftall
]{apa6}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{pdflscape}
\usepackage{lipsum}
\usepackage{threeparttablex}
\usepackage{siunitx}
%% for the huge table to avoid boxes warnings
\newcommand{\rr}{\raggedright}
\newcommand{\tn}{\tabularnewline}
\DeclareDelayedFloatFlavor*{landscape}{table}
\title{Longtables and Me: An Endless Story}
\shorttitle{Longtables}
\author{Me}
\affiliation{MeU}
\authornote{
Empty
}
\abstract{
Empty.
}
\keywords{Empty}
\begin{document}
\lipsum
\begin{landscape}
\begin{ThreePartTable}
\begin{TableNotes}
\rr \footnotesize %
\textit{Note.}
Just a TableNote to explain some stuff.
\end{TableNotes}
\begin{longtable}{p{7.3cm}
S[table-format = 5]
l
l
S[table-format = 2.2]
c
p{5cm}}
\caption{Longitudinal Studies Included in the Analysis} \\
\label{tab:studies} \\
\toprule
1st Column & {2nd Column} & 3rd Column & 4th Column & {5th Column} & 6th & 7th Column\\
\midrule
\endfirsthead
\multicolumn{7}{l}{{\tablename} \thetable{} (continued)} \\[0.5ex]
\toprule
1st Column & {2nd Column} & 3rd Column & 4th Column & {5th Column} & 6th & 7th Column\\
\midrule
\endhead
\rr An Entry with ä & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry that is quite long and breaks to the next line & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr Another rather long Entry that also breaks and extends over two lines & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\bottomrule
\insertTableNotes
\end{longtable}
\end{ThreePartTable}
\end{landscape}
\lipsum
\end{document}
Interessanterweise \DeclareDelayedFloatFlavor*{landscape}{table}
funktioniert alles wieder, wenn ich es aus der Präambel entferne (ich muss diesen Befehl jedoch beibehalten).
Natürlich kann das Problem leicht umgangen werden, indem Umlaute und Sonderzeichen maskiert werden (z. B. \"a
in diesem Fall), aber ich habe mich gefragt, ob es für diesen Zusammenhang eine allgemeinere Lösung gibt.
Dank im Voraus.
PS: Umlaute funktionieren außerhalb der gedrehten Longtable einwandfrei.
Antwort1
Aus einem Grund, den ich nicht verstehe, ist die temporäre Datei, in der die verzögerte Tabelle ausgegeben wird, in Latin 1 und nicht in UTF-8 kodiert. Eine Lösung besteht darin, die Eingabekodierung auf Latin 1 zu setzen, wenn die Tabelle erneut eingelesen wird. Sie können dies bequem mit
\AtBeginDelayedFloats{\inputencoding{latin1}}
\documentclass[12pt
,man % manuscript mode; jou man doc
,babel, american % language
%,biblatex % loads biblatex or apacite
,a4paper % default:letter
% ,floatsintext
,noextraspace %removes extra space after headings; closer to "true" double-spacing
%,mask
,longtable
%,helv % font in man mode
%,tt % font in man mode
%,draftfirst
%,draftall
]{apa6}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{pdflscape}
\usepackage{lipsum}
\usepackage{threeparttablex}
\usepackage{siunitx}
%% for the huge table to avoid boxes warnings
\newcommand{\rr}{\raggedright}
\newcommand{\tn}{\tabularnewline}
\DeclareDelayedFloatFlavor*{landscape}{table}
\AtBeginDelayedFloats{\inputencoding{latin1}}
\title{Longtables and Me: An Endless Story}
\shorttitle{Longtables}
\author{Me}
\affiliation{MeU}
\authornote{
Empty
}
\abstract{
Empty.
}
\keywords{Empty}
\begin{document}
\lipsum
\begin{landscape}
\begin{ThreePartTable}
\begin{TableNotes}
\rr \footnotesize %
\textit{Note.}
Just a TableNote to explain some stuff.
\end{TableNotes}
\begin{longtable}{p{7.3cm}
S[table-format = 5]
l
l
S[table-format = 2.2]
c
p{5cm}}
\caption{Longitudinal Studies Included in the Analysis} \\
\label{tab:studies} \\
\toprule
1st Column & {2nd Column} & 3rd Column & 4th Column & {5th Column} & 6th & 7th Column\\
\midrule
\endfirsthead
\multicolumn{7}{l}{{\tablename} \thetable{} (continued)} \\[0.5ex]
\toprule
1st Column & {2nd Column} & 3rd Column & 4th Column & {5th Column} & 6th & 7th Column\\
\midrule
\endhead
\rr An Entry with ä & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry that is quite long and breaks to the next line & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr Another rather long Entry that also breaks and extends over two lines & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\rr An Entry & 1234 & ABCD & glo & 99.32 & 2 & Some more text \\
\bottomrule
\insertTableNotes
\end{longtable}
\end{ThreePartTable}
\end{landscape}
\lipsum
\end{document}
Antwort2
Möglicherweise möchten Sie den apa6
Betreuer oder den endfloat
Betreuer ( der die Floats anzeigt) apa6
informieren .endfloat
Das Hauptproblem besteht darin, dass wir die Daten vor dem Schreiben schützen müssen, wenn wir UTF-8 auf die Festplatte schreiben können, da sonst Sonderzeichen erweitert werden.
Dies scheint zu helfen, in der Präambel platziert
\makeatletter
\renewcommand\efloat@iwrite[1]{%
\expandafter\immediate\expandafter\protected@write\csname efloat@post#1\endcsname{}}
\makeatother
Ich habe \write
es geändert \protected@write
und {}
danach hinzugefügt \csname
, da dieses Makro drei Argumente erwartet, nicht nur zwei.
Bearbeiten: Hmm, wenn man sich den generierten Code ansieht, nein, dieser schreibt kein UTF-8 auf die Festplatte, aber er scheint korrekt kompiliert zu werden.