Contenido
Buscar
Computación
Computación: LaTeX: un sistema de tipografía para textos técnicos
Y debido a esta necesidad, nacieron paquetes de software para hacer tipografía especializada en notación técnica y/o científica. Probablemente el más usado a nivel mundial en este sentido es LaTeX, creado por uno de los científicos más importantes del cómputo: Donald Knuth.
// ——————————————————————————————————————————-
// PHOTOSWIPE
var initPhotoSwipeFromDOM = function(gallerySelector) {
// parse slide data (url, title, size …) from DOM elements
// (children of gallerySelector)
var parseThumbnailElements = function(el) {
var thumbElements = el.childNodes,
numNodes = thumbElements.length,
items = [],
figureEl,
linkEl,
size,
item;
for(var i = 0; i < numNodes; i++) {
figureEl = thumbElements[i]; //
// include only element nodes
if(figureEl.nodeType !== 1) {
continue;
}
linkEl = figureEl.children[0]; // element
size = linkEl.getAttribute(‘data-size’).split(‘x’);
// create slide object
item = {
src: linkEl.getAttribute(‘href’),
w: parseInt(size[0], 10),
h: parseInt(size[1], 10)
};
if(figureEl.children.length > 1) {
//
item.title = figureEl.children[1].innerHTML;
}
if(linkEl.children.length > 0) {
// thumbnail element, retrieving thumbnail url
item.msrc = linkEl.children[0].getAttribute(‘src’);
}
item.el = figureEl; // save link to element for getThumbBoundsFn
items.push(item);
}
return items;
};
// find nearest parent element
var closest = function closest(el, fn) {
return el && ( fn(el) ? el : closest(el.parentNode, fn) );
};
// triggers when user clicks on thumbnail
var onThumbnailsClick = function(e) {
e = e || window.event;
e.preventDefault ? e.preventDefault() : e.returnValue = false;
var eTarget = e.target || e.srcElement;
// find root element of slide
var clickedListItem = closest(eTarget, function(el) {
return (el.tagName && el.tagName.toUpperCase() === ‘FIGURE’);
});
if(!clickedListItem) {
return;
}
// find index of clicked item by looping through all child nodes
// alternatively, you may define index via data- attribute
var clickedGallery = clickedListItem.parentNode,
childNodes = clickedListItem.parentNode.childNodes,
numChildNodes = childNodes.length,
nodeIndex = 0,
index;
for (var i = 0; i = 0) {
// open PhotoSwipe if valid index found
openPhotoSwipe( index, clickedGallery );
}
return false;
};
// parse picture index and gallery index from URL (#&pid=1&gid=2)
var photoswipeParseHash = function() {
var hash = window.location.hash.substring(1),
params = {};
if(hash.length < 5) {
return params;
}
var vars = hash.split('&');
for (var i = 0; i < vars.length; i++) {
if(!vars[i]) {
continue;
}
var pair = vars[i].split('=');
if(pair.length getThumbBoundsFn section of documentation for more info
var thumbnail = items[index].el.getElementsByTagName(‘img’)[0], // find thumbnail
pageYScroll = window.pageYOffset || document.documentElement.scrollTop,
rect = thumbnail.getBoundingClientRect();
return {x:rect.left, y:rect.top + pageYScroll, w:rect.width};
}
};
// PhotoSwipe opened from URL
if(fromURL) {
if(options.galleryPIDs) {
// parse real index when custom PIDs are used
// http://photoswipe.com/documentation/faq.html#custom-pid-in-url
for(var j = 0; j < items.length; j++) {
if(items[j].pid == index) {
options.index = j;
break;
}
}
} else {
// in URL indexes start from 1
options.index = parseInt(index, 10) – 1;
}
} else {
options.index = parseInt(index, 10);
}
// exit if index not found
if( isNaN(options.index) ) {
return;
}
if(disableAnimation) {
options.showAnimationDuration = 0;
}
// Pass data to PhotoSwipe and initialize it
gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options);
gallery.init();
};
// loop through all gallery elements and bind events
var galleryElements = document.querySelectorAll( gallerySelector );
for(var i = 0, l = galleryElements.length; i < l; i++) {
galleryElements[i].setAttribute('data-pswp-uid', i+1);
galleryElements[i].onclick = onThumbnailsClick;
}
// Parse URL and open gallery if it contains #&pid=3&gid=1
var hashData = photoswipeParseHash();
if(hashData.pid && hashData.gid) {
openPhotoSwipe( hashData.pid , galleryElements[ hashData.gid – 1 ], true, true );
}
};
// execute above function
initPhotoSwipeFromDOM('.my-gallery');
// ======================================
// FIN SCRIPTS PHOTOSWIPE
// ======================================
CIUDAD DE MÉXICO (apro).-La ciencia tiene su propio lenguaje: las matemáticas. Estas tienen una notación muy particular y en ocasiones suele complicarse pues su simbología abarca un número de ideas para expresar en ecuaciones por ejemplo, los fenómenos que ocurren en la física. Y aunque esto suena normal para muchos, es claro que los libros de ciencia tienen una dificultad inherente, que es finalmente la de publicar estas simbologías de manera clara para que todos las podamos entender. Y debido a esta necesidad, nacieron paquetes de software para hacer tipografía especializada en notación técnica y/o científica. Probablemente el más usado a nivel mundial en este sentido es LaTeX, creado por uno de los científicos más importantes del cómputo: Donald Knuth.
Knuth empezó a escribir algo que bautizó como TeX, que era un software para hacer tipografía técnica especializada. La razón para este proyecto fue que el autor estaba molesto con la calidad de la tipografía de sus libros (El arte de programar computadoras, volumen I al III). El científico estadounidense pensó que podría acabar su proyecto para 1978, en su año sabático, pero erró por aproximadamente 8 años.
La primera versión de TeX se escribió usando el lenguaje de programación SAIL (Stanford Artificial IntelligenceLanguage), que se ejecutaba en una PDP-10 de la Universidad de Stanford. Para las versiones posteriores de TeX, Knuth inventó el concepto de programación literaria, una forma de producir código fuente compilable y documentación con referencias de alta calidad (por supuesto, escrito en TeX) partiendo del mismo archivo original. El lenguaje usado se llama WEB (por ser el apodo de su suegra), y produce programas en Pascal.
TeX es un sistema de tipografía orientado a quienes hacen ciencia y por ende, no es probablemente el más adecuado para aquellos que se dedican a escribir novelas o cuentos, por ejemplo, y aunque el sistema bien puede con estas tareas, es claro que la idea de Knuth se basó en crear un sistema que ayudara a las publicaciones de los científicos para que estas tuviesen la calidad necesaria para ser publicables. De hecho, s probable que hoy en día TeX (LaTeX, una versión con una serie de bibliotecas de funciones llamadas macros, es probablemente la mejor versión que se tenga), es el sistema de tipografía más usado en el mundo.
La filosofía de TeX es diferente a la que eventualmente se puso de moda -quizás gracias a la interfaz gráfica- es decir, el esquema WYSIWYG, que significa “WhatYouSeeIsWhatYouGet”, que signfica que así como vemos nuestro texto en pantalla, así se despliega y así se ve ya impreso. TeX en realidad usa un esquema muy parecido a un compilador de algún lenguaje de computadora. El autor del artículo pone comandos en el texto para definir el texto en negrita, cursiva, etcétera. También puede poner pies de notas, bibliografía, títulos, subtítulos, etcétera, pero todo esto a través de comandos que empiezan con la diagonal invertida (“”). Muchos comandos tienen parámetros, que se indican dentro de llaves (“{}”). Así, los documentos en TeX no tienen un formato establecido, sino que son textos en símbolos ASCII, con instrucciones que comienzan con la diagonal invertida, las cuales se traducen eventualmente al texto final, el cual -si todo sale bien- se muestran la simbología que se usa en carreras como física, química y computación.
La mayor parte de la funcionalidad propuesta por Knuth viene dada por diversas macros: las originales de Knuth englobadas en lo que se llama plainTeX, LaTeX (mayoritario en las ciencias técnicas) y ConTeXt (usado principalmente para publicaciones). La referencia principal de TeX son los dos primeros volúmenes de la obra Computers and Typesetting de Knuth: “TheTeXbook” y “TeX: TheProgram” (éste incluye el código fuente de TeX completo y documentado).
De acuerdo con la Wikipedia, Donald Knuth explica en su obra TheTeXbook que la palabra technology (“tecnología”) tiene raíz griega y esta comienza por las letras te?. Por tanto, el nombre TeX en español se tiene que pronunciar [tej], y no [teks]. Ello se debe a que TeX no quiere decir TEX sino te?, acabado en la letra griega ? [ji]. La misma palabra griega t???? (????? – techne) significa “arte”, una referencia a que la técnica no está reñida con el arte ni con la presentación elegante.
TeX es un sistema de tipografía completo, bastante bien escrito, que puede ejecutarse en una variedad de sistemas operativos. Knuth ofrece recompensas monetarias para la gente que encuentre e informe de un error en el programa. El premio por error empezó con un centavo y se doblaba cada año hasta que quedó congelado en su valor actual de 327,68 dólares. Esto, sin embargo, no ha arruinado al autor del software, porque se han encontrado muy pocos errores y en cualquier caso el cheque que prueba que el propietario encontró un error en TeX se suele enmarcar como un premio, en vez de cobrarlo.
TeX es gratuito y puede descargarse de este sitio: https://www.latex-project.org/get/ . También hay una serie de herramientas de edición que el usuario bien puede usar, por ejemplo, una de las más fáciles y versátiles es TeXStudio (https://www.texstudio.org/).
Comentarios
Otras Noticias
// autoTrigger on scroll until after the third request is loaded
$(‘.scroll’).jscroll({
autoTriggerUntil: 3,
loadingHtml: ‘Cargando mas noticias… ‘,
nextSelector: ‘.boton-ver-mas’,
});
window._taboola = window._taboola || [];
_taboola.push({
mode: ‘thumbnails-a-3×2’,
container: ‘taboola-mobile-below-article-thumbnails’,
placement: ‘Mobile Below Article Thumbnails’,
target_type: ‘mix’
});
// Obtener todos los elementos con clase .col-md-12
var colElements = document.querySelectorAll(‘.col-md-12’);
// Iterar sobre cada elemento
colElements.forEach(function(element) {
// Verificar si tiene un hijo inmediato con clase .titulo-region
var tituloRegion = element.querySelector(‘.titulo-region’);
if (tituloRegion) {
// Agregar la clase .is-sticky al elemento padre
element.classList.add(‘is-sticky’);
}
});
// Obtener el elemento article dentro de .fila-especial-v2 .p50
var articleElement = document.querySelector(‘.home .fila-especial-v2 .p50 article’);
// Obtener el texto del elemento .z-foto .bajada p
var bajadaText = articleElement.querySelector(‘.z-foto .bajada p’).textContent;
// Crear un nuevo elemento para mostrar el texto obtenido
var textoElement = document.createElement(‘p’);
textoElement.textContent = bajadaText;
// Obtener el elemento .z-txt .titulo dentro del article
var tituloElement = articleElement.querySelector(‘.z-txt .titulo’);
// Insertar el nuevo elemento al final del article
articleElement.appendChild(textoElement);