<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" type="topic" id="build_tools">

<info>
  <link type="guide" xref="index"/>
</info>

<title>Herramientas de construcción</title>

<synopsis>
  <p>El propósito de las herramientas de construcción es generar un documento en formato PDF, DVI o PS.</p>
</synopsis>

<links type="section"/>

<section id="overview">
  <title>Introducción</title>

  <p>Se pueden usar varias herramientas para compilar documentos. Hay algunos comandos de bajo nivel y una herramienta de alto nivel: Latexmk.</p>

  <table rules="rowgroups">
    <title>Comandos de bajo nivel</title>
    <thead>
      <tr>
        <td><p>Etiqueta</p></td>
        <td><p>Comando</p></td>
      </tr>
    </thead>
    <tbody its:translate="no">
      <tr>
        <td><p>LaTeX → DVI</p></td>
        <td><p><cmd>latex</cmd></p></td>
      </tr>
      <tr>
        <td><p>LaTeX → PDF</p></td>
        <td><p><cmd>pdflatex</cmd></p></td>
      </tr>
    </tbody>
    <tbody its:translate="no">
      <tr>
        <td><p>DVI → PDF</p></td>
        <td><p><cmd>dvipdf</cmd></p></td>
      </tr>
      <tr>
        <td><p>DVI → PS</p></td>
        <td><p><cmd>dvips</cmd></p></td>
      </tr>
      <tr>
        <td><p>PS → PDF</p></td>
        <td><p><cmd>ps2pdf</cmd></p></td>
      </tr>
    </tbody>
    <tbody>
      <tr>
        <td><p>Bibliografía</p></td>
        <td its:translate="no"><p><cmd>bibtex</cmd></p></td>
      </tr>
      <tr>
        <td><p>Índice</p></td>
        <td its:translate="no"><p><cmd>makeindex</cmd></p></td>
      </tr>
    </tbody>
  </table>

  <p>Compilar un documento LaTeX puede implicar tener que ejecutar varios comandos de bajo nivel, en determinado orden y cierto número de veces. Aquí hay un ejemplo:</p>
  <screen its:translate="no">
$ latex document.tex
$ bibtex document.aux
$ latex document.tex
$ dvips -t a4 document.dvi
$ ps2pdf document.ps</screen>

  <p>Using a higher-level tool such as Latexmk simplify a lot all this process,
  since only one command is required. Indeed, Latexmk can detect how many times the
  <cmd>latex</cmd> or <cmd>pdflatex</cmd> command must be called, and whether
  <cmd>bibtex</cmd> or <cmd>makeindex</cmd> is required. By default,
  <app>Enter TeX</app> uses Latexmk.</p>
</section>

<section id="execute">
  <title>Ejecutar una herramienta de construcción</title>

  <p>Hay varias maneras de ejecutar una herramienta de construcción:</p>
  <list>
    <item><p>Open the <gui style="menu">Build</gui> menu.</p></item>
    <item><p>Usar los botones en la barra de herramientas principal.</p></item>
    <item><p>Use the shortcut: <key>F2</key> → <key>F11</key>.</p></item>
  </list>

  <p>The build tool is executed on the currently opened file. If the file belongs to a
  <link xref="projects">project</link>, it is executed on the project's main file.</p>

  <note style="important">
    <title>Herramientas de construcción ocultas</title>
    <p>By default, a lot of build tools are hidden, so they can't be executed. To view
    the full list of build tools, activate or configure them, read the
    <link xref="#general_configuration"/> section.</p>
  </note>
</section>

<section id="general_configuration">
  <title>Configuración general</title>

  <p>
    To configure the build tools, go to:
    <guiseq>
      <gui style="menu">Build</gui>
      <gui style="menu">Manage Build Tools</gui>
    </guiseq>
  </p>

  <p>Verá una lista de todas las herramientas de construcción, y una segunda lista con sus herramientas personales de construcción. Hay casillas para mostrarlas u ocultarlas. Cuando una herramienta de construcción está oculta, no es posible ejecutarla. Puede realizar algunas acciones, como mover una herramienta, abrir sus propiedades, eliminarla, copiarla, crear una nueva, etc.</p>

  <note style="tip">
    <p>Una pulsación doble sobre una herramienta de construcción mostrará sus propiedades.</p>
  </note>
</section>

<section id="jobs">
  <title>Tareas de una herramienta de construcción</title>

  <p>En las propiedades de una herramienta de construcción, la parte complicada es configurar las tareas. Una herramienta de construcción puede ejecutar varias tareas. Cada tarea contiene dos fragmentos de información:</p>
  <list>
    <item><p>El comando, que puede usar marcadores de posición.</p></item>
    <item><p>The post processor (see <link xref="#post-processors"/>).</p></item>
  </list>

  <p>Cuando ocurre un error durante la ejecución de una tarea, se cancela la ejecución de la herramienta de construcción, por lo que los siguientes trabajos no se lanzan.</p>
</section>

<section id="post-processors">
  <title>Post-procesadores</title>
  <p>El propósito de un post-procesador es filtrar la información de salida del comando y extraer la información útil. Hay cuatro post-procesadores disponibles:</p>

  <terms>
    <item>
      <title its:translate="no">no-output</title>
      <p>La salida simplemente no se muestra.</p>
    </item>
    <item>
      <title its:translate="no">all-output</title>
      <p>Se muestra toda la salida, sin filtrar.</p>
    </item>
    <item>
      <title its:translate="no">latex</title>
      <p>Filter the output of the <cmd>latex</cmd> or <cmd>pdflatex</cmd> commands.
      There can be three types of errors: critical errors, warnings, or bad boxes. There
      are also some other useful information: the size of the document, the number of
      pages, and the number of errors.</p>
    </item>
    <item>
      <title its:translate="no">latexmk</title>
      <p>Used for the <cmd>latexmk</cmd> command. Internally, this post processor uses
      other ones: <em>latex</em> and <em>all-output</em>.</p>
    </item>
  </terms>
</section>
</page>
