我正在使用 pdftex 编译 .tex,为了对齐一些用 dvipng 创建的 PNG 图像(我喜欢它的速度),我需要使用--depth
此实用程序的值。但据我所知,只有在使用 preview-latex 时才会输出正确的值。
我也尝试了独立类,但是如果 previw 包关闭,所有页面都已合并,我需要将它们拆分为 dvipng 输出。
还有其他可能性吗?
答案1
上面提到的 TeX 代码太长,无法注释,所以我把它放在这里。原始 PHP 版本位于 class.latexrender_offset.php 中DokuWiki 的 LaTeX 插件:
\documentclass[10pt]{article}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{bm}
\usepackage{mathrsfs}
\usepackage{color}
\pagestyle{empty}
\newsavebox{\formulabox}
\newlength{\formulawidth}
\newlength{\formulaheight}
\newlength{\formuladepth}
\setlength{\\topskip}{0pt}
\setlength{\parindent}{0pt}
\setlength{\abovedisplayskip}{0pt}
\setlength{\belowdisplayskip}{0pt}
\definecolor{MyRed}{rgb}{0.408,0.094,0.059} // For colored output
\begin{lrbox}{\formulabox}
{\color{MyRed} // For colored output
$latex_formula
} // For colored output
\end{lrbox}
\settowidth {\formulawidth} {\usebox{\formulabox}}
\settoheight{\formulaheight} {\usebox{\formulabox}}
\settodepth {\formuladepth} {\usebox{\formulabox}}
\\newwrite\foo
\immediate\openout\foo=\jobname.depth
\addtolength{\formuladepth} {1pt}
\immediate\write\foo{\the\formuladepth}
\closeout\foo
\begin{document}
\usebox{\formulabox}
\end{document}
答案2
看一下已纠正基线问题其中详细讨论了如何调整图像基线。DokuWiki 的 LaTeX 插件是 PHP 中的一项实现。