blob: e4367c87dc082efd3fcaf40e2f0c297f75cde483 [file]
<!DOCTYPE html>
<html>
<!-- Created by Texinfo 6.8dev+dev, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- This manual is for GNU Texinfo (version 6.8dev, 23 February 2022),
a documentation system that can produce both online information and a
printed manual from a single source using semantic markup.
Copyright (C) 1988, 1990-1993, 1995-1999, 2001-2022 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts. A copy of the license is included in the section entitled
"GNU Free Documentation License". -->
<title>@alias (GNU Texinfo 6.8dev)</title>
<meta name="description" content="@alias (GNU Texinfo 6.8dev)">
<meta name="keywords" content="@alias (GNU Texinfo 6.8dev)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="texi2any">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link href="index.html" rel="start" title="Top">
<link href="Command-and-Variable-Index.html" rel="index" title="Command and Variable Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Defining-New-Texinfo-Commands.html" rel="up" title="Defining New Texinfo Commands">
<link href="_0040definfoenclose.html" rel="next" title="@definfoenclose">
<link href="Macro-Details.html" rel="prev" title="Macro Details">
<style type="text/css">
<!--
div.example {margin-left: 3.2em}
-->
</style>
</head>
<body lang="en">
<div class="section-level-extent" id="g_t_0040alias">
<div class="nav-panel">
<p>
Next: <a href="_0040definfoenclose.html" accesskey="n" rel="next"><code class="code">@definfoenclose</code>: Customized Highlighting</a>, Previous: <a href="Macro-Details.html" accesskey="p" rel="prev">Macro Details and Caveats</a>, Up: <a href="Defining-New-Texinfo-Commands.html" accesskey="u" rel="up">Defining New Texinfo Commands</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Command-and-Variable-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<h3 class="section" id="g_t_0040alias-new_003dexisting">16.4 &lsquo;<samp class="samp">@alias <var class="var">new</var>=<var class="var">existing</var></samp>&rsquo;</h3>
<a class="anchor" id="alias"></a><a class="index-entry-id" id="index-Aliases_002c-command"></a>
<a class="index-entry-id" id="index-Command-aliases"></a>
<a class="index-entry-id" id="index-alias"></a>
<p>The &lsquo;<samp class="samp">@alias</samp>&rsquo; command defines a new command to be just like an
existing one. This is useful for defining additional markup names,
thus preserving additional semantic information in the input even
though the output result may be the same.
</p>
<p>Write the &lsquo;<samp class="samp">@alias</samp>&rsquo; command on a line by itself, followed by the
new command name, an equals sign, and the existing command name.
Whitespace around the equals sign is optional and ignored if present.
Thus:
</p>
<div class="example">
<pre class="example-preformatted">@alias <var class="var">new</var> = <var class="var">existing</var>
</pre></div>
<p>For example, if your document contains citations for both books and
some other media (movies, for example), you might like to define a
macro <code class="code">@moviecite{}</code> that does the same thing as an ordinary
<code class="code">@cite{}</code> but conveys the extra semantic information as well.
You&rsquo;d do this as follows:
</p>
<div class="example">
<pre class="example-preformatted">@alias moviecite = cite
</pre></div>
<p>Macros do not always have the same effect as aliases, due to vagaries
of argument parsing. Also, aliases are much simpler to define than
macros. So the command is not redundant.
</p>
<p>Unfortunately, it&rsquo;s not possible to alias Texinfo environments; for
example, <code class="code">@alias lang=example</code> is an error.
</p>
<p>Aliases must not be recursive, directly or indirectly.
</p>
<p>It is not advisable to redefine any TeX primitive, plain TeX, or
Texinfo command name as an alias. Unfortunately this is a very large
set of names, and the possible resulting errors from TeX are
unpredictable.
</p>
<p><code class="command">makeinfo</code> will accept the same identifiers for aliases as it
does for macro names, that is, alphanumerics and (except as the first
character) &lsquo;<samp class="samp">-</samp>&rsquo;.
</p>
</div>
<hr>
<div class="nav-panel">
<p>
Next: <a href="_0040definfoenclose.html"><code class="code">@definfoenclose</code>: Customized Highlighting</a>, Previous: <a href="Macro-Details.html">Macro Details and Caveats</a>, Up: <a href="Defining-New-Texinfo-Commands.html">Defining New Texinfo Commands</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Command-and-Variable-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>