Estou tentando modificar algum código que o WeBWork usa para gerar cópias impressas em PDF das tarefas de matemática on-line dos alunos. Meu objetivo é melhorar a acessibilidade do WeBWork.
Minha tarefa no momento é dotar as tabelas de legendas. Atualmente são produzidas tabelas como a primeira do mwe abaixo. Eu tentei muitas coisas para inserir bem uma legenda, e a segunda tabela demonstra o melhor que consegui produzir.
O problema é o que vejo na terceira tabela, onde a única diferença é que há uma legenda que é maior que a soma das larguras das colunas subsequentes. Nesse caso, o que tenho não centraliza a legenda. Além disso, seria melhor manter as colunas tão separadas quanto nas duas primeiras tabelas.
Eu precisaria ficar com o texto simples. Existe uma solução única para o meu problema?
\batchmode
\documentclass{amsart}
\begin{document}
\par\medskip\centerline{\kern 1pt\vbox{\halign{#\hfil&&\kern 1em #\hfil\cr
\hfil \(x\)&\hfil \(y\)\cr
\hfil \mbox{\parbox[t]{4ex}{\hrulefill}}&\hfil \mbox{\parbox[t]{4ex}{\hrulefill}}\cr
\hfil \mbox{\parbox[t]{4ex}{\hrulefill}}&\hfil \mbox{\parbox[t]{4ex}{\hrulefill}}\cr}}\kern 0pt}\medskip
%----------------------------
\par\medskip\centerline{\kern 1pt\vbox{\halign{#\hfil&&\kern 1em #\hfil\cr
\omit\hfil\multispan2{caption}\hfil\cr
\hfil \(x\)&\hfil \(y\)\cr
\hfil \mbox{\parbox[t]{4ex}{\hrulefill}}&\hfil \mbox{\parbox[t]{4ex}{\hrulefill}}\cr
\hfil \mbox{\parbox[t]{4ex}{\hrulefill}}&\hfil \mbox{\parbox[t]{4ex}{\hrulefill}}\cr}}\kern 0pt}\medskip
%----------------------------
\par\medskip\centerline{\kern 1pt\vbox{\halign{#\hfil&&\kern 1em #\hfil\cr
\omit\hfil\multispan2{caption that is very long}\hfil\cr
\hfil \(x\)&\hfil \(y\)\cr
\hfil \mbox{\parbox[t]{4ex}{\hrulefill}}&\hfil \mbox{\parbox[t]{4ex}{\hrulefill}}\cr
\hfil \mbox{\parbox[t]{4ex}{\hrulefill}}&\hfil \mbox{\parbox[t]{4ex}{\hrulefill}}\cr}}\kern 0pt}\medskip
\end{document}
Responder1
Não entendo que ganho você pensa obter dessa forma. Não entendo por que os \halign
modelos são especificados dessa forma.
Você \omit\hfil\multispan
está errado e \hidewidth
é o que você está procurando.
\documentclass{amsart}
\begin{document}
\centerline{%
\vbox{
\halign{%
#\hfil&&\kern 1em #\hfil\cr
\hfil \(x\)&\hfil \(y\)\cr
\hfil \parbox[t]{4ex}{\hrulefill}&\hfil \parbox[t]{4ex}{\hrulefill}\cr
\hfil \parbox[t]{4ex}{\hrulefill}&\hfil \parbox[t]{4ex}{\hrulefill}\cr
}
}%
}
\bigskip
\centerline{%
\vbox{
\halign{%
#\hfil&&\kern 1em #\hfil\cr
\multispan2\hidewidth caption\hidewidth\cr
\hfil \(x\)&\hfil \(y\)\cr
\hfil \parbox[t]{4ex}{\hrulefill}&\hfil \parbox[t]{4ex}{\hrulefill}\cr
\hfil \parbox[t]{4ex}{\hrulefill}&\hfil \parbox[t]{4ex}{\hrulefill}\cr
}
}%
}
\bigskip
\centerline{%
\vbox{
\halign{%
#\hfil&&\kern 1em #\hfil\cr
\multispan{2}\hidewidth caption that is very long\hidewidth\cr
\hfil \(x\)&\hfil \(y\)\cr
\hfil \parbox[t]{4ex}{\hrulefill}&\hfil \parbox[t]{4ex}{\hrulefill}\cr
\hfil \parbox[t]{4ex}{\hrulefill}&\hfil \parbox[t]{4ex}{\hrulefill}\cr
}
}%
}
\end{document}