Использование \multispan в текстовом формате для создания заголовка массива

Использование \multispan в текстовом формате для создания заголовка массива

Я пытаюсь изменить код, который 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}

введите описание изображения здесь

Связанный контент