ES-TEX Archivos

Usuarios hispanohablantes de TeX

ES-TEX@LISTSERV.REDIRIS.ES

Opciones: Vista Forum

Use Monospaced Font
Por defecto enseñar Text Part
Esconda cabeceras de correo

Mensaje: [<< Primero] [< Prev] [Siguiente >] [Último >>]
Tema: [<< Primero] [< Prev] [Siguiente >] [Último >>]
Autor: [<< Primero] [< Prev] [Siguiente >] [Último >>]

Print Responder
Received:
by LISTSERV.REDIRIS.ES (LISTSERV-TCP/IP release 17.0) with spool id 8916665 for [log in para visualizar]; Mon, 20 Mar 2023 23:02:02 +0100 from mx07-006a4e02.pphosted.com (mx07-006a4e02.pphosted.com [143.55.146.78]) by listserv.backend.rediris.es (Postfix) with ESMTP id 2C7DE291A74 for <[log in para visualizar]>; Mon, 20 Mar 2023 23:02:02 +0100 (CET) from pps.filterd (m0316689.ppops.net [127.0.0.1]) by m0316689.ppops.net (8.17.1.19/8.17.1.19) with ESMTP id 32KLmNS6000871 for <[log in para visualizar]>; Mon, 20 Mar 2023 23:02:02 +0100 from mout01.posteo.de (mout01.posteo.de [185.67.36.65]) by m0316689.ppops.net (PPS) with ESMTPS id 3pdwtrn5bm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for <[log in para visualizar]>; Mon, 20 Mar 2023 23:02:01 +0100 from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id A4212240362 for <[log in para visualizar]>; Mon, 20 Mar 2023 23:02:00 +0100 (CET) from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4PgTGw1Cfvz9rxP for <[log in para visualizar]>; Mon, 20 Mar 2023 23:02:00 +0100 (CET)
X-CLX-Response:
1TFkXGxkfEQpMehcSHxEKWUQXaBMZEkhNWG8TRHoRClhYF2tgXnxdTF9PbRx MEQp4ThduTktcGAVcUk1EQxEKeUwXbGxEXH9PZ08aZVgRCkNIFwcZEhwRCkNZFwcTGREKQ0kXGg QaGhoRCllNF2dmchEKWUkXGnEaEBp3BhsbH3EbGRAadwYYGgYaEQpZXhdsbHkRCklGF1hPTkNYQ 1l1GHVCRVleT04RCklHF3hPTREKQ04XGkJbREBIfX9+Yl1uaE1ZXUwYX3xZTHobYkdjTBxaaHMR ClhcFx8EGgQYExoFGxoEHRoEHQQYHhAbHhofGhEKXlkXSH5EUhoRCk1cFx4dHhEKTFoXaGlra2s RCkVZF2hrEQpMRhdva2tra2sRCkJPF2ldZnpDZW5nekkZEQpDWhcbEh8EHB0EGRwEHB8RCkJeFx sRCkJcFxsRCl5OFxsRCkJLF25OS1wYBVxSTURDEQpCSRduTktcGAVcUk1EQxEKQkUXa05OfU9aa XNfXm0RCkJOF25OS1wYBVxSTURDEQpCTBdrYF58XUxfT20cTBEKQmwXYkEeGnp9S0tzQWURCkJA F2dkYXNiEx5TYX56EQpCWBdtQ3wBTHNaeUxsSBEKWlgXGREKeUMXen9Hc0hPQ0FGRnsRCnBoF2F nX09haWAYUGtAEBkaEQpwaBdlaXwSXFBweR1DaRAZGhEKcGgXenNuaGRAb2RnGlIQGRoRCnBoF3 ptZhpQTXh7cHpdEBkaEQpwaBdjUF4dZmx9GmBmbBAZGhEKcGgXYGVfbVpIXGN8c20QGRoRCnBoF 21kZktkRGZYe3JsEBkaEQpwaBdsYkNJSGYBGHBkUxAZGhEKcH0XelBCZ2VwBX9oWk0QGRoRCnB9 F2geWRJjY2Zue1gdEBkaEQpwfRdkEmljEl1gZmV/aBAZGhEKcH0XelhFeB4YXXxHaHAQGRoRCnB 9F2tpZ01vRl4cUEh6EBkaEQpwfRdsE2FyY2BATHpjSRAZGhEKcH0XaGIdUmETaRJgTWYQGRoRCn B9F2NsH3McaG95XF5oEBkaEQpwfRdsWk9nc0RhY2dMWhAZGhEKcH0XbGMcZ0BCGExibxoQGRoRC nB9F2FaExlfHXNsfx9jEBkaEQpwfRdhARhza29ORVBEXxAZGhEKcH0Xa0NHEh5rHmlEBW8QGRoR CnB/F2hLEklIawEcTHh8EBkTEQpwXxdlc0dnc2kYYU0BUxAZGhEKcF8XZUgSU2hJSV5/Z3MQGRo RCnBfF2Nra0gaXmheWmx8EBkaEQpwXxdmZ21aSX1paUhyWBAZGhEKcF8XZU9aGUF9Z3oSe0MQGR oRCnBfF2hpZlJseGNCfFNMEBkaEQpwXxdpcGkYG2AaHHJIcxAZGhEKcF8XaWR7E0NBGG4BeFgQG RoRCnBfF2d7UBlsQ2UbWk4FEBkaEQpwXxduGmESb1BzT3MTYhAZGhEKcF8Xen95WkEeTmR7fVMQ GRoRCnBfF2UZbE9hZh9ZGGFYEBkaEQpwXxdkb0FIc1J/cGhfTRAZGhEKcGwXYHhrZmNZaVMaGVw QGRoRCnBMF3ppHn9JaFtaQWtvEBkaEQptfhcaEQpYTRdLESA=
Date:
Mon, 20 Mar 2023 22:01:57 +0000
Reply-To:
Usuarios hispanohablantes de TeX <[log in para visualizar]>
Message-ID:
Content-Transfer-Encoding:
quoted-printable
Subject:
X-CLX-Shades:
MLX
Content-Type:
text/plain; charset="utf-8"
Emisor:
Juan Manuel Macías <[log in para visualizar]>
Sender:
Usuarios hispanohablantes de TeX <[log in para visualizar]>
Delivered-To:
X-Proofpoint-ORIG-GUID:
0hqnjbWUTHwDBgswf2uVsfP1HmIf6pBY
X-Proofpoint-Spam-Details:
rule=defaultmarcado_descarta_bulk_notspam policy=defaultmarcado_descarta_bulk score=0 lowpriorityscore=0 suspectscore=0 clxscore=135 impostorscore=0 phishscore=0 adultscore=0 malwarescore=0 mlxscore=0 spamscore=0 bulkscore=0 priorityscore=85 mlxlogscore=717 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303150002 definitions=main-2303200187
MIME-Version:
1.0
X-Proofpoint-Virus-Version:
vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-20_16,2023-03-20_02,2023-02-09_01
X-Proofpoint-GUID:
0hqnjbWUTHwDBgswf2uVsfP1HmIf6pBY
Parts/Attachments:
text/plain (144 lines)
Hola:

