blob: 3aa7cd93d5859ecd2fb80921c2d86193553db302 [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>Conditional Commands (GNU Texinfo 6.8dev)</title>
<meta name="description" content="Conditional Commands (GNU Texinfo 6.8dev)">
<meta name="keywords" content="Conditional Commands (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="Conditionals.html" rel="up" title="Conditionals">
<link href="Conditional-Not-Commands.html" rel="next" title="Conditional Not Commands">
<style type="text/css">
<!--
div.example {margin-left: 3.2em}
-->
</style>
</head>
<body lang="en">
<div class="section-level-extent" id="Conditional-Commands">
<div class="nav-panel">
<p>
Next: <a href="Conditional-Not-Commands.html" accesskey="n" rel="next">Conditional Not Commands</a>, Up: <a href="Conditionals.html" accesskey="u" rel="up">Conditionally Visible Text</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="Conditional-Commands-1">15.1 Conditional Commands</h3>
<p>Texinfo has an <code class="code">@if<var class="var">format</var></code> environment for each output
format, to allow conditional inclusion of text for a particular output
format.
</p>
<a class="index-entry-id" id="index-ifinfo"></a>
<p><code class="code">@ifinfo</code> begins segments of text that should be ignored by
TeX when it typesets the printed manual, and by <code class="command">makeinfo</code>
when not producing Info output. The segment of text appears only in
the Info file and, for historical compatibility, the plain text
output.
</p>
<a class="index-entry-id" id="index-ifdocbook"></a>
<a class="index-entry-id" id="index-ifhtml"></a>
<a class="index-entry-id" id="index-ifplaintext"></a>
<a class="index-entry-id" id="index-iftex"></a>
<a class="index-entry-id" id="index-ifxml"></a>
<p>The environments for the other formats are analogous:
</p>
<dl class="table">
<dt><code class="code">@ifdocbook &hellip; @end ifdocbook</code></dt>
<dd><p>Text to appear only in the DocBook output.
</p>
</dd>
<dt><code class="code">@ifhtml &hellip; @end ifhtml</code></dt>
<dd><p>Text to appear only in the HTML output.
</p>
</dd>
<dt><code class="code">@ifplaintext &hellip; @end ifplaintext</code></dt>
<dd><p>Text to appear only in the plain text output.
</p>
</dd>
<dt><code class="code">@iftex &hellip; @end iftex</code></dt>
<dd><p>Text to appear only in the printed manual.
</p>
</dd>
<dt><code class="code">@ifxml &hellip; @end ifxml</code></dt>
<dd><p>Text to appear only in the XML output.
</p></dd>
</dl>
<p>The <code class="code">@if&hellip;</code> and <code class="code">@end if&hellip;</code> commands must appear
on lines by themselves in your source file. The newlines following
the commands are (more or less) treated as whitespace, so that the
conditional text is flowed normally into a surrounding paragraph.
</p>
<p>The <code class="code">@if&hellip;</code> constructs are intended to conditionalize
normal Texinfo source; see <a class="pxref" href="Raw-Formatter-Commands.html">Raw Formatter Commands</a>, for using
underlying format commands directly.
</p>
<p>Here is an example showing all these conditionals:
</p>
<div class="example">
<pre class="example-preformatted">@iftex
This text will appear only in the printed manual.
@end iftex
@ifinfo
However, this text will appear only in Info and plain text.
@end ifinfo
@ifhtml
And this text will only appear in HTML.
@end ifhtml
@ifplaintext
Whereas this text will only appear in plain text.
@end ifplaintext
@ifxml
Notwithstanding that this will only appear in XML.
@end ifxml
@ifdocbook
Nevertheless, this will only appear in DocBook.
@end ifdocbook
</pre></div>
<p>The preceding example produces the following line:
</p>
<p>And this text will only appear in HTML.
</p>
<p>Notice that you only see one of the input lines, depending on which
version of the manual you are reading.
</p>
<a class="index-entry-id" id="index-errormsg"></a>
<p>In complex documents, you may want Texinfo to issue an error message
in some conditionals that should not ever be processed. The
<code class="code">@errormsg{<var class="var">text</var>}</code> command will do this; it takes one
argument, the text of the error message.
</p>
<p>We mention <code class="code">@errormsg{}</code> here even though it is not strictly
related to conditionals, since in practice it is most likely to be
useful in that context. Technically, it can be used anywhere.
See <a class="xref" href="External-Macro-Processors.html">External Macro Processors: Line Directives</a>, for a caveat regarding the line
numbers which <code class="code">@errormsg</code> emits in TeX.
</p>
</div>
<hr>
<div class="nav-panel">
<p>
Next: <a href="Conditional-Not-Commands.html">Conditional Not Commands</a>, Up: <a href="Conditionals.html">Conditionally Visible Text</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>