@c ---------------------------------------------------------------------
@c
@c Copyright (C) 2012-2021 The Octave Project Developers
@c
@c See the file COPYRIGHT.md in the top-level directory of this
@c or <https://octave.org/copyright/>.
@c
@c
@c This file is part of Octave.
@c
@c Octave is free software: you can redistribute it and/or modify it
@c under the terms of the GNU General Public License as published by
@c the Free Software Foundation, either version 3 of the License, or
@c (at your option) any later version.
@c
@c Octave is distributed in the hope that it will be useful, but
@c WITHOUT ANY WARRANTY; without even the implied warranty of
@c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@c GNU General Public License for more details.
@c
@c You should have received a copy of the GNU General Public License
@c along with Octave; see the file COPYING.  If not, see
@c <https://www.gnu.org/licenses/>.
@c
@c ---------------------------------------------------------------------

@c The following macro marks words that aspell should ignore during
@c spellchecking.  Within Texinfo it has no effect as it merely replaces
@c the macro call with the argument itself.

@macro nospell {arg}
\arg\
@end macro

@c The following macro works around the Info/plain text expansion of @code{XXX}
@c which is `XXX'.  This looks particularly bad when the macro body is
@c single or double-quoted text, such as a property value `"position"'
@ifinfo
@macro qcode{arg}
\arg\
@end macro
@end ifinfo
@ifnotinfo
@macro qcode{arg}
@code{\arg\}
@end macro
@end ifnotinfo

@c The following macro is used for the on-line help system, but we don't
@c want lots of `See also: foo, bar, and baz' strings cluttering the
@c printed manual (that information should be in the supporting text for
@c each group of functions and variables).
@c
@c Implementation Note:
@c For TeX, @vskip produces a nice separation.
@c For Texinfo, '@sp 1' should work, but in practice produces ugly results
@c for HTML.  We use a simple blank line to produce the correct
@c behavior.
@c
@c We use @xseealso now because Texinfo introduced its own @seealso
@c command.  But instead of modifying all source files, we'll have the
@c munge-texi script convert @seealso to @xseealso.

@macro xseealso {args}
@iftex
@vskip 2pt
@end iftex
@ifnottex

@end ifnottex
@ifnotinfo
@noindent
@strong{See also:} \args\.
@end ifnotinfo
@ifinfo
@noindent
See also: \args\.
@end ifinfo
@end macro

@c The following macro works around a situation where the Info/plain text
@c expansion of the @code{XXX} macro is `XXX'.  The use of the apostrophe
@c can be confusing if the code segment itself ends with a transpose operator.
@ifinfo
@macro tcode{arg}
\arg\
@end macro
@end ifinfo
@ifnotinfo
@macro tcode{arg}
@code{\arg\}
@end macro
@end ifnotinfo

@c FIXME: someday, when Texinfo 5.X is standard, we might replace this with
@c @backslashchar, which is a new addition to Texinfo.

@macro xbackslashchar
\\
@end macro

@c These may be useful for all, not just for octave.texi.
@tex
  \ifx\rgbDarkRed\thisisundefined
    \def\rgbDarkRed{0.50 0.09 0.12}
  \fi
  \ifx\linkcolor\thisisundefined
    \relax
  \else
    \global\def\linkcolor{\rgbDarkRed}
  \fi
  \ifx\urlcolor\thisisundefined
    \relax
  \else
    \global\def\urlcolor{\rgbDarkRed}
  \fi
  \ifx\urefurlonlylinktrue\thisisundefined
    \relax
  \else
    \global\urefurlonlylinktrue
  \fi
@end tex

@c Make the apostrophe in code examples cut-and-paste friendly.
@codequoteundirected on