Aprovechando que recientemente he asumido la composición de la revista
de estudios "neogriegos" y bizantinos Erytheia, pensé que podría
resultarle curioso a alguien ver mi sistema de trabajo en pleno proceso
de montaje del número 44, cuando están las cosas "work in progress".
Como muchos sabéis, mi sistema, de un tiempo a esta parte, implica
Org-Mode y LaTeX maridados, como un intento de crear mediante el primero
una interfaz de alto nivel para el segundo. Una vez que la máquina está
engrasada y funcionando, y todos los componentes en su sitio, me resulta
un flujo bastante cómodo y eficiente. Así que paso a describiros lo que
he ido haciendo hasta ahora con este número de Erytheia. Será una
especie de tour ilustrado con capturas de pantalla (o sea, que habrá
muchos enlaces a imgur: urldefense se va a inflar. Siento que los
enlaces queden horribles, pero como no tenemos defensa contra
urldefense...).

En primer lugar, defino un nuevo proyecto para Org-Publish, que será
también un repositorio Git. Org-Publish me permite tener un control
total sobre cada subdocumento y sabe colocarme todo en su sitio:

https://urldefense.com/v3/__https://i.imgur.com/bRF4UuK.png__;!!D9dNQwwGXtA!V4gNuQaaLkUQxPYFNki7AoqYZqg77uc0oZP-4-QFfu_B7MBlrcSZfDFS0ALRx64_og2vMk9qUaIkwcuqY1jB5qFCTry2$ 

