Текст «обрезан» в анимации

Текст «обрезан» в анимации

Я хочу анимировать текст и уравнения (без картинок) в LaTeX. Я попробовал пакет animate, но обнаружил, что мой текст часто обрезается сверху и снизу.

Вот минимальный пример.

\documentclass{article}
\usepackage{animate}

\begin{document}
\begin{animateinline}[autoplay,loop]{2}
\multiframe{10}{n=0+1}{
\n
}
\end{animateinline}
\end{document}

Когда я компилирую его с помощью pdflatex и просматриваю результат в Adobe Reader XI, цифры обрезаются сверху и снизу, как вы можете видеть здесь на примере цифры 8 (масштаб 800%):

Изображение цифры 8, у которой отсутствует верхняя часть головы

Есть ли способ предотвратить это? Или пакет animate не является подходящим инструментом для этой работы?

решение1

Глифовые поля TeX часто меньше реальных размеров глифов. Не знаю, почему TeX так спроектирован. Чтобы избежать обрезки глифов, поместите a \strutперед текстом. Насколько мне известно, сумма высоты и глубины \struta равна \baselineskipдля текущего шрифта:

\documentclass{article}
\usepackage{calc}
\newlength\mytotalheight

\begin{document}
\verb+\normalsize+:
\settototalheight\mytotalheight{\strut}\the\mytotalheight$=$\the\baselineskip

\verb+\huge:+\huge
\settototalheight\mytotalheight{\strut}\the\mytotalheight$=$\the\baselineskip
\end{document}

Также поместите текст в поле одинаковой ширины для каждого кадра. В противном случае большие числа будут сжаты, если вы начнете с однозначного числа.

\documentclass{article}
\usepackage{animate}

\begin{document}
\begin{animateinline}[autoplay,loop]{2}
\multiframe{11}{n=0+1}{
\strut\makebox[2em][r]{\n}
}
\end{animateinline}
\end{document}

Связанный контент