<?xml version="1.0" encoding="UTF-8"?>
<rss  xmlns:atom="http://www.w3.org/2005/Atom" 
      xmlns:media="http://search.yahoo.com/mrss/" 
      xmlns:content="http://purl.org/rss/1.0/modules/content/" 
      xmlns:dc="http://purl.org/dc/elements/1.1/" 
      version="2.0">
<channel>
<title>Sergio Jácobo-Zavaleta</title>
<link>https://sjacobozavaleta.github.io/blog/archive.html</link>
<atom:link href="https://sjacobozavaleta.github.io/blog/archive.xml" rel="self" type="application/rss+xml"/>
<description>Archivo cronológico de artículos sobre robótica, herramientas académicas, investigación y literatura en La Tercera Fundación.</description>
<image>
<url>https://sjacobozavaleta.github.io/../assets/img/social-card-blog.png</url>
<title>Sergio Jácobo-Zavaleta</title>
<link>https://sjacobozavaleta.github.io/blog/archive.html</link>
</image>
<generator>quarto-1.9.38</generator>
<lastBuildDate>Fri, 12 Sep 2025 22:00:00 GMT</lastBuildDate>
<item>
  <title>Cómo crear breadcrumbs dinámicos en Quarto</title>
  <dc:creator>Sergio Jácobo-Zavaleta</dc:creator>
  <link>https://sjacobozavaleta.github.io/blog/posts/2025/dynamic-breadcrumbs-quarto/</link>
  <description><![CDATA[ 

<script>
  document.addEventListener("DOMContentLoaded", function () {
    document.body.classList.add("section-blog");
  });
</script>




<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Nota
</div>
</div>
<div class="callout-body-container callout-body">
<p>Este artículo conserva una solución desarrollada para la arquitectura anterior. En la versión actual del sitio, la navegación se resuelve principalmente con la estructura nativa de Quarto y metadatos consistentes.</p>
</div>
</div>
<p>Si estás construyendo un sitio web o blog con <a href="https://quarto.org">Quarto</a>, seguramente quieres que tus lectores sepan exactamente dónde están en tu estructura de contenido. Una herramienta esencial para lograrlo son las famosas <strong>migas de pan (breadcrumbs)</strong>.</p>
<p>Las breadcrumbs mejoran la experiencia del usuario, permiten retroceder fácilmente y refuerzan la arquitectura de información de tu sitio.</p>
<p>En este artículo, te muestro <strong>cómo implementar breadcrumbs dinámicos en Quarto</strong>, aprovechando los metadatos del documento (<code>YAML</code>) sin necesidad de JavaScript ni shortcodes complejos. Todo usando el motor nativo de Quarto.</p>
<hr>
<section id="qué-son-las-breadcrumbs" class="level2">
<h2 class="anchored" data-anchor-id="qué-son-las-breadcrumbs">🧱 ¿Qué son las breadcrumbs?</h2>
<p>Las <em>breadcrumbs</em> son una barra de navegación secundaria (como un <code>sidebar</code>) que muestra la ubicación jerárquica del contenido actual. Por ejemplo:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb1-1"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">Inicio</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> Blog <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> Psicología <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> 2025 <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> Ello, yo y el superyó</span></code></pre></div></div>
<p>Este patrón es común en blogs, documentación técnica y sitios académicos. Por defecto, Quarto permite la generación de breadcrumbs de forma automática utilizando el contenido definido en el archivo <code>_quarto_yml</code> dentro los parámetros de navegación en la barra lateral de una página web (<code>website &gt; sidebar &gt; contents</code>). El resultado son breadcrumbs aparecen encima del título de la página.</p>
</section>
<section id="sin-embargo-es-posible-crear-breadcrumbs-y-ubicarlos-en-cualquier-sección-de-nuestra-página-de-forma-automática-utilizando-únicamente-metadatos-del-documento.-así-es-posible-incluir-breadcrumbs-a-todos-los-posts-clasificados-en-diversas-categorías-dentro-del-mismo-blog." class="level2">
<h2 class="anchored" data-anchor-id="sin-embargo-es-posible-crear-breadcrumbs-y-ubicarlos-en-cualquier-sección-de-nuestra-página-de-forma-automática-utilizando-únicamente-metadatos-del-documento.-así-es-posible-incluir-breadcrumbs-a-todos-los-posts-clasificados-en-diversas-categorías-dentro-del-mismo-blog.">Sin embargo, es posible crear breadcrumbs y ubicarlos en cualquier sección de nuestra página de forma automática utilizando únicamente metadatos del documento. Así, es posible incluir breadcrumbs a todos los posts clasificados en diversas categorías dentro del mismo blog.</h2>
</section>
<section id="objetivo" class="level2">
<h2 class="anchored" data-anchor-id="objetivo">✅ Objetivo</h2>
<p>Crear un breadcrumb automático como el siguiente:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb2-1"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">Inicio</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> Blog <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> <span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">Categoría</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">]</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> [Título del Post]</span></code></pre></div></div>
<p>Donde:</p>
<ul>
<li><code>[Categoría]</code> viene del primer elemento de <code>categories</code> en el YAML.<br>
</li>
<li><code>[Título del Post]</code> viene del campo <code>title</code>.</li>
</ul>
<div class="callout callout-style-default callout-important callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Importante
</div>
</div>
<div class="callout-body-container callout-body">
<p>En breadcrumbs, cada término está asociado a un respectivo enlace.</p>
</div>
</div>
<p>Además, se define una estructura de blog ordenado mediante subcarpetas para un aislamiento de contenido, escalabilidad y compatibilidad con Quarto. No obstante, la lógica funciona para cualquier otra estructura.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb3-1"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">mi-pagina-web/</span></span>
<span id="cb3-2"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">├──</span> index.qmd</span>
<span id="cb3-3"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">├──</span> _includes/</span>
<span id="cb3-4"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   └── breadcrumb.qmd</span>
<span id="cb3-5"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">├──</span> blog/</span>
<span id="cb3-6"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   ├── index.qmd</span>
<span id="cb3-7"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   ├── astrobiologia/</span>
<span id="cb3-8"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   │   └── vida-en-marte/</span>
<span id="cb3-9"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   │       └── vida-en-marte.qmd</span>
<span id="cb3-10"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   ├── neurociencia/</span>
<span id="cb3-11"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   │   └── cerebro-plastico/</span>
<span id="cb3-12"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   │       └── cerebro-plastico.qmd</span>
<span id="cb3-13"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   ├── fisica-cuantica/</span>
<span id="cb3-14"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   │   ├── fisica-cuantica.qmd</span>
<span id="cb3-15"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   │   └── entrelazamiento/</span>
<span id="cb3-16"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   │       └── entrelazamiento.qmd</span>
<span id="cb3-17"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   ├── biotecnologia/</span>
<span id="cb3-18"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   │   └── edicion-genetica/</span>
<span id="cb3-19"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   │       └── edicion-genetica.qmd</span></code></pre></div></div>
<hr>
</section>
<section id="solución-basada-en-metadata" class="level2">
<h2 class="anchored" data-anchor-id="solución-basada-en-metadata">💡 Solución basada en metadata</h2>
<p>Como ejemplo, se define el siguiente post sobre <em>Entrelazamiento Cuántico</em> con la siguiente <code>YAML</code></p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb4-1"><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">---</span></span>
<span id="cb4-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">title</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Entrelazamiento Cuántico"</span></span>
<span id="cb4-3"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">description</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Explorando uno de los fenómenos más misteriosos de la física moderna."</span></span>
<span id="cb4-4"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">date</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> 2025-06-03</span></span>
<span id="cb4-5"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">categories</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">[</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Física Cuántica"</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">]</span></span>
<span id="cb4-6"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tags</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">[</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"fisica-cuantica"</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"cuántica"</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"entrelazamiento"</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"mecánica-cuántica"</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">]</span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"> # ← En minúsculas, para rutas</span></span>
<span id="cb4-7"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">image</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> images/thumbnail-entrelazamiento.png</span></span>
<span id="cb4-8"><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">---</span></span></code></pre></div></div>
<section id="paso-1-define-categories-y-tags-apropiados-para-el-post" class="level3">
<h3 class="anchored" data-anchor-id="paso-1-define-categories-y-tags-apropiados-para-el-post">Paso 1: Define <code>categories</code> y <code>tags</code> apropiados para el post</h3>
<p>De forma conveniente, el uso de categorías coincide con las carpetas principales dentro del blog (<code>astrobiologia, neurociencia, fisica-cuantica y biotecnologia</code>), por lo que su contenido se define respetando mayúsculas, minúsculas y espacios (apropiado para la visualización). Por otro lado, el uso de <code>tags</code> no solo se reserva para palabras claves relacionedos con el tema, sino tambien para el nombre de la carpeta de nuestro post en minúsculas (<code>fisica-cuantica</code>). Esto asegura que sea utilizado como parte su URL de forma correcta.</p>
<div class="callout callout-style-default callout-warning callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Advertencia
</div>
</div>
<div class="callout-body-container callout-body">
<p>Usa <code>tags</code> para control técnico (URLs), y <code>categories</code> para lo visual.</p>
</div>
</div>
</section>
<section id="paso-2-crea-un-archivo-de-breadcrumbs-reutilizable" class="level3">
<h3 class="anchored" data-anchor-id="paso-2-crea-un-archivo-de-breadcrumbs-reutilizable">Paso 2: Crea un archivo de breadcrumbs reutilizable</h3>
<p>Crea esta ruta en tu proyecto:</p>
<pre class="basch"><code>_include/breadcrumb.qmd</code></pre>
<p>Con el siguiente contenido:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb6-1"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span>div class<span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"breadcrumbs"</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb6-2">  [Inicio](..<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span>..<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span>..<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span>index.qmd) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> </span>
<span id="cb6-3">  [Blog](..<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span>..<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span>index.qmd) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> </span>
<span id="cb6-4">  [{{<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span> meta categories<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">.1</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span>}}](..<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span>{{<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span> meta tags<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">.1</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span>}}.qmd) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> </span>
<span id="cb6-5">  <span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span>span<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span>{{<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span> meta title <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span>}}<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span><span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;">/</span>span<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb6-6"><span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;/</span>div<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span></span></code></pre></div></div>
</div>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Nota
</div>
</div>
<div class="callout-body-container callout-body">
<p><strong>No puedes usar {{&lt; meta &gt;}} dentro de atributos HTML como <code>href</code></strong>. Intentarlo genera texto literal en lugar de valores reemplazados. No obstante, <strong>sí funciona aquí</strong> en código Quarto porque estamos incluyéndolo directamente con {{&lt; include &gt;}} y Quarto procesa los metadatos correctamente en texto plano como la definición de enlaces <code>[Nombre de post](ruta/a/post)</code>.</p>
<p>Por ejemplo el siguiente código en html podría no funcionar directamente.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb7-1"><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span>div class<span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"breadcrumbs"</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb7-2">  <span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span>a href<span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"../../../index.qmd"</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span>Inicio<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span><span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;">/</span>a<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> <span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span> </span>
<span id="cb7-3">  <span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span>a href<span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"../../index.qmd"</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span>Blog<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span><span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;">/</span>a<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> <span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span> </span>
<span id="cb7-4">  <span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span>a href<span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"../{{&lt; meta tags.1 &gt;}}.qmd"</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span>{{<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span> meta categories<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">.1</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span>}}<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span><span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;">/</span>a<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> <span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span> </span>
<span id="cb7-5">  <span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span>span<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span>{{<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span> meta title <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span>}}<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span><span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;">/</span>span<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb7-6"><span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;/</span>div<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span></span></code></pre></div></div>
</div>
</div>
</div>
</section>
<section id="paso-3-incluye-el-breadcrumb-en-tus-posts" class="level3">
<h3 class="anchored" data-anchor-id="paso-3-incluye-el-breadcrumb-en-tus-posts">Paso 3: Incluye el breadcrumb en tus posts</h3>
<p>En cualquier post, simplemente agrega:</p>
<p>{{&lt; include ../../_include/breadcrumb.qmd &gt;}}</p>
<p>En este se caso se utiliza una ruta relativa y dependerá de la ubicación del post (<code>entrelazamiento.qmd</code>) dentro de la estructura.</p>
<hr>
</section>
<section id="resultado-final" class="level3">
<h3 class="anchored" data-anchor-id="resultado-final">✅ Resultado final</h3>
<div class="tabset-margin-container"></div><div class="panel-tabset">
<ul class="nav nav-tabs"><li class="nav-item"><a class="nav-link active" id="tabset-1-1-tab" data-bs-toggle="tab" data-bs-target="#tabset-1-1" aria-controls="tabset-1-1" aria-selected="true" href="" aria-current="page">YAML</a></li><li class="nav-item"><a class="nav-link" id="tabset-1-2-tab" data-bs-toggle="tab" data-bs-target="#tabset-1-2" aria-controls="tabset-1-2" aria-selected="false" href="">Salida HTML</a></li><li class="nav-item"><a class="nav-link" id="tabset-1-3-tab" data-bs-toggle="tab" data-bs-target="#tabset-1-3" aria-controls="tabset-1-3" aria-selected="false" href="">Salida visual</a></li></ul>
<div class="tab-content">
<div id="tabset-1-1" class="tab-pane active" aria-labelledby="tabset-1-1-tab">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb8" style="background: #f1f3f5;"><pre class="sourceCode yaml code-with-copy"><code class="sourceCode yaml"><span id="cb8-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">title</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Entrelazamiento Cuántico"</span></span>
<span id="cb8-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">categories</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">[</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Física Cuántica"</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">]</span></span>
<span id="cb8-3"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tags</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">:</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">[</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"fisica-cuantica"</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"entrelazamiento"</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">,</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> </span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"mecánica-cuántica"</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">]</span></span></code></pre></div></div>
</div>
<div id="tabset-1-2" class="tab-pane" aria-labelledby="tabset-1-2-tab">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb9" style="background: #f1f3f5;"><pre class="sourceCode html code-with-copy"><code class="sourceCode html"><span id="cb9-1"><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">div</span><span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"> class</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"breadcrumbs"</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb9-2">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">a</span><span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"> href</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"../../../post_principal.qmd"</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span>Inicio<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;/</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">a</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span> &gt; </span>
<span id="cb9-3">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">a</span><span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"> href</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"../../blog/index.qmd"</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span>Blog<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;/</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">a</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span> &gt; </span>
<span id="cb9-4">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">a</span><span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"> href</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"../fisica-quantica.qmd"</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span>Física Cuántica<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;/</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">a</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span> &gt; </span>
<span id="cb9-5">  <span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">span</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span>Entrelazamiento Cuántico<span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;/</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">span</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb9-6"><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&lt;/</span><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">div</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">&gt;</span></span></code></pre></div></div>
</div>
<div id="tabset-1-3" class="tab-pane" aria-labelledby="tabset-1-3-tab">
<p><a href="images/breadcrumbs_demo.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://sjacobozavaleta.github.io/blog/posts/2025/dynamic-breadcrumbs-quarto/images/breadcrumbs_demo.png" class="img-fluid"></a></p>
</div>
</div>
</div>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Nota
</div>
</div>
<div class="callout-body-container callout-body">
<p>La demostración anidada utilizada originalmente para este artículo no se migró: era contenido de prueba, no una colección real del blog. El patrón de código se conserva como referencia histórica.</p>
</div>
</div>
<hr>
</section>
</section>
<section id="estilo-opcional-css" class="level2">
<h2 class="anchored" data-anchor-id="estilo-opcional-css">🎨 Estilo opcional (CSS)</h2>
<p>Agrega este CSS a tu <code>styles.css</code> para mejorar la apariencia:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb10" style="background: #f1f3f5;"><pre class="sourceCode css code-with-copy"><code class="sourceCode css"><span id="cb10-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">.breadcrumbs</span> {</span>
<span id="cb10-2">  <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">font-size</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.9</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">rem</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb10-3">  <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">color</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">#666</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb10-4">  <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">margin</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1.5</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">rem</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb10-5">  <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">padding</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.5</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">rem</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb10-6">  <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">border-bottom</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">px</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">solid</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">#eee</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb10-7">}</span>
<span id="cb10-8"></span>
<span id="cb10-9"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">.breadcrumbs</span> a {</span>
<span id="cb10-10">  <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">color</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">#006AD4</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb10-11">  <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">text-decoration</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">none</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb10-12">}</span>
<span id="cb10-13"></span>
<span id="cb10-14"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">.breadcrumbs</span> a<span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:hover</span> {</span>
<span id="cb10-15">  <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">text-decoration</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">underline</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb10-16">}</span>
<span id="cb10-17"></span>
<span id="cb10-18"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">.breadcrumbs</span> span {</span>
<span id="cb10-19">  <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">color</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">#333</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb10-20">  <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">font-weight</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">:</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">600</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span>
<span id="cb10-21">}</span></code></pre></div></div>
</section>
<section id="ventajas-de-esta-solución" class="level2">
<h2 class="anchored" data-anchor-id="ventajas-de-esta-solución">✅ Ventajas de esta solución</h2>
<table class="caption-top table">
<thead>
<tr class="header">
<th>Característica</th>
<th>Beneficio</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>📦 Reutilizable</td>
<td>Un solo archivo para todos los posts</td>
</tr>
<tr class="even">
<td>🧩 Dinámico</td>
<td>Usa metadatos del post</td>
</tr>
<tr class="odd">
<td>🌐 Compatible</td>
<td>Funciona en GitHub Pages sin JS</td>
</tr>
<tr class="even">
<td>🔧 Mantenible</td>
<td>Fácil de actualizar</td>
</tr>
</tbody>
</table>
<hr>
</section>
<section id="alternativas-consideradas-y-por-qué-no-las-usé" class="level2">
<h2 class="anchored" data-anchor-id="alternativas-consideradas-y-por-qué-no-las-usé">🔄 Alternativas consideradas (y por qué no las usé)</h2>
<table class="caption-top table">
<colgroup>
<col style="width: 57%">
<col style="width: 42%">
</colgroup>
<thead>
<tr class="header">
<th>Alternativa</th>
<th>Problema</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>JavaScript</td>
<td>Rompe SSR, no recomendado para SEO</td>
</tr>
<tr class="even">
<td>Shortcode personalizado</td>
<td>Requiere más configuración y no siempre es portable</td>
</tr>
</tbody>
</table>
<hr>
</section>
<section id="conclusión" class="level2">
<h2 class="anchored" data-anchor-id="conclusión">🏁 Conclusión</h2>
<p>Crear breadcrumbs dinámicos en Quarto <strong>es posible y simple</strong>, si sabes cómo aprovechar los metadatos del documento. Mi solución combina:</p>
<ul>
<li><code>tags</code> para controlar rutas (<code>quarto.qmd</code>)</li>
<li><code>categories</code> para mostrar nombres legibles (<code>Quarto</code>)</li>
<li>{{&lt; meta &gt;}} dentro de enlaces Markdown</li>
</ul>
<p>Esta técnica mejora significativamente la usabilidad de tu blog o sitio académico.</p>
<hr>
</section>
<section id="recursos-relacionados" class="level2">
<h2 class="anchored" data-anchor-id="recursos-relacionados">🔗 Recursos relacionados</h2>
<ul>
<li><a href="https://quarto.org/docs/content/reuse.html">Quarto Documentation – Includes</a></li>
<li><a href="https://quarto.org/docs/projects/metadata.html">Quarto Documentation – Metadata</a></li>
<li><a href="../../../../about.html">La Tercera Fundación – Sobre mí</a></li>
</ul>


<hr>
<div class="post-author-section">
<div class="post-author-bio">
  <img src="https://sjacobozavaleta.github.io/assets/img/sergio_footer.png" alt="Retrato de Sergio Jácobo-Zavaleta" class="post-author-bio__image">

  <div class="post-author-bio__content">
    <p class="post-author-bio__label">Sobre el autor</p>

    <p>
      Soy Sergio, ingeniero en mecatrónica dedicado al diseño de
      robots clínicos, dispositivos biomédicos y sistemas de
      rehabilitación.
    </p>

    <p class="post-author-bio__links">
      <a href="https://www.github.com/SJacoboZavaleta">GitHub</a>
      <a href="https://www.linkedin.com/in/sjacobozavaleta/">LinkedIn</a>
      <a href="../../../../about.html">Más sobre mí</a>
    </p>
  </div>
</div>

</div>
</section>

<a onclick="window.scrollTo(0, 0); return false;" id="quarto-back-to-top"><i class="bi bi-arrow-up"></i> Volver arriba</a><div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Cómo citar</h2><div><div class="quarto-appendix-secondary-label">BibTeX</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{jácobo-zavaleta2025,
  author = {Jácobo-Zavaleta, Sergio},
  title = {Cómo crear breadcrumbs dinámicos en Quarto},
  date = {2025-09-13},
  url = {https://sjacobozavaleta.github.io/blog/posts/2025/dynamic-breadcrumbs-quarto/},
  langid = {es}
}
</code></pre><div class="quarto-appendix-secondary-label">Por favor, cita este trabajo como:</div><div id="ref-jácobo-zavaleta2025" class="csl-entry quarto-appendix-citeas">
Jácobo-Zavaleta, Sergio. 2025. <span>“Cómo crear breadcrumbs dinámicos
en Quarto.”</span> September 13. <a href="https://sjacobozavaleta.github.io/blog/posts/2025/dynamic-breadcrumbs-quarto/">https://sjacobozavaleta.github.io/blog/posts/2025/dynamic-breadcrumbs-quarto/</a>.
</div></div></section></div> ]]></description>
  <category>Quarto</category>
  <category>Navegación</category>
  <category>Metadatos</category>
  <guid>https://sjacobozavaleta.github.io/blog/posts/2025/dynamic-breadcrumbs-quarto/</guid>
  <pubDate>Fri, 12 Sep 2025 22:00:00 GMT</pubDate>
  <media:content url="https://sjacobozavaleta.github.io/blog/posts/2025/dynamic-breadcrumbs-quarto/images/thumbnail.png" medium="image" type="image/png" height="144" width="144"/>
