Brownian motion

around the essentials…

 

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

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

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

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

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

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

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

(No Ratings Yet)

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

  1. Klaas каже:

    You could use the following as well.

    \ifx#2\relax%
    \else%
    { \textit{(#2)}}%
    \fi

Напишіть відгук

XHTML: Можете використовувати такі теґи: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Останні публікації

Most Rated

Highest Rated

Теґи

Архіви