通过 ImageMagick 将 LaTeX 转换为 PDF,再将 PDF 裁剪为 PNG - 如何使 PNG 尺寸的宽度不超过 600

通过 ImageMagick 将 LaTeX 转换为 PDF,再将 PDF 裁剪为 PNG - 如何使 PNG 尺寸的宽度不超过 600

我从 LaTeX 文件创建 PNG,方法是先使用 PDFCrop 从 PDF 输出中裁剪内容,然后使用 ImageMagick 转换为 PNG。我总是使用相同的设置,但 PNG 文件的宽度由于某种原因会有所不同。我的 PNG 宽度不能超过 600(高度无关紧要)。

ImageMagick PNG 参数设置为 600 密度并缩放至 17%,我认为这种组合非常完美。PNG 包含文本,600 密度 17% 缩放组合为我的应用程序提供了完美的清晰度/可读性。但正如我所说,一些 PNG 输出的宽度刚好超过 600。我的 PNG 应用程序会缩小这些宽度,因此我失去了 PNG 中文本的清晰度/可读性。

LaTeX 文件示例 1:

\documentclass[fleqn,12pt]{article}
\nofiles
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage[papersize={500px,110px},margin=1cm]{geometry}
\pagenumbering{gobble}
\usepackage[scaled]{helvet}
\renewcommand\familydefault{\sfdefault} 
\usepackage[T1]{fontenc}
\usepackage{sansmath}

\begin{document}
\sansmath

\noindent It is estimated that $t$ years from now, the population of a certain suburban community will be $\displaystyle p(t)=40-\frac{5}{7 t+3}$ thousand people. At what rate will the population be growing 5 years from now?

\end{document}

LaTeX 文件示例 2:

\documentclass[fleqn,12pt]{article}
\nofiles
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage[papersize={500px,110px},margin=1cm]{geometry}
\pagenumbering{gobble}
\usepackage[scaled]{helvet}
\renewcommand\familydefault{\sfdefault} 
\usepackage[T1]{fontenc}
\usepackage{sansmath}

\begin{document}
\sansmath

\noindent Find $\displaystyle \frac{d y}{d x}$ at $x = -1$ if $\displaystyle y=\frac{1}{3 u-1}$ and $\displaystyle u=\frac{1}{x+2}$.

\end{document}

PDFCrop 和 ImageMagick 的批处理文件:

for %%f in (*.tex) do (

    pdflatex %%~nf.tex

    pdfcrop %%~nf.pdf %%~nf.pdf

    magick convert -alpha off -density 600 %%~nf.pdf -scale 17%% %%~nf.png
)

示例 1 的 PNG 输出为 629 x 67。其宽度超过了 600,所以这很糟糕。

示例 2 的 PNG 输出为 335 x 37。宽度小于 600,因此很好。

我需要将 100 多个 LaTeX 文件处理为 PNG。是否有设置或参数更改可以实现此目的,同时保留 600 密度 17% 缩放组合?可以在 LaTeX 文件中进行更改吗?

相关内容