</item>
<item>
  <title>Tragedia</title>
  <dc:creator>Sergio Jácobo-Zavaleta</dc:creator>
  <link>https://sjacobozavaleta.github.io/blog/posts/2025/danteva-tragedia/</link>
  <description><![CDATA[ 

<script>
  document.addEventListener("DOMContentLoaded", function () {
    document.body.classList.add("section-blog");
  });
</script>




<div class="sergio-note">
<p><strong>Archivo Danteva.</strong> Escrito en 2012 · incorporado al archivo digital en 2025.</p>
</div>
<section id="tragedia-de-una-muerte-no-anunciada" class="level3">
<h3 class="anchored" data-anchor-id="tragedia-de-una-muerte-no-anunciada">Tragedia de una Muerte No Anunciada</h3>
<p>“Tragedia” es una pieza de una intensidad brutal que captura un momento de encuentro y dolor extremo. Danteva intenta utilizar el contraste de forma magistral: la joven es “fuerte como piedra” con el “corazón petrificado”, pero su mirada es un “grito de su cuerpo.” Pero sobre todo, se enfoca en el concepto del <strong>alma</strong> y la <strong>existencia</strong>, preguntándose si el sujeto del poema realmente posee una, dado su sufrimiento.</p>
<p>El clímax llega con la irrupción del narrador en el “circo de las pulgas” (una metáfora de la sociedad que observa y se burla), ofreciendo una mano. Este simple acto detiene el mundo, invirtiendo el orden natural: “el cielo se detuvo, la tierra se partió” 😔.</p>
<p>Desde mi perspectiva actual, lo más potente es la transferencia del dolor. El acto de bondad de extender la mano se convierte en una <strong>vía de contagio</strong>. El contacto de la piel no sana, sino que envenena o contagia, quemando los nervios del narrador. El sol que ríe al final subraya la indiferencia cósmica ante esta “torpe tragedia” humana (cuando escribí esta parte tenía al <a href="https://souleater.fandom.com/wiki/Sun?file=Soul+Eater+Episode+24+HD+-+Sun.png">creepy sol</a> que ilumina el mundo de Soul Eater). Es un poema sobre la empatía llevada al límite y el costo de tomar el dolor ajeno.</p>
<p><a href="../../../../blog/collections/literature.html">← Volver a Archivo Danteva</a></p>
<hr>
<div class="poema-danteva">
<p>La voz de su mirada es el grito de su cuerpo.<br>
Es el vacio congelado en el infinito de su alma,<br>
¿Alma? ¿Es que acaso ella si lo tiene?<br>
El llanto de su sangre fríamente se refleja tras su sombra;<br>
Divide su cuerpo, se burlan las miradas, ella nunca llora, pues es fuerte como piedra,<br>
Con el corazón petrificado y el hierro en sus carnes.</p>
<hr>
<p>En medio del circo de las pulgas, yo le di mi mano;<br>
Arrodillada, del suelo me miró. ¡Qué dolor mas fuerte el que me ahoga al respirar¡<br>
El cielo se detuvo, la tierra se partió y el canto de las aves se perdió<br>
En medio del eco de los autos; mientras el sol reía y reía…</p>
<hr>
<p>Todo se paró, nada se movió.<br>
Al final, el péndulo de las miradas de las pulgas, flaquearon;<br>
Rompieron en llanto…<br>
Y la joven, de niña belleza, alegría irradiaba su mirada.<br>
El velo de sus ojos rompieron las cadenas del lamento.<br>
Arrodillada, del suelo me miro y mi mano la estrecho.<br>
El contacto de su piel, como púas me clavaron sus rosas.<br>
Su sangre envenenada<br>
Penetró hasta mis nervios, quemaron mis huesos.<br>
Rompieron mis palabras, explotaron mis recuerdos.</p>
<hr>
<p>El canto de las aves volvieron a reinar y todo lo demás;<br>
Mientras el sol reía y reía un funeral de sangre de torpe tragedia.</p>
<p><br> <strong>Danteva</strong></p>
</div>
<div class="callout callout-style-simple callout-note no-icon callout-titled">
<div class="callout-header d-flex align-content-center collapsed" data-bs-toggle="collapse" data-bs-target=".callout-1-contents" aria-controls="callout-1" aria-expanded="false" aria-label="Toggle callout">
<div class="callout-icon-container">
<i class="callout-icon no-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Expandir
</div>
<div class="callout-btn-toggle d-inline-block border-0 py-1 ps-1 pe-0 float-end"><i class="callout-toggle"></i></div>
</div>
<div id="callout-1" class="callout-1-contents callout-collapse collapse">
<div class="callout-body-container callout-body">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/tragedia_Gemini_Generated1_web.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Imagen generada con Google Gemini"><img src="https://sjacobozavaleta.github.io/blog/posts/2025/danteva-tragedia/images/tragedia_Gemini_Generated1_web.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="550" alt="Imagen generada con Google Gemini"></a></p>
</figure>
</div>
<figcaption>Imagen generada con Google Gemini</figcaption>
</figure>
</div>
</div>
</div>
</div>


<hr>
<div class="post-author-section">
<div class="post-author-bio">
  <img src="https://sjacobozavaleta.github.io/assets/img/sergio_footer.png" alt="Retrato de Sergio Jácobo-Zavaleta" class="post-author-bio__image">

  <div class="post-author-bio__content">
    <p class="post-author-bio__label">Sobre el autor</p>

    <p>
      Soy Sergio, ingeniero en mecatrónica dedicado al diseño de
      robots clínicos, dispositivos biomédicos y sistemas de
      rehabilitación.
    </p>

    <p class="post-author-bio__links">
      <a href="https://www.github.com/SJacoboZavaleta">GitHub</a>
      <a href="https://www.linkedin.com/in/sjacobozavaleta/">LinkedIn</a>
      <a href="../../../../about.html">Más sobre mí</a>
    </p>
  </div>
</div>

</div>
</section>

<a onclick="window.scrollTo(0, 0); return false;" id="quarto-back-to-top"><i class="bi bi-arrow-up"></i> Volver arriba</a><div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Cómo citar</h2><div><div class="quarto-appendix-secondary-label">BibTeX</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{jácobo-zavaleta2025,
  author = {Jácobo-Zavaleta, Sergio},
  title = {Tragedia},
  date = {2025-07-01},
  url = {https://sjacobozavaleta.github.io/blog/posts/2025/danteva-tragedia/},
  langid = {es}
}
</code></pre><div class="quarto-appendix-secondary-label">Por favor, cita este trabajo como:</div><div id="ref-jácobo-zavaleta2025" class="csl-entry quarto-appendix-citeas">
Jácobo-Zavaleta, Sergio. 2025. <span>“Tragedia.”</span> July 1. <a href="https://sjacobozavaleta.github.io/blog/posts/2025/danteva-tragedia/">https://sjacobozavaleta.github.io/blog/posts/2025/danteva-tragedia/</a>.
</div></div></section></div> ]]></description>
  <category>Poesía</category>
  <category>Drama</category>
  <category>Catarsis</category>
  <guid>https://sjacobozavaleta.github.io/blog/posts/2025/danteva-tragedia/</guid>
  <pubDate>Mon, 30 Jun 2025 22:00:00 GMT</pubDate>
  <media:content url="https://sjacobozavaleta.github.io/blog/posts/2025/danteva-tragedia/images/tragedia_Gemini_Generated2_web.png" medium="image" type="image/png" height="144" width="144"/>
</item>
<item>
  <title>Sueño</title>
  <dc:creator>Sergio Jácobo-Zavaleta</dc:creator>
  <link>https://sjacobozavaleta.github.io/blog/posts/2025/danteva-sueno/</link>
  <description><![CDATA[ 

<script>
  document.addEventListener("DOMContentLoaded", function () {
    document.body.classList.add("section-blog");
  });
</script>




<div class="sergio-note">
<p><strong>Archivo Danteva.</strong> Escrito en 2012 · incorporado al archivo digital en 2025.</p>
</div>
<section id="la-frontera-onírica-la-realidad-aumentada-del-sueño" class="level3">
<h3 class="anchored" data-anchor-id="la-frontera-onírica-la-realidad-aumentada-del-sueño">La Frontera Onírica: La Realidad Aumentada del Sueño</h3>
<p>“Sueño” explora la línea difusa entre el deseo y la realidad, donde el plano onírico se convierte en la única verdad viable. <strong>Danteva</strong> se autodenomina el “<em>bellaco de un cuento</em>,” una figura que vive su plenitud emocional en el subconsciente, un <strong>“sueño azul”</strong> que es al mismo tiempo felicidad y tormento.</p>
<p>De este poema me quedo con la intensidad física de la pasión adolescente. De algun modo, intenté describir esa fascinación amorosa descrita como una mezcla de épica y ternura (<em>ahora agradezco esa influencia de Pablo Neruda en mi forma de escribir sobre el amor, un claro punto de partida</em>). Visto desde ahora, recordar esas palabras me genera un sentimiento conmovedor de cómo me ilusionaba las cosas, las personas y como algo muy cotidiano como dormir, se volvía muy importante y necesario para buscar consuelo y prepararte para el nuevo día (<em>vaya mecanismo de autoprotección y cuidado tenía</em> 😲).</p>
<p><a href="../../../../blog/collections/literature.html">← Volver a Archivo Danteva</a></p>
<hr>
<div class="poema-danteva">
<p>Soy el bellaco de un cuento, al encuentro de la cuenca del amor,<br>
Como el sueño azul, tal mar de mil colores y sabores descubro al navegar.<br>
Quiero que la suerte me acompañe y me lleve rumbo a tus cabellos,<br>
Poder llegar a tu interior, donde tus labios sumerjan mi dolor.</p>
<hr>
<p>A lo lejos te vi llegar tal disparo al corazón, ¡Oh hermosura mortal ¡<br>
Que sol más bello para mi, que alumbra y relumbra hasta morir.<br>
Parecía como si el malo fuese ella con sus redes traicioneras,<br>
Deja mi cuerpo calcinado al final del recorrido.</p>
<hr>
<p>Tu más admirable admiración, cegado me dejo sin cielo al que ver.<br>
Tus labios rojos de fresa embobaron mi razón como bala al corazón.<br>
Y Tus ojos, ojos como espejos,</p>
<hr>
<p>Soy el bellaco de un cuento,<br>
en un sueño que me hace feliz, y que a la vez me atormenta.<br>
Fue tan real todo lo que sentí, que ahora solo espero volver a dormir;<br>
para que te hagas presente, para que vuelvas a mí.</p>
<hr>
<p>Y tu ¿Me preguntas si te amo?… es que acaso no sientes mi energía<br>
Esa pasión que recorre mis carnes y<br>
Que se pierden en las tierras de tu vientre.</p>
<p><br> <strong>Danteva</strong></p>
</div>
<div class="callout callout-style-simple callout-note no-icon callout-titled">
<div class="callout-header d-flex align-content-center collapsed" data-bs-toggle="collapse" data-bs-target=".callout-1-contents" aria-controls="callout-1" aria-expanded="false" aria-label="Toggle callout">
<div class="callout-icon-container">
<i class="callout-icon no-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Expandir
</div>
<div class="callout-btn-toggle d-inline-block border-0 py-1 ps-1 pe-0 float-end"><i class="callout-toggle"></i></div>
</div>
<div id="callout-1" class="callout-1-contents callout-collapse collapse">
<div class="callout-body-container callout-body">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/suenio_Gemini_Generated2_web.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Imagen generada con Google Gemini"><img src="https://sjacobozavaleta.github.io/blog/posts/2025/danteva-sueno/images/suenio_Gemini_Generated2_web.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="550" alt="Imagen generada con Google Gemini"></a></p>
</figure>
</div>
<figcaption>Imagen generada con Google Gemini</figcaption>
</figure>
</div>
</div>
</div>
</div>


<hr>
<div class="post-author-section">
<div class="post-author-bio">
  <img src="https://sjacobozavaleta.github.io/assets/img/sergio_footer.png" alt="Retrato de Sergio Jácobo-Zavaleta" class="post-author-bio__image">

  <div class="post-author-bio__content">
    <p class="post-author-bio__label">Sobre el autor</p>

    <p>
      Soy Sergio, ingeniero en mecatrónica dedicado al diseño de
      robots clínicos, dispositivos biomédicos y sistemas de
      rehabilitación.
    </p>

    <p class="post-author-bio__links">
      <a href="https://www.github.com/SJacoboZavaleta">GitHub</a>
      <a href="https://www.linkedin.com/in/sjacobozavaleta/">LinkedIn</a>
      <a href="../../../../about.html">Más sobre mí</a>
    </p>
  </div>
</div>

</div>
</section>

<a onclick="window.scrollTo(0, 0); return false;" id="quarto-back-to-top"><i class="bi bi-arrow-up"></i> Volver arriba</a><div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Cómo citar</h2><div><div class="quarto-appendix-secondary-label">BibTeX</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{jácobo-zavaleta2025,
  author = {Jácobo-Zavaleta, Sergio},
  title = {Sueño},
  date = {2025-06-01},
  url = {https://sjacobozavaleta.github.io/blog/posts/2025/danteva-sueno/},
  langid = {es}
}
</code></pre><div class="quarto-appendix-secondary-label">Por favor, cita este trabajo como:</div><div id="ref-jácobo-zavaleta2025" class="csl-entry quarto-appendix-citeas">
Jácobo-Zavaleta, Sergio. 2025. <span>“Sueño.”</span> June 1. <a href="https://sjacobozavaleta.github.io/blog/posts/2025/danteva-sueno/">https://sjacobozavaleta.github.io/blog/posts/2025/danteva-sueno/</a>.
</div></div></section></div> ]]></description>
  <category>Poesía</category>
  <category>Sueño</category>
  <category>Deseo</category>
  <guid>https://sjacobozavaleta.github.io/blog/posts/2025/danteva-sueno/</guid>
  <pubDate>Sat, 31 May 2025 22:00:00 GMT</pubDate>
  <media:content url="https://sjacobozavaleta.github.io/blog/posts/2025/danteva-sueno/images/suenio_Gemini_Generated1_web.png" medium="image" type="image/png" height="144" width="144"/>
</item>
<item>
  <title>Tragedia de un nombre</title>
  <dc:creator>Sergio Jácobo-Zavaleta</dc:creator>
  <link>https://sjacobozavaleta.github.io/blog/posts/2025/danteva-tragedia-de-un-nombre/</link>
  <description><![CDATA[ 

<script>
  document.addEventListener("DOMContentLoaded", function () {
    document.body.classList.add("section-blog");
  });
</script>




<div class="sergio-note">
<p><strong>Archivo Danteva.</strong> Escrito en 2012 · incorporado al archivo digital en 2025.</p>
</div>
<section id="el-tema-de-fondo-la-trascendencia" class="level3">
<h3 class="anchored" data-anchor-id="el-tema-de-fondo-la-trascendencia">El Tema de Fondo: La Trascendencia</h3>
<p>“Tragedia de un Nombre” toca directamente la ambición de la memoria y la frustración de la invisibilidad (“Fantasma era, olvidada así permaneció”). <strong>Danteva</strong> aborda la necesidad de tener un propósito y ser un recuerdo, resumiendo el deseo universal de ser <strong>“inmortal”</strong> (incluso mejor que la de <em>Dorian Gray</em>).</p>
<p>Me gusta pensar en este poema hoy y trazar un paralelo con mi trabajo actual. Al final, <strong>“La Tercera Fundación”</strong> (<em>este sitio web si te perdiste</em>) es precisamente un proyecto sobre la trascendencia y la preservación del conocimiento. Por aquellos días, mi empeño estaba puesto en alcanzar la inmortalidad literaria, un sueño que me otorgó, aunque de manera efímera, cierta notoriedad en diversos eventos de poesía 😏; hoy, busco la inmortalidad del conocimiento útil y reproducible (<em>jajaja ya quisiera</em>). La <strong>invocación a Julieta</strong> 🥰 al final eleva la ambición personal a una escala dramática conocida por todos.</p>
<p><a href="../../../../blog/collections/literature.html">← Volver a Archivo Danteva</a></p>
<hr>
<div class="poema-danteva">
<p>La vida nunca le sonrió, la muerte jamás la conoció<br>
Fantasma era, olvidada así permaneció.<br>
Las calles la ven pasar, sin rumbo y sin color.</p>
<hr>
<p>Solo los murmullos la alimentan, así permaneció.<br>
Nadie la quería, todos la veían.<br>
Parecía muerta en vida, sin tierra y sin nación.</p>
<hr>
<p>No quiero morir sin causa, sino con motivo.<br>
Ser recuerdo de la gente y que la gente lleve mi nombre<br>
Vivir a la marea de los años. Ser inmortal.<br>
Mi nombre sangre es, que pena es mi vida.</p>
<hr>
<p>¡Oh Julieta¡ Qué vida nos espera. No lo se<br>
Nunca te rendiste, nunca te juzgue.<br>
Mi nombre tuyo es ¡</p>
<p><br> <strong>Danteva</strong></p>
</div>
<div class="callout callout-style-simple callout-note no-icon callout-titled">
<div class="callout-header d-flex align-content-center collapsed" data-bs-toggle="collapse" data-bs-target=".callout-1-contents" aria-controls="callout-1" aria-expanded="false" aria-label="Toggle callout">
<div class="callout-icon-container">
<i class="callout-icon no-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Expandir
</div>
<div class="callout-btn-toggle d-inline-block border-0 py-1 ps-1 pe-0 float-end"><i class="callout-toggle"></i></div>
</div>
<div id="callout-1" class="callout-1-contents callout-collapse collapse">
<div class="callout-body-container callout-body">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/tragedia_nombre_Gemini_Generated2_web.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Imagen generada con Google Gemini"><img src="https://sjacobozavaleta.github.io/blog/posts/2025/danteva-tragedia-de-un-nombre/images/tragedia_nombre_Gemini_Generated2_web.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="550" alt="Imagen generada con Google Gemini"></a></p>
</figure>
</div>
<figcaption>Imagen generada con Google Gemini</figcaption>
</figure>
</div>
</div>
</div>
</div>


<hr>
<div class="post-author-section">
<div class="post-author-bio">
  <img src="https://sjacobozavaleta.github.io/assets/img/sergio_footer.png" alt="Retrato de Sergio Jácobo-Zavaleta" class="post-author-bio__image">

  <div class="post-author-bio__content">
    <p class="post-author-bio__label">Sobre el autor</p>

    <p>
      Soy Sergio, ingeniero en mecatrónica dedicado al diseño de
      robots clínicos, dispositivos biomédicos y sistemas de
      rehabilitación.
    </p>

    <p class="post-author-bio__links">
      <a href="https://www.github.com/SJacoboZavaleta">GitHub</a>
      <a href="https://www.linkedin.com/in/sjacobozavaleta/">LinkedIn</a>
      <a href="../../../../about.html">Más sobre mí</a>
    </p>
  </div>
</div>

</div>
</section>

<a onclick="window.scrollTo(0, 0); return false;" id="quarto-back-to-top"><i class="bi bi-arrow-up"></i> Volver arriba</a><div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Cómo citar</h2><div><div class="quarto-appendix-secondary-label">BibTeX</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{jácobo-zavaleta2025,
  author = {Jácobo-Zavaleta, Sergio},
  title = {Tragedia de un nombre},
  date = {2025-05-01},
  url = {https://sjacobozavaleta.github.io/blog/posts/2025/danteva-tragedia-de-un-nombre/},
  langid = {es}
}
</code></pre><div class="quarto-appendix-secondary-label">Por favor, cita este trabajo como:</div><div id="ref-jácobo-zavaleta2025" class="csl-entry quarto-appendix-citeas">
Jácobo-Zavaleta, Sergio. 2025. <span>“Tragedia de un nombre.”</span> May
1. <a href="https://sjacobozavaleta.github.io/blog/posts/2025/danteva-tragedia-de-un-nombre/">https://sjacobozavaleta.github.io/blog/posts/2025/danteva-tragedia-de-un-nombre/</a>.
</div></div></section></div> ]]></description>
  <category>Poesía</category>
  <category>Memoria</category>
  <category>Trascendencia</category>
  <guid>https://sjacobozavaleta.github.io/blog/posts/2025/danteva-tragedia-de-un-nombre/</guid>
  <pubDate>Wed, 30 Apr 2025 22:00:00 GMT</pubDate>
  <media:content url="https://sjacobozavaleta.github.io/blog/posts/2025/danteva-tragedia-de-un-nombre/images/tragedia_nombre_Gemini_Generated1_web.png" medium="image" type="image/png" height="144" width="144"/>
</item>
<item>
  <title>Encanto</title>
  <dc:creator>Sergio Jácobo-Zavaleta</dc:creator>
  <link>https://sjacobozavaleta.github.io/blog/posts/2025/danteva-encanto/</link>
  <description><![CDATA[ 

<script>
  document.addEventListener("DOMContentLoaded", function () {
    document.body.classList.add("section-blog");
  });
</script>




<div class="sergio-note">
<p><strong>Archivo Danteva.</strong> Escrito en 2012 · incorporado al archivo digital en 2025.</p>
</div>
<section id="el-encanto-de-la-idealización-pureza-y-pasión" class="level3">
<h3 class="anchored" data-anchor-id="el-encanto-de-la-idealización-pureza-y-pasión">El Encanto de la Idealización: Pureza y Pasión</h3>
<p>“Encanto” representa la inmersión de <strong>Danteva</strong> en la lírica amorosa, una alabanza a la amada. El joven poeta eleva a la mujer a un ideal casi divino, usando una imaginería barroca y dulce (“flor del naranjo”, “perfumadas y emplumadas por los dioses”). Es un cambio de tono que muestra la amplitud emocional que buscaba explorar en aquella época.</p>
<p>Hoy me causa gracia y ternura la <strong>dualidad</strong> que se teje: una alabanza a la pureza (<em>como las musas que tenían Dante Alighieri o el propio Don Quijote</em>) coexistiendo con el reconocimiento de la pasión física. La metáfora final de la fusión de las almas <strong>“de día somos dos, de noche solo uno”</strong> encapsula perfectamente la intensidad y el carácter absoluto del primer amor juvenil, y que decidí incluir debido a que estos versos iban a ser leídos frente a un público femenino durante un evento público 😛 (<em>obviamente, lo escribí con pocas horas antes</em> 😁).</p>
<p><a href="../../../../blog/collections/literature.html">← Volver a Archivo Danteva</a></p>
<hr>
<div class="poema-danteva">
<p>La más tierna idea, son tus ojos,<br>
creadas y pulidas con el cincel del amor;<br>
el aroma de una suave idea, son tus labios,<br>
perfumadas y emplumadas por los dioses.</p>
<hr>
<p>¡Oh flor del naranjo, que azahar más bello eres tú!<br>
rodeada entre mis brazos, tus aguas consuelan mi cansancio,<br>
transforman mi locura como juego sin salida.</p>
<hr>
<p>Sumergidos bajo el manto del placer,<br>
Mi paraíso es tu gracia, el infierno tu desgracia;<br>
cien son tus virtudes, cien son mis pesares.<br>
y solo tú, virgen de corazón, ¡tuyo solo soy!</p>
<hr>
<p>De viaje en viaje vengo, como el sol de luz en luz.<br>
tus manos golpean mi calor y tu pecho esconde mi dolor;<br>
enredados en el lecho, la fiesta continúa<br>
lentamente en amor, dos viciosos sin control.</p>
<hr>
<p>Amor, amor, de día somos dos, de noche solo uno;<br>
las sombras lo atestiguan, las mañana lo confirman.<br>
¡Despertemos de este encanto! y sigamos caminando.</p>
<p><br> <strong>Danteva</strong></p>
</div>
<div class="callout callout-style-simple callout-note no-icon callout-titled">
<div class="callout-header d-flex align-content-center collapsed" data-bs-toggle="collapse" data-bs-target=".callout-1-contents" aria-controls="callout-1" aria-expanded="false" aria-label="Toggle callout">
<div class="callout-icon-container">
<i class="callout-icon no-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Expandir
</div>
<div class="callout-btn-toggle d-inline-block border-0 py-1 ps-1 pe-0 float-end"><i class="callout-toggle"></i></div>
</div>
<div id="callout-1" class="callout-1-contents callout-collapse collapse">
<div class="callout-body-container callout-body">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/encanto_Gemini_Generated2_web.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Imagen generada con Google Gemini"><img src="https://sjacobozavaleta.github.io/blog/posts/2025/danteva-encanto/images/encanto_Gemini_Generated2_web.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="550" alt="Imagen generada con Google Gemini"></a></p>
</figure>
</div>
<figcaption>Imagen generada con Google Gemini</figcaption>
</figure>
</div>
</div>
</div>
</div>


<hr>
<div class="post-author-section">
<div class="post-author-bio">
  <img src="https://sjacobozavaleta.github.io/assets/img/sergio_footer.png" alt="Retrato de Sergio Jácobo-Zavaleta" class="post-author-bio__image">

  <div class="post-author-bio__content">
    <p class="post-author-bio__label">Sobre el autor</p>

    <p>
      Soy Sergio, ingeniero en mecatrónica dedicado al diseño de
      robots clínicos, dispositivos biomédicos y sistemas de
      rehabilitación.
    </p>

    <p class="post-author-bio__links">
      <a href="https://www.github.com/SJacoboZavaleta">GitHub</a>
      <a href="https://www.linkedin.com/in/sjacobozavaleta/">LinkedIn</a>
      <a href="../../../../about.html">Más sobre mí</a>
    </p>
  </div>
</div>

</div>
</section>

<a onclick="window.scrollTo(0, 0); return false;" id="quarto-back-to-top"><i class="bi bi-arrow-up"></i> Volver arriba</a><div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Cómo citar</h2><div><div class="quarto-appendix-secondary-label">BibTeX</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{jácobo-zavaleta2025,
  author = {Jácobo-Zavaleta, Sergio},
  title = {Encanto},
  date = {2025-04-01},
  url = {https://sjacobozavaleta.github.io/blog/posts/2025/danteva-encanto/},
  langid = {es}
}
</code></pre><div class="quarto-appendix-secondary-label">Por favor, cita este trabajo como:</div><div id="ref-jácobo-zavaleta2025" class="csl-entry quarto-appendix-citeas">
Jácobo-Zavaleta, Sergio. 2025. <span>“Encanto.”</span> April 1. <a href="https://sjacobozavaleta.github.io/blog/posts/2025/danteva-encanto/">https://sjacobozavaleta.github.io/blog/posts/2025/danteva-encanto/</a>.
</div></div></section></div> ]]></description>
  <category>Poesía</category>
  <category>Amor</category>
  <category>Idealización</category>
  <guid>https://sjacobozavaleta.github.io/blog/posts/2025/danteva-encanto/</guid>
  <pubDate>Mon, 31 Mar 2025 22:00:00 GMT</pubDate>
  <media:content url="https://sjacobozavaleta.github.io/blog/posts/2025/danteva-encanto/images/encanto_Gemini_Generated1_web.png" medium="image" type="image/png" height="144" width="144"/>
</item>
<item>
  <title>Sin salida</title>
  <dc:creator>Sergio Jácobo-Zavaleta</dc:creator>
  <link>https://sjacobozavaleta.github.io/blog/posts/2025/danteva-sin-salida/</link>
  <description><![CDATA[ 

<script>
  document.addEventListener("DOMContentLoaded", function () {
    document.body.classList.add("section-blog");
  });
</script>




<div class="sergio-note">
<p><strong>Archivo Danteva.</strong> Escrito en 2012 · incorporado al archivo digital en 2025.</p>
</div>
<section id="el-contexto-y-el-conflicto" class="level3">
<h3 class="anchored" data-anchor-id="el-contexto-y-el-conflicto">El Contexto y el Conflicto</h3>
<p>En esta pieza, <strong>Danteva</strong> se adentra en un territorio emocional sombrío, explorando la culpa, la desesperación y la muerte como una posible liberación. El autor de entonces recurre a una atmósfera onírica y pesada, donde el conflicto interno se proyecta en la naturaleza (“pesadas mareas del fango” o “llanto de los peces”).</p>
<p>Recuerdo que este fue uno de los poemas que más me costó estructurar, buscando ese tono elevado y casi épico. Recuerdo que en ese momento tenía bien estudiado las figuras retóritcas y queria impresionar a mi profesora de Lenguaje. Me fascina hoy la forma en que el poema, después de toda una batalla cósmica de “cielos lloraban” y “tierra se partía”, concluye con una resolución sorprendentemente simple: el perdón es tan <strong>“Simple como una lámpara”</strong> (<em>esa antigua lámpara que miraba y miraba mientras escribía aquellos versos</em>). Es un buen recordatorio de que a veces, las soluciones más profundas son las menos complejas.</p>
<p><a href="../../../../blog/collections/literature.html">← Volver a Archivo Danteva</a></p>
<hr>
<div class="poema-danteva">
<p>Subiendo y bajando las pesadas mareas del fango,<br>
Perdido navegaba, como el llanto de los peces,<br>
Desdichados y muriendo, tal batalla se enfrentaba,<br>
Escapando de su santo, el padre, el hijo, la culpa.</p>
<hr>
<p>El eco del bosque, el momento esperado anunciaba,<br>
Como la tenaz sombra del mártir reflejado en el lago de sus lamentos.<br>
El silencio pintaba el cuadro perfecto, el viento grababa su nombre.<br>
No había salida. ¡Qué triste vida!</p>
<hr>
<p>Los cielos lloraban, llorando se partía la tierra;<br>
El brillo de la vida, apenas le bañaba; la muerte noche, despierta le esperaba.<br>
Lento como el invierno, el alma de su sangre volando por el aire se perdía.</p>
<hr>
<p>Desde el cielo, el paraíso le contempla. Desde el cielo, ella le esperaba.<br>
La dama del dolor durmió sus sentidos, el amor olvidó sus penas.<br>
La nave que nunca ha de tornar . . . deslizándose regresó.<br>
Simple como una lámpara. Al final se perdonó.</p>
<p><br> <strong>Danteva</strong></p>
</div>
<div class="callout callout-style-simple callout-note no-icon callout-titled">
<div class="callout-header d-flex align-content-center collapsed" data-bs-toggle="collapse" data-bs-target=".callout-1-contents" aria-controls="callout-1" aria-expanded="false" aria-label="Toggle callout">
<div class="callout-icon-container">
<i class="callout-icon no-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Expandir
</div>
<div class="callout-btn-toggle d-inline-block border-0 py-1 ps-1 pe-0 float-end"><i class="callout-toggle"></i></div>
</div>
<div id="callout-1" class="callout-1-contents callout-collapse collapse">
<div class="callout-body-container callout-body">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/sin_salida_Gemini_Generated2_web.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Imagen generada con Google Gemini"><img src="https://sjacobozavaleta.github.io/blog/posts/2025/danteva-sin-salida/images/sin_salida_Gemini_Generated2_web.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="550" alt="Imagen generada con Google Gemini"></a></p>
</figure>
</div>
<figcaption>Imagen generada con Google Gemini</figcaption>
</figure>
</div>
</div>
</div>
</div>


<hr>
<div class="post-author-section">
<div class="post-author-bio">
  <img src="https://sjacobozavaleta.github.io/assets/img/sergio_footer.png" alt="Retrato de Sergio Jácobo-Zavaleta" class="post-author-bio__image">

  <div class="post-author-bio__content">
    <p class="post-author-bio__label">Sobre el autor</p>

    <p>
      Soy Sergio, ingeniero en mecatrónica dedicado al diseño de
      robots clínicos, dispositivos biomédicos y sistemas de
      rehabilitación.
    </p>

    <p class="post-author-bio__links">
      <a href="https://www.github.com/SJacoboZavaleta">GitHub</a>
      <a href="https://www.linkedin.com/in/sjacobozavaleta/">LinkedIn</a>
      <a href="../../../../about.html">Más sobre mí</a>
    </p>
  </div>
</div>

</div>
</section>

<a onclick="window.scrollTo(0, 0); return false;" id="quarto-back-to-top"><i class="bi bi-arrow-up"></i> Volver arriba</a><div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Cómo citar</h2><div><div class="quarto-appendix-secondary-label">BibTeX</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{jácobo-zavaleta2025,
  author = {Jácobo-Zavaleta, Sergio},
  title = {Sin salida},
  date = {2025-03-01},
  url = {https://sjacobozavaleta.github.io/blog/posts/2025/danteva-sin-salida/},
  langid = {es}
}
</code></pre><div class="quarto-appendix-secondary-label">Por favor, cita este trabajo como:</div><div id="ref-jácobo-zavaleta2025" class="csl-entry quarto-appendix-citeas">
Jácobo-Zavaleta, Sergio. 2025. <span>“Sin salida.”</span> March 1. <a href="https://sjacobozavaleta.github.io/blog/posts/2025/danteva-sin-salida/">https://sjacobozavaleta.github.io/blog/posts/2025/danteva-sin-salida/</a>.
</div></div></section></div> ]]></description>
  <category>Poesía</category>
  <category>Existencialismo</category>
  <category>Oscuridad</category>
  <guid>https://sjacobozavaleta.github.io/blog/posts/2025/danteva-sin-salida/</guid>
  <pubDate>Fri, 28 Feb 2025 23:00:00 GMT</pubDate>
  <media:content url="https://sjacobozavaleta.github.io/blog/posts/2025/danteva-sin-salida/images/sin_salida_Gemini_Generated1_web.png" medium="image" type="image/png" height="144" width="144"/>
</item>
<item>
  <title>Agujeros</title>
  <dc:creator>Sergio Jácobo-Zavaleta</dc:creator>
  <link>https://sjacobozavaleta.github.io/blog/posts/2025/danteva-agujeros/</link>
  <description><![CDATA[ 

<script>
  document.addEventListener("DOMContentLoaded", function () {
    document.body.classList.add("section-blog");
  });
</script>




<div class="sergio-note">
<p><strong>Archivo Danteva.</strong> Escrito en 2012 · incorporado al archivo digital en 2025.</p>
</div>
<section id="los-agujeros-del-alma" class="level3">
<h3 class="anchored" data-anchor-id="los-agujeros-del-alma">Los Agujeros del Alma</h3>
<p>En esta pieza, <strong>Danteva</strong> explora el despojo emocional y la fragilidad del hogar. El autor de entonces recurre a la <strong>personificación</strong> para dar cuerpo al vacío, manifestándolo como una figura “escuálida, triste y funesta de los mares” que recorre una casa 🏡(<em>y la vida de otras personas</em>). Este es uno de los poemas más oscuros de la colección, donde el miedo se convierte en algo físico y tangible.</p>
<p>Lo que más me llama la atención hoy es cómo la esperanza es vista no como una luz, sino como un grillete: <strong>“la esperanza que me encadena”</strong>. Esta idea de que la vida se sostiene por una obligación, no por un deseo puro, me parece una reflexión muy avanzada para la edad y que ahora me resulta muy comprensible debido a una extraña infancia. Sin embargo, si algo debo destacar es que en este poema intenté plasmar esa sensación de pequeñez que me daba la casa donde crecí pero en el transcurso, me desvié de tema al escribir 😅.</p>
<p><a href="../../../../blog/collections/literature.html">← Volver a Archivo Danteva</a></p>
<hr>
<div class="poema-danteva">
<p>El viento ligero, soplando se llevaba las risas,<br>
De niño en niño, se las arrancaba como dulce de panal.<br>
Al final del pasillo, sus vidas se ahogaban,<br>
El aroma del miedo al galope se aferraba.</p>
<hr>
<p>El escuálido, triste y funesto de los mares,<br>
Embriagado recorre los pisos de casa, te despoja el alma<br>
Abordando todo a su paso; el más mínimo calor<br>
Te arranca. Todo o nada. Sin raíces.</p>
<hr>
<p>El más fuerte silencio aleja las miradas, corta el dolor.<br>
Se refugia entre las ollas, la carne le acompaña.<br>
Y al despertar, mi susto le alimenta, mi ira le transporta.</p>
<hr>
<p>Y Por último, la esperanza que me encadena, que me da vida y me roba amor.<br>
Donde los campos pintan en la estación florida:<br>
El cantar de mis pesares resumida en uno, dos tres, o más.<br>
Donde nada es todo. Y todos son, los agujeros del alma.</p>
<p><br> <strong>Danteva</strong></p>
</div>
<div class="callout callout-style-simple callout-note no-icon callout-titled">
<div class="callout-header d-flex align-content-center collapsed" data-bs-toggle="collapse" data-bs-target=".callout-1-contents" aria-controls="callout-1" aria-expanded="false" aria-label="Toggle callout">
<div class="callout-icon-container">
<i class="callout-icon no-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Nota</span>Expandir
</div>
<div class="callout-btn-toggle d-inline-block border-0 py-1 ps-1 pe-0 float-end"><i class="callout-toggle"></i></div>
</div>
<div id="callout-1" class="callout-1-contents callout-collapse collapse">
<div class="callout-body-container callout-body">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/agujeros_Gemini_Generated2_web.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Imagen generada con Google Gemini"><img src="https://sjacobozavaleta.github.io/blog/posts/2025/danteva-agujeros/images/agujeros_Gemini_Generated2_web.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="550" alt="Imagen generada con Google Gemini"></a></p>
</figure>
</div>
<figcaption>Imagen generada con Google Gemini</figcaption>
</figure>
</div>
</div>
</div>
</div>


<hr>
<div class="post-author-section">
<div class="post-author-bio">
  <img src="https://sjacobozavaleta.github.io/assets/img/sergio_footer.png" alt="Retrato de Sergio Jácobo-Zavaleta" class="post-author-bio__image">

  <div class="post-author-bio__content">
    <p class="post-author-bio__label">Sobre el autor</p>

    <p>
      Soy Sergio, ingeniero en mecatrónica dedicado al diseño de
      robots clínicos, dispositivos biomédicos y sistemas de
      rehabilitación.
    </p>

    <p class="post-author-bio__links">
      <a href="https://www.github.com/SJacoboZavaleta">GitHub</a>
      <a href="https://www.linkedin.com/in/sjacobozavaleta/">LinkedIn</a>
      <a href="../../../../about.html">Más sobre mí</a>
    </p>
  </div>
</div>

</div>
</section>

<a onclick="window.scrollTo(0, 0); return false;" id="quarto-back-to-top"><i class="bi bi-arrow-up"></i> Volver arriba</a><div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Cómo citar</h2><div><div class="quarto-appendix-secondary-label">BibTeX</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{jácobo-zavaleta2025,
  author = {Jácobo-Zavaleta, Sergio},
  title = {Agujeros},
  date = {2025-02-01},
  url = {https://sjacobozavaleta.github.io/blog/posts/2025/danteva-agujeros/},
  langid = {es}
}
</code></pre><div class="quarto-appendix-secondary-label">Por favor, cita este trabajo como:</div><div id="ref-jácobo-zavaleta2025" class="csl-entry quarto-appendix-citeas">
Jácobo-Zavaleta, Sergio. 2025. <span>“Agujeros.”</span> February 1. <a href="https://sjacobozavaleta.github.io/blog/posts/2025/danteva-agujeros/">https://sjacobozavaleta.github.io/blog/posts/2025/danteva-agujeros/</a>.
</div></div></section></div> ]]></description>
  <category>Poesía</category>
  <category>Oscuridad</category>
  <category>Personificación</category>
  <guid>https://sjacobozavaleta.github.io/blog/posts/2025/danteva-agujeros/</guid>
  <pubDate>Fri, 31 Jan 2025 23:00:00 GMT</pubDate>
  <media:content url="https://sjacobozavaleta.github.io/blog/posts/2025/danteva-agujeros/images/agujeros_Gemini_Generated1_web.png" medium="image" type="image/png" height="144" width="144"/>
</item>
<item>
  <title>Visor URDF con Three.js: despliega tu robot en 3D</title>
  <dc:creator>Sergio Jácobo-Zavaleta</dc:creator>
  <link>https://sjacobozavaleta.github.io/blog/posts/2024/urdf-viewer-threejs/</link>
  <description><![CDATA[ 

<script>
  document.addEventListener("DOMContentLoaded", function () {
    document.body.classList.add("section-blog");
  });
</script>




<section id="qué-es-urdf" class="level1">
<h1>¿Qué es URDF?</h1>
<p>El Formato Unificado de Descripción de Robótica (URDF) es un archivo XML que incluye la descripción física de un robot. Básicamente, es un modelo 3D con información sobre articulaciones, motores, masa, etc. Para más detalles sobre cómo crear tu propio robot en formato URDF, revisa nuestro <a href="../fusion-360-to-urdf/">post anterior</a>.</p>
</section>
<section id="por-dónde-empezar" class="level1">
<h1>¿Por dónde empezar?</h1>
<p>Para crear nuestra aplicación y alojarla en un host web para presentar nuestro robot, utilizaremos las herramientas creadas con Three.js de <a href="https://github.com/gkjohnson/urdf-loaders/">gkjohnson/urdf-loaders</a>. Es necesario tener conocimientos básicos sobre Three.js y cómo <a href="https://threejs.org/docs/index.html#manual/en/introduction/Installation">instalarlo</a> localmente en nuestra PC. Puedes comenzar con este ejemplo básico desde su <a href="https://threejs.org/docs/index.html#manual/en/introduction/Creating-a-scene">documentación oficial</a>. Este demo fue realizado en un entorno Windows, pero se puede replicar en otros sistemas operativos. Al final de este post, dejaré algunos recursos útiles para usuarios de Windows que se utilizaron en este tutorial.</p>
<p>Para verificar una correcta instalación, basta con ejecutar en el terminal. Deberá devolver una salida con la versión como <code>10.7.0</code>.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb1-1"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">npm</span> <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">-v</span></span></code></pre></div></div>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Tip
</div>
</div>
<div class="callout-body-container callout-body">
<p>Todo lo indicado en este post se basa en la poca experiencia como desarrollador de aplicaciones con JavaScript o Three.js. Sin embargo, la intención es documentar los buenos resultados obtenidos para proyectos personales 🎴🕹️. Es posible (y seguro) que existan mejores maneras de administrar la aplicación, y espero que este post sirva como guía general 😊.</p>
</div>
</div>
<section id="realizar-una-copia-o-fork-del-repositorio-urdf-loaders" class="level2">
<h2 class="anchored" data-anchor-id="realizar-una-copia-o-fork-del-repositorio-urdf-loaders">Realizar una copia o fork del repositorio “urdf-loaders”</h2>
<p>Dirígete a <a href="https://github.com/gkjohnson/urdf-loaders/">gkjohnson/urdf-loaders</a> y realiza una copia, ya sea de forma manual (descarga en .zip) o con Git. No todos los archivos serán necesarios para este tutorial.</p>
</section>
<section id="crear-tu-propia-estructura-del-proyecto" class="level2">
<h2 class="anchored" data-anchor-id="crear-tu-propia-estructura-del-proyecto">Crear tu propia estructura del proyecto</h2>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb2-1"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">your-project/</span></span>
<span id="cb2-2"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">├──</span> docs/                    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Carpeta de salida para GitHub Pages</span></span>
<span id="cb2-3"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   ├── index.html           <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># ¡Contenido creado automáticamente!</span></span>
<span id="cb2-4"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   └── ...                  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Otros archivos generados por Parcel</span></span>
<span id="cb2-5"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">├──</span> urdf/                    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Carpeta de archivos URDF</span></span>
<span id="cb2-6"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   ├── robot/</span>
<span id="cb2-7"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   │   ├── urdf/</span>
<span id="cb2-8"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   │   │   ├── meshes/      <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Archivos de malla para el robot</span></span>
<span id="cb2-9"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   │   │   └── urdf/        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Archivos URDF del robot</span></span>
<span id="cb2-10"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   │   └── ...              <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Otros robots generados</span></span>
<span id="cb2-11"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">├──</span> src/                     <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Código fuente de tu aplicación</span></span>
<span id="cb2-12"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   ├── index.html           <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Archivo HTML principal</span></span>
<span id="cb2-13"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   ├── main.js              <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Archivo JS principal</span></span>
<span id="cb2-14"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   └── styles.css           <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Archivo CSS principal</span></span>
<span id="cb2-15"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">├──</span> utils/                    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Código fuente de tu aplicación</span></span>
<span id="cb2-16"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   ├── urdf-viewer-element.js  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Archivo del paquete urdf-loaders</span></span>
<span id="cb2-17"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   └── ...                 <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Otros archivos el paquete</span></span>
<span id="cb2-18"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">├──</span> test/                   <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Carpeta de pruebas para compilar y servir</span></span>
<span id="cb2-19"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   ├── index.html          <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># ¡Contenido creado automáticamente!</span></span>
<span id="cb2-20"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   └── ...                 <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Otros archivos generados por Parcel durante las pruebas</span></span>
<span id="cb2-21"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">├──</span> package.json            <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Archivo de configuración de npm</span></span>
<span id="cb2-22"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">└──</span> .gitignore              <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Archivos a ignorar por Git</span></span></code></pre></div></div>
</section>
<section id="modificaciones-necesarias" class="level2">
<h2 class="anchored" data-anchor-id="modificaciones-necesarias">Modificaciones necesarias</h2>
<section id="actualizar-las-dependencias" class="level3">
<h3 class="anchored" data-anchor-id="actualizar-las-dependencias">1. Actualizar las dependencias</h3>
<p>Luego de estructurar tu proyecto, el primer paso es reutilizar el archivo de configuración <code>package.json</code>, encargado de instalar todas las dependencias y definir los comandos para probar y crear finalmente nuestra aplicación. Así, se reemplazó la sección devDependencies por sus versiones actualizadas.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript"><span id="cb3-1"><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"devDependencies"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> {</span>
<span id="cb3-2">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"@babel/core"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^7.21.8"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-3">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"@babel/preset-env"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^7.21.5"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-4">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"@types/three"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^0.164.0"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-5">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"@webcomponents/webcomponentsjs"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^2.4.4"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-6">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"babel-jest"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^29.5.0"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-7">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"concurrently"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^6.2.1"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-8">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"cssnano"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^7.0.4"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-9">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"eslint"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^7.10.0"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-10">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"eslint-plugin-jest"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^24.1.0"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-11">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"jest"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^27.1.1"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-12">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"jest-cli"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^27.1.1"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-13">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"jsdom"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^17.0.0"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-14">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"node-fetch"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^3.0.0"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-15">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"nyc"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^15.1.0"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-16">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"parcel-bundler"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^1.12.5"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-17">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"postcss"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^8.4.39"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-18">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"rollup"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^2.29.0"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-19">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"static-server"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^3.0.0"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-20">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"three"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^0.164.1"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-21">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"typescript"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^4.4.3"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-22">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"http-server"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^14.1.1"</span></span>
<span id="cb3-23">  }<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">,</span></span>
<span id="cb3-24">  <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"dependencies"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> {</span>
<span id="cb3-25">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"parcel"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^2.12.0"</span></span>
<span id="cb3-26">  }</span></code></pre></div></div>
</section>
<section id="modificar-los-comandos-de-ejecución" class="level3">
<h3 class="anchored" data-anchor-id="modificar-los-comandos-de-ejecución">2. Modificar los comandos de ejecución</h3>
<p>Luego, en la sección de scripts se deben reemplazar los comandos <code>start</code> y <code>build</code> por sus versiones actualizadas (según la estructura de tu proyecto y algunos comandos nuevos como <code>--dist-dir</code> debido a la actualización de las dependencias). El resto de comandos como <code>build-examples</code> o <code>test</code> fueron eliminados.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb4-1"><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"scripts"</span><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">:</span> {</span>
<span id="cb4-2">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"start"</span><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"concurrently </span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">\"</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">parcel watch ./src/index.html --dist-dir ./test/ --public-url . --no-cache</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">\"</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"> </span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">\"</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">http-server ./</span><span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;">\"</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>,</span>
<span id="cb4-3">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"build"</span><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">:</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"parcel build ./src/index.html --dist-dir ./docs/ --public-url ./ --no-cache --no-source-maps --no-content-hash"</span></span>
<span id="cb4-4"><span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;">}</span></span></code></pre></div></div>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Nota
</div>
</div>
<div class="callout-body-container callout-body">
<p>Para el comando <code>start</code> se prefirió utilizar el paquete “http-server” en vez del “static-server” por ser más ligero y estar familiarizado.</p>
</div>
</div>
</section>
<section id="modificar-las-referencias-a-los-archivos-principales" class="level3">
<h3 class="anchored" data-anchor-id="modificar-las-referencias-a-los-archivos-principales">3. Modificar las referencias a los archivos principales</h3>
<p>Algunos de nuestro archivos se verán afectados y son compilados en este punto, ya que no estarán correctamente enlazados debido a la nueva estructura del proyecto. Lo siguiente será revisar el contenido de nuestro principales archivos del paquete ubicados en <code>src</code> y <code>utils</code> (archivos js y html). Sin embargo, para nuestro beneficio, estos ya fueron identificados y son los siguientes:</p>
<section id="en-src" class="level4">
<h4 class="anchored" data-anchor-id="en-src">En src/</h4>
<ol type="1">
<li>En <code>index.js</code></li>
</ol>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript"><span id="cb5-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/* globals */</span></span>
<span id="cb5-2"><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">...</span></span>
<span id="cb5-3"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> URDFManipulator <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">from</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'../utils/urdf-manipulator-element.js'</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">;</span></span></code></pre></div></div>
<ol start="2" type="1">
<li>En <code>index.html</code></li>
</ol>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode js code-with-copy"><code class="sourceCode javascript"><span id="cb6-1"><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;!</span>DOCTYPE html<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb6-2"><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span>html lang<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"es"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb6-3"></span>
<span id="cb6-4"><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span>head<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb6-5">    <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span>meta charset<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"utf-8"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb6-6">    <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">...</span></span>
<span id="cb6-7">    <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span>link href<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"styles.css"</span> type<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"text/css"</span> rel<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"stylesheet"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb6-8"><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;/</span>head<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb6-9"></span>
<span id="cb6-10"><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span>body<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb6-11">    <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">...</span></span>
<span id="cb6-12">    <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span>script type<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"module"</span> src<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"./index.js"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;&lt;/</span>script<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span></span>
<span id="cb6-13"><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;/</span>body<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'</span></span></code></pre></div></div>
</section>
</section>
<section id="mantener-solo-archivos-necesarios" class="level3">
<h3 class="anchored" data-anchor-id="mantener-solo-archivos-necesarios">4. Mantener solo archivos necesarios</h3>
<p>Dado que solo se mantuvo los comandos <code>start</code> y <code>build</code>, los siguientes archivos de la carpeta original pueden eliminarse de nuestro proyecto:</p>
<ul>
<li>umd/<br>
</li>
<li>.eslintrc.json<br>
</li>
<li>babel.config.json<br>
</li>
<li>jest.config.js<br>
</li>
<li>package-lock.json (se volverá a crear al compilar)<br>
</li>
<li>rollup.config.json<br>
</li>
<li>example/index.bundle.html<br>
</li>
<li>example/simple.html<br>
</li>
<li>example/vr.html<br>
</li>
<li>example/src/index.js<br>
</li>
<li>example/src/simple.js<br>
</li>
<li>example/src/vr.js</li>
</ul>
</section>
</section>
<section id="relizando-pruebas" class="level2">
<h2 class="anchored" data-anchor-id="relizando-pruebas">Relizando pruebas</h2>
<p>Finalmente, llegó la parte más interesante y fácil de toda esta guía. Simplemente con el siguiente comando, se puede probar nuestra aplicación en un servidor local desde nuestro navegador. Para realizar un cambio, solo basta con guardar el archivo luego de modificar. Se recomienda fuertemente utilizar <a href="https://code.visualstudio.com/Download">VSCode</a> para editar e implementar todo nuestro proyecto. Recuerda que los archivos creados para ello se almacenan en la carpeta <code>/test</code>, por lo que hay que tener en cuenta en nuestra dirección del localhost.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb7-1"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">npm</span> start</span></code></pre></div></div>
<p>Algunas modificaciones incluyen, cambiar la posición de la cámara y zoom de nuestro robot, según:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb8" style="background: #f1f3f5;"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb8-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">initCamera()</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">{</span></span>
<span id="cb8-2">        <span class="ex" style="color: null;
background-color: null;
font-style: inherit;">this.camera</span> = new THREE.PerspectiveCamera<span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;">(</span><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">75,</span> 1, 0.1, 1000<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">);</span></span>
<span id="cb8-3">        <span class="ex" style="color: null;
background-color: null;
font-style: inherit;">this.camera.position.z</span> = 7<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">;</span></span>
<span id="cb8-4">        <span class="ex" style="color: null;
background-color: null;
font-style: inherit;">this.camera.zoom</span> = 8<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">;</span></span>
<span id="cb8-5">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">}</span></span></code></pre></div></div>
</section>
<section id="realizando-la-exportación-final" class="level2">
<h2 class="anchored" data-anchor-id="realizando-la-exportación-final">Realizando la exportación final</h2>
<p>Luego de modificar todo lo necesario, probar con los robots incluidos por defecto y agregar nuestro propio archivo URDF, finalmente se procede a compilar los archivos necesarios en la carpeta <code>/docs</code> para subirlo a nuestro host con Github Pages, utilizando simplemente:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb9" style="background: #f1f3f5;"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb9-1"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">npm</span> run build</span></code></pre></div></div>
<section id="modificación-final" class="level3">
<h3 class="anchored" data-anchor-id="modificación-final">Modificación final</h3>
<p>Para poder visualizar correctamente nuestra aplicación con ayuda de Github Pages (según lo explicado más adelante), se procederá a modificar el contenido de la carpeta <code>/docs</code>:</p>
<ol type="1">
<li>Realizar una copia de nuestra carpeta urdf dentro de <code>/docs</code><br>
</li>
<li>Modificar el archivo index.html creado en <code>/docs</code>, indicando que nuestro urdf se encuentra ahora en la misma carpeta:</li>
</ol>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb10" style="background: #f1f3f5;"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb10-1"><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span>li <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">urdf</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"./urdf/UR5/urdf/UR5.URDF"</span> <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">color</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"#37B7C3"</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;&lt;</span>b<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span>UR5<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span>/b<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;&lt;</span>/li<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span></span></code></pre></div></div>
<p>De esta manera, se asegura que todo nuestro proyecto y sus dependencias corran desde en la web <code>/docs</code>. Por lo que nuestro nueva jerarquía de archivos sería ahora:</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb11" style="background: #f1f3f5;"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb11-1"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">your-project/</span></span>
<span id="cb11-2"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">├──</span> docs/                    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Carpeta de salida para GitHub Pages</span></span>
<span id="cb11-3"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   ├── index.html</span>
<span id="cb11-4"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   ├── urdf/                <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Carpeta de archivo del robot</span></span>
<span id="cb11-5"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">│</span>   └── ...                  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Otros archivos creados al compilar</span></span></code></pre></div></div>
</section>
</section>
<section id="subiendo-a-github-pages" class="level2">
<h2 class="anchored" data-anchor-id="subiendo-a-github-pages">Subiendo a Github Pages</h2>
<p>La carpeta <code>docs</code> es importante porque nos permitirá almacenar todo nuestro visualizador URDF. Para ello, ir a la sección de <code>Settings</code> de nuestro repositorio público previamente creado. Eb la sección de <code>Pages --&gt; Github Pages --&gt; Build and deployment</code> seleccionar la opción <code>Deploy from a branch</code>. Luego, indicar ruta del folder base para la creación nuestro página a <code>/docs</code>. Por defecto es <code>/root</code>.</p>
<p>Luego de unos minutos, aparecerá que nuestro sitio se creó correctamente y aparecerá un enlace a nuestra página web de nuestro visualizador URDF completamente funcional.</p>
<p>Y eso es todo, disfruta de tu robot en la web !!! o prueba el mío en <a href="https://sjacobozavaleta.github.io/URDFviewer/">Github</a>.</p>
</section>
</section>
<section id="recursos-recomendados" class="level1">
<h1>Recursos recomendados</h1>
<ol type="1">
<li>Instalador de Node.js y npm según su <a href="https://docs.npmjs.com/cli/v6/configuring-npm/install">página oficial</a> mediante un gestor de versiones de Node como <a href="https://github.com/coreybutler/nvm-windows">coreybutler/nvm-windows</a>.</li>
</ol>


<hr>
<div class="post-author-section">
<div class="post-author-bio">
  <img src="https://sjacobozavaleta.github.io/assets/img/sergio_footer.png" alt="Retrato de Sergio Jácobo-Zavaleta" class="post-author-bio__image">

  <div class="post-author-bio__content">
    <p class="post-author-bio__label">Sobre el autor</p>

    <p>
      Soy Sergio, ingeniero en mecatrónica dedicado al diseño de
      robots clínicos, dispositivos biomédicos y sistemas de
      rehabilitación.
    </p>

    <p class="post-author-bio__links">
      <a href="https://www.github.com/SJacoboZavaleta">GitHub</a>
      <a href="https://www.linkedin.com/in/sjacobozavaleta/">LinkedIn</a>
      <a href="../../../../about.html">Más sobre mí</a>
    </p>
  </div>
</div>

</div>
</section>

<a onclick="window.scrollTo(0, 0); return false;" id="quarto-back-to-top"><i class="bi bi-arrow-up"></i> Volver arriba</a><div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Cómo citar</h2><div><div class="quarto-appendix-secondary-label">BibTeX</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{jácobo-zavaleta2024,
  author = {Jácobo-Zavaleta, Sergio},
  title = {Visor URDF con Three.js: despliega tu robot en 3D},
  date = {2024-06-15},
  url = {https://sjacobozavaleta.github.io/blog/posts/2024/urdf-viewer-threejs/},
  langid = {es}
}
</code></pre><div class="quarto-appendix-secondary-label">Por favor, cita este trabajo como:</div><div id="ref-jácobo-zavaleta2024" class="csl-entry quarto-appendix-citeas">
Jácobo-Zavaleta, Sergio. 2024. <span>“Visor URDF con Three.js: despliega
tu robot en 3D.”</span> June 15. <a href="https://sjacobozavaleta.github.io/blog/posts/2024/urdf-viewer-threejs/">https://sjacobozavaleta.github.io/blog/posts/2024/urdf-viewer-threejs/</a>.
</div></div></section></div> ]]></description>
  <category>Robótica</category>
  <category>URDF</category>
  <category>Three.js</category>
  <category>Desarrollo web</category>
  <guid>https://sjacobozavaleta.github.io/blog/posts/2024/urdf-viewer-threejs/</guid>
  <pubDate>Fri, 14 Jun 2024 22:00:00 GMT</pubDate>
  <media:content url="https://sjacobozavaleta.github.io/blog/posts/2024/urdf-viewer-threejs/images/thumbnail.png" medium="image" type="image/png" height="149" width="144"/>
</item>
<item>
  <title>De Fusion 360 a URDF: construcción y simulación de un robot</title>
  <dc:creator>Sergio Jácobo-Zavaleta</dc:creator>
  <link>https://sjacobozavaleta.github.io/blog/posts/2024/fusion-360-to-urdf/</link>
  <description><![CDATA[ 

<script>
  document.addEventListener("DOMContentLoaded", function () {
    document.body.classList.add("section-blog");
  });
</script>




<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/logos_URDF_pathway.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Ruta de trabajo para utilizar archivos URDF"><img src="https://sjacobozavaleta.github.io/blog/posts/2024/fusion-360-to-urdf/images/logos_URDF_pathway.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:60.0%" alt="Ruta de trabajo para utilizar archivos URDF"></a></p>
</figure>
</div>
<figcaption>Ruta de trabajo para utilizar archivos URDF</figcaption>
</figure>
</div>
<section id="qué-es-urdf" class="level1">
<h1>¿Qué es URDF?</h1>
<p>El formato unificado de descripción de robótica (URDF) es un tipo de archivo XML que incluye la descripción física de un robot. Es básicamente un modelo 3D con información sobre articulaciones, motores, masa, etc. Estos archivos se ejecutan a través del Sistema Operativo de Robots (ROS). Los datos del archivo informan al operador humano sobre el aspecto y las capacidades del robot antes de que comiencen a operarlo.</p>
<p>Estos archivos también se utilizan en simuladores para probar el comportamiento del robot antes de su despliegue en el mundo real, o en la creación de un gemelo digital para la visualización en tiempo real y bidireccional del estado de un dispositivo robótico.</p>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Nota
</div>
</div>
<div class="callout-body-container callout-body">
<p>Muchos fabricantes de robots tienen modelos URDF de sus dispositivos disponibles para descargar. Pero si no es el caso, se tendrá que crear desde cero. La solución más práctica es generarlo a partir de un dibujo CAD 3D, dado que permite crear formas y relaciones mecánicas complejas, manteniendo una relación eslabón-articulación completamente referenciada y necesaria en el archivo URDF.</p>
</div>
</div>
<section id="configuración-básica" class="level2">
<h2 class="anchored" data-anchor-id="configuración-básica">Configuración básica</h2>
<p>La relación entre elementos se aprecia de forma intuitiva en la Figura&nbsp;1. Un ejemplo de código básico y su representación gráfica se aprecian en la Figura&nbsp;2.</p>
<div id="fig-rosURDF" class="quarto-layout-panel">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-rosURDF-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="quarto-layout-row">
<div class="quarto-layout-cell" style="flex-basis: 50.0%;justify-content: flex-start;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/link.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2" title="Detalle de un eslabón"><img src="https://sjacobozavaleta.github.io/blog/posts/2024/fusion-360-to-urdf/images/link.png" class="img-fluid figure-img" style="width:70.0%"></a></p>
<figcaption>Detalle de un eslabón</figcaption>
</figure>
</div>
</div>
<div class="quarto-layout-cell" style="flex-basis: 50.0%;justify-content: flex-start;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/joint.png" class="lightbox" data-gallery="quarto-lightbox-gallery-3" title="Relación eslabón-articulación"><img src="https://sjacobozavaleta.github.io/blog/posts/2024/fusion-360-to-urdf/images/joint.png" class="img-fluid figure-img" style="width:60.0%"></a></p>
<figcaption>Relación eslabón-articulación</figcaption>
</figure>
</div>
</div>
</div>
<div class="quarto-layout-row">
<div class="quarto-layout-cell" style="flex-basis: 50.0%;justify-content: flex-start;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/joint_link.png" class="lightbox" data-gallery="quarto-lightbox-gallery-4" title="Relación entre eslabones"><img src="https://sjacobozavaleta.github.io/blog/posts/2024/fusion-360-to-urdf/images/joint_link.png" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:60.0%"></a></p>
</figure>
</div>
<figcaption>Relación entre eslabones</figcaption>
</figure>
</div>
</div>
</div>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-rosURDF-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figura&nbsp;1: Representación de links, joints y sus orígenes utilizados en URDF
</figcaption>
</figure>
</div>
<div id="fig-ejemplo-urdf" class="quarto-layout-panel">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-ejemplo-urdf-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="quarto-layout-row">
<div class="quarto-layout-cell" style="flex-basis: 50.0%;justify-content: flex-start;">
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode xml code-with-copy"><code class="sourceCode xml"><span id="cb1-1"> 1 &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">robot</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">name=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"test_robot"</span>&gt;</span>
<span id="cb1-2"> 2   &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">link</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">name=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"link1"</span> /&gt;</span>
<span id="cb1-3"> 3   &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">link</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">name=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"link2"</span> /&gt;</span>
<span id="cb1-4"> 4   &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">link</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">name=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"link3"</span> /&gt;</span>
<span id="cb1-5"> 5   &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">link</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">name=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"link4"</span> /&gt;</span>
<span id="cb1-6"> 6 </span>
<span id="cb1-7"> 7   &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">joint</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">name=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"joint1"</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">type=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"continuous"</span>&gt;</span>
<span id="cb1-8"> 8     &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">parent</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">link=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"link1"</span>/&gt;</span>
<span id="cb1-9"> 9     &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">child</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">link=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"link2"</span>/&gt;</span>
<span id="cb1-10">10     &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">origin</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">xyz=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"5 3 0"</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">rpy=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"0 0 0"</span> /&gt;</span>
<span id="cb1-11">11     &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">axis</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">xyz=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"-0.9 0.15 0"</span> /&gt;</span>
<span id="cb1-12">12   &lt;/<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">joint</span>&gt;</span>
<span id="cb1-13">13 </span>
<span id="cb1-14">14   &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">joint</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">name=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"joint2"</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">type=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"continuous"</span>&gt;</span>
<span id="cb1-15">15     &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">parent</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">link=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"link1"</span>/&gt;</span>
<span id="cb1-16">16     &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">child</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">link=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"link3"</span>/&gt;</span>
<span id="cb1-17">17     &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">origin</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">xyz=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"-2 5 0"</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">rpy=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"0 0 1.57"</span> /&gt;</span>
<span id="cb1-18">18     &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">axis</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">xyz=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"-0.707 0.707 0"</span> /&gt;</span>
<span id="cb1-19">19   &lt;/<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">joint</span>&gt;</span>
<span id="cb1-20">20 </span>
<span id="cb1-21">21   &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">joint</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">name=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"joint3"</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">type=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"continuous"</span>&gt;</span>
<span id="cb1-22">22     &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">parent</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">link=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"link3"</span>/&gt;</span>
<span id="cb1-23">23     &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">child</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">link=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"link4"</span>/&gt;</span>
<span id="cb1-24">24     &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">origin</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">xyz=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"5 0 0"</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">rpy=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"0 0 -1.57"</span> /&gt;</span>
<span id="cb1-25">25     &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">axis</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">xyz=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"0.707 -0.707 0"</span> /&gt;</span>
<span id="cb1-26">26   &lt;/<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">joint</span>&gt;</span>
<span id="cb1-27">27 &lt;/<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">robot</span>&gt;</span></code></pre></div></div>
</div>
<div class="quarto-layout-cell" style="flex-basis: 50.0%;justify-content: flex-start;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/graphiz.png" class="lightbox" data-gallery="quarto-lightbox-gallery-5" title="Visualización con Graphviz"><img src="https://sjacobozavaleta.github.io/blog/posts/2024/fusion-360-to-urdf/images/graphiz.png" class="img-fluid figure-img" style="width:65.0%"></a></p>
<figcaption>Visualización con Graphviz</figcaption>
</figure>
</div>
</div>
</div>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-ejemplo-urdf-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figura&nbsp;2: Formato URDF y su representación gráfica de los elementos del robot
</figcaption>
</figure>
</div>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Nota
</div>
</div>
<div class="callout-body-container callout-body">
<p>Para una descripción más detallada sobre el formato URDF y su configuración, se recomienda visitar la <a href="https://wiki.ros.org/urdf/Tutorials/Create%20your%20own%20urdf%20file">documentación URDF en ROS</a> o algunas <a href="https://abedgnu.github.io/Notes-ROS/chapters/ROS/10_robot_modeling/urdf.html">notas</a>.</p>
</div>
</div>
</section>
<section id="aplicaciones" class="level2">
<h2 class="anchored" data-anchor-id="aplicaciones">Aplicaciones</h2>
<div id="fig-aplicaciones" class="quarto-layout-panel">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-aplicaciones-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="quarto-layout-row">
<div class="quarto-layout-cell" style="flex-basis: 50.0%;justify-content: flex-start;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/urdf_franka.png" class="lightbox" data-gallery="quarto-lightbox-gallery-6" title="En Omniverse"><img src="https://sjacobozavaleta.github.io/blog/posts/2024/fusion-360-to-urdf/images/urdf_franka.png" class="img-fluid figure-img"></a></p>
<figcaption><a href="https://docs.omniverse.nvidia.com/kit/docs/omniverse-urdf-importer/latest/index.html">En Omniverse</a></figcaption>
</figure>
</div>
</div>
<div class="quarto-layout-cell" style="flex-basis: 50.0%;justify-content: flex-start;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/urdf_rviz.png" class="lightbox" data-gallery="quarto-lightbox-gallery-7" title="En Rviz"><img src="https://sjacobozavaleta.github.io/blog/posts/2024/fusion-360-to-urdf/images/urdf_rviz.png" class="img-fluid figure-img" style="width:80.0%"></a></p>
<figcaption><a href="https://discourse.ros.org/t/urdf-viz-urdf-file-viewer/2472">En Rviz</a></figcaption>
</figure>
</div>
</div>
</div>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-aplicaciones-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figura&nbsp;3: Ejemplos de robots importados como URDF
</figcaption>
</figure>
</div>
</section>
</section>
<section id="creando-tu-robot" class="level1">
<h1>Creando tu robot</h1>
<section id="consideraciones-cad" class="level2">
<h2 class="anchored" data-anchor-id="consideraciones-cad">Consideraciones CAD</h2>
<p>Ya sea que dibujes desde cero o que reutilices archivos, deberás adaptar el modelado de tu dibujo teniendo en cuenta los requisitos solicitados en el paso de conversión o generación de nuestro archivo URDF (que dependerá del código del autor del script). Además, según el diseño CAD (por ejemplo, como <em>“top-down”</em> y <em>“bottom-up”</em>) esto será más o menos difícil en algunos casos dependiendo del proceso de modelado según el programa utilizado. En este caso, con ayuda de Fusion 360 con un diseño top-down, es necesario que los elementos de nuestro robot (eslabones y articulaciones o <em>“links”</em> y <em>“joints”</em> como se referirá a partir de ahora respectivamente) se conserve la siguiente distribución:</p>
<div class="cell" data-layout-align="default">
<div class="cell-output-display">
<div id="fig-cad-urdf" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-cad-urdf-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div>
<svg width="672" height="480" viewbox="0.00 0.00 961.00 262.60" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="; max-width: none; max-height: none">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 258.6)">
<title>G</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-258.6 957,-258.6 957,4 -4,4"></polygon>
<g id="clust1" class="cluster">
<title>cluster_0</title>
<polygon fill="#03aed2" stroke="#03aed2" points="8,-8 8,-246.6 673,-246.6 673,-8 8,-8"></polygon>
<text text-anchor="middle" x="340.5" y="-230" font-family="Helvetica,Arial,sans-serif" font-size="14.00">CAD</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_1</title>
<polygon fill="#feffd2" stroke="#feffd2" points="681,-8 681,-246.6 945,-246.6 945,-8 681,-8"></polygon>
<text text-anchor="middle" x="813" y="-230" font-family="Helvetica,Arial,sans-serif" font-size="14.00">URDF</text>
</g>
<!-- Raiz -->
<g id="node1" class="node">
<title>Raiz</title>
<ellipse fill="#feefad" stroke="#feefad" cx="356" cy="-195.8" rx="28.97" ry="18"></ellipse>
<text text-anchor="middle" x="356" y="-191.6" font-family="Helvetica,sans-serif" font-size="14.00">Raiz</text>
</g>
<!-- Componente 1 -->
<g id="node2" class="node">
<title>Componente 1</title>
<ellipse fill="#feefad" stroke="#feefad" cx="216" cy="-107" rx="67.76" ry="18"></ellipse>
<text text-anchor="middle" x="216" y="-102.8" font-family="Helvetica,sans-serif" font-size="14.00">Componente 1</text>
</g>
<!-- Raiz&#45;&gt;Componente 1 -->
<g id="edge1" class="edge">
<title>Raiz-&gt;Componente 1</title>
<path fill="none" stroke="black" d="M336.24,-182.55C313.89,-168.69 277.11,-145.89 250.1,-129.14"></path>
<polygon fill="black" stroke="black" points="251.69,-126.01 241.35,-123.72 248,-131.96 251.69,-126.01"></polygon>
</g>
<!-- Componente 2 -->
<g id="node3" class="node">
<title>Componente 2</title>
<ellipse fill="#feefad" stroke="#feefad" cx="452" cy="-107" rx="67.76" ry="18"></ellipse>
<text text-anchor="middle" x="452" y="-102.8" font-family="Helvetica,sans-serif" font-size="14.00">Componente 2</text>
</g>
<!-- Raiz&#45;&gt;Componente 2 -->
<g id="edge2" class="edge">
<title>Raiz-&gt;Componente 2</title>
<path fill="none" stroke="black" d="M371.85,-180.47C386.63,-167.1 408.93,-146.94 426.26,-131.27"></path>
<polygon fill="black" stroke="black" points="428.76,-133.73 433.83,-124.43 424.07,-128.54 428.76,-133.73"></polygon>
</g>
<!-- Cuerpo 1 -->
<g id="node4" class="node">
<title>Cuerpo 1</title>
<ellipse fill="#feefad" stroke="#feefad" cx="63" cy="-34" rx="46.92" ry="18"></ellipse>
<text text-anchor="middle" x="63" y="-29.8" font-family="Helvetica,sans-serif" font-size="14.00">Cuerpo 1</text>
</g>
<!-- Componente 1&#45;&gt;Cuerpo 1 -->
<g id="edge3" class="edge">
<title>Componente 1-&gt;Cuerpo 1</title>
<path fill="none" stroke="black" d="M183.93,-91.12C159.76,-79.9 126.55,-64.49 101.04,-52.65"></path>
<polygon fill="black" stroke="black" points="102.22,-49.34 91.68,-48.31 99.28,-55.69 102.22,-49.34"></polygon>
</g>
<!-- Cuerpo 2 -->
<g id="node5" class="node">
<title>Cuerpo 2</title>
<ellipse fill="#feefad" stroke="#feefad" cx="174" cy="-34" rx="46.92" ry="18"></ellipse>
<text text-anchor="middle" x="174" y="-29.8" font-family="Helvetica,sans-serif" font-size="14.00">Cuerpo 2</text>
</g>
<!-- Componente 1&#45;&gt;Cuerpo 2 -->
<g id="edge4" class="edge">
<title>Componente 1-&gt;Cuerpo 2</title>
<path fill="none" stroke="black" d="M206.05,-89.17C200.97,-80.6 194.7,-69.99 189.05,-60.44"></path>
<polygon fill="black" stroke="black" points="191.99,-58.53 183.88,-51.71 185.96,-62.09 191.99,-58.53"></polygon>
</g>
<!-- Cuerpo 3 -->
<g id="node6" class="node">
<title>Cuerpo 3</title>
<ellipse fill="#feefad" stroke="#feefad" cx="285" cy="-34" rx="46.92" ry="18"></ellipse>
<text text-anchor="middle" x="285" y="-29.8" font-family="Helvetica,sans-serif" font-size="14.00">Cuerpo 3</text>
</g>
<!-- Componente 1&#45;&gt;Cuerpo 3 -->
<g id="edge5" class="edge">
<title>Componente 1-&gt;Cuerpo 3</title>
<path fill="none" stroke="black" d="M232.35,-89.17C241.24,-80.02 252.38,-68.56 262.12,-58.54"></path>
<polygon fill="black" stroke="black" points="264.78,-60.83 269.24,-51.22 259.76,-55.95 264.78,-60.83"></polygon>
</g>
<!-- Cuerpo 4 -->
<g id="node7" class="node">
<title>Cuerpo 4</title>
<ellipse fill="#feefad" stroke="#feefad" cx="396" cy="-34" rx="46.92" ry="18"></ellipse>
<text text-anchor="middle" x="396" y="-29.8" font-family="Helvetica,sans-serif" font-size="14.00">Cuerpo 4</text>
</g>
<!-- Componente 2&#45;&gt;Cuerpo 4 -->
<g id="edge6" class="edge">
<title>Componente 2-&gt;Cuerpo 4</title>
<path fill="none" stroke="black" d="M438.73,-89.17C431.82,-80.42 423.25,-69.55 415.6,-59.85"></path>
<polygon fill="black" stroke="black" points="418.12,-57.39 409.18,-51.71 412.62,-61.72 418.12,-57.39"></polygon>
</g>
<!-- Cuerpo 5 -->
<g id="node8" class="node">
<title>Cuerpo 5</title>
<ellipse fill="#feefad" stroke="#feefad" cx="507" cy="-34" rx="46.92" ry="18"></ellipse>
<text text-anchor="middle" x="507" y="-29.8" font-family="Helvetica,sans-serif" font-size="14.00">Cuerpo 5</text>
</g>
<!-- Componente 2&#45;&gt;Cuerpo 5 -->
<g id="edge7" class="edge">
<title>Componente 2-&gt;Cuerpo 5</title>
<path fill="none" stroke="black" d="M465.03,-89.17C471.82,-80.42 480.24,-69.55 487.75,-59.85"></path>
<polygon fill="black" stroke="black" points="490.7,-61.75 494.06,-51.71 485.17,-57.47 490.7,-61.75"></polygon>
</g>
<!-- Cuerpo 6 -->
<g id="node9" class="node">
<title>Cuerpo 6</title>
<ellipse fill="#feefad" stroke="#feefad" cx="618" cy="-34" rx="46.92" ry="18"></ellipse>
<text text-anchor="middle" x="618" y="-29.8" font-family="Helvetica,sans-serif" font-size="14.00">Cuerpo 6</text>
</g>
<!-- Componente 2&#45;&gt;Cuerpo 6 -->
<g id="edge8" class="edge">
<title>Componente 2-&gt;Cuerpo 6</title>
<path fill="none" stroke="black" d="M486.4,-91.29C513.15,-79.84 550.32,-63.95 578.33,-51.97"></path>
<polygon fill="black" stroke="black" points="580.01,-55.06 587.83,-47.9 577.26,-48.62 580.01,-55.06"></polygon>
</g>
<!-- Body 4, 5, 6 -->
<g id="node10" class="node">
<title>Body 4, 5, 6</title>
<ellipse fill="#f3b95f" stroke="#f3b95f" cx="878" cy="-34" rx="58.54" ry="18"></ellipse>
<text text-anchor="middle" x="878" y="-29.8" font-family="Helvetica,sans-serif" font-size="14.00">Body 4, 5, 6</text>
</g>
<!-- Body 1, 2 y 3 -->
<g id="node11" class="node">
<title>Body 1, 2 y 3</title>
<ellipse fill="#f3b95f" stroke="#f3b95f" cx="752" cy="-107" rx="63.2" ry="18"></ellipse>
<text text-anchor="middle" x="752" y="-102.8" font-family="Helvetica,sans-serif" font-size="14.00">Body 1, 2 y 3</text>
</g>
<!-- Link 1 -->
<g id="node12" class="node">
<title>Link 1</title>
<polygon fill="#ff7d29" stroke="#ff7d29" points="845,-213.8 791,-213.8 791,-177.8 845,-177.8 845,-213.8"></polygon>
<text text-anchor="middle" x="818" y="-191.6" font-family="Helvetica,sans-serif" font-size="14.00">Link 1</text>
</g>
<!-- Link 1&#45;&gt;Body 1, 2 y 3 -->
<g id="edge11" class="edge">
<title>Link 1-&gt;Body 1, 2 y 3</title>
<path fill="none" stroke="black" d="M804.96,-177.65C795.23,-164.85 781.78,-147.16 770.87,-132.82"></path>
<polygon fill="black" stroke="black" points="773.63,-130.66 764.79,-124.82 768.05,-134.9 773.63,-130.66"></polygon>
</g>
<!-- Link 2 -->
<g id="node13" class="node">
<title>Link 2</title>
<polygon fill="#ffbf78" stroke="#ffbf78" points="885,-125 833.21,-107 885,-89 936.79,-107 885,-125"></polygon>
<text text-anchor="middle" x="885" y="-102.8" font-family="Helvetica,sans-serif" font-size="14.00">Link 2</text>
</g>
<!-- Link 1&#45;&gt;Link 2 -->
<g id="edge10" class="edge">
<title>Link 1-&gt;Link 2</title>
<path fill="none" stroke="black" d="M831.24,-177.65C841.88,-163.86 856.91,-144.39 868.37,-129.55"></path>
<polygon fill="black" stroke="black" points="871.3,-131.47 874.64,-121.42 865.76,-127.2 871.3,-131.47"></polygon>
<text text-anchor="middle" x="875.86" y="-147.2" font-family="Cambria,sans-serif" font-size="14.00">Joint 1</text>
</g>
<!-- Link 2&#45;&gt;Body 4, 5, 6 -->
<g id="edge9" class="edge">
<title>Link 2-&gt;Body 4, 5, 6</title>
<path fill="none" stroke="black" d="M883.38,-89.53C882.59,-81.52 881.62,-71.68 880.72,-62.57"></path>
<polygon fill="black" stroke="black" points="884.18,-61.98 879.71,-52.37 877.21,-62.66 884.18,-61.98"></polygon>
</g>
</g>
</svg>
</div>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-cad-urdf-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figura&nbsp;4: Relación entre los elementos entre los archivos CAD y URDF
</figcaption>
</figure>
</div>
</div>
</div>
<p>La Figura&nbsp;4 ejemplifica que es necesario que en Fusion 360, las partes principales del robot se definan como <strong>componentes</strong>, creados a partir de subpartes (<strong>cuerpos</strong>). Manteniendo esta relación en todo momento, se garantiza y facilita la definición de links y joints de forma correcta.</p>
<p>En esta oportunidad, se utilizó como ejemplo el robot colaborativo <strong>UR5</strong> de <a href="https://www.universal-robots.com/products/ur5-robot/">Universal Robots</a> a lo largo de todo el post. Así, en la Figura&nbsp;5 se aprecia la jerarquía de los componentes y cuerpos creados durante el dibujo. Por ejemplo, el segundo eslabón se compone de 9 subpartes (de tipo <em>“body”</em> en Fusion 360), evitando la anidación de componentes en todo momento.</p>
<div id="fig-robotCad" class="quarto-float quarto-figure quarto-figure-left anchored" data-fig-align="left">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-robotCad-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<a href="images/fusion2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-8" title="Figura&nbsp;5: Ruta de trabajo para utilizar archivos URDF"><img src="https://sjacobozavaleta.github.io/blog/posts/2024/fusion-360-to-urdf/images/fusion2.png" class="img-fluid quarto-figure quarto-figure-left figure-img"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-robotCad-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figura&nbsp;5: Ruta de trabajo para utilizar archivos URDF
</figcaption>
</figure>
</div>
</section>
</section>
<section id="exportando-un-archivo-urdf" class="level1">
<h1>Exportando un archivo URDF</h1>
<p>Luego de realizar nuestro dibujo CAD, se recomienda utilizar un plugin para generar de forma automática y bajo la mesa, todo el código necesario para la descripción gráfica de nuestro robot. Esto nos permite centrarnos principalmente en lo importante durante el modelado. Sin embargo, dado que cada plugin disponible depende del software utilizado, como Solidworks, FreeCAD o Fusion360.</p>
<p>Para ello, se utilizó el plugin <a href="https://github.com/dheena2k2/fusion2urdf-ros2">dheena2k2/fusion2urdf-ros2</a> para generar archivos URDF orientado a ROS2, el mismo que se basó en otro plugin de <a href="https://github.com/dheena2k2/fusion2urdf-ros2">syuntoku14/fusion2urdf</a> orientado a ROS1.</p>
<section id="consideraciones-cad-1" class="level2">
<h2 class="anchored" data-anchor-id="consideraciones-cad-1">Consideraciones CAD</h2>
<p>Para generar correctamente el archivo URDF, se requiere: - Los eslabones del robot deben definirse como componentes. - El componente base debe renombrarse como <code>base_link</code>.<br>
- Cada componente debe contener únicamente cuerpos simples. No utilizar componentes anidados.<br>
- Cuando se definen las relaciones de articulación (joint): 1. Se selecciona primero el eslabón hijo (child link) como Componente 1. 2. Luego, el eslabón padre (parent link) como Componente 2. 3. Verificar que el movimiento del grado de libertad (por ejemplo, de rotación o traslación) siga el eje de rotación +Z.</p>
</section>
<section id="modificando-nuestro-archivo" class="level2">
<h2 class="anchored" data-anchor-id="modificando-nuestro-archivo">Modificando nuestro archivo</h2>
<ol type="1">
<li>Dentro del conjunto de la carpeta exportada, centrarse en las carpetas <code>\urdf</code> y <code>\meshes</code> que contienen el archivo URDF y los archivos de modelo 3D.</li>
<li>Cambiar la extensión del archivo URDF de <code>.xacro</code> por <code>.urdf</code>.</li>
<li>Verificar que el nombre de los archivos <em>mesh</em> (formato STL) referenciados dentro del archivo URDF coincidan con sus archivos en la carpeta <code>\meshes</code>. Si no, corregir.</li>
<li>Corregir todos los enlaces de referencia en los entornos <code>&lt;geometry&gt;</code> del archivo URDF:
<ol type="1">
<li>Del siguiente código:<br>
</li>
</ol>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode xml code-with-copy"><code class="sourceCode xml"><span id="cb2-1">&lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">geometry</span>&gt;</span>
<span id="cb2-2"> &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">mesh</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">filename=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"file://$(find UR5_description)/meshes/base_link.stl"</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">scale=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"0.001 0.001 0.001"</span>/&gt;</span>
<span id="cb2-3">&lt;/<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">geometry</span>&gt;</span></code></pre></div></div>
<ol start="2" type="1">
<li>Reemplazar así:</li>
</ol>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode xml code-with-copy"><code class="sourceCode xml"><span id="cb3-1">&lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">geometry</span>&gt;</span>
<span id="cb3-2">  &lt;<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">mesh</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">filename=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"package://meshes/base_link.stl"</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">scale=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"0.001 0.001 0.001"</span>/&gt;</span>
<span id="cb3-3">&lt;/<span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">geometry</span>&gt;</span></code></pre></div></div></li>
</ol>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Tip
</div>
</div>
<div class="callout-body-container callout-body">
<p>Para verificar si nuestro archivo URDF se creó correctamente antes de importarlo a algún simulador, podemos utilizar un visualizador como RViz en Ubuntu. Sin embargo, para los usuarios de Windows, la aplicación <a href="https://gkjohnson.github.io/urdf-loaders/javascript/example/bundle/index.html">urdf-loaders</a> de <a href="https://github.com/gkjohnson/urdf-loaders/">gkjohnson</a> nos permite visualizar y manipular de forma intuitiva el resultado de nuestro robot en línea. Incluso, viene un ejemplo de un robot hexápodo ATHLETE. Para nuestro</p>
<div class="quarto-layout-panel" data-layout-nrow="2">
<div class="quarto-layout-row">
<div class="quarto-layout-cell" style="flex-basis: 100.0%;justify-content: flex-start;">
<p><img src="https://sjacobozavaleta.github.io/blog/posts/2024/fusion-360-to-urdf/images/visorURDF.jpeg" class="img-fluid quarto-figure quarto-figure-center" style="width:45.0%" alt="Robot ATHLETE"> <img src="https://sjacobozavaleta.github.io/blog/posts/2024/fusion-360-to-urdf/images/visorURDF_ur5.jpeg" class="img-fluid quarto-figure quarto-figure-center" style="width:45.0%" alt="Robot UR5"></p>
</div>
</div>
</div>
</div>
</div>
</section>
</section>
<section id="importando-a-tu-simulador" class="level1">
<h1>Importando a tu simulador</h1>
<p>Finalmente, dependiendo del simulador a utilizar, se requerirán ciertos parámetros o configuraciones para importar correctamente el robot en formato URDF. En cualquier caso, se debe verificar siempre la relación entre links y joints y cómo reaccionan al movimiento de los joints.</p>
<section id="para-coppeliasim" class="level2">
<h2 class="anchored" data-anchor-id="para-coppeliasim">Para CoppeliaSim</h2>
<ol type="1">
<li>Dirigirse a la opción de importación según <code>Modules -&gt; Importers -&gt; URDF importer</code>.</li>
<li>Seleccionar la opción <code>Convex hull of non-convex collision links</code> para mejorar el rendimiento de simulación según la Figura&nbsp;6.</li>
</ol>
<div id="fig-urdfImporter" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-urdfImporter-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<a href="images/coppeliaSim_1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-9" title="Figura&nbsp;6: Opciones de URDF importer"><img src="https://sjacobozavaleta.github.io/blog/posts/2024/fusion-360-to-urdf/images/coppeliaSim_1.png" class="img-fluid figure-img"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-urdfImporter-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figura&nbsp;6: Opciones de URDF importer
</figcaption>
</figure>
</div>
<ol start="3" type="1">
<li>Finalmente, el resultado se aprecia en la siguiente figura. Nótese la jerarquía de los elementos del robot, de forma secuencial, correspondiente a un robot de cadena abierta como el robot cooperativo UR5 en la Figura&nbsp;7.</li>
</ol>
<div id="fig-coppeliaSimWithRobot" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-coppeliaSimWithRobot-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<a href="images/coppeliaSim_2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-10" title="Figura&nbsp;7: Vista de CoppeliaSim"><img src="https://sjacobozavaleta.github.io/blog/posts/2024/fusion-360-to-urdf/images/coppeliaSim_2.png" class="img-fluid figure-img"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-coppeliaSimWithRobot-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figura&nbsp;7: Vista de CoppeliaSim
</figcaption>
</figure>
</div>
<p>Por otro lado, CoppeliaSim ofrece una gran cantidad de robots comerciales incluidos en el programa para arrastrar al espacio de trabajo y comenzar a trabajar. Esto reduce el tiempo de creación del modelo cuando se pretende utilizar algún robot comercial disponible, como Sawyer, Kuka LBR4, Franka Emika Panda, etc. La Figura&nbsp;8 muestra la simulación cinemática por defecto luego de importar el robot desde el panel navegador de robots.</p>
<div id="fig-ur5-coppelia-incluido" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-ur5-coppelia-incluido-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<a href="images/UR5.gif" class="lightbox" data-gallery="quarto-lightbox-gallery-11" title="Figura&nbsp;8: Simulación del robot UR5 integrado en CoppeliaSim"><img src="https://sjacobozavaleta.github.io/blog/posts/2024/fusion-360-to-urdf/images/UR5.gif" class="img-fluid figure-img" style="width:100.0%"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-ur5-coppelia-incluido-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figura&nbsp;8: Simulación del robot UR5 integrado en CoppeliaSim
</figcaption>
</figure>
</div>
<p>¡Y ahí lo tienes! Siguiendo estos sencillos pasos, puedes crear y exportar tus propios archivos URDF desde Fusion 360, y usarlos para simular tus robots en CoppeliaSim o cualquier otro simulador compatible con URDF. ¡Feliz simulación!</p>


<hr>
<div class="post-author-section">
<div class="post-author-bio">
  <img src="https://sjacobozavaleta.github.io/assets/img/sergio_footer.png" alt="Retrato de Sergio Jácobo-Zavaleta" class="post-author-bio__image">

  <div class="post-author-bio__content">
    <p class="post-author-bio__label">Sobre el autor</p>

    <p>
      Soy Sergio, ingeniero en mecatrónica dedicado al diseño de
      robots clínicos, dispositivos biomédicos y sistemas de
      rehabilitación.
    </p>

    <p class="post-author-bio__links">
      <a href="https://www.github.com/SJacoboZavaleta">GitHub</a>
      <a href="https://www.linkedin.com/in/sjacobozavaleta/">LinkedIn</a>
      <a href="../../../../about.html">Más sobre mí</a>
    </p>
  </div>
</div>

</div>
</section>
</section>

<a onclick="window.scrollTo(0, 0); return false;" id="quarto-back-to-top"><i class="bi bi-arrow-up"></i> Volver arriba</a><div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Cómo citar</h2><div><div class="quarto-appendix-secondary-label">BibTeX</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{jácobo-zavaleta2024,
  author = {Jácobo-Zavaleta, Sergio},
  title = {De Fusion 360 a URDF: construcción y simulación de un robot},
  date = {2024-05-15},
  url = {https://sjacobozavaleta.github.io/blog/posts/2024/fusion-360-to-urdf/},
  langid = {es}
}
</code></pre><div class="quarto-appendix-secondary-label">Por favor, cita este trabajo como:</div><div id="ref-jácobo-zavaleta2024" class="csl-entry quarto-appendix-citeas">
Jácobo-Zavaleta, Sergio. 2024. <span>“De Fusion 360 a URDF: construcción
y simulación de un robot.”</span> May 15. <a href="https://sjacobozavaleta.github.io/blog/posts/2024/fusion-360-to-urdf/">https://sjacobozavaleta.github.io/blog/posts/2024/fusion-360-to-urdf/</a>.
</div></div></section></div> ]]></description>
  <category>Robótica</category>
  <category>URDF</category>
  <category>CAD</category>
  <category>ROS</category>
  <category>CoppeliaSim</category>
  <guid>https://sjacobozavaleta.github.io/blog/posts/2024/fusion-360-to-urdf/</guid>
  <pubDate>Tue, 14 May 2024 22:00:00 GMT</pubDate>
  <media:content url="https://sjacobozavaleta.github.io/blog/posts/2024/fusion-360-to-urdf/images/thumbnail.png" medium="image" type="image/png" height="144" width="144"/>
</item>
<item>
  <title>Grados de libertad y movimiento de cuerpos rígidos</title>
  <dc:creator>Sergio Jácobo-Zavaleta</dc:creator>
  <link>https://sjacobozavaleta.github.io/blog/posts/2023/robot-dof-rigid-body-motion/</link>
  <description><![CDATA[ 

<script>
  document.addEventListener("DOMContentLoaded", function () {
    document.body.classList.add("section-blog");
  });
</script>




<section id="grados-de-libertad" class="level1">
<h1>Grados de libertad</h1>
<p>Notas claves:</p>
<ul>
<li>Grados de libertad : <strong><em>Degree of Freedom</em></strong> en inglés se abrevia como <strong>DOF</strong>, <strong>dof</strong>, <strong>Dof</strong>, etc.</li>
<li>Espacio de configuración: <strong><em>Configuration Space</em></strong> en ingés se abrevia com <em>C-space</em>. Es el conjunto de configuraciones o posturas posibles del robot en el espacio. Esto dependerá de la dimensión del espacio conocido como grados de libertad.<br>
</li>
<li>Dimensiones del espacio comunes de un <strong>cuerpo rígido:</strong>
<ul>
<li>En el espacio: 6
<ul>
<li>Posición del cuerpo: Las coordenadas <img src="https://latex.codecogs.com/png.latex?x,y,z"></li>
<li>Orientación del cuerpo: Por ejemplo, los ángulos rall, pitch y yaw.</li>
</ul></li>
<li>En el plano: 3</li>
</ul></li>
</ul>
</section>
<section id="movimiento-de-cuerpos-rígidos" class="level1">
<h1>Movimiento de Cuerpos Rígidos</h1>
<ul>
<li><p><strong>Representación implícita</strong>: Usamos esta representación para el C-space ya que al usar matrices de rotación y transformación de matrices, donde se utilizan mayor cantidad de variables sujetas a restricciones, para eliminar singularidades en la representación de orientacion y permitir operaciones algebraicas como parte del modelado.</p></li>
<li><p><strong>Sistema de referencia conectada a un cuerpo en movimiento:</strong> Se considera esta referencia, por ejemplo el frame <img src="https://latex.codecogs.com/png.latex?%5C%7Bb%5C%7D">, de tipo estacionario ya que es coincidente (en un instante particular) con la referencia conectada al cuerpo en movimiento.</p></li>
</ul>
</section>
<section id="rotación-de-matrices" class="level1">
<h1>Rotación de matrices</h1>
<ul>
<li><p>6 Restricciones en matrices de rotación <img src="https://latex.codecogs.com/png.latex?R">: Ortogonalidad de vectores</p>
<ul>
<li>Restriciones en las columnas: Los vectores unitarios deben ser unitarios: 3</li>
<li>El producto punto de alguno de dos de los vectores columna debe ser ser 0: 3</li>
<li>En consecuencia, se cumple que:
<ul>
<li><img src="https://latex.codecogs.com/png.latex?R%5E%7BT%7DR%20=%20I"> lo que conlleva a <img src="https://latex.codecogs.com/png.latex?det(R)%20=%201"> (regla de la mano derecha)</li>
<li>Lo que se agrupa en el conjunto de matrices reales 3x3 denominado <strong>Special orthogonal group SO(3)</strong></li>
<li>Algunas propiedades relevantes:
<ul>
<li>Inversa: <img src="https://latex.codecogs.com/png.latex?R%5E%7B-1%7D%20=%20R%5E%7BT%7D%20%5Cin%20SO(3)">
<ul>
<li><img src="https://latex.codecogs.com/png.latex?R_%7Bab%7DR_%7Bba%7D=R_%7Baa%7D=I"> Por lo tanto la inversa de <img src="https://latex.codecogs.com/png.latex?R_%7Bab%7D"> es también <img src="https://latex.codecogs.com/png.latex?R_%7Bba%7D">.</li>
</ul></li>
<li>Cierre: <img src="https://latex.codecogs.com/png.latex?R_1%20R_2%20%5Cin%20SO(3)"></li>
<li>Finalmente: <img src="https://latex.codecogs.com/png.latex?x%20%5Cin%20%5Cmathbb%7BR%7D%20%5Cleft%20%5C%7C%20Rx%20%5Cright%20%5C%7C%20=%20%5Cleft%20%5C%7C%20x%20%5Cright%20%5C%7C"></li>
</ul></li>
</ul></li>
</ul></li>
</ul>


<hr>
<div class="post-author-section">
<div class="post-author-bio">
  <img src="https://sjacobozavaleta.github.io/assets/img/sergio_footer.png" alt="Retrato de Sergio Jácobo-Zavaleta" class="post-author-bio__image">

  <div class="post-author-bio__content">
    <p class="post-author-bio__label">Sobre el autor</p>

    <p>
      Soy Sergio, ingeniero en mecatrónica dedicado al diseño de
      robots clínicos, dispositivos biomédicos y sistemas de
      rehabilitación.
    </p>

    <p class="post-author-bio__links">
      <a href="https://www.github.com/SJacoboZavaleta">GitHub</a>
      <a href="https://www.linkedin.com/in/sjacobozavaleta/">LinkedIn</a>
      <a href="../../../../about.html">Más sobre mí</a>
    </p>
  </div>
</div>

</div>
</section>

<a onclick="window.scrollTo(0, 0); return false;" id="quarto-back-to-top"><i class="bi bi-arrow-up"></i> Volver arriba</a><div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Cómo citar</h2><div><div class="quarto-appendix-secondary-label">BibTeX</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{jácobo-zavaleta2023,
  author = {Jácobo-Zavaleta, Sergio},
  title = {Grados de libertad y movimiento de cuerpos rígidos},
  date = {2023-10-15},
  url = {https://sjacobozavaleta.github.io/blog/posts/2023/robot-dof-rigid-body-motion/},
  langid = {es}
}
</code></pre><div class="quarto-appendix-secondary-label">Por favor, cita este trabajo como:</div><div id="ref-jácobo-zavaleta2023" class="csl-entry quarto-appendix-citeas">
Jácobo-Zavaleta, Sergio. 2023. <span>“Grados de libertad y movimiento de
cuerpos rígidos.”</span> October 15. <a href="https://sjacobozavaleta.github.io/blog/posts/2023/robot-dof-rigid-body-motion/">https://sjacobozavaleta.github.io/blog/posts/2023/robot-dof-rigid-body-motion/</a>.
</div></div></section></div> ]]></description>
  <category>Robótica</category>
  <category>Cinemática</category>
  <category>SO(3)</category>
  <category>SE(3)</category>
  <guid>https://sjacobozavaleta.github.io/blog/posts/2023/robot-dof-rigid-body-motion/</guid>
  <pubDate>Sat, 14 Oct 2023 22:00:00 GMT</pubDate>
  <media:content url="https://sjacobozavaleta.github.io/blog/posts/2023/robot-dof-rigid-body-motion/images/thumbnail.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Sistemas de referencia inerciales y no inerciales</title>
  <dc:creator>Sergio Jácobo-Zavaleta</dc:creator>
  <link>https://sjacobozavaleta.github.io/blog/posts/2023/inertial-reference-frames/</link>
  <description><![CDATA[ 

<script>
  document.addEventListener("DOMContentLoaded", function () {
    document.body.classList.add("section-blog");
  });
</script>




<section id="sistemas-de-referencia-reference-frames" class="level1">
<h1>Sistemas de Referencia (<em>Reference Frames</em>)</h1>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/referenceFrame.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/inertial-reference-frames/images/referenceFrame.png" class="img-fluid quarto-figure quarto-figure-center figure-img"></a></p>
</figure>
</div>
<p>Notar que:</p>
<ul>
<li>Sistema de referencia normalmente se abrevia como “<em>frame</em>”.</li>
</ul>
<section id="sistema-de-referencia-inercial-inertial-reference-frame" class="level2">
<h2 class="anchored" data-anchor-id="sistema-de-referencia-inercial-inertial-reference-frame">Sistema de Referencia Inercial (<em>Inertial Reference Frame</em>)</h2>
<p><img src="https://latex.codecogs.com/png.latex?%0A%5Cbegin%7Baligned%7D%0A%5Cbar%7Br%7D=%5Cbar%7BR%7D+%7B%5Cbar%7Br%7D%7D%5E%7B'%7D%5C%5C%0A%5Cbar%7Br%7D%5E%7B'%7D=%5Cbar%7Br%7D-%7B%5Cbar%7BR%7D%7D%5C%5C%0A%5Cend%7Baligned%7D%0A"></p>
<p>Pero <img src="https://latex.codecogs.com/png.latex?%5Cbar%7BV%7D"> es una constante.</p>
<p><img src="https://latex.codecogs.com/png.latex?%0A%5Cbegin%7Baligned%7D%0A%5Cbar%7BR%7D(t)=%5Cbar%7BR_0%7D-%7B%5Cbar%7BV%7Dt%7D%5C%5C%0A%5Cfrac%7Bd%5Cbar%7Br%7D%5E%7B'%7D%7D%7Bdt%7D%20=%20%5Cfrac%7Bd%5Cbar%7Br%7D%7D%7Bdt%7D%20-%20%5Cfrac%7Bd%5Cbar%7BR%7D%7D%7Bdt%7D%5C%5C%0A%5Cbar%7Bv%7D%5E%7B'%7D=%5Cbar%7Bv%7D-%7B%5Cbar%7BV%7D%7D%5C%5C%0A%5Cfrac%7Bd%5Cbar%7Bv%7D%5E%7B'%7D%7D%7Bdt%7D%20=%20%5Cfrac%7Bd%5Cbar%7Bv%7D%7D%7Bdt%7D%20-%20%5Cfrac%7Bd%5Cbar%7BV%7D%7D%7Bdt%7D%5C%5C%0A%5Cbar%7Ba%7D%5E%7B'%7D%20=%20%5Cbar%7Ba%7D%0A%5Cend%7Baligned%7D%0A"></p>
<p>Luego, aplicando la primera Ley de Newton se cumple que:</p>
<p><img src="https://latex.codecogs.com/png.latex?%0A%5Cbegin%7Baligned%7D%0A%5Cbar%7BF%7D%20&amp;%20=%20m%5Cbar%7Ba%7D%5C%5C%0A%5Cbar%7BF%7D%5E%7B'%7D%20&amp;%20=%20m%5Cbar%7Ba%7D%5E%7B'%7D%20=%20m%5Cbar%7Ba%7D%5C%5C%0A%5Cend%7Baligned%7D%0A"></p>
</section>
<section id="sistema-de-referencia-no-inercial-non-inertial-reference-frame" class="level2">
<h2 class="anchored" data-anchor-id="sistema-de-referencia-no-inercial-non-inertial-reference-frame">Sistema de Referencia no Inercial (<em>Non-Inertial Reference Frame</em>)</h2>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/paste-1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/inertial-reference-frames/images/paste-1.png" class="img-fluid quarto-figure quarto-figure-center figure-img"></a></p>
</figure>
</div>
<p>Pero que pasa si <img src="https://latex.codecogs.com/png.latex?%5Cbar%7BV%7D"> no es una constante?</p>
<div class="callout callout-style-default callout-important callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Importante
</div>
</div>
<div class="callout-body-container callout-body">
<p>El sistema de referencia <img src="https://latex.codecogs.com/png.latex?S%5E%7B'%7D"> tiene una aceleración <img src="https://latex.codecogs.com/png.latex?%5Cbar%7BA%7D"> relativa a S.</p>
</div>
</div>
<p><img src="https://latex.codecogs.com/png.latex?%0A%5Cbegin%7Baligned%7D%0A%5Cbar%7Ba%7D%20&amp;%20=%20%5Cbar%7Ba%7D%20-%20%5Cbar%7BA%7D%5C%5C%0A%5Cend%7Baligned%7D%0A"></p>
<p>Por lo tanto,</p>
<p><img src="https://latex.codecogs.com/png.latex?%0A%5Cbegin%7Baligned%7D%0A%5Cbar%7BF%7D%20&amp;%20=%20m%5Cbar%7Ba%7D%5E%7B'%7D%5C%5C%0A&amp;%20=%20m%5Cbar%7Ba%7D%20-%20m%5Cbar%7BA%7D%5C%5C%0A&amp;%20=%20%5Cbar%7BF%7D_%5Ctext%7Bf%C3%ADsico%7D%20-%20%5Cbar%7BF%7D_%5Ctext%7Bficticio%7D%5C%5C%0A%5Cend%7Baligned%7D%0A"></p>
<p>Donde:</p>
<ul>
<li><img src="https://latex.codecogs.com/png.latex?%5Cbar%7BF%7D_%5Ctext%7Bf%C3%ADsico%7D"> es la fuerza físicamente aplicada al cuerpo.<br>
</li>
<li><img src="https://latex.codecogs.com/png.latex?%5Cbar%7BF%7D_%5Ctext%7Bficticio%7D">. Dado un observador en el sistema de referencia o frame <img src="https://latex.codecogs.com/png.latex?S%5E%7B'%7D"> que desea explicar el comportamiento de las fuerzas de un cuerpo, no solo debe invocar todas las fuerzas físcias sobre un objeto, como la gravedad, fuerza de impulsión, etc; sino que es necesario considerar una fuerza aparente o ficticia. Esta fuerza es un artefacto debido al sistema de coordenadas no inerciales (<img src="https://latex.codecogs.com/png.latex?S%5E%7B'%7D">).</li>
</ul>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Tip
</div>
</div>
<div class="callout-body-container callout-body">
<p>Considerando el moviendo de rotación “circular” de un objeto alrededor de algún punto central implica la presencia de acelearaciones hacia el interior (centro del círculo). Como consecuencia de ello, un sistema de referencia no inercial en rotación alrededor de la tierra es acelerado respecto de un sistema inercial lo que genera en una fuerza ficticia de dos tipos: Fuerza centrífuga y Fuerza de Coriolis.</p>
</div>
</div>


<hr>
<div class="post-author-section">
<div class="post-author-bio">
  <img src="https://sjacobozavaleta.github.io/assets/img/sergio_footer.png" alt="Retrato de Sergio Jácobo-Zavaleta" class="post-author-bio__image">

  <div class="post-author-bio__content">
    <p class="post-author-bio__label">Sobre el autor</p>

    <p>
      Soy Sergio, ingeniero en mecatrónica dedicado al diseño de
      robots clínicos, dispositivos biomédicos y sistemas de
      rehabilitación.
    </p>

    <p class="post-author-bio__links">
      <a href="https://www.github.com/SJacoboZavaleta">GitHub</a>
      <a href="https://www.linkedin.com/in/sjacobozavaleta/">LinkedIn</a>
      <a href="../../../../about.html">Más sobre mí</a>
    </p>
  </div>
</div>

</div>
</section>
</section>

<a onclick="window.scrollTo(0, 0); return false;" id="quarto-back-to-top"><i class="bi bi-arrow-up"></i> Volver arriba</a><div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Cómo citar</h2><div><div class="quarto-appendix-secondary-label">BibTeX</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{jácobo-zavaleta2023,
  author = {Jácobo-Zavaleta, Sergio},
  title = {Sistemas de referencia inerciales y no inerciales},
  date = {2023-09-15},
  url = {https://sjacobozavaleta.github.io/blog/posts/2023/inertial-reference-frames/},
  langid = {es}
}
</code></pre><div class="quarto-appendix-secondary-label">Por favor, cita este trabajo como:</div><div id="ref-jácobo-zavaleta2023" class="csl-entry quarto-appendix-citeas">
Jácobo-Zavaleta, Sergio. 2023. <span>“Sistemas de referencia inerciales
y no inerciales.”</span> September 15. <a href="https://sjacobozavaleta.github.io/blog/posts/2023/inertial-reference-frames/">https://sjacobozavaleta.github.io/blog/posts/2023/inertial-reference-frames/</a>.
</div></div></section></div> ]]></description>
  <category>Robótica</category>
  <category>Dinámica</category>
  <category>Cinemática</category>
  <category>Teoría</category>
  <guid>https://sjacobozavaleta.github.io/blog/posts/2023/inertial-reference-frames/</guid>
  <pubDate>Thu, 14 Sep 2023 22:00:00 GMT</pubDate>
  <media:content url="https://sjacobozavaleta.github.io/blog/posts/2023/inertial-reference-frames/images/thumbnail.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Guía didáctica de LaTeX para una revista universitaria</title>
  <dc:creator>Sergio Jácobo-Zavaleta</dc:creator>
  <link>https://sjacobozavaleta.github.io/blog/posts/2023/latex-norte-medico/</link>
  <description><![CDATA[ 

<script>
  document.addEventListener("DOMContentLoaded", function () {
    document.body.classList.add("section-blog");
  });
</script>




<div class="callout callout-style-default callout-warning callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Advertencia
</div>
</div>
<div class="callout-body-container callout-body">
<p>Esta guía documenta un flujo utilizado en 2023. Antes de preparar un envío, consulta siempre las instrucciones actuales de la revista: las plantillas y requisitos editoriales pueden haber cambiado.</p>
</div>
</div>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/thumbnail.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Foto de Annie Spratt en Unsplash"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/latex-norte-medico/images/thumbnail.jpg" class="img-fluid figure-img" alt="Foto de Annie Spratt en Unsplash"></a></p>
<figcaption>Foto de <a href="https://unsplash.com/es/@anniespratt?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash%22">Annie Spratt</a> en <a href="https://unsplash.com/es/fotos/lote-de-papel-de-impresora-blanco-5cFwQ-WMcJU?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash">Unsplash</a></figcaption>
</figure>
</div>
<section id="propósito-de-la-plantilla-de-la-revista" class="level1">
<h1>Propósito de la plantilla de la Revista</h1>
<p>Este artiículo facilita y agiliza el proceso de edición de los artículos mediante el uso de un formato basado en código <img src="https://latex.codecogs.com/png.latex?%5CLaTeX">. Aunque su correcto manejo requiere cierto conocimiento de instrucciones básicas, este artículo proporciona una guía didáctica destinada a usuarios no familiarizados con <img src="https://latex.codecogs.com/png.latex?%5CLaTeX">. El objetivo es que estos usuarios puedan faciliar la edición de la plantilla por parte de la Revista utilizando herramientas ampliamente disponibles, lo que garantiza un envío exitoso de sus artículos para revisión y publicación.</p>
<p>En este caso particular, se ha considerado esta guía en base a los requisitos de publicación en la <a href="https://revistas.unc.edu.pe/index.php/nortemedico/index">revista universitaria Norte Médico</a> de la Universidad Nacional de Cajamarca.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/norteMedicopage.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2" title="Página princial de la revista Norte Médico"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/latex-norte-medico/images/norteMedicopage.png" class="img-fluid figure-img" alt="Página princial de la revista Norte Médico"></a></p>
<figcaption>Página princial de la revista Norte Médico</figcaption>
</figure>
</div>
</section>
<section id="vista-previa-de-la-plantilla" class="level1">
<h1>Vista previa de la plantilla</h1>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb1-1">knitr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">include_graphics</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"images/1_revistaVistaPrevia.png"</span>)</span></code></pre></div></div>
</div>
</section>
<section id="consideracions-esenciales-para-envio-del-formato" class="level1">
<h1>Consideracions esenciales para envio del formato</h1>
<section id="manejo-de-ecuaciones" class="level2">
<h2 class="anchored" data-anchor-id="manejo-de-ecuaciones">Manejo de Ecuaciones</h2>
<p>Para escribir ecuaciones matemáticas, se recomienda utilizar un editor de ecuaciones con el propósito de simplificar y acelerar el proceso.</p>
<section id="método-1-utilizando-el-editor-de-ecuaciones-de-microsoft-word" class="level3">
<h3 class="anchored" data-anchor-id="método-1-utilizando-el-editor-de-ecuaciones-de-microsoft-word">Método 1: Utilizando el Editor de Ecuaciones de Microsoft Word</h3>
<p>En este método, se emplea el editor de ecuaciones de Microsoft Word. Primero, se escriben las ecuaciones de forma manual, ingresando símbolo por símbolo (ver <strong>?@fig-figura11</strong>). Luego, asegurándose de que esté activada la opción <code>latex</code>, se selecciona la ecuación deseada y se copia (<code>control + C</code>) para pegarla posteriormente en su destino (<code>control + V</code>).</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb2-1">knitr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">include_graphics</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"images/1_10_EditorEcuacionesOffline.png"</span>)</span></code></pre></div></div>
</div>
</section>
<section id="método-2-utilizando-un-editior-de-ecuaciones-en-línea" class="level3">
<h3 class="anchored" data-anchor-id="método-2-utilizando-un-editior-de-ecuaciones-en-línea">Método 2: Utilizando un editior de ecuaciones en Línea</h3>
<p>En este método, se utiliza el recurso web en línea <a href="https://equationeditor.atomurl.net/">Equation Editor</a>. Después de ingresar la ecuación deseada (ver <strong>?@fig-figura12</strong>), se presiona el botón <code>Save to LaTeX</code>, lo que abrirá una ventana con el código LaTeX debidamente formateado, listo para ser copiado y utilizado en el documento.</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb3-1">knitr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">include_graphics</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"images/1_20_EditorEcuacionesOnline.png"</span>)</span></code></pre></div></div>
</div>
<!-- #### Símbolos matemáticos
Para escribir correctamente los distntios símbolos matemáticos es necesario utilizar las sentencias de código o instrucciones correctas en base a la siguiente lista. Algunas fuentes son:
- https://mathvault.ca/wp-content/uploads/Comprehensive-List-of-Mathematical-Symbols.pdf  
- https://ctan.dcc.uchile.cl/info/symbols/comprehensive/symbols-a4.pdf  
- https://www.cmor-faculty.rice.edu/~heinken/latex/symbols.pdf -->
</section>
</section>
<section id="manejo-de-tablas" class="level2">
<h2 class="anchored" data-anchor-id="manejo-de-tablas">Manejo de Tablas</h2>
<!-- Utilizando el paquete [Excel2Latex](ctan.org/pkg/excel2latex) -->
<p>Las tablas se crean y modifican en formato Microsoft Excel para uniformizar el llenado de los datos, los estilos de tabla y facilitar la edición final. Cada tabla se organiza en una hoja distinta, y siempre se coloca un título o un comentario al pie de la tabla si es necesario. A continuación, se detallan las pautas a seguir:</p>
<ul>
<li><p><strong>Crear la Tabla con Espacios de Celdas Respetados:</strong> Es importante crear la tabla respetando los espacios de celdas. Se permite utilizar texto en cursiva y negrita según sea necesario (Ver <strong>?@fig-figura31</strong>).</p></li>
<li><p><strong>Utilizar Líneas Horizontales para Presentar la Información:</strong> Se recomienda utilizar líneas horizontales para separar encabezados y presentar la información de manera clara (Ver <strong>?@fig-figura32</strong>).</p></li>
<li><p><strong>Posibilidad de Combinar Celdas o Columnas:</strong> Es posible combinar celdas o columnas según la información a presentar. Esto puede ayudar a mejorar la claridad y la organización de la tabla (Ver <strong>?@fig-figura32</strong>).</p></li>
<li><p><strong>Preferencia por Tablas en Blanco y Negro:</strong> Se recomienda utilizar tablas en blanco y negro siempre que sea posible. Si es necesario resaltar información relevante, se puede hacer uso de algún color, pero se debe tener en cuenta que la legibilidad no se vea afectada.</p></li>
</ul>
<p>A continuación, se incluyen ejemplos visuales que ilustran estas pautas:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb4-1">knitr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">include_graphics</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"images/3_10_Tabla1.png"</span>)</span></code></pre></div></div>
</div>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb5-1">knitr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">include_graphics</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"images/3_20_Tabla2.png"</span>)</span></code></pre></div></div>
</div>
<p>Estas pautas garantizan que las tablas sean fáciles de entender y de interpretar para los lectores, lo que mejora la calidad y la presentación de los documentos.</p>
<section id="manejo-de-figuras-y-gráficas" class="level3">
<h3 class="anchored" data-anchor-id="manejo-de-figuras-y-gráficas">Manejo de Figuras y Gráficas</h3>
<p>El manejo de figuras y gráficas es fundamental para la presentación efectiva de información visual en tus documentos. A continuación, se detallan las pautas para el manejo de figuras y gráficas:</p>
</section>
<section id="de-fuentes-externas" class="level3">
<h3 class="anchored" data-anchor-id="de-fuentes-externas">De Fuentes Externas</h3>
<p>Todas las imágenes se deben enviar incrustadas en el documento, indicando siempre <strong>título o descripcion</strong> y <strong>su fuente bibliográfica</strong>. Además, se recomienda enviar el archivo original de las imágenes por <strong>separado (archivo original en .jpg o .png)</strong>, indicando siempre el orden de las figuras.</p>
</section>
<section id="generadas-utilizando-microsoft-excel" class="level3">
<h3 class="anchored" data-anchor-id="generadas-utilizando-microsoft-excel">Generadas Utilizando Microsoft Excel</h3>
<ol type="1">
<li>Cada gráfica se debe organizar en su propia hoja de Excel, indicando <strong>Indicando siempre el título de la misma</strong> (ver <strong>?@fig-figura41</strong>).</li>
<li>Si la gráfica se construyó a partir de una tabla Excel, se debe conservar solo la figura de interés o ambas (ver <strong>?@fig-figura42</strong>).</li>
<li>Para las gráficas creadas en Microsoft Excel (<strong>formato .xlsx</strong>), se deben seguir estos pasos para garantizar una calidad alta:
<ul>
<li>Guardar la imagen seleccionando clic derecho y luego guardar imagen.</li>
<li>Elegir el destino de almacenamiento y seleccionar entre los <strong>formatos .png o .svg</strong> (ver <strong>?@fig-figura43</strong>).</li>
<li>También se puede enviar el archivo original en formato .xlsx.</li>
</ul></li>
</ol>
<p>A continuación, se presentan ejemplos visuales que ilustran estos procesos:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb6-1">knitr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">include_graphics</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"images/4_10_SoloFigura_excel.png"</span>)</span></code></pre></div></div>
</div>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb7-1">knitr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">include_graphics</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"images/4_20_Tabla2ConFigura.png"</span>)</span></code></pre></div></div>
</div>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb8" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb8-1">knitr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">include_graphics</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"images/4_30_GuardarTablasExcel.png"</span>)</span></code></pre></div></div>
</div>
<p>Siguiendo estas pautas, aseguras que las figuras y gráficas en tus documentos mantengan la calidad visual necesaria y facilitan su comprensión por parte de los lectores.</p>
</section>
</section>
<section id="manejo-de-bibliografía" class="level2">
<h2 class="anchored" data-anchor-id="manejo-de-bibliografía">Manejo de Bibliografía</h2>
<p>Para la bibliografía se utiliza el programa administrador de citas conocido como Zotero. Ver la siguiente <a href="../../../../blog/posts/2023/overleaf-zotero-workflow/index.html#01-introduccionGestorReferencia">guía</a>.</p>


<hr>
<div class="post-author-section">
<div class="post-author-bio">
  <img src="https://sjacobozavaleta.github.io/assets/img/sergio_footer.png" alt="Retrato de Sergio Jácobo-Zavaleta" class="post-author-bio__image">

  <div class="post-author-bio__content">
    <p class="post-author-bio__label">Sobre el autor</p>

    <p>
      Soy Sergio, ingeniero en mecatrónica dedicado al diseño de
      robots clínicos, dispositivos biomédicos y sistemas de
      rehabilitación.
    </p>

    <p class="post-author-bio__links">
      <a href="https://www.github.com/SJacoboZavaleta">GitHub</a>
      <a href="https://www.linkedin.com/in/sjacobozavaleta/">LinkedIn</a>
      <a href="../../../../about.html">Más sobre mí</a>
    </p>
  </div>
</div>

</div>
</section>
</section>

<a onclick="window.scrollTo(0, 0); return false;" id="quarto-back-to-top"><i class="bi bi-arrow-up"></i> Volver arriba</a><div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Cómo citar</h2><div><div class="quarto-appendix-secondary-label">BibTeX</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{jácobo-zavaleta2023,
  author = {Jácobo-Zavaleta, Sergio},
  title = {Guía didáctica de LaTeX para una revista universitaria},
  date = {2023-08-15},
  url = {https://sjacobozavaleta.github.io/blog/posts/2023/latex-norte-medico/},
  langid = {es}
}
</code></pre><div class="quarto-appendix-secondary-label">Por favor, cita este trabajo como:</div><div id="ref-jácobo-zavaleta2023" class="csl-entry quarto-appendix-citeas">
Jácobo-Zavaleta, Sergio. 2023. <span>“Guía didáctica de LaTeX para una
revista universitaria.”</span> August 15. <a href="https://sjacobozavaleta.github.io/blog/posts/2023/latex-norte-medico/">https://sjacobozavaleta.github.io/blog/posts/2023/latex-norte-medico/</a>.
</div></div></section></div> ]]></description>
  <category>LaTeX</category>
  <category>Zotero</category>
  <category>Excel</category>
  <category>Publicación académica</category>
  <guid>https://sjacobozavaleta.github.io/blog/posts/2023/latex-norte-medico/</guid>
  <pubDate>Mon, 14 Aug 2023 22:00:00 GMT</pubDate>
  <media:content url="https://sjacobozavaleta.github.io/blog/posts/2023/latex-norte-medico/images/thumbnail.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Eficiencia en LaTeX: manejo de tablas simplificado</title>
  <dc:creator>Sergio Jácobo-Zavaleta</dc:creator>
  <link>https://sjacobozavaleta.github.io/blog/posts/2023/latex-tables/</link>
  <description><![CDATA[ 

<script>
  document.addEventListener("DOMContentLoaded", function () {
    document.body.classList.add("section-blog");
  });
</script>




<div class="quarto-figure quarto-figure-left">
<figure class="figure">
<div class="quarto-figure quarto-figure-left">
<figure class="figure">
<p><a href="images/thumbnail.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Imagen de Pexels en Pixabay"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/latex-tables/images/thumbnail.jpg" class="img-fluid quarto-figure quarto-figure-left figure-img" alt="Imagen de Pexels en Pixabay"></a></p>
</figure>
</div>
<figcaption>Imagen de <a href="https://pixabay.com/es/users/pexels-2286921/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=1840479">Pexels</a> en <a href="https://pixabay.com/es//?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=1840479">Pixabay</a></figcaption>
</figure>
</div>
<section id="modificar-el-tamaño-de-tablas" class="level1">
<h1>Modificar el tamaño de tablas</h1>
<p>Muchas veces el contenido de una tabla sobrepasa los límites de la hoja como el ancho del formato utilizado en una o dos columnas. Para ello, existen múltiples maneras de adaptar el extenso contenido de una celda en múltiples lineas utilizando el entorno básico <code>\begin{tabular}...\end{tabular}</code>. Sin embargo, resulta tedioso realizar el mismo tratamiento para cada tabla y ni que decir en diversos archivos. Así que una solución práctica es dejar que <img src="https://latex.codecogs.com/png.latex?%5CLaTeX"> calcule el ancho de las columnas de forma automática y se ajuste al contenido deseado, definiendo el tipo de alineación de las columnas y ancho máximo de la tabla. Para ello, se recomienda el uso del entorno <code>\begin{tabularx}…\end{tabularx}</code> luego de cargar el paquete <code>\usepackage{tabularx}</code> en el encabezado del archivo <code>.tex</code>.</p>
<p>Pero antes de presentar los ejemplos, es necesario mostrar las diferencias entre la terminología utilizada para definir la longitud de una línea de texto (<code>\textwidth</code>) y columna (<code>\linewidth</code>) cuando se utiliza una configuración en una o dos columnas, incluido en un entorno de lista.</p>
<section id="dimensiones-en-latex" class="level2">
<h2 class="anchored" data-anchor-id="dimensiones-en-latex">Dimensiones en <img src="https://latex.codecogs.com/png.latex?%5CLaTeX"></h2>
<ol type="1">
<li><code>\textwidth</code> es el ancho constante del bloque total de texto.</li>
<li><code>\linewidth</code> es el ancho actual de la línea de texto dentro de un entorno (i.e.&nbsp;una columna de tabla).</li>
<li><code>\hsize</code> es el ancho de la actual línea antes de saltar a la siguiente línea.</li>
<li><code>\columnwidth</code> es el ancho de una sola columna de texto (que coincide a <code>\textwidth</code> en un documento de una sola columna).</li>
</ol>
<section id="en-una-columna" class="level3">
<h3 class="anchored" data-anchor-id="en-una-columna">En una columna</h3>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/20.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2" title="Utilizando una configuración oneside o onecolumn"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/latex-tables/images/20.png" class="img-fluid quarto-figure quarto-figure-center figure-img" alt="Utilizando una configuración oneside o onecolumn"></a></p>
</figure>
</div>
<figcaption>Utilizando una configuración <code>oneside</code> o <code>onecolumn</code></figcaption>
</figure>
</div>
</section>
<section id="en-dos-columnas" class="level3">
<h3 class="anchored" data-anchor-id="en-dos-columnas">En dos columnas</h3>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/10.png" class="lightbox" data-gallery="quarto-lightbox-gallery-3" title="Utilizando una configuración twoside o twocolumn"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/latex-tables/images/10.png" class="img-fluid quarto-figure quarto-figure-center figure-img" alt="Utilizando una configuración twoside o twocolumn"></a></p>
</figure>
</div>
<figcaption>Utilizando una configuración <code>twoside</code> o <code>twocolumn</code></figcaption>
</figure>
</div>
</section>
</section>
<section id="ajustando-al-ancho-de-la-hoja" class="level2">
<h2 class="anchored" data-anchor-id="ajustando-al-ancho-de-la-hoja">Ajustando al ancho de la hoja</h2>
<section id="una-sola-columna" class="level3">
<h3 class="anchored" data-anchor-id="una-sola-columna">Una sola columna</h3>
<p>Utilizando el entorno de tablas por defecto <code>\begin{tabular}...\end{tabular}</code>, el resultado es el siguiente:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb1-1">knitr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">include_graphics</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"images/30.png"</span>)</span></code></pre></div></div>
</div>
<pre><code>\begin{table}[h]
  \centering
  \caption{Casos de conducta suicida}
  \begin{tabular}{ccccc}
    \toprule
    Caso  &amp; Edad  &amp; Sexo  &amp; Tóxico &amp; Conducta Suicida \\
    \midrule
    1     &amp; 19    &amp; Masculino &amp; Raticida &amp; Suicidio \\
    2     &amp; 14    &amp; Femenino &amp; Indeterminado &amp; Suicidio \\
    3     &amp; 16    &amp; Femenino &amp; Indeterminado &amp; Suicidio \\
    4     &amp; 26    &amp; Masculino &amp; Raticida &amp; Intento de suicidio \\
    5     &amp; 18    &amp; Masculino &amp; Órgano fosforado &amp; Intento de suicidio \\
    6     &amp; 50    &amp; Masculino &amp; Órgano fosforado y etanol &amp; Intento de suicidio \\
    \bottomrule
  \end{tabular}
  \label{tab:Tabla0}
\end{table}</code></pre>
<div class="callout callout-style-default callout-important callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Importante
</div>
</div>
<div class="callout-body-container callout-body">
<p>En la sentencia <code>\begin{tabular}{ccccc}</code>, cada valor de <code>c</code> indica la alineación ordenada de las columnas. En este caso, la tabla tiene cinco columnas con el contenido centrado <code>c</code>. Otros valores como <code>l</code> y <code>r</code> indican una alineación a la izquierda y derecha respectivamente.</p>
</div>
</div>
<p>Por otro lado, el ancho de la tabla anterior puede modificarse de forma intuitiva utilizando el <a href="https://ctan.org/pkg/tabularx">paquete</a> <code>tabularx</code> que trabaja con el espaciado horizontal.</p>
<div class="callout callout-style-default callout-important callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Importante
</div>
</div>
<div class="callout-body-container callout-body">
<p>A diferencia de las alineaciones <code>c</code>, <code>l</code> y <code>r</code>, tabularx ofrece una nueva alineación por defecto <code>X</code> que permite justificar el contenido de la columna. Siendo muy útil para contenidos extensos.</p>
</div>
</div>
<p>Para ello se modifica el entorno de tabla <code>\begin{tabular}...\end{tabular}</code> por <code>\begin{tabularx}...\end{tabularx}</code>.</p>
<ol type="1">
<li><strong>Al ancho total de una línea de texto.</strong> Para ello se utiliza el comando <code>\begin{tabularx}{\linewidth}{cccXX}</code>. Donde <code>{\textwidth}</code> indica que el ancho máximo de la tabla es el ancho total de la hoja (configuración de una columna) según se aprecia en la Tabla <strong>?@fig-tabla1</strong>.<br>
</li>
<li><strong>A la mitad de la ancho de una línea de texto.</strong> Para ello se especifica la proporción deseada respecto del ancho base <code>\textwidth</code>. La Tabla Figura&nbsp;1 utiliza un ancho reducido al 80% de la tabla anterior definiendo <code>\begin{tabularx}{0.8\textwidth}{cccXX}</code>.<br>
</li>
<li><strong>Cuidado</strong>!!! Disminuir demasiado el ancho puede superponerse el contenido de las celdas en la tabla. La tabla <strong>?@fig-tabla3</strong> muestra una reducción del 50% según <code>\begin{tabularx}{0.5\textwidth}{cccXX}</code>.</li>
</ol>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb3-1">knitr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">include_graphics</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"images/40.png"</span>)</span></code></pre></div></div>
</div>
<div id="fig-tabla2" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-tabla2-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<a href="images/50.png" class="lightbox" data-gallery="quarto-lightbox-gallery-4" title="Figura&nbsp;1: Caso 2"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/latex-tables/images/50.png" class="img-fluid figure-img" style="width:70.0%"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-tabla2-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figura&nbsp;1: Caso 2
</figcaption>
</figure>
</div>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb4-1">knitr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">include_graphics</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"images/60.png"</span>)</span></code></pre></div></div>
</div>
</section>
<section id="dos-columnas" class="level3">
<h3 class="anchored" data-anchor-id="dos-columnas">Dos columnas</h3>
<p>En un formato de dos columnas, el ancho de cada tabla esta restringido al ancho de cada columna definida por <code>\linewidth</code>.</p>
<ol type="1">
<li><p><strong>Utilizando la configuración de centrado X para columnas con contenido extenso.</strong> En la Figura 1.5, la configuración de centrado de columnas <em>centro-centro-centro-X-X</em> ordena el contenido de las columnsas por defecto. No obstante existe superposición de contenido entre celdas contiguas. Haciendo uso del siguiente comando <code>\begin{tabularx}{\linewidth}{cccXX}</code>.<br>
</p></li>
<li><p><strong>Modificando la separación entre columnas.</strong> Es posible modificar el espacio entre columnas por defecto y ajustar más el contenido de la Tabla 1.6 de ser necesario. Haciendo uso del siguiente comando <code>\setlength\tabcolsep{0.7mm}</code>.<br>
</p></li>
<li><p><strong>Creación de nuevos argumentos para el control y alineación de columnas.</strong> La distribución del contenido de las columnas puede mejorarse aun más si se combina con la creación de nuevos argumentos para ajustar el contenido. Así, utilizando el comando <code>\newcolumntype{nombre}[argumento]{Definición}</code> se definieron tres alineaciones automáticas basadas en <code>X</code> utilizando los criterios de centrado (<code>\centering</code>), a la derecha (<code>\raggedleft</code>) e izquierda (<code>\raggedright</code>). Así, la configuración para la Figura 1.7 fue <code>\begin{tabularx}{\linewidth}{cccXC{1}}</code>. Donde las nuevas alineaciones se definieron como:</p>
<pre><code> ```
 \newcolumntype{L}[1]{&gt;{\hsize=#1\hsize\raggedright\arraybackslash}X}
 \newcolumntype{R}[1]{&gt;{\hsize=#1\hsize\raggedleft\arraybackslash}X}
 \newcolumntype{C}[1]{&gt;{\hsize=#1\hsize\centering\arraybackslash}X}
 ```</code></pre>
<p>Donde el parámetro <code>C{1}</code> indica la proporción respecto del ancho base de la columna. En este caso, el valor <code>1</code> indica el ancho por defecto.<br>
</p></li>
<li><p>Utilizando la configuración <code>\begin{tabularx}{\linewidth}{cccC{1}C{1}}</code> en la Tabla 1.8.<br>
</p></li>
<li><p>Utilizando la configuración <code>\begin{tabularx}{\linewidth}{cccR{1}R{1}}</code>en la Tabla 1.9.</p></li>
</ol>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb6-1">knitr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">include_graphics</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"images/700.png"</span>)</span></code></pre></div></div>
</div>
<ol start="6" type="1">
<li><strong>Modificando el propio ancho de la columna.</strong> Utilizando el comando <code>\begin{tabularx}{\linewidth}{L{1} L{0.7} R{0.7} C{1.6}}</code>. Por lo tanto, la cuarta columna se adapta mejor un contenido más extenso a comparación con las otras columnas.</li>
</ol>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb7-1">knitr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">include_graphics</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"images/120.png"</span>)</span></code></pre></div></div>
</div>


