TeX має кілька «функцій» для умовної «компіляції», але серед них немає перевірки «рівності рядків». Зокрема, мені треба перевіряти, чи порожній певний рядок (другий аргумент до макроса).
Але це можна реалізувати, створивши макроси «потрібний рядок» (у моєму випадку — порожній) та «оцей рядок» і порівнявши два макроси:
\def\myMacro#1#2{% \def\reallyempty{}% \def\secondarg{#2}% #1% \ifx\secondarg\reallyempty {} \else { \textit{(#2)}} \fi% } |
Навіщо це треба?
Ну, скажімо, я форматую певним чином збірку віршів… чи, краще, нотну збірку. І хочу певним чином форматувати автора твору і, якщо такий є, аранжувальника. Наведений приклад «надрукує» автора і аранжувальника (у дужках курсивом), чи просто автора, якщо аранжувальник не заданий.
Крім того, використання такого макроса гарне саме тим, що я лише в одному місці (у самому макросі) міняю весь формат: дуже просто «відмовитися» від дужок, між двома аргументами вставити перенос рядка тощо.
You could use the following as well.
\ifx#2\relax%
\else%
{ \textit{(#2)}}%
\fi
:) :)
Thank you, this is great.