Org-Publish se encarga de exportar a *.tex cada subdocumento *.org,
usando esta configuración de filtros en Elisp que he escrito y que
residen en el archivo 'lisp':

https://urldefense.com/v3/__https://i.imgur.com/9bdtWmV.png__;!!D9dNQwwGXtA!V4gNuQaaLkUQxPYFNki7AoqYZqg77uc0oZP-4-QFfu_B7MBlrcSZfDFS0ALRx64_og2vMk9qUaIkwcuqY1jB5lL8E9yC$ 

https://urldefense.com/v3/__https://i.imgur.com/py7lzsM.png__;!!D9dNQwwGXtA!V4gNuQaaLkUQxPYFNki7AoqYZqg77uc0oZP-4-QFfu_B7MBlrcSZfDFS0ALRx64_og2vMk9qUaIkwcuqY1jB5okQJA2x$ 

También tiene en cuenta un archivo erytheia.setup, dentro del proyecto,
donde añado directivas y macros de Org:

https://urldefense.com/v3/__https://i.imgur.com/m0ySAek.png__;!!D9dNQwwGXtA!V4gNuQaaLkUQxPYFNki7AoqYZqg77uc0oZP-4-QFfu_B7MBlrcSZfDFS0ALRx64_og2vMk9qUaIkwcuqY1jB5qFxntTL$ 

Ahora bien, el archivo "maestro" que contiene toda la revista se excluye
del flujo de Org-Publish. Se compila de forma asíncrona mediante
latexmk. Esto me permite trabajar en algún subdocumento concreto,
mientras latexmk está corriendo en segundo plano. La función que he
escrito para compilar el archivo maestro de este y otros proyectos es la
siguiente:

https://urldefense.com/v3/__https://i.imgur.com/XgYESHO.png__;!!D9dNQwwGXtA!V4gNuQaaLkUQxPYFNki7AoqYZqg77uc0oZP-4-QFfu_B7MBlrcSZfDFS0ALRx64_og2vMk9qUaIkwcuqY1jB5oYMLx0X$ 