<hr>
<div class="post-author-section">
<div class="post-author-bio">
  <img src="https://sjacobozavaleta.github.io/assets/img/sergio_footer.png" alt="Retrato de Sergio Jácobo-Zavaleta" class="post-author-bio__image">

  <div class="post-author-bio__content">
    <p class="post-author-bio__label">Sobre el autor</p>

    <p>
      Soy Sergio, ingeniero en mecatrónica dedicado al diseño de
      robots clínicos, dispositivos biomédicos y sistemas de
      rehabilitación.
    </p>

    <p class="post-author-bio__links">
      <a href="https://www.github.com/SJacoboZavaleta">GitHub</a>
      <a href="https://www.linkedin.com/in/sjacobozavaleta/">LinkedIn</a>
      <a href="../../../../about.html">Más sobre mí</a>
    </p>
  </div>
</div>

</div>
</section>
</section>
</section>

<a onclick="window.scrollTo(0, 0); return false;" id="quarto-back-to-top"><i class="bi bi-arrow-up"></i> Volver arriba</a><div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Cómo citar</h2><div><div class="quarto-appendix-secondary-label">BibTeX</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{jácobo-zavaleta2023,
  author = {Jácobo-Zavaleta, Sergio},
  title = {Eficiencia en LaTeX: manejo de tablas simplificado},
  date = {2023-07-15},
  url = {https://sjacobozavaleta.github.io/blog/posts/2023/latex-tables/},
  langid = {es}
}
</code></pre><div class="quarto-appendix-secondary-label">Por favor, cita este trabajo como:</div><div id="ref-jácobo-zavaleta2023" class="csl-entry quarto-appendix-citeas">
Jácobo-Zavaleta, Sergio. 2023. <span>“Eficiencia en LaTeX: manejo de
tablas simplificado.”</span> July 15. <a href="https://sjacobozavaleta.github.io/blog/posts/2023/latex-tables/">https://sjacobozavaleta.github.io/blog/posts/2023/latex-tables/</a>.
</div></div></section></div> ]]></description>
  <category>LaTeX</category>
  <category>Tablas</category>
  <category>Escritura académica</category>
  <guid>https://sjacobozavaleta.github.io/blog/posts/2023/latex-tables/</guid>
  <pubDate>Fri, 14 Jul 2023 22:00:00 GMT</pubDate>
  <media:content url="https://sjacobozavaleta.github.io/blog/posts/2023/latex-tables/images/thumbnail.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Overleaf y Zotero: un flujo de trabajo académico en la nube</title>
  <dc:creator>Sergio Jácobo-Zavaleta</dc:creator>
  <link>https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/</link>
  <description><![CDATA[ 

<script>
  document.addEventListener("DOMContentLoaded", function () {
    document.body.classList.add("section-blog");
  });
</script>




<div class="quarto-figure quarto-figure-left">
<figure class="figure">
<div class="quarto-figure quarto-figure-left">
<figure class="figure">
<p><a href="images/kaitlyn-baker-vZJdYl5JVXY-unsplash.jpg" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Imagen subida por Kaitlyn Baker bajo Licencia Unsplash"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/kaitlyn-baker-vZJdYl5JVXY-unsplash.jpg" class="img-fluid quarto-figure quarto-figure-left figure-img" alt="Imagen subida por Kaitlyn Baker bajo Licencia Unsplash"></a></p>
</figure>
</div>
<figcaption>Imagen subida por Kaitlyn Baker bajo Licencia Unsplash</figcaption>
</figure>
</div>
<section id="a-quien-va-dirigido" class="level1">
<h1>¿A quien va dirigido?</h1>
<p>La presente guía tiene como objetivo presentar un flujo de trabajo para la generación de reportes universitarios, literarios, científicos y más de alta calidad, bajo la modalidad colaborativa en la nube utilizando la plataforma web <strong>Overleaf</strong> y el administrador de referencias <strong>Zotero</strong>. Esta guía es útil para nuevos usuarios que desean comenzar en el mundo de o buscan una alternativa práctica y open-source a editores de texto comerciales. Siendo su principal ventaja, centrarse menos en la <em>forma</em> del documento y más en el <em>fondo</em> del mismo. Pero sobre todo, para todos aquellos estudiantes y profesionales que prefieren aprender lo básico en idioma español.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/logoZoteroOverleaf3.png" class="lightbox" data-gallery="quarto-lightbox-gallery-2"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/logoZoteroOverleaf3.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="500"></a></p>
</figure>
</div>
</section>
<section id="01-introduccionGestorReferencia" class="level1">
<h1>Gestor de Referencias</h1>
<p>En esta oportunidad, se recomienda el uso de <a href="https://www.zotero.org">Zotero</a> <img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/icons/zotero.png" class="img-fluid" width="20"> por la evidente ventaja y flexibilidad sobre otros programas en el mercado gracias a la gran cantidad de <a href="https://www.zotero.org/support/plugins">plugins</a> o extensiones que mejoran, simplifican y enlazan el manejo de referencias bibliográficas, tanto para editar libros, páginas web, blogs, etc.</p>
<ol type="1">
<li><p>Crearse una cuenta de forma gratuita en su página oficial.</p></li>
<li><p>Descargar el programa e instalar según tu sistema operativo de preferencia. La pantalla principal se verá así.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/2_inicio.png" class="lightbox" data-gallery="quarto-lightbox-gallery-3" title="Paso 2. Ventana principal de Zotero"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/2_inicio.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="730" alt="Ventana principal de Zotero."></a></p>
</figure>
</div>
<figcaption>Paso 2. Ventana principal de Zotero</figcaption>
</figure>
</div></li>
<li><p>Descargar e instalar el plugin <code>Zotero Better Bibtex</code> <a href="https://retorque.re/zotero-better-bibtex/">más reciente</a> (desde Github) para el control y creación de etiquetas automáticas (identificador que deberás escribir para especificar una referencia particular) para citar de forma fácil y ordenada durante la redacción de documentos.</p>
<ol type="i">
<li><p>Ir a la pestaña de <strong>Herramientas</strong>, luego a <strong>Complementos</strong> que abrirá una nueva ventana.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/3_1_zoteroConfiguracion.png" class="lightbox" data-gallery="quarto-lightbox-gallery-4" title="Paso i. Ir a complementos"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/3_1_zoteroConfiguracion.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="550" alt="Complementos."></a></p>
</figure>
</div>
<figcaption>Paso i. Ir a complementos</figcaption>
</figure>
</div></li>
<li><p>Ir a <strong>Configuración</strong> ⚙️ y escoger instalar desde un archivo (<em>install Add-on From File</em>). Buscar y seleccionar el archivo previamente descargado (por ejemplo <code>zotero-better-bibtex-6.7.1.xpi</code>). Reiniciar el programa.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/3_2_instalarPlugin.png" class="lightbox" data-gallery="quarto-lightbox-gallery-5" title="Paso ii. Instalar plugin"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/3_2_instalarPlugin.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="550" alt="Plugin Zotero Bibtex."></a></p>
</figure>
</div>
<figcaption>Paso ii. Instalar plugin</figcaption>
</figure>
</div></li>
<li><p>Repetir el paso 1 y el plugin ahora debe aparecer instalado así.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/3_3_bibtexPlugin.png" class="lightbox" data-gallery="quarto-lightbox-gallery-6" title="Paso iii. Verificar plugin instalado"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/3_3_bibtexPlugin.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="500" alt="Plugin instalado."></a></p>
</figure>
</div>
<figcaption>Paso iii. Verificar plugin instalado</figcaption>
</figure>
</div></li>
<li><p>Ahora lo más importante es modificar la configuración por defecto de las etiquetas de citación (<em>citation key</em>). Término que tal vez te resulte familiar si tienes experiencia con , Markdown, Rmarkdown o Quarto. En cualquier caso, una etiqueta es la palabra clave por el que identificarás una fuente específica a la hora de relacionar y crear una cita para algún documento científico, libro, página web, etc. Dependiendo del formato de etiqueta que desees por comodidad, el parámetro a modificar será diferente. Por conveniencia, se utiliza el formato APA compuesto por el primer apellido del autor principal y el año de publicación<sup>1</sup>.</p></li>
<li><p>Ir a la pestaña <strong>Editar</strong> y luego a <strong>Preferencias</strong> que abrirá una nueva ventana. Ir a la opción <strong>Better BibTex</strong> y a la subpestaña <strong>Citation keys</strong>.</p>
<blockquote class="blockquote">
<p>En el espacio <em>New citation key format</em> modificar a <code>auth.capitalize+year</code> .</p>
</blockquote>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/5_editarCitationKey.png" class="lightbox" data-gallery="quarto-lightbox-gallery-7" title="Paso v. Formato de etiquetas"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/5_editarCitationKey.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="520" alt="Formato de etiquetas."></a></p>
</figure>
</div>
<figcaption>Paso v. Formato de etiquetas</figcaption>
</figure>
</div></li>
<li><p>En este punto, cualquier archivo nuevo que se agregue a tu biblioteca, estará asociado a una etiqueta reconocible para su fácil manejo y memorización a la hora de buscar alguna cita. En caso de repetirse citas, el plugin tiene la capacidad de diferenciarlos por letras al final de la etiqueta según su antiguedad, por ejemplo, Cryan2019a, Cryan2019b, etc.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/6_nuevaEtiqueta.png" class="lightbox" data-gallery="quarto-lightbox-gallery-8" title="Paso vi. Etiquetas"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/6_nuevaEtiqueta.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="310" alt="Etiquetas."></a></p>
</figure>
</div>
<figcaption>Paso vi. Etiquetas</figcaption>
</figure>
</div></li>
</ol></li>
<li><p>Armar tu biblioteca Zotero</p>
<p>Antes de explicar como agregar nuevas fuentes, es necesario saber dos aspectos importantes:</p>
<ul>
<li><p>Tu biblioteca puede organizarse como cualquier organizador de archivos: Carpetas y subcarpetas 📁.</p></li>
<li><p>Existen dos bibliotecas principales: <strong>Mi biblioteca</strong> y <strong>Bibliotecas de grupo.</strong> La primera es para tu manejo personal y los documentos agregados solo podrán ser manipulados por ti. Por el contrario, los de tipo grupal pueden compartirse con otros usuarios de Zotero, incluso con privilegios de modificación (agregar notas 📔, adjuntar archivos 🔗, comentar 📝, etc.). En pocas palabras, investigación colaborativa 🧑‍🤝‍🧑.</p></li>
</ul>
<ol type="a">
<li><p>Desde la aplicación de escritorio 🖥️</p>
<ol type="A">
<li><p>Método 1 (<strong>El mejor método 😃</strong>): La forma más elegante es buscar los códigos de la publicación como DOI, ISBN, PMID, arXiv, etc. En el caso de artículos científicos, el código está casi siempre en la página de publicación. Solo basta con copiar, pegar, presionar enter y voilà : Toda la información ha sido agregado. Si tienes suerte (o mejor dicho si la publicación es <em>open-access</em>), el archivo pdf aparecerá como adjunto <img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/icons/pdf.png" class="img-fluid" width="20" alt="pdf">. Sino adjuntarlo de forma manual <code>click derecho a tu cita agregada -&gt; Añadir adjunto -&gt;  Añadir copia guardada</code>.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/4_1_metodo1_1.png" class="lightbox" data-gallery="quarto-lightbox-gallery-9" title="Paso A. Busqueda de archivos por código DOI"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/4_1_metodo1_1.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="560" alt="Paso A. Busqueda de archivos por código DOI"></a></p>
</figure>
</div>
<figcaption>Paso A. Busqueda de archivos por código DOI</figcaption>
</figure>
</div>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/4_1_metodo1_2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-10" title="Paso A. Archivo pdf correctamente agregado."><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/4_1_metodo1_2.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="750" alt="Paso A. Archivo pdf correctamente agregado."></a></p>
</figure>
</div>
<figcaption>Paso A. Archivo pdf correctamente agregado.</figcaption>
</figure>
</div>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/o_añadirPDF.png" class="lightbox" data-gallery="quarto-lightbox-gallery-11" title="Paso A. Adjutando pdf al archivo."><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/o_añadirPDF.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="750" alt="Paso A. Adjutando pdf al archivo."></a></p>
</figure>
</div>
<figcaption>Paso A. Adjutando pdf al archivo.</figcaption>
</figure>
</div></li>
<li><p>Método 2 (<strong>Cuando no tienes opción 😑</strong>): El ingreso se realiza de forma manual y según el tipo de fuente bibliográfica (revista, libro, etc.), los datos requeridos pueden variar (<strong>al menos un autor y el título son necesarios</strong>).</p></li>
</ol></li>
<li><p>Desde tu navegador de búsqueda 🌐</p>
<p>La magia de utilizar una extensión (<em>add-on)</em> desde tu navegador favorito, es que <a href="https://www.zotero.org/download/">Zotero Connector</a> permite guardar la información de la página web con un solo click (utilizando metadata) a tu biblioteca.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/4_2_metodo2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-12" title="Paso b. Método 2 para añadir referencias"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/4_2_metodo2.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="750" alt="Paso b. Método 2 para añadir referencias"></a></p>
</figure>
</div>
<figcaption>Paso b. Método 2 para añadir referencias</figcaption>
</figure>
</div></li>
</ol></li>
</ol>
<div class="callout callout-style-default callout-important callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Importante
</div>
</div>
<div class="callout-body-container callout-body">
<p>Para un guardado correcto de los datos, utilizar la extensión desde la página oficial o repositorio de preferencia del artículo científico. Por ejemplo, SAGE, IEEE, Scielo, etc.</p>
</div>
</div>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Tip
</div>
</div>
<div class="callout-body-container callout-body">
<p>Manteniendo la carpeta de interés seleccionada desde la aplicación de Zotero mientras se activa la extensión en el navegador, el nuevo documento es automáticamente guardado en dicha carpeta. Caso contrario, se selecciona la ubicación desde la misma extensión.</p>
</div>
</div>
<div class="callout callout-style-default callout-caution callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Precaución
</div>
</div>
<div class="callout-body-container callout-body">
<p>En las nuevas versiones de Zotero, las etiquetas de citación (“Citation key”) pueden permanecer fijas en todo momento y no seguir la regla por defecto o definida en el punto 3. Esto puede ocurrir quizas por el cambio en el siguiente parámetro: <code>0 seconds</code> <img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/5_errorCitacionFija.png" class="img-fluid quarto-figure quarto-figure-center" width="650" alt="Configuración del complemento Better Bibtex"></p>
</div>
</div>
<section id="exportación-de-las-referencias" class="level2">
<h2 class="anchored" data-anchor-id="exportación-de-las-referencias">Exportación de las referencias</h2>
<p>Zotero ofrece la ventaja de exportar las referencias en diferentes formatos, debidamente estructurados en un simple paso. Para su uso con Overleaf, es necesario el uso de ficheros <code>.bib</code> compatibles con . El plugin <strong>Better Bibtex</strong> ayuda justamente en la correcta exportación de las referencias, sobre todo, a la hora de manejar las tildes y diéresis en el nombre de los autores y títulos en el idioma español.</p>
<ul>
<li><strong>Método 1</strong>: Selección parcial. Seleccionar los elementos deseados, click derecho y <strong>Exportar elementos</strong>.</li>
</ul>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/o_exportarFiles.png" class="lightbox" data-gallery="quarto-lightbox-gallery-13" title="Método 1"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/o_exportarFiles.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="750" alt="Método 1"></a></p>
</figure>
</div>
<figcaption>Método 1</figcaption>
</figure>
</div>
<ul>
<li><strong>Método 2</strong>: Selección de una carpeta completa. Dirigirse al panel izquierdo y seleccionar la carpeta de interés (por ejemplo ScrewTheory). Todos los elementos dentro de ella serán exportados.</li>
</ul>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/o_exportarFolder.png" class="lightbox" data-gallery="quarto-lightbox-gallery-14" title="Método 2"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/o_exportarFolder.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="750" alt="Método 2"></a></p>
</figure>
</div>
<figcaption>Método 2</figcaption>
</figure>
</div>
<p>Finalmente, una ventana con algunos ajustes pueden seleccionarse si es necesario. Por recomendación, dejar sin marcar todas las opciones, y dar <strong>OK</strong>. Un archivo <code>.bib</code> será creado.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/o_exportarSettings.png" class="lightbox" data-gallery="quarto-lightbox-gallery-15" title="Modificar exportación de referencias"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/o_exportarSettings.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="350" alt="Modificar exportación de referencias"></a></p>
</figure>
</div>
<figcaption>Modificar exportación de referencias</figcaption>
</figure>
</div>
</section>
</section>
<section id="entorno-colaborativo-para-creación-de-documentos" class="level1">
<h1>Entorno colaborativo para creación de documentos</h1>
<p>Si bien existen múltiples editores o aplicaciones web de moda para escribir documentos de forma colaborativa en tiempo real como <a href="https://docs.google.com/">GoogleDocs</a>, <a href="https://www.office.com/">Microsoft Office 365</a>, <a href="https://jupyter.org">Jupyter</a>, la mayoría de ellos siguen el estilo de redacción <em>“What you see, what you get”</em> , que en otras palabras, la configuración y personalización de los estilos de texto se realizan mediante la interfaz del programa al presionar botones (por ejemplo, la clásica justificación de texto en Microsoft Word que todos hemos realizado alguna vez). Sin embargo, existen otros editores que utilizan código plano mediante instrucciones específicas (algunas palabras claves que hay que memorizarse 😢) que pueden realizar lo mismo o incluso, mayor personalización.</p>
<p>Tal es el caso de los editores que trabajan como entornos para la preparación de artículos científicos. Si bien su uso desde una aplicación de escritorio implica la instalación de algunos programas, editores y paquetes desde un <a href="https://www.ctan.org/">super repositorio</a>, en esta oportunidad, se recomienda el uso de editores <em>online</em> que se encargan de todo ese trabajo aburrido y concentrarte principalmente en escribir <img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/icons/typeWriter.png" class="img-fluid" width="20" alt="typewriter">, que es para lo que estamos aquí. Así, la mejor opción que te recomiendo es comenzar con <strong>Overleaf</strong>, ya que cuenta con más de 15 000 plantillas, desde como hacer un currículum vitae profesional hasta utilizar los formatos de publicación de las revistas indexadas más conocidas. En cualquier caso, la creación de una nueva plantilla establece la configuración mínima reproducible para generar tu documento en formato pdf (curiosamente es el único formato que puede exportarse pero el más utilizado para compartir en la nube ☁️😂☁️).</p>
<ol type="a">
<li><p>Crearse una cuenta desde la <a href="https://www.overleaf.com/">página oficial</a>. Por recomendación, utilizar el mismo correo electrónico de su cuenta Zotero.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/o_inicio.png" class="lightbox" data-gallery="quarto-lightbox-gallery-16" title="Paso a. Ventana principal de Overleaf"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/o_inicio.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="750" alt="Paso a. Ventana principal de Overleaf"></a></p>
</figure>
</div>
<figcaption>Paso a. Ventana principal de Overleaf</figcaption>
</figure>
</div></li>
<li><p>Escoger alguna plantilla para comenzar a escribir. Una vez seleccionada, se abrirá el entorno de edición. Para seleccionar otra plantilla, ir a <code>Templates</code> o si prefieres escoger alguno otro previamente creado, ir a <code>Projects</code> o presionar <img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/icons/home.png" class="img-fluid" width="20" alt="home">.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/o_templates.png" class="lightbox" data-gallery="quarto-lightbox-gallery-17" title="Paso b. Biblioteca de plantillas"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/o_templates.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="750" alt="Paso b. Biblioteca de plantillas"></a></p>
</figure>
</div>
<figcaption>Paso b. Biblioteca de plantillas</figcaption>
</figure>
</div></li>
<li><p>El editor se compone de cuatro paneles principales según:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/o_recompile_chat_mod.png" class="lightbox" data-gallery="quarto-lightbox-gallery-18" title="Paso c.&nbsp;Paneles del editor Overleaf"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/o_recompile_chat_mod.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="750" alt="Paso c.&nbsp;Paneles del editor Overleaf"></a></p>
</figure>
</div>
<figcaption>Paso c.&nbsp;Paneles del editor Overleaf</figcaption>
</figure>
</div>
<p>Donde,</p>
<ol type="1">
<li><p><strong>El administrador de archivos.</strong> Contiene distintos ficheros para la creación del documento, como el fichero base (.tex), los distintos estilos de la plantilla si existen (<code>.cls</code>, ⚠️ no modificar a menos que tengas conocimiento previo), el archivo de referencias (<code>.bib</code>), figuras, etc.</p></li>
<li><p><strong>El editor de documentos</strong>. Todo el texto deseado se escribe dentro de los límites definidos por las sentencias <code>\begin{document} … \end{document}</code>.</p></li>
<li><p><strong>Salida del documento.</strong> El documento es creado por la compilación del código y su exportación en formato pdf, al presionar el botón superior derecho <strong>Recompile</strong>.</p></li>
<li><p><strong>Chat.</strong> Para la comunicación entre colaboradores.</p></li>
</ol></li>
</ol>
<section id="subir-archivos-al-proyecto" class="level2">
<h2 class="anchored" data-anchor-id="subir-archivos-al-proyecto">Subir archivos al “proyecto”</h2>
<p>Desde el botón <img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/icons/upload.png" class="img-fluid" width="20"> puedes acceder a una nueva ventana para la importación de archivos dese tu almacenamiento local o externos, incluido otras bibliotecas como Mendeley y Zotero. Sin embargo, estas modalidades enlazan toda tu biblioteca (todas las carpetas y subcarpetas personales o compartidas) y por lo tanto, el archivo <code>.bib</code> contendrá todo estas referencias. Siendo su principal ventaja, una actualización automática sin necesidad de exportar las referencias desde Zotero y subir al proyecto de Overleaf.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/o_subirArchivos.png" class="lightbox" data-gallery="quarto-lightbox-gallery-19" title="Ventana para subir y enlazar archivos a Overleaf"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/o_subirArchivos.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="550" alt="Ventana para subir y enlazar archivos a Overleaf"></a></p>
</figure>
</div>
<figcaption>Ventana para subir y enlazar archivos a Overleaf</figcaption>
</figure>
</div>
</section>
<section id="compartir-plantilla" class="level2">
<h2 class="anchored" data-anchor-id="compartir-plantilla">Compartir plantilla</h2>
<p>Para trabajar de forma conjunta y redactar el reporte en tiempo real, basta con activar la opción de compartir la plantilla desde el bóton <strong>Share</strong> <img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/icons/share.png" class="img-fluid" width="20"> para invitar a otros usuarios de Overleaf (necesario) con permisos de visualización o modificación según prefieras.</p>
<ul>
<li>La ventana que se abre tiene por defecto la opción de <em>compartido general</em> apagado y puede activarse desde la opción <em>Turn on link sharing</em>. Solo colaboradores invitados por correo electrónico podrán acceder al proyecto en Overleaf según los permisos otorgados.</li>
</ul>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/o_compartirArchivo2.png" class="lightbox" data-gallery="quarto-lightbox-gallery-20" title="Ventana para invitar a colaboradores de trabajo"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/o_compartirArchivo2.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="500" alt="Ventana para invitar a colaboradores de trabajo"></a></p>
</figure>
</div>
<figcaption>Ventana para invitar a colaboradores de trabajo</figcaption>
</figure>
</div>
<ul>
<li>Caso contrario, puede compartirse como cualquier archivo en la nube mediante dos tipos de enlace para visualización o edición.</li>
</ul>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/o_compartirArchivo.png" class="lightbox" data-gallery="quarto-lightbox-gallery-21" title="Ventana para compartir un documento con permisos"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/o_compartirArchivo.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="550" alt="Ventana para compartir un documento con permisos"></a></p>
</figure>
</div>
<figcaption>Ventana para compartir un documento con permisos</figcaption>
</figure>
</div>
</section>
<section id="manejo-de-referencias-.bib" class="level2">
<h2 class="anchored" data-anchor-id="manejo-de-referencias-.bib">Manejo de referencias <code>.bib</code></h2>
<ul>
<li><p>Por defecto, la mayoría de plantillas utilizan el siguiente código, donde el archivo de referencias <code>.bib</code> es indicado dentro de <code>\bibliography{}</code>. Y el estilo de citas y bibliografía dentro de <code>\bibliographystyle{}</code>.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode latex code-with-copy"><code class="sourceCode latex"><span id="cb1-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Área de encabezados y modificación de plantilla</span></span>
<span id="cb1-2"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\begin</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">document</span>}</span>
<span id="cb1-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Inicio de reporte</span></span>
<span id="cb1-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Fin de reporte</span></span>
<span id="cb1-5"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">\bibliographystyle</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">apalike</span>}</span>
<span id="cb1-6"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">\bibliography</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">biblio.bib</span>}</span>
<span id="cb1-7"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\end</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">document</span>}    </span></code></pre></div></div></li>
<li><p>De forma alterna, el archivo de referencias <code>.bib</code> puede también indicarse dentro de <code>\addbibresource{}</code>. Y el estilo de citas y bibliografías dentro de <code>\usepackage{style=apa}{biblatex}</code>.</p>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode latex code-with-copy"><code class="sourceCode latex"><span id="cb2-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Área de encabezados y modificación de plantilla</span></span>
<span id="cb2-2"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">\usepackage</span>[backend=biber,style=apa,sortcites=true,natbib=true, url=true]{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">biblatex</span>}</span>
<span id="cb2-3"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\DeclareLanguageMapping</span>{spanish}{spanish-apa}</span>
<span id="cb2-4"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\addbibresource</span>{biblio.bib}</span>
<span id="cb2-5"></span>
<span id="cb2-6"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\begin</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">document</span>}</span>
<span id="cb2-7"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Inicio de reporte</span></span>
<span id="cb2-8"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">% Fin de reporte</span></span>
<span id="cb2-9"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\printbibliography</span>[heading=bibintoc, title={Referencias Bibliográficas}]</span>
<span id="cb2-10"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\end</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">document</span>}  </span></code></pre></div></div></li>
</ul>
<p>Las referencias exportadas por Zotero (<code>biblio.bib</code>) pueden modificarse según sea necesario. Nótese los elementos de dos artículos de tipo <span class="citation" data-cites="article">@article</span> con sus etiquetas <code>Abbasi2019</code> y <code>Acharya2018</code> respectivamente.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/o_bib.png" class="lightbox" data-gallery="quarto-lightbox-gallery-22" title="Detalle de un archivo .bib"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/o_bib.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="700" alt="Detalle de un archivo .bib"></a></p>
</figure>
</div>
<figcaption>Detalle de un archivo <code>.bib</code></figcaption>
</figure>
</div>
</section>
<section id="sentencias-necesarias" class="level2">
<h2 class="anchored" data-anchor-id="sentencias-necesarias">Sentencias necesarias</h2>
<table class="caption-top table">
<colgroup>
<col style="width: 58%">
<col style="width: 41%">
</colgroup>
<thead>
<tr class="header">
<th style="text-align: left;">Código</th>
<th style="text-align: center;">Salida</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;"><div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode latex code-with-copy"><code class="sourceCode latex"><span id="cb3-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\section</span>{Título 1}</span>
<span id="cb3-2"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\subsection</span>{Título 2}</span>
<span id="cb3-3"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\subsubsection</span>{Título 3}</span>
<span id="cb3-4"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\subsubsection</span>{Título 4}</span></code></pre></div></div></td>
<td style="text-align: center;"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/1_titulos.png" class="img-fluid" width="190"></td>
</tr>
<tr class="even">
<td style="text-align: left;"><div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode latex code-with-copy"><code class="sourceCode latex"><span id="cb4-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\begin</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">figure</span>}</span>
<span id="cb4-2">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\centering</span></span>
<span id="cb4-3">  <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">\includegraphics</span>[width="valor"]{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">cat.jpg</span>}</span>
<span id="cb4-4">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\caption</span>{A cat.}</span>
<span id="cb4-5">  <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\label</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">fig:etiqueta1</span>}</span>
<span id="cb4-6"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\end</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">figure</span>}</span></code></pre></div></div>
<p>Donde “valor” puede ser:</p>
<blockquote class="blockquote">
<ul>
<li><p>Ancho máximo de la hoja para escribir: \textwidth.</p></li>
<li><p>Ancho máximo de una columna: \linewidth.</p></li>
<li><p>Ancho por unidades métricas: 2cm, 20mm, 40em, 1in.</p></li>
</ul>
</blockquote></td>
<td style="text-align: center;"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/3_figuraSimple.png" class="img-fluid" width="240"></td>
</tr>
</tbody>
</table>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Tip
</div>
</div>
<div class="callout-body-container callout-body">
<p>Para leer más sobre \linewdith y \textwidth y sus diferencias, revisar <a href="https://tex.stackexchange.com/questions/16942/difference-between-textwidth-linewidth-and-hsize">aquí</a>.</p>
</div>
</div>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode latex code-with-copy"><code class="sourceCode latex"><span id="cb5-1"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">\documentclass</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">article</span>}</span>
<span id="cb5-2"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">\usepackage</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">subfig</span>}</span>
<span id="cb5-3"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\begin</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">document</span>}</span>
<span id="cb5-4"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\begin</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">figure</span>}</span>
<span id="cb5-5">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\centering</span></span>
<span id="cb5-6">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\subfloat</span>[Un lemur.]{<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">\includegraphics</span>[width=0.4<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\linewidth</span>]{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">lemur.jpg</span>}}</span>
<span id="cb5-7">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\subfloat</span>[Un lobo.]{<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">\includegraphics</span>[width=0.4<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\linewidth</span>]{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">fox.jpg</span>}}</span>
<span id="cb5-8">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\caption</span>{Animales random.}</span>
<span id="cb5-9">  <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\label</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">fig:etiqueta2</span>}</span>
<span id="cb5-10"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\end</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">figure</span>}</span>
<span id="cb5-11"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\end</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">document</span>}</span></code></pre></div></div>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/3_figuraDoble.png" class="lightbox" data-gallery="quarto-lightbox-gallery-23"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/3_figuraDoble.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="633"></a></p>
</figure>
</div>
<table class="caption-top table">
<colgroup>
<col style="width: 45%">
<col style="width: 54%">
</colgroup>
<tbody>
<tr class="odd">
<td><div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode latex code-with-copy"><code class="sourceCode latex"><span id="cb6-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\begin</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">table</span>}</span>
<span id="cb6-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\centering</span></span>
<span id="cb6-3"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\begin</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">tabular</span>}{l|r}</span>
<span id="cb6-4">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb6-5">  Variable <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&amp;</span> Cantidad <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\\</span></span>
<span id="cb6-6">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb6-7">  Presión <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&amp;</span> 0.5 kPa <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\\</span></span>
<span id="cb6-8">  Fuerza <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&amp;</span> 2 N <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\\</span></span>
<span id="cb6-9">  Masa <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&amp;</span> 5 kg<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\\</span></span>
<span id="cb6-10">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\hline</span></span>
<span id="cb6-11"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\end</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">tabular</span>}</span>
<span id="cb6-12"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\caption</span>{Ejemplo de una tabla.}</span>
<span id="cb6-13"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\label</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">tab:Tabla1</span>}</span>
<span id="cb6-14"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\end</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">table</span>}</span></code></pre></div></div></td>
<td style="text-align: center;"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/4_tablas.png" class="img-fluid" width="234"></td>
</tr>
</tbody>
</table>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode latex code-with-copy"><code class="sourceCode latex"><span id="cb7-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\begin</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">equation</span>}</span>
<span id="cb7-2"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">  F = G</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\left</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">[{</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\frac</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{{{m_1}{m_2}}}{{{r^2}}}}</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\right</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">]</span></span>
<span id="cb7-3"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">  </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\label</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">{eq:Eq1}</span></span>
<span id="cb7-4"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\end</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">equation</span>}</span></code></pre></div></div>
<p><img src="https://latex.codecogs.com/png.latex?F%20=%20G%5Cleft%5B%20%7B%5Cfrac%7B%7B%7Bm_1%7D%7Bm_2%7D%7D%7D%7B%7B%7Br%5E2%7D%7D%7D%7D%20%5Cright%5D"></p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Tip
</div>
</div>
<div class="callout-body-container callout-body">
<p>Para crear las ecuaciones de forma rápida y fácil se recomienda el uso páginas web gratis para escribir de forma gráfica (símbolos, texto, etc.) como <a href="https://latex.codecogs.com/eqneditor/editor.php">latex.codecogs</a>, <a href="https://latexeditor.lagrida.com/">latexeditor</a>, <a href="https://www.latex4technics.com/">latex4technics</a> y más; o en forma <em>offline</em>, con programas como <a href="https://www.wiris.com/en/mathtype/">MathType</a> para insertar el código directamente entre los entornos de ecuaciones <code>\begin{equation} … \end{equation}</code> o a nivel del texto usando <code>$ … $</code> o <code>\( … \)</code>. Por ejemplo, esta ecuación de aquí <img src="https://latex.codecogs.com/png.latex?%5Csum%20a%5E%7Bi%7D%20+%20%5Cepsilon"> se escribe como <code>$\sum a^{i} + \epsilon$</code>.</p>
<p>Mayor información acerca de los entornos de ecuaciones, símbolos matemáticos (<img src="https://latex.codecogs.com/png.latex?%5Calpha,%20%5Cgamma,%20%5Cpm">, etc.) y sus ejemplos pueden encontrarse en esta corta pero útil <a href="http://tug.ctan.org/info/short-math-guide/short-math-guide.pdf">guía</a> (en inglés).</p>
</div>
</div>
<table class="caption-top table">
<colgroup>
<col style="width: 27%">
<col style="width: 55%">
</colgroup>
<tbody>
<tr class="odd">
<td><div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb8" style="background: #f1f3f5;"><pre class="sourceCode latex code-with-copy"><code class="sourceCode latex"><span id="cb8-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\begin</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">enumerate</span>}</span>
<span id="cb8-2">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\item</span> Monday</span>
<span id="cb8-3">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\item</span> Tuesday</span>
<span id="cb8-4"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\end</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">enumerate</span>}</span>
<span id="cb8-5"></span>
<span id="cb8-6"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\begin</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">itemize</span>}</span>
<span id="cb8-7">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\item</span> Twitter</span>
<span id="cb8-8">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\item</span> Discord</span>
<span id="cb8-9"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\end</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">itemize</span>}</span></code></pre></div></div></td>
<td style="text-align: center;"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/5_listas.png" class="img-fluid" width="125"></td>
</tr>
</tbody>
</table>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb9" style="background: #f1f3f5;"><pre class="sourceCode latex code-with-copy"><code class="sourceCode latex"><span id="cb9-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\section</span>{Como referenciar una figura, una tabla y citar}</span>
<span id="cb9-2">Realizando una referencia cruzada a la Figura <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\ref</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">fig:Figura1</span>}. A la Tabla <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\ref</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">tab:Tabla1</span>}.</span></code></pre></div></div>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/7_referenciasCruzada.png" class="lightbox" data-gallery="quarto-lightbox-gallery-24"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/7_referenciasCruzada.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="465"></a></p>
</figure>
</div>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb10" style="background: #f1f3f5;"><pre class="sourceCode latex code-with-copy"><code class="sourceCode latex"><span id="cb10-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\section</span>{Como citar y agregar una lista de referencias}</span>
<span id="cb10-2">Aquí va una cita textual <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\cite</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">Abbasi2019</span>} y otra de tipo indirecta <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">\citep</span>{<span class="ex" style="color: null;
background-color: null;
font-style: inherit;">Anwar2020</span>} en formato APA7.</span>
<span id="cb10-3"></span>
<span id="cb10-4"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">\printbibliography</span>[heading=bibintoc, title={Referencias Bibliográficas}]</span></code></pre></div></div>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="images/8_referencias.png" class="lightbox" data-gallery="quarto-lightbox-gallery-25"><img src="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/8_referencias.png" class="img-fluid quarto-figure quarto-figure-center figure-img" width="653"></a></p>
</figure>
</div>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Más allá de esta guía
</div>
</div>
<div class="callout-body-container callout-body">
<p>Overleaf ofrece las herramientas básicas para un trabajo colaborativo en la nube, con las ventajas de crear reportes de alta calidad en de forma sencilla, sin tener que preocuparte por su instalación y actualización de paquetes (códigos específicos para modificar el formato como figuras, colores, formas geométricas, encabezados, bloques de código de programación, anexos, tablas, etc.), y aumentar la productividad de tu escritura. Y que junto al gestor de referencias de Zotero, puede obtenerse un fácil guardado, modificación y exportación de referencias bibliográficas correctamente formateadas para su trabajo desde Overleaf o con cualquier otro editor disponible.</p>
</div>
</div>


<hr>
<div class="post-author-section">
<div class="post-author-bio">
  <img src="https://sjacobozavaleta.github.io/assets/img/sergio_footer.png" alt="Retrato de Sergio Jácobo-Zavaleta" class="post-author-bio__image">

  <div class="post-author-bio__content">
    <p class="post-author-bio__label">Sobre el autor</p>

    <p>
      Soy Sergio, ingeniero en mecatrónica dedicado al diseño de
      robots clínicos, dispositivos biomédicos y sistemas de
      rehabilitación.
    </p>

    <p class="post-author-bio__links">
      <a href="https://www.github.com/SJacoboZavaleta">GitHub</a>
      <a href="https://www.linkedin.com/in/sjacobozavaleta/">LinkedIn</a>
      <a href="../../../../about.html">Más sobre mí</a>
    </p>
  </div>
</div>

</div>
</section>
</section>


<a onclick="window.scrollTo(0, 0); return false;" id="quarto-back-to-top"><i class="bi bi-arrow-up"></i> Volver arriba</a><div id="quarto-appendix" class="default"><section id="footnotes" class="footnotes footnotes-end-of-document"><h2 class="anchored quarto-appendix-heading">Notas</h2>

<ol>
<li id="fn1"><p>Las etiquetas usadas por Zotero se utilizan únicamente para crear el enlace y llamar la cita requerida durante la redacción de documentos. No confundir con el estilo visual de las citas que se aprecian en el documento final. El formato de las etiquetas es para un uso interno y de ayuda memotécnica, ordenada y sencilla a la hora de buscar un autor particular dentro de toda una biblioteca.↩︎</p></li>
</ol>
</section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Cómo citar</h2><div><div class="quarto-appendix-secondary-label">BibTeX</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{jácobo-zavaleta2023,
  author = {Jácobo-Zavaleta, Sergio},
  title = {Overleaf y Zotero: un flujo de trabajo académico en la nube},
  date = {2023-05-15},
  url = {https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/},
  langid = {es}
}
</code></pre><div class="quarto-appendix-secondary-label">Por favor, cita este trabajo como:</div><div id="ref-jácobo-zavaleta2023" class="csl-entry quarto-appendix-citeas">
Jácobo-Zavaleta, Sergio. 2023. <span>“Overleaf y Zotero: un flujo de
trabajo académico en la nube.”</span> May 15. <a href="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/">https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/</a>.
</div></div></section></div> ]]></description>
  <category>LaTeX</category>
  <category>Overleaf</category>
  <category>Zotero</category>
  <category>Escritura académica</category>
  <guid>https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/</guid>
  <pubDate>Sun, 14 May 2023 22:00:00 GMT</pubDate>
  <media:content url="https://sjacobozavaleta.github.io/blog/posts/2023/overleaf-zotero-workflow/images/thumbnail.png" medium="image" type="image/png" height="58" width="144"/>
