
Encontrei uma coisa estranha ao configurar uma tabela longa girada com apa6
.
Especificamente, isso funciona:
\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}
Inserir um trema em uma das células da tabela (primeira linha, coluna da esquerda) quebra tudo e gera um erro:
\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}
Curiosamente, se eu retirar \DeclareDelayedFloatFlavor*{landscape}{table}
do preâmbulo, tudo funciona novamente (porém, preciso manter este comando).
É claro que o problema pode ser facilmente contornado escapando tremas e caracteres específicos (por exemplo, \"a
neste caso), mas me perguntei se existe uma solução mais geral para esse contexto.
Desde já, obrigado.
PS: os tremas funcionam corretamente fora da mesa longa girada.
Responder1
Por alguma razão que não entendo, o arquivo temporário onde a tabela atrasada é gravada é codificado em latim 1 em vez de utf8. Uma solução alternativa é definir a codificação de entrada para latin 1 quando a tabela for lida novamente. Você pode fazer isso convenientemente com
\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}
Responder2
Você pode querer informar o apa6
mantenedor ou o endfloat
mantenedor ( apa6
usa endfloat
para exibir os carros alegóricos).
O principal problema é que, se pudermos gravar utf8 no disco, precisaremos que os dados sejam protegidos antes de serem gravados, caso contrário, os caracteres especiais serão expandidos.
Isto parece ajudar, colocado no preâmbulo
\makeatletter
\renewcommand\efloat@iwrite[1]{%
\expandafter\immediate\expandafter\protected@write\csname efloat@post#1\endcsname{}}
\makeatother
Mudei e adicionei depois, \write
pois esta macro espera três argumentos e não apenas dois.\protected@write
{}
\csname
Editar: Hmm, olhando para o código gerado, não, isso não grava utf8 no disco, mas parece compilar corretamente.