Y vamos a ver algunos aspectos del archivo maestro. Es un típico
documento de Org con directivas, nodos y subnodos. Algunos nodos no se
exportan y sirvan sólo para configuración (los que llevan la etiqueta
"noexportar"). Otros no añaden ni título ni sección (los que llevan la
etiqueta "ignoratitb"), pero me son cómodos para tener distintas partes
del libro ordenadas como sub-árboles, como por ejemplo el nodo
"artículos principales". No existe la sección "Artículos principales",
pero me resulta práctico tener todos los artículos agrupados como
subnodos de un nodo principal. Puedo, además, añadir configuración local
a cualquiera de esos nodos o al principal (lo que en LaTeX sería un
\begingroup...\endgroup, mediante simples cajones de propiedades. Y esa
configuración queda asociada al nodo de turno, por si lo cambio de
sitio. Aquí podéis ver el archivo maestro con los nodos de primer nivel
plegados:

https://urldefense.com/v3/__https://i.imgur.com/UqU2VH5.png__;!!D9dNQwwGXtA!V4gNuQaaLkUQxPYFNki7AoqYZqg77uc0oZP-4-QFfu_B7MBlrcSZfDFS0ALRx64_og2vMk9qUaIkwcuqY1jB5voqu5cu$ 

Si desplegamos el nodo "artículos principales" veis que, de momento,
tengo 4 artículos, uno ya listo (el autor le ha dado el visto bueno):

https://urldefense.com/v3/__https://i.imgur.com/j9WsHQk.png__;!!D9dNQwwGXtA!V4gNuQaaLkUQxPYFNki7AoqYZqg77uc0oZP-4-QFfu_B7MBlrcSZfDFS0ALRx64_og2vMk9qUaIkwcuqY1jB5iTYVSgb$ 

Y si despegamos uno de los artículos, veis que contiene un cajón de
propiedades (property drawer, en la jerga de Org) muy nutrido, donde se
incluyen una serie de parámetros, como el autor del artículo, su dir. de
correo, la institución o universidad a que pertenece, el título en
inglés (o en español, si el artículo está en inglés), el ORCID, la fecha
recibido/aceptado, el texto que debe ir en la cabecera de las páginas
impares, etc.:

https://urldefense.com/v3/__https://i.imgur.com/EcwIY5W.png__;!!D9dNQwwGXtA!V4gNuQaaLkUQxPYFNki7AoqYZqg77uc0oZP-4-QFfu_B7MBlrcSZfDFS0ALRx64_og2vMk9qUaIkwcuqY1jB5r2N-Zwe$ 

Naturalmente, todos esos datos no los pongo a mano. Uso un sistema de
marcas propio en el documento de Word original, lo exporto a Org con
Pandoc (usando una plantilla ad hoc) y luego extraigo todos los datos
mediante esta función, que usa Org-capture para poblar las propiedades y
añadir el nodo correspondiente:

https://urldefense.com/v3/__https://i.imgur.com/BMZgPgv.png__;!!D9dNQwwGXtA!V4gNuQaaLkUQxPYFNki7AoqYZqg77uc0oZP-4-QFfu_B7MBlrcSZfDFS0ALRx64_og2vMk9qUaIkwcuqY1jB5mimQxpP$ 

Para que esas propiedades se exporten como las macros de LaTeX
correspondientes (y que tengo ya definidas en otra parte), escribí este
filtro de pre-proceso, que añade todo antes de la exportación:

https://urldefense.com/v3/__https://i.imgur.com/ySs2CSt.png__;!!D9dNQwwGXtA!V4gNuQaaLkUQxPYFNki7AoqYZqg77uc0oZP-4-QFfu_B7MBlrcSZfDFS0ALRx64_og2vMk9qUaIkwcuqY1jB5oXqfJ-X$ 

Dejamos el archivo maestro y pasamos a más cosas. Una serie de variables
locales a todo el directorio del proyecto están almacenadas en el
archivo '.dir-locals.el':

https://urldefense.com/v3/__https://i.imgur.com/yZiqC2i.png__;!!D9dNQwwGXtA!V4gNuQaaLkUQxPYFNki7AoqYZqg77uc0oZP-4-QFfu_B7MBlrcSZfDFS0ALRx64_og2vMk9qUaIkwcuqY1jB5u5k5DzG$ 

¿Y la parte "dura" de LaTeX? Bueno, pues todo el preámbulo está en otro
archivo Org, concretamente el llamado 'conf.org'. Está todo
convenientemente ordenado y escrito mediante programación literaria
gracias a org-babel y org-babel-tangle. Eso es comodísimo, porque si
quiero, por ejemplo, usar código y funciones en Lua, puedo usar bloques
de Lua, y luego injertar ese código en bloques de LaTeX mediante el
argumento de cabecera ":noweb":

https://urldefense.com/v3/__https://i.imgur.com/jQmqOUp.png__;!!D9dNQwwGXtA!V4gNuQaaLkUQxPYFNki7AoqYZqg77uc0oZP-4-QFfu_B7MBlrcSZfDFS0ALRx64_og2vMk9qUaIkwcuqY1jB5rRMcys0$ 

El argumento ":noweb" también me permite jugar con ciertas variables
locales a todo el directorio, como el número actual en proceso de la
revista o el estado de las pruebas. Por ejemplo, en este código que uso
para generar automáticamente las separatas de cada artículo con la
compilación del documento (para luego enviárselas a los autores):

https://urldefense.com/v3/__https://i.imgur.com/Jb2c5Bk.png__;!!D9dNQwwGXtA!V4gNuQaaLkUQxPYFNki7AoqYZqg77uc0oZP-4-QFfu_B7MBlrcSZfDFS0ALRx64_og2vMk9qUaIkwcuqY1jB5hDH5t88$ 

extraigo el estado de las pruebas con:

 \def\estadopruebas{%
pruebas%
<<estado-pruebas()>>%
}

'<<estado-pruebas()>>' simplemente imprime el resultado de evaluar un sencillo bloque
Elisp llamado "estado-pruebas". En su evaluación devuelve el valor de la variable local
del mismo nombre:

#+NAME:estado-pruebas
#+begin_src emacs-lisp :tangle no :exports none
estado-pruebas
#+end_src

Bueno, y eso es todo de momento. Como este número de la revista no está todavía en el aire
no creo oportuno (por respeto a autores y editores) mostrar nada de la versión tipográfica
final. Pero cuando se publique ya subiré aquí algunas muestras.

Saludos,

Juan Manuel 

----------------------------------------------------
Para darse de baja ES-TEX pincha y envia el siguiente url
mailto:[log in para visualizar]
----------------------------------------------------

ATOM RSS1 RSS2