@c ---------------------------------------------------------------------
@c
@c Copyright (C) 2012-2026 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"'.
@c The mnemonic to remember this macro is Quoted CODE.

@ifinfo
@macro qcode{arg}
\arg\
@end macro
@end ifinfo
@ifnotinfo
@macro qcode{arg}
@code{\arg\}
@end macro
@end ifnotinfo

@c The following macro works around the Info/plain text expansion of @code{XXX}
@c which is `XXX'.  This can be confusing when the macro body itself
@c ends with a transpose character, such as `x''.
@c The mnemonic to remember this macro is Transpose CODE.

@ifinfo
@macro tcode{arg}
\arg\
@end macro
@end ifinfo
@ifnotinfo
@macro tcode{arg}
@code{\arg\}
@end macro
@end ifnotinfo

@c The following macro is used for the on-line help system, but we don't want
@c lots of `See also: foo, bar, and baz' strings cluttering the printed manual
@c (that information should be in the supporting text for each group of
@c 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, a simple blank line produces the correct behavior.
@c
@c The macro is named @xseealso now because Texinfo introduced its own @seealso
@c command.  But, instead of modifying all source files, the build system uses
@c the munge-texi script to 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 the HTML expansion of @result{} which is
@c a single glyph (right arrow "&rarr").  All other formats expand to a
@c sequence that is 2-characters wide.  The resulting one-character difference
@c throws off alignment of columns in the documentation.  Only for HTML,
@c expand @xresult to "right arrow" + "SPACE".

@ifhtml
@macro xresult
@result{} 
@end macro
@end ifhtml
@ifnothtml
@alias xresult=result
@end ifnothtml