</item>
<item>
  <title>Guía nutricional con Shiny y la tabla peruana de alimentos</title>
  <dc:creator>Sergio Jácobo-Zavaleta</dc:creator>
  <link>https://sjacobozavaleta.github.io/blog/posts/2023/shiny-peruvian-food-composition/</link>
  <description><![CDATA[ 

<script>
  document.addEventListener("DOMContentLoaded", function () {
    document.body.classList.add("section-blog");
  });
</script>




<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Nota
</div>
</div>
<div class="callout-body-container callout-body">
<p>Este artículo forma parte del archivo técnico migrado en 2026. El código se conserva como referencia reproducible y puede requerir versiones actuales de R, Shiny y sus paquetes.</p>
</div>
</div>
<section id="a-quien-va-dirigido" class="level1">
<h1>A quien va dirigido?</h1>
<p>A todas los profesionales en nutrición que desean planificar o programar sus dietas nutricionales en base a la composición nutricional de diversos alimentos en la cocina peruana según la cantidad deseada.</p>
</section>
<section id="implementación" class="level1">
<h1>Implementación</h1>
<blockquote class="blockquote">
<p>Versión 2 ✅:</p>
<ul>
<li>Se incluyeron alimentos compuestos como platos de entrada y almuerzo.<br>
</li>
<li>Se incluyó la tabla de anexos de codigos de componentes.<br>
</li>
<li>Se centró el contenido de las tablas.</li>
<li>Se mejoró la salida luego de seleccionar cada tabla principal y se incluyó una opción de copiado.</li>
</ul>
</blockquote>
<blockquote class="blockquote">
<p>Versión 1 :</p>
<ul>
<li><p>Es posible calcular cualquier composición en base a la cantidad ingresada por el usuario en gramos.</p></li>
<li><p>Solo se incluyeron alimentos individuales y no compuestos.</p></li>
</ul>
</blockquote>
<section id="el-código" class="level2">
<h2 class="anchored" data-anchor-id="el-código">El Código</h2>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="annotated-cell-1" style="background: #f1f3f5;"><pre class="sourceCode r code-annotation-code code-with-copy code-annotated"><code class="sourceCode r"><span id="annotated-cell-1-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">setwd</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Ruta/a/tu/proyecto/"</span>)</span>
<span id="annotated-cell-1-2"></span>
<span id="annotated-cell-1-3"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(shiny)</span>
<span id="annotated-cell-1-4"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(DT) <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Manejo de tablas en formato Data Frame</span></span>
<span id="annotated-cell-1-5"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(shinyjs)</span>
<span id="annotated-cell-1-6"></span>
<span id="annotated-cell-1-7"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Cargar datos para alimentos individuales</span></span>
<a class="code-annotation-anchor" data-target-cell="annotated-cell-1" data-target-annotation="1" onclick="event.preventDefault();">1</a><span id="annotated-cell-1-8" class="code-annotation-target">alimentos <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">read.csv</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"alimentos.csv"</span>)</span>
<span id="annotated-cell-1-9"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">colnames</span>(alimentos) <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(</span>
<span id="annotated-cell-1-10">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"COD"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"NUM"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ALIMENTO"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ENERCKCAL"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ENERCKJ"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"WATER"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"PROCNT"</span>,</span>
<span id="annotated-cell-1-11">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"FAT"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"CHOCDF"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ZN"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"K"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"P"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"FE"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"VITA"</span>,</span>
<span id="annotated-cell-1-12">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ACFOLIC"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"VITC"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"NA"</span></span>
<span id="annotated-cell-1-13">)</span>
<span id="annotated-cell-1-14">alimentos <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> alimentos[, <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(</span>
<span id="annotated-cell-1-15">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"COD"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"NUM"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ALIMENTO"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ENERCKCAL"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ENERCKJ"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"WATER"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"PROCNT"</span>,</span>
<span id="annotated-cell-1-16">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"FAT"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"CHOCDF"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ZN"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"K"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"P"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"FE"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"VITA"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ACFOLIC"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"VITC"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"NA"</span></span>
<span id="annotated-cell-1-17">)]</span>
<span id="annotated-cell-1-18"></span>
<span id="annotated-cell-1-19"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Cargar datos para alimentos compuestos</span></span>
<a class="code-annotation-anchor" data-target-cell="annotated-cell-1" data-target-annotation="2" onclick="event.preventDefault();">2</a><span id="annotated-cell-1-20" class="code-annotation-target">platos <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">read.csv</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"alimentosCompuestos.csv"</span>)</span>
<span id="annotated-cell-1-21"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">colnames</span>(platos) <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(</span>
<span id="annotated-cell-1-22">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"COD"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"NUM"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ALIMENTO"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ENERCKCAL"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ENERCKJ"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"WATER"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"PROCNT"</span>,</span>
<span id="annotated-cell-1-23">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"FAT"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"CHOCDF"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"CHOAVL"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"FIBTG"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ASH"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"CA"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"P"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ZN"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"FE"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"VITA"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"THIA"</span>,</span>
<span id="annotated-cell-1-24">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"RIBF"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"NIA"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"VITC"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ACFOLIC"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"NA"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"K"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ESTRATO"</span></span>
<span id="annotated-cell-1-25">)</span>
<span id="annotated-cell-1-26">platos <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> platos[, <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(</span>
<span id="annotated-cell-1-27">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"COD"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"NUM"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ALIMENTO"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ENERCKCAL"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ENERCKJ"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"WATER"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"PROCNT"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"FAT"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"CHOCDF"</span>,</span>
<span id="annotated-cell-1-28">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ZN"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"K"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"P"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"FE"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"VITA"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ACFOLIC"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"VITC"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"NA"</span></span>
<span id="annotated-cell-1-29">)]</span>
<span id="annotated-cell-1-30"></span>
<span id="annotated-cell-1-31"></span>
<span id="annotated-cell-1-32"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Creamos tablas de Anexo</span></span>
<a class="code-annotation-anchor" data-target-cell="annotated-cell-1" data-target-annotation="3" onclick="event.preventDefault();">3</a><span id="annotated-cell-1-33" class="code-annotation-target">codigo <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"A"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"B"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"C"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"D"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"E"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"F"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"G"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"H"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"J"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"K"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"L"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Q"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"T"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"U"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"SE"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"SS"</span>)</span>
<span id="annotated-cell-1-34">categoria <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(</span>
<span id="annotated-cell-1-35">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Cereales y derivados"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Verduras, hortalizas y derivados"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Frutas y derivados"</span>,</span>
<span id="annotated-cell-1-36">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Grasas, aceites y oleaginosas"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Pescados y mariscos"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Carnes y derivados"</span>,</span>
<span id="annotated-cell-1-37">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Leche y derivados"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Bebidas (alcohólicas y analcohólicas)"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Huevos y derivados"</span>,</span>
<span id="annotated-cell-1-38">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Productos azucarados"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Misceláneos"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Alimentos infantiles"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Leguminosas y derivados"</span>,</span>
<span id="annotated-cell-1-39">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Tubérculos, raíces y derivados"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Alimentos preparados (entrada)"</span>,</span>
<span id="annotated-cell-1-40">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Alimentos preparados (segundo)"</span></span>
<span id="annotated-cell-1-41">)</span>
<span id="annotated-cell-1-42">codigoGrupo <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">data.frame</span>(codigo, categoria)</span>
<span id="annotated-cell-1-43"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">colnames</span>(codigoGrupo) <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Código"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Categoría"</span>)</span>
<span id="annotated-cell-1-44"></span>
<span id="annotated-cell-1-45"></span>
<span id="annotated-cell-1-46"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Cargas coódigos de componentes - Anexo</span></span>
<a class="code-annotation-anchor" data-target-cell="annotated-cell-1" data-target-annotation="4" onclick="event.preventDefault();">4</a><span id="annotated-cell-1-47" class="code-annotation-target">anexoCodigo <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">read.csv</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"anexosCodigoComponentes.csv"</span>)</span>
<span id="annotated-cell-1-48"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">colnames</span>(anexoCodigo) <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Componente"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Identificador INFOODS"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Unidad"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Comentario"</span>)</span>
<span id="annotated-cell-1-49"></span>
<span id="annotated-cell-1-50"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Definir interfaz</span></span>
<a class="code-annotation-anchor" data-target-cell="annotated-cell-1" data-target-annotation="5" onclick="event.preventDefault();">5</a><span id="annotated-cell-1-51" class="code-annotation-target">ui <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">fluidPage</span>(</span>
<a class="code-annotation-anchor" data-target-cell="annotated-cell-1" data-target-annotation="6" onclick="event.preventDefault();">6</a><span id="annotated-cell-1-52" class="code-annotation-target">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">includeCSS</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"styles.css"</span>),</span>
<span id="annotated-cell-1-53">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">titlePanel</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"TABLAS PERUANAS DE COMPOSICIÓN DE ALIMENTOS - 2017"</span>),</span>
<span id="annotated-cell-1-54">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">h2</span>(tags<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">a</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Fuente: Centro Nacional de Alimentación y Nutrición, 2017, Ministerio de Salud del Perú, Lima."</span>,</span>
<span id="annotated-cell-1-55">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">href =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"https://www.gob.pe/institucion/ins/informes-publicaciones/4231115-tablas-peruanas-de-composicion-de-alimentos"</span></span>
<span id="annotated-cell-1-56">    )),</span>
<span id="annotated-cell-1-57">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">h3</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Modificado para uso particular en planificación de dietas. Basado en la experiencia de Rosa Zavaleta Gavidia (Nutricionista CNP: 5681)."</span>),</span>
<span id="annotated-cell-1-58">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">h3</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">class =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"bold-text"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Nota: Composición en 100 g de alimento"</span>),</span>
<a class="code-annotation-anchor" data-target-cell="annotated-cell-1" data-target-annotation="7" onclick="event.preventDefault();">7</a><span id="annotated-cell-1-59" class="code-annotation-target">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">numericInput</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"proportion"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Nueva composición (gramos)?"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">value =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">100</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">min =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">max =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">500</span>),</span>
<a class="code-annotation-anchor" data-target-cell="annotated-cell-1" data-target-annotation="8" onclick="event.preventDefault();">8</a><span id="annotated-cell-1-60" class="code-annotation-target">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">useShinyjs</span>(),</span>
<a class="code-annotation-anchor" data-target-cell="annotated-cell-1" data-target-annotation="9" onclick="event.preventDefault();">9</a><span id="annotated-cell-1-61" class="code-annotation-target">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tabsetPanel</span>(</span>
<span id="annotated-cell-1-62">        <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tabPanel</span>(</span>
<span id="annotated-cell-1-63">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Alimentos individuales"</span>,</span>
<span id="annotated-cell-1-64">            <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">dataTableOutput</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"foodTable1"</span>),</span>
<span id="annotated-cell-1-65">            <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">h4</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">class =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"bold-text"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Componentes seleccionados:"</span>),</span>
<span id="annotated-cell-1-66">            <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tableOutput</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"selectedData1"</span>),</span>
<span id="annotated-cell-1-67">            <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">actionButton</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"copyButton1"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Copiar datos seleccionados"</span>)</span>
<span id="annotated-cell-1-68">        ),</span>
<span id="annotated-cell-1-69">        <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tabPanel</span>(</span>
<span id="annotated-cell-1-70">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Alimentos en platos"</span>,</span>
<span id="annotated-cell-1-71">            <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">dataTableOutput</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"foodTable2"</span>),</span>
<span id="annotated-cell-1-72">            <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">h4</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Componentes seleccionados:"</span>),</span>
<span id="annotated-cell-1-73">            <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tableOutput</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"selectedData2"</span>),</span>
<span id="annotated-cell-1-74">            <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">actionButton</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"copyButton2"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Copiar datos seleccionados"</span>)</span>
<span id="annotated-cell-1-75">        ),</span>
<span id="annotated-cell-1-76">        <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tabPanel</span>(</span>
<span id="annotated-cell-1-77">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Códigos y grupos"</span>,</span>
<span id="annotated-cell-1-78">            <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tableOutput</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"codigoGrupos"</span>),</span>
<span id="annotated-cell-1-79">            <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tableOutput</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"codigoComponentes"</span>)</span>
<span id="annotated-cell-1-80">        )</span>
<span id="annotated-cell-1-81">    ),</span>
<span id="annotated-cell-1-82">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">hr</span>(),</span>
<a class="code-annotation-anchor" data-target-cell="annotated-cell-1" data-target-annotation="10" onclick="event.preventDefault();">10</a><span id="annotated-cell-1-83" class="code-annotation-target">    tags<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">div</span>(</span>
<span id="annotated-cell-1-84">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">class =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"footer"</span>,</span>
<span id="annotated-cell-1-85">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">style =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"text-align: center; background-color: #333; color: #fff; padding: 20px;"</span>,</span>
<span id="annotated-cell-1-86">        tags<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">h4</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"¿Te ha gustado esta App?"</span>),</span>
<span id="annotated-cell-1-87">        tags<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">p</span>(</span>
<span id="annotated-cell-1-88">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"¡Esta aplicación ha sido desarrollada con "</span>,</span>
<span id="annotated-cell-1-89">            tags<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">a</span>(</span>
<span id="annotated-cell-1-90">                <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">href =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"https://shiny.rstudio.com/"</span>,</span>
<span id="annotated-cell-1-91">                <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">style =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"color: #ffcc00; font-weight: bold;"</span>,</span>
<span id="annotated-cell-1-92">                <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"R Shiny"</span></span>
<span id="annotated-cell-1-93">            ),</span>
<span id="annotated-cell-1-94">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"!"</span></span>
<span id="annotated-cell-1-95">        ),</span>
<span id="annotated-cell-1-96">        tags<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">p</span>(</span>
<span id="annotated-cell-1-97">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Si quieres aprender más sobre Shiny y crear tus propias aplicaciones interactivas, "</span>,</span>
<span id="annotated-cell-1-98">            tags<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">a</span>(</span>
<span id="annotated-cell-1-99">                <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">href =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"https://shiny.rstudio.com/tutorial/"</span>,</span>
<span id="annotated-cell-1-100">                <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">style =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"color: #ffcc00; font-weight: bold;"</span>,</span>
<span id="annotated-cell-1-101">                <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"haz clic aquí"</span></span>
<span id="annotated-cell-1-102">            ),</span>
<span id="annotated-cell-1-103">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">" para acceder al tutorial oficial."</span></span>
<span id="annotated-cell-1-104">        ),</span>
<span id="annotated-cell-1-105">        tags<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">p</span>(</span>
<span id="annotated-cell-1-106">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"¡Comienza a explorar el poder de Shiny hoy mismo!"</span>,</span>
<span id="annotated-cell-1-107">            <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">style =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"font-weight: bold;"</span></span>
<span id="annotated-cell-1-108">        )</span>
<span id="annotated-cell-1-109">    )</span>
<span id="annotated-cell-1-110">)</span>
<span id="annotated-cell-1-111"></span>
<span id="annotated-cell-1-112"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Definir server</span></span>
<span id="annotated-cell-1-113">server <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">function</span>(input, output, session) {</span>
<a class="code-annotation-anchor" data-target-cell="annotated-cell-1" data-target-annotation="11" onclick="event.preventDefault();">11</a><span id="annotated-cell-1-114" class="code-annotation-target">    getComposition <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">function</span>(input_table) {</span>
<span id="annotated-cell-1-115">        proportionConversion <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> input<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>proportion</span>
<span id="annotated-cell-1-116">        idx <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> input[[input_table]]</span>
<span id="annotated-cell-1-117">        selectedRow <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> alimentos[idx, <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"PROCNT"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"FAT"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"CHOCDF"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ZN"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"K"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"P"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"FE"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"VITA"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ACFOLIC"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"VITC"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"NA"</span>)]</span>
<span id="annotated-cell-1-118">        selectedRow <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> selectedRow <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">*</span> proportionConversion <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">100</span></span>
<span id="annotated-cell-1-119">        <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">rownames</span>(selectedRow) <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">NULL</span></span>
<span id="annotated-cell-1-120">        selectedRow</span>
<span id="annotated-cell-1-121">    }</span>
<span id="annotated-cell-1-122"></span>
<a class="code-annotation-anchor" data-target-cell="annotated-cell-1" data-target-annotation="12" onclick="event.preventDefault();">12</a><span id="annotated-cell-1-123" class="code-annotation-target">    output<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>foodTable1 <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">renderDataTable</span>(</span>
<span id="annotated-cell-1-124">        alimentos,</span>
<span id="annotated-cell-1-125">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">server =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">selection =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"single"</span>,</span>
<span id="annotated-cell-1-126">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">options =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">list</span>(</span>
<span id="annotated-cell-1-127">            <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">pageLength =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">15</span>,</span>
<span id="annotated-cell-1-128">            <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">columnDefs =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">list</span>(</span>
<span id="annotated-cell-1-129">                <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">list</span>(</span>
<span id="annotated-cell-1-130">                    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">targets =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"_all"</span>,</span>
<span id="annotated-cell-1-131">                    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">className =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"dt-center"</span></span>
<span id="annotated-cell-1-132">                )</span>
<span id="annotated-cell-1-133">            )</span>
<span id="annotated-cell-1-134">        )</span>
<span id="annotated-cell-1-135">    )</span>
<span id="annotated-cell-1-136"></span>
<a class="code-annotation-anchor" data-target-cell="annotated-cell-1" data-target-annotation="13" onclick="event.preventDefault();">13</a><span id="annotated-cell-1-137" class="code-annotation-target">    output<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>selectedData1 <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">renderTable</span>({</span>
<span id="annotated-cell-1-138">        <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">getComposition</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"foodTable1_rows_selected"</span>)</span>
<span id="annotated-cell-1-139">    })</span>
<span id="annotated-cell-1-140"></span>
<span id="annotated-cell-1-141">    output<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>foodTable2 <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">renderDataTable</span>(</span>
<span id="annotated-cell-1-142">        platos,</span>
<span id="annotated-cell-1-143">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">server =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">selection =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"single"</span>,</span>
<span id="annotated-cell-1-144">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">options =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">list</span>(</span>
<span id="annotated-cell-1-145">            <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">pageLength =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">15</span>,</span>
<span id="annotated-cell-1-146">            <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">columnDefs =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">list</span>(</span>
<span id="annotated-cell-1-147">                <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">list</span>(</span>
<span id="annotated-cell-1-148">                    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">targets =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"_all"</span>,</span>
<span id="annotated-cell-1-149">                    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">className =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"dt-center"</span></span>
<span id="annotated-cell-1-150">                )</span>
<span id="annotated-cell-1-151">            )</span>
<span id="annotated-cell-1-152">        )</span>
<span id="annotated-cell-1-153">    )</span>
<span id="annotated-cell-1-154"></span>
<span id="annotated-cell-1-155">    output<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>selectedData2 <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">renderTable</span>({</span>
<span id="annotated-cell-1-156">        <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">getComposition</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"foodTable2_rows_selected"</span>)</span>
<span id="annotated-cell-1-157">    })</span>
<span id="annotated-cell-1-158"></span>
<a class="code-annotation-anchor" data-target-cell="annotated-cell-1" data-target-annotation="14" onclick="event.preventDefault();">14</a><span id="annotated-cell-1-159" class="code-annotation-target">    output<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>codigoGrupos <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">renderTable</span>(codigoGrupo)</span>
<span id="annotated-cell-1-160"></span>
<span id="annotated-cell-1-161">    output<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>codigoComponentes <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">renderTable</span>(anexoCodigo)</span>
<span id="annotated-cell-1-162"></span>
<a class="code-annotation-anchor" data-target-cell="annotated-cell-1" data-target-annotation="15" onclick="event.preventDefault();">15</a><span id="annotated-cell-1-163" class="code-annotation-target">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">observeEvent</span>(input<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>copyButton1, {</span>
<span id="annotated-cell-1-164">        selectedData <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">getComposition</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"foodTable1_rows_selected"</span>)</span>
<span id="annotated-cell-1-165">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> (<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">length</span>(input<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>foodTable1_rows_selected) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>) {</span>
<span id="annotated-cell-1-166">            clipboard <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">apply</span>(selectedData, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, paste, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">collapse =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">" "</span>)</span>
<span id="annotated-cell-1-167">            <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">writeClipboard</span>(clipboard)</span>
<span id="annotated-cell-1-168">            shinyjs<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">alert</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Datos copiados al portapapeles"</span>)</span>
<span id="annotated-cell-1-169">        } <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">else</span> {</span>
<span id="annotated-cell-1-170">            shinyjs<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">alert</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Selecciona una fila para copiar los datos"</span>)</span>
<span id="annotated-cell-1-171">        }</span>
<span id="annotated-cell-1-172">    })</span>
<span id="annotated-cell-1-173"></span>
<span id="annotated-cell-1-174">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">observeEvent</span>(input<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>copyButton2, {</span>
<span id="annotated-cell-1-175">        selectedData <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">getComposition</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"foodTable2_rows_selected"</span>)</span>
<span id="annotated-cell-1-176">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> (<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">length</span>(input<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>foodTable2_rows_selected) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>) {</span>
<span id="annotated-cell-1-177">            clipboard <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">apply</span>(selectedData, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, paste, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">collapse =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">" "</span>)</span>
<span id="annotated-cell-1-178">            <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">writeClipboard</span>(clipboard)</span>
<span id="annotated-cell-1-179">            shinyjs<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">alert</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Datos copiados al portapapeles"</span>)</span>
<span id="annotated-cell-1-180">        } <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">else</span> {</span>
<span id="annotated-cell-1-181">            shinyjs<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">alert</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Selecciona una fila para copiar los datos"</span>)</span>
<span id="annotated-cell-1-182">        }</span>
<span id="annotated-cell-1-183">    })</span>
<span id="annotated-cell-1-184">}</span>
<span id="annotated-cell-1-185"></span>
<span id="annotated-cell-1-186"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Ejecutar la aplicación Shiny</span></span>
<a class="code-annotation-anchor" data-target-cell="annotated-cell-1" data-target-annotation="16" onclick="event.preventDefault();">16</a><span id="annotated-cell-1-187" class="code-annotation-target"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">shinyApp</span>(ui, server)</span><div class="code-annotation-gutter-bg"></div><div class="code-annotation-gutter"></div></code></pre></div></div>
<div class="cell-annotation">
<dl class="code-annotation-container-grid">
<dt data-target-cell="annotated-cell-1" data-target-annotation="1">1</dt>
<dd>
<span data-code-cell="annotated-cell-1" data-code-lines="8,13,17" data-code-annotation="1">Cargar tabla de alimentos individuales (<code>alimentos.csv</code>), seleccionar datos requeridos y modificar sus atributos (nombre de columnas).</span>
</dd>
<dt data-target-cell="annotated-cell-1" data-target-annotation="2">2</dt>
<dd>
<span data-code-cell="annotated-cell-1" data-code-lines="20,25,29" data-code-annotation="2">Cargar tabla de alimentos compustos (<code>alimentosCompuestos.csv</code>), seleccionar datos requeridos y modificar sus atributos (nombre columnas).</span>
</dd>
<dt data-target-cell="annotated-cell-1" data-target-annotation="3">3</dt>
<dd>
<span data-code-cell="annotated-cell-1" data-code-lines="33,41,43" data-code-annotation="3">Crear tabla de anexos para alimentos según código por grupo nutricional (<em>Opcional</em>).</span>
</dd>
<dt data-target-cell="annotated-cell-1" data-target-annotation="4">4</dt>
<dd>
<span data-code-cell="annotated-cell-1" data-code-lines="47,48" data-code-annotation="4">Crear tabla de anexos para alimentos según código de componentes nutricional (<em>Opcional</em>).</span>
</dd>
<dt data-target-cell="annotated-cell-1" data-target-annotation="5">5</dt>
<dd>
<span data-code-cell="annotated-cell-1" data-code-lines="51" data-code-annotation="5">Implementar la interfaz de usuario de la aplicación Shiny llamando a <code>fluidPage</code>.</span>
</dd>
<dt data-target-cell="annotated-cell-1" data-target-annotation="6">6</dt>
<dd>
<span data-code-cell="annotated-cell-1" data-code-lines="52" data-code-annotation="6">Incluir ciertos estilos de contenido (archivo css).</span>
</dd>
<dt data-target-cell="annotated-cell-1" data-target-annotation="7">7</dt>
<dd>
<span data-code-cell="annotated-cell-1" data-code-lines="59" data-code-annotation="7">Definir una entrada de texto para la nueva composición de alimentos deseada.</span>
</dd>
<dt data-target-cell="annotated-cell-1" data-target-annotation="8">8</dt>
<dd>
<span data-code-cell="annotated-cell-1" data-code-lines="60" data-code-annotation="8">Complemento para mostrar ayudas visuales (mensajes).</span>
</dd>
<dt data-target-cell="annotated-cell-1" data-target-annotation="9">9</dt>
<dd>
<span data-code-cell="annotated-cell-1" data-code-lines="61" data-code-annotation="9">Mostrar múltiples tablas mediante mediante pestañas separadas con <code>tabPanel()</code>.</span>
</dd>
<dt data-target-cell="annotated-cell-1" data-target-annotation="10">10</dt>
<dd>
<span data-code-cell="annotated-cell-1" data-code-lines="83" data-code-annotation="10">Agregar un pie de nota con detalles de la aplicación.</span>
</dd>
<dt data-target-cell="annotated-cell-1" data-target-annotation="11">11</dt>
<dd>
<span data-code-cell="annotated-cell-1" data-code-lines="114" data-code-annotation="11">Implementar la función <code>server</code> que define la lógica del programa. Definir la función para manipular la fila seleccionada de las tablas de composición.</span>
</dd>
<dt data-target-cell="annotated-cell-1" data-target-annotation="12">12</dt>
<dd>
<span data-code-cell="annotated-cell-1" data-code-lines="123,141" data-code-annotation="12">Renderizar las tablas principales de alimentos. Para centrar todo el contenido de las tablas se creó un estilo css <code>dt-center</code>.</span>
</dd>
<dt data-target-cell="annotated-cell-1" data-target-annotation="13">13</dt>
<dd>
<span data-code-cell="annotated-cell-1" data-code-lines="137,155" data-code-annotation="13">Renderizar los datos de componentes de interés <strong>(salida)</strong>.</span>
</dd>
<dt data-target-cell="annotated-cell-1" data-target-annotation="14">14</dt>
<dd>
<span data-code-cell="annotated-cell-1" data-code-lines="159,161" data-code-annotation="14">Renderizar las tablas de Anexos.</span>
</dd>
<dt data-target-cell="annotated-cell-1" data-target-annotation="15">15</dt>
<dd>
<span data-code-cell="annotated-cell-1" data-code-lines="163,174" data-code-annotation="15">Evento que permite copiar los datos seleccionados al portapapeles. Utilizando el paso 8.</span>
</dd>
<dt data-target-cell="annotated-cell-1" data-target-annotation="16">16</dt>
<dd>
<span data-code-cell="annotated-cell-1" data-code-lines="187" data-code-annotation="16">Implementar la aplicación llamando a <code>shinyApp</code>.</span>
</dd>
</dl>
</div>
</div>
</section>
<section id="el-demo" class="level2">
<h2 class="anchored" data-anchor-id="el-demo">El demo ⏩</h2>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://sjacobozavaleta.github.io/blog/posts/2023/shiny-peruvian-food-composition/images/1.png" class="img-fluid figure-img" alt="Aplicación de composición de tablas de alimentos usando Shiny"></p>
<figcaption>Aplicación Shiny</figcaption>
</figure>
</div>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Más allá de esta guía
</div>
</div>
<div class="callout-body-container callout-body">
<p>Revisar la página oficial para obtener las <a href="https://web.ins.gob.pe/es/alimentacion-y-nutricion/ciencia-y-tecnologia-de-alimentos/tabla-de-composicion-de-alimentos">Tablas de Composición completas</a></p>
</div>
</div>


