2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Лишняя строка в таблице
Сообщение20.10.2008, 14:09 


04/02/08
325
Буково
Суть проблемы: создаю небольшой стилевой пакет для подготовки бланковых тестов.
Естественно, в каждом тесте может быть различное количество вопросов, поэтому для генерации бланка, в котором будут отмечаться ответы, написана команда showtbl.
Ниже приводится код ее определения

Код:
% временные счетчики
\newcount\cone
\newcount\ctwo
\newcount\cthree
\ctwo=41
% разделитель ячеек (необходимо для нормального функционирования)
\def\l@@n@{&}
% строка с номерами вопросов (с группировкой по 10 штук)
\def\l@n@{\ifnum\cone<\ctwo\gdef\c@ll{\number\cone}\else\gdef\c@ll{}\fi
\global\advance\cone by1\global\advance\cthree by1
\l@@n@\hbox to .5cm{\hfil\c@ll\hfil}
\ifnum\cthree<10 \let\next=\l@n@
\else\let\next=\relax\fi\next}
% четыре строки с вариантами ответов
\def\bl@nk{а)&&&&&&&&&&\\\hline б)&&&&&&&&&&\\\hline в)&&&&&&&&&&\\\hline г)&&&&&&&&&&\\\hline\hline}
% собственно цикл, формирующий таблицу
\def\@@tmp{\ifnum\cone<\ctwo
\global\cthree=0\l@n@\\\hline\bl@nk\let\nxt=\@@tmp
\else\let\nxt=\relax\fi\nxt}
% а это - единственная команда, которая и будет генерировать таблицу
\def\showtbl{\m@keh@ader\global\cone=0\@@tmp\m@kefoot@r}
% заголовок таблицы
\def\m@keh@ader{\begin{center}\begin{tabular}{||c|c|c|c|c|c|c|c|c|c|c||}\hline\hline
Вар.~ответа&\multicolumn{10}{|c||}{Номер вопроса}\\\hline}
% концовка таблицы
\def\m@kefoot@r{\end{tabular}\end{center}}


Сколько с ним ни бьюсь, в конце таблицы остается лишняя строка с пустой первой
ячейкой. Комментирование концов строк макросов не помогает. Удаление пробелов
между командами также не помогло.

Никак не могу понять, в чем же дело. Может, кто-нибудь сможет помочь?

P.S. Если интересует, как закончу, могу выложить весь код (каждый вопрос теста задается в отдельном окружении q, правильный ответ помечается командой \good, затем генерируется бланк ответов, а также автоматически генерируется эталон, в котором правильные ответы отмечены крестиками).

 Профиль  
                  
 
 
Сообщение24.10.2008, 14:45 


04/02/08
325
Буково
Пришлось указать нулевую высоту строк таблицы, а в каждую новую строчку вставлять \strut. Но это, все-таки, не очень хороший выход - многовато лишнего кода.
Стилевой файл подготовил, но проблема еще остается :-(

 Профиль  
                  
 
 
Сообщение25.10.2008, 14:20 
Заслуженный участник


18/03/07
1068
А что, если так:
Код:
% собственно цикл, формирующий таблицу
\def\@@tmp{\ifnum\cone<\ctwo
\global\cthree=0\l@n@\\\hline\bl@nk\@@tmp
\fi}
?

 Профиль  
                  
 
 
Сообщение25.10.2008, 15:13 


04/02/08
325
Буково
Работает :-)
Спасибо!
Похоже, излишне много читать Кнута вредно :-)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group