TeX: чи рядок порожній?

Posted on

TeX має кілька «функцій» для умовної «компіляції», але серед них немає перевірки «рівності рядків». Зокрема, мені треба перевіряти, чи порожній певний рядок (другий аргумент до макроса).

Але це можна реалізувати, створивши макроси «потрібний рядок» (у моєму випадку — порожній) та «оцей рядок» і порівнявши два макроси:

\def\myMacro#1#2{%
\def\reallyempty{}%
\def\secondarg{#2}%
#1%
\ifx\secondarg\reallyempty
  {}
\else
  { \textit{(#2)}}
\fi%
}

Навіщо це треба?

Ну, скажімо, я форматую певним чином збірку віршів… чи, краще, нотну збірку. І хочу певним чином форматувати автора твору і, якщо такий є, аранжувальника. Наведений приклад «надрукує» автора і аранжувальника (у дужках курсивом), чи просто автора, якщо аранжувальник не заданий.

Крім того, використання такого макроса гарне саме тим, що я лише в одному місці (у самому макросі) міняю весь формат: дуже просто «відмовитися» від дужок, між двома аргументами вставити перенос рядка тощо.

2 Replies to “TeX: чи рядок порожній?”

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.