<hr>
<div class="post-author-section">
<div class="post-author-bio">
  <img src="https://sjacobozavaleta.github.io/assets/img/sergio_footer.png" alt="Retrato de Sergio Jácobo-Zavaleta" class="post-author-bio__image">

  <div class="post-author-bio__content">
    <p class="post-author-bio__label">Sobre el autor</p>

    <p>
      Soy Sergio, ingeniero en mecatrónica dedicado al diseño de
      robots clínicos, dispositivos biomédicos y sistemas de
      rehabilitación.
    </p>

    <p class="post-author-bio__links">
      <a href="https://www.github.com/SJacoboZavaleta">GitHub</a>
      <a href="https://www.linkedin.com/in/sjacobozavaleta/">LinkedIn</a>
      <a href="../../../../about.html">Más sobre mí</a>
    </p>
  </div>
</div>

</div>
</section>
</section>

<a onclick="window.scrollTo(0, 0); return false;" id="quarto-back-to-top"><i class="bi bi-arrow-up"></i> Volver arriba</a><div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Cómo citar</h2><div><div class="quarto-appendix-secondary-label">BibTeX</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{jácobo-zavaleta2023,
  author = {Jácobo-Zavaleta, Sergio},
  title = {Guía nutricional con Shiny y la tabla peruana de alimentos},
  date = {2023-04-15},
  url = {https://sjacobozavaleta.github.io/blog/posts/2023/shiny-peruvian-food-composition/},
  langid = {es}
}
</code></pre><div class="quarto-appendix-secondary-label">Por favor, cita este trabajo como:</div><div id="ref-jácobo-zavaleta2023" class="csl-entry quarto-appendix-citeas">
Jácobo-Zavaleta, Sergio. 2023. <span>“Guía nutricional con Shiny y la
tabla peruana de alimentos.”</span> April 15. <a href="https://sjacobozavaleta.github.io/blog/posts/2023/shiny-peruvian-food-composition/">https://sjacobozavaleta.github.io/blog/posts/2023/shiny-peruvian-food-composition/</a>.
</div></div></section></div> ]]></description>
  <category>Quarto</category>
  <category>Shiny</category>
  <category>R</category>
  <category>Nutrición</category>
  <guid>https://sjacobozavaleta.github.io/blog/posts/2023/shiny-peruvian-food-composition/</guid>
  <pubDate>Fri, 14 Apr 2023 22:00:00 GMT</pubDate>
  <media:content url="https://sjacobozavaleta.github.io/blog/posts/2023/shiny-peruvian-food-composition/images/thumbnail.png" medium="image" type="image/png" height="103" width="144"/>
</item>
</channel>
</rss>
