2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 как напечатать аргумент n раз?
Сообщение09.03.2008, 20:28 


22/12/07
229
Здравствуйте!

Скажите пожалуйста, есть ли команда вида \printntimes{arg}{n}, копирующая аргумент "arg" n раз? То есть из \printntimes{example}{3} нужно получить exampleexampleexample.
Желательно, чтобы в качестве n можно было подставить, например, enumi.

Р.S. Мне на самом деле нужно чтобы элементы списка вида
Hack attempt!
не нумеровались, а штриховались, т.е. вместо 1.1, 1.2 и т.д нужно получить 1', 1'' и т.д. В принципе я могу сделать по аналогии с командой \ralph, приведённой у Львовского, но мне кажется что должен быть более простой способ...
Код приведённого списка имеет вид:
Код:
\begin{enumerate}
\renewcommand{\theenumi}{1.\arabic{enumi}}
\item Первый пункт.
\item Второй пункт.
\end{enumerate}


Заранее спасибо!

 Профиль  
                  
 
 Re: как напечатать аргумент n раз?
Сообщение10.03.2008, 01:12 


22/06/05
164
nckg писал(а):
Скажите пожалуйста, есть ли команда вида \printntimes{arg}{n}, копирующая аргумент "arg" n раз?

Такую команду можно определить, используя конструкцию \loop ... \repeat:
Код:
\newcount\myloopcounter
\newcommand{\ntimes}[2]{\myloopcounter=0%
\loop\ifnum\myloopcounter<#2\advance\myloopcounter by1%
#1\repeat}

P. S. По-моему, в данном случае лучше определить как \ralph у Львовского, так как число повторов предполагается очень небольшим. А ещё лучше использовать нормальные, человеческие способы нумерации. :wink:

 Профиль  
                  
 
 Ещё есть пакет enumerate (штрихи делать не умеет)
Сообщение10.03.2008, 13:12 


22/06/05
164
Небольшой офтопик: если хочется модифицировать оформление нумерованных списков, то можно взглянуть на пакет enumerate. Пакет не умеет выводить номера в виде штрихов, но немножко автоматизирует печать счётчика списка в форматах \Alph, \alph, \Roman, \roman, \arabic. Файл документации (enumerate.dvi или enumerate.pdf) обычно находится в папке texmf/doc/latex/tools.

 Профиль  
                  
 
 
Сообщение10.03.2008, 13:33 


22/12/07
229
Спасибо за ответ! Но вот такой код у меня не работает:

Код:
\newcount\myloopcounter
\newcommand{\ntimes}[2]{\myloopcounter=0%
\loop\ifnum\myloopcounter<#2\advance\myloopcounter by1%
#1\repeat}

\begin{enumerate}
\renewcommand{\theenumi}{\ntimes{a}{enumi}}
\item Первый пункт.
\item Второй пункт.
\end{enumerate}


Выдаёт следующую ошибку:

Код:
! Missing number, treated as zero.
<to be read again>
                   e
l.98 \item П
            ервый пункт.
?


Видимо, \ntimes срабатывает раньше, чем нужно...

 Профиль  
                  
 
 подставлять значение счётчика
Сообщение10.03.2008, 16:13 


22/06/05
164
nckg писал(а):
Спасибо за ответ! Но вот такой код у меня не работает:
Код:
...
\renewcommand{\theenumi}{\ntimes{a}{enumi}}
...

Команде ntimes в качестве второго аргумента нужно число, а не строка enumi. Чтобы подставлялось значение счётчика enumi, можно написать там \value{enumi} или \arabic{enumi}.

 Профиль  
                  
 
 
Сообщение10.03.2008, 20:13 


22/12/07
229
Всё, спасибо за помощь! С \value всё заработало!
Пакет enumerate буду иметь в виду.

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

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



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

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


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

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