JezK
Edit File: _0040setfilename.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <!-- Created by GNU Texinfo 6.8, https://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.8, 8 June 2021), 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-2021 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>@setfilename (GNU Texinfo 6.8)</title> <meta name="description" content="@setfilename (GNU Texinfo 6.8)"> <meta name="keywords" content="@setfilename (GNU Texinfo 6.8)"> <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="Texinfo-File-Header.html" rel="up" title="Texinfo File Header"> <link href="_0040settitle.html" rel="next" title="@settitle"> <link href="Start-of-Header.html" rel="prev" title="Start of Header"> <style type="text/css"> <!-- a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em} a.summary-letter {text-decoration: none} blockquote.indentedblock {margin-right: 0em} div.display {margin-left: 3.2em} div.example {margin-left: 3.2em} kbd {font-style: oblique} pre.display {font-family: inherit} pre.format {font-family: inherit} pre.menu-comment {font-family: serif} pre.menu-preformatted {font-family: serif} span.nolinebreak {white-space: nowrap} span.roman {font-family: initial; font-weight: normal} span.sansserif {font-family: sans-serif; font-weight: normal} span:hover a.copiable-anchor {visibility: visible} ul.no-bullet {list-style: none} --> </style> </head> <body lang="en"> <div class="subsection" id="g_t_0040setfilename"> <div class="header"> <p> Next: <a href="_0040settitle.html" accesskey="n" rel="next"><code>@settitle</code>: Set the Document Title</a>, Previous: <a href="Start-of-Header.html" accesskey="p" rel="prev">Start of Header</a>, Up: <a href="Texinfo-File-Header.html" accesskey="u" rel="up">Texinfo File Header</a> [<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> <span id="g_t_0040setfilename_003a-Set-the-Output-File-Name"></span><h4 class="subsection">2.5.3 <code>@setfilename</code>: Set the Output File Name</h4> <span id="setfilename"></span><span id="index-setfilename"></span> <p>The <code>@setfilename</code> line specifies the name of the output file to be generated. When present, it should be the first Texinfo command (that is, after ‘<samp>\input texinfo</samp>’). Write the <code>@setfilename</code> command at the beginning of a line and follow it on the same line by the Info file name. </p> <div class="example"> <pre class="example">@setfilename <var>info-file-name</var> </pre></div> <p>The name must be different from the name of the Texinfo file. There are two conventions for choosing the name: you can either remove the extension (such as ‘<samp>.texi</samp>’) entirely from the input file name, or (recommended) replace it with the ‘<samp>.info</samp>’ extension. </p> <span id="index-Ignored-before-_0040setfilename"></span> <span id="index-_005cinput-source-line-ignored"></span> <p>When a <code>@setfilename</code> line is present, the Texinfo processors ignore everything written before the <code>@setfilename</code> line. This is why the very first line of the file (the <code>\input</code> line) does not show up in the output. </p> <p>If there is no <code>@setfilename</code> line, <code>makeinfo</code> uses the input file name to determine the output name: first, any of the extensions <code>.texi</code>, <code>.tex</code>, <code>.txi</code> or <code>.texinfo</code> is removed from the input file name; then, the output format specific extension is added—<code>.html</code> when generating HTML, <code>.info</code> when generating Info, etc. The <code>\input</code> line is still ignored in this processing, as well as leading blank lines. </p> <p>When producing another output format, <code>makeinfo</code> will replace any final extension with the output format-specific extension (‘<samp>html</samp>’ when generating HTML, for example), or add a dot followed by the extension (‘<samp>.html</samp>’ for HTML) if the given name has no extension. </p> <p><code>@setfilename</code> used to be required by the Texinfo processors, and some other programs may still expect it to be present; for example, Automake (see <a data-manual="automake" href="../automake/Texinfo.html#Texinfo">Texinfo</a> in <cite>GNU Automake</cite>). </p> <span id="index-Length-of-file-names"></span> <span id="index-File-name-collision"></span> <span id="index-Info-file-name_002c-choosing"></span> <p>Although an explicit ‘<samp>.info</samp>’ extension is preferable, some operating systems cannot handle long file names. You can run into a problem even when the file name you specify is itself short enough. This occurs because the Info formatters split a long Info file into short indirect subfiles, and name them by appending ‘<samp>-1</samp>’, ‘<samp>-2</samp>’, …, ‘<samp>-10</samp>’, ‘<samp>-11</samp>’, and so on, to the original file name. (See <a href="Tag-and-Split-Files.html">Tag Files and Split Files</a>.) The subfile name <samp>texinfo.info-10</samp>, for example, is too long for old systems with a 14-character limit on filenames; so the Info file name for this document is <samp>texinfo</samp> rather than <samp>texinfo.info</samp>. When <code>makeinfo</code> is running on operating systems such as MS-DOS which impose severe limits on file names, it may remove some characters from the original file name to leave enough space for the subfile suffix, thus producing files named <samp>texin-10</samp>, <samp>gcc.i12</samp>, etc. </p> <p>See also the <samp>--output</samp> option in <a href="Invoking-texi2any.html">Invoking <code>texi2any</code>/<code>makeinfo</code> from a Shell</a>. </p> </div> <hr> <div class="header"> <p> Next: <a href="_0040settitle.html"><code>@settitle</code>: Set the Document Title</a>, Previous: <a href="Start-of-Header.html">Start of Header</a>, Up: <a href="Texinfo-File-Header.html">Texinfo File Header</a> [<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>