Я пытаюсь изменить код, который WeBWorK использует для генерации печатных копий онлайн-заданий студентов по математике в формате PDF. Моя цель — улучшить доступность WeBWorK.
Моя задача на данный момент — снабдить таблицы подписями. В настоящее время таблицы создаются, как первая в mwe ниже. Я перепробовал много вещей, чтобы хорошо вставить подпись, и вторая таблица демонстрирует лучшее, что я смог создать.
Проблема в том, что я вижу в третьей таблице, где единственное отличие в том, что есть заголовок, который длиннее суммы ширины последующих столбцов. В этом случае то, что у меня есть, не центрирует заголовок. Также было бы лучше сохранить столбцы такими же разделенными, как в первых двух таблицах.
Мне нужно придерживаться простого текса. Есть ли универсальное решение моей проблемы?
\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}
решение1
Я не понимаю, какую выгоду вы думаете получить таким образом. Я не понимаю, почему \halign
шаблоны указаны именно таким образом.
Вы \omit\hfil\multispan
ошибаетесь, и \hidewidth
это то, что вы ищете.
\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}