tex4ht의 그래픽 스케일링

tex4ht의 그래픽 스케일링

로 그래픽을 도입할 때 \includegraphics[width=0.5\textwidth]{fig}tex4ht는 이를 몇 개의 픽셀로 처리하고(어떻게 될지 모르겠습니다. 아마 제가 경험하지 못한 ppi 설정이 있을 것 같습니다.) <img src="..." width="276" height="276">예를 들어 다음과 같은 결과를 생성합니다. 그러나 저에게 자연스러워 보이는 것은 다음과 같습니다. 말하다, <img src="..." style="width: 50%;">.

이전에도 비슷한 질문이 있었습니다.이 답변, michal.h21은 이러한 너비가 "276pt"(또는 유사)로 나타나는 예를 제공하지만
(1) 테스트를 컴파일할 때 이 내용이 표시되지 않습니다. 숫자만 표시됩니다. 숫자는 px 단위여야 합니다. -물론 그 대답은 6년 전이었습니다.
(2) 어쨌든 이것은 합법적인 HTML이 아닌 것 같습니다. (3) px 또는 pt 값 은
뷰포트(또는 더 적절하게는 주변 그림의 스타일 지정된 크기)에 따라 크기가 조정되지 않습니다.

그래서 이것은 나에게 질문으로 이어진다: tex4ht에서 상대적인 이미지 크기를 직접 사용할 수 있는 방법이 있습니까?

답변1

편집: 아래 코드는 이제 TeX4ht 소스에 내장되어 있으므로 옵션을 사용하여 요구할 수 있습니다 Gin-percent. 하지만 TeX Live에 포함되려면 시간이 좀 걸릴 수 있습니다.

연결된 답변은 정말 오래되고 쓸모가 없습니다. \Configure{Gin-dim}이제 명령을 사용하여 이미지 크기가 계산되는 방식을 변경할 수 있습니다. 기본적으로 TeX4ht는 그래픽 패키지에서 제공하는 이미지 크기에 대한 정보를 사용합니다. 따라서 명시적 치수(예: )를 사용하는 경우 width=0.5\textwidthTeX에서 계산한 실제 치수가 사용됩니다.

한 가지 문제는 폭과 같은 하나의 치수만 설정하면 다른 치수도 동일한 값으로 설정된다는 것입니다. 이미지가 정사각형이 아닌 한 일반적으로 이를 원하지 않습니다. 모든 치수에 대한 올바른 값을 얻기 위해 그래픽은 .xbb이미지용 파일을 사용합니다. 다음 명령을 사용하여 생성할 수 있습니다.

ebb -x *.jpg

사용하는 다른 모든 지원되는 이미지 형식에 대해 유사한 명령을 실행하십시오. 이렇게 하면 암시적으로 계산된 치수에 올바른 값이 사용됩니다.

이제 실제 질문에 들어갑니다. LaTeX 3 프로젝트 덕분에 이제 패키지를 사용하여 l3fp이미지 크기를 백분율로 계산할 수 있습니다. \dimexpr많은 제한이 있는 명령 보다 사용하기가 훨씬 쉽습니다 .

다음 .cfg파일을 사용해 보세요:

\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

이 구성에서는 그래픽에서 제공하는 이미지 너비를 텍스트 너비로 나눕니다. 그런 다음 이를 곱하여 올바른 백분율 값을 얻습니다.

이 샘플 파일의 경우:

% https://tex.stackexchange.com/q/563276/2891
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics[width=0.5\textwidth]{example-image.png}
\end{document}

다음 HTML 코드를 얻습니다.

<p class='noindent'><img style='width:50%' alt='PIC' src='example-image.png' /> </p> 

관련 정보