Подскажите по теху (циклы, переменное количество аргументов в newcomma

turik

Допустим, в статье имеется очень много кусков вида:
\subsubsection{somechapter}
Это глава somechapter.
Какое-то описание.
\showexample{somechapter}{2}
\showexample{somechapter}{3}
\showexample{somechapter}{5}

Хочется не писать всё это каждый раз, а вызывать какую-то команду с переменным количеством аргументов вроде
\showchapter{somechapter}{Какое-то описание}{2}{3}{5}

или хотя бы научиться обращаться к символу по номеру (как-то же реализовано tabular? ограничить себя одним символом во втором аргументе showexample, и вызывать
\showchapter{somechapter}{Какое-то описание}{235}

Гуглинг по foreach, newcommand variable arguments, reference to char from string by index и прочим запросам ничего не дал :( неужели так нельзя сделать?

nely25

в техах для циклов \repeat используют IIRC
и переменное число обязательных аргументов, как ты предлагаешь, точно не дадут. Может с необязательными так делают, но я хз

turik

Необязательных, конечно :)
Гуглом пользоваться не умею, не подскажешь, как пользоваться этим \repeat?

nely25

Гуглом пользоваться не умею
loop,repeat - теховские команды, латех тут не при чём.
я давно с ними дело имел, не подскажу. В крайнем случае в техбуке посмотри, там должно быть.

turik

По tex repeat оно, конечно, ищет ничуть не лучше.
Ну вот я нагуглил уже: http://tex.loria.fr/texlive-htmldoc/eplain/eplain_6.html#SEC...
\for\name:=karl,kathy\do{%
   \message{\name}%
}%
Скопипастил в свой документ - получаю
[6] [7]
! Undefined control sequence.
l.226 \for
     \name:=karl,kathy{%
?
Какой пакет подключить, чтобы оно заработало?
ЗЫ: Если что, miktex v2.8 почти что искаропки.

DanilaZ


\input eplain
\for\name:=karl,kathy\do{%
\name \hfil \break %
}%
\end
tex karl.tex

ramses1971

или хотя бы научиться обращаться к символу по номеру (как-то же реализовано tabular? ограничить себя одним символом во втором аргументе showexample, и вызывать
Для этого тебе нужно открыть TeXBook и прочитать главу про макросы (которые \def).

turik

И что с этим надо делать?
Если попытаться засунуть этот \input eplain в сам документ - вылезет "! LaTeX Error: Can be used only in preamble.", то же самое - если засунуть его в определение какой-нибудь команды и вызвать эту команду из самого документа. Гуглинг не даёт ровным счётом ничего.

turik

Посмотрел на эти макросы, охренел от низкоуровневости \def по сравнению с \newcommand.
То есть, сделать это более-менее высокоуровнево нельзя?
Оставить комментарий
Имя или ник:
Комментарий: