
Cuando introduzco gráficos con \includegraphics[width=0.5\textwidth]{fig}
, tex4ht procesa esto en una cierta cantidad de píxeles (no estoy seguro de cómo, ¿presumiblemente hay una configuración de ppi que no he encontrado?) Y produce, <img src="..." width="276" height="276">
por ejemplo, pero lo que me parecería natural sería, decir, <img src="..." style="width: 50%;">
.
Anteriormente hubo una especie de pregunta similar: enesta respuesta, michal.h21 da un ejemplo donde estos anchos aparecen como "276pt" (o similar), pero
(1) no veo esto cuando compilo una prueba; solo veo números, que entiendo que deberían estar en px. - aunque, por supuesto, esa respuesta fue hace 6 años;
(2) de todos modos esto no parece ser html legal; y
(3) ni los valores px ni pt escalan con la ventana gráfica (o, quizás más pertinente, con el tamaño estilizado de la figura circundante).
Entonces esto me lleva a la pregunta: ¿hay alguna manera de usar directamente tamaños de imagen relativos con tex4ht?
Respuesta1
Editar: el siguiente código ahora está integrado en las fuentes TeX4ht, puede solicitarlo usando la Gin-percent
opción. Sin embargo, es posible que tarde algún tiempo en incluirse en TeX Live.
Esa respuesta vinculada es realmente antigua y obsoleta. Puede usar \Configure{Gin-dim}
el comando para cambiar la forma en que se calculan las dimensiones de la imagen ahora. De forma predeterminada, TeX4ht se basa en información sobre las dimensiones de la imagen proporcionada por el paquete Graphics. Entonces, si usa dimensiones explícitas (como width=0.5\textwidth
), se usa la dimensión real calculada por TeX.
Un problema es que si establece solo una dimensión, por ejemplo el ancho, la otra dimensión se establecerá con el mismo valor. Normalmente no querrás esto, a menos que tu imagen sea un cuadrado. Para obtener el valor correcto para todas las dimensiones, Graphics utiliza un .xbb
archivo de imagen. Se puede crear usando el siguiente comando:
ebb -x *.jpg
Ejecute un comando análogo para cualquier otro formato de imagen compatible que utilice. Esto garantizará que se utilicen los valores correctos para las dimensiones calculadas implícitamente.
Ahora, a tu pregunta real. Gracias al proyecto LaTeX 3, ahora podemos usar el l3fp
paquete para calcular las dimensiones de la imagen en porcentajes. Es mucho más fácil de usar que \dimexpr
el comando, que tiene muchas limitaciones.
Pruebe el siguiente .cfg
archivo:
\Preamble{xhtml}
\makeatletter
\ExplSyntaxOn
\Configure{Gin-dim}{style="width:\fp_eval:n{round(\Gin@req@width/\textwidth*100,2)}\char_generate:nn { `\% } { 12 }"}
\ExplSyntaxOff
\makeatother
\begin{document}
\EndPreamble
En esta configuración, dividimos el ancho de la imagen proporcionado por Gráficos por el ancho del texto. Luego se multiplica para obtener el valor porcentual correcto.
Para este archivo de muestra:
% https://tex.stackexchange.com/q/563276/2891
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics[width=0.5\textwidth]{example-image.png}
\end{document}
Obtienes este código HTML:
<p class='noindent'><img style='width:50%' alt='PIC' src='example-image.png' /> </p>