写作
\documentclass{standalone}
\usepackage{varwidth}
\begin{document}
\begin{varwidth}{\linewidth}
{\em line 1}
{\em line 2}
\end{varwidth}
\end{document}
产生了错误的斜体边界框(请注意,“2”被剪掉了):
如何生成正确的标准图像?简单地将 \linewidth 修改为固定尺寸是行不通的。
(正如所讨论的这里,必须插入varwidth
,以免standalone
将两行合并到一行。)
答案1
字符字形超出其官方字体边界框的问题无法在 TeX 内部解决,因为 TeX 只知道官方字符边界框,而不知道它们的视觉外观。
例子:
\documentclass[varwidth]{standalone}
\begin{document}
\raggedleft
\itshape
line f
line $\not$
\end{document}
部分f
不可见且\not
已完全消失(极端示例,因为\not
宽度为零,它与以下关系运算符重叠)。
作为解决方法,可以添加更大的边距:
\documentclass[margin=10pt,varwidth]{standalone}
并且结果被裁剪,例如通过pdfcrop
:
答案2
比较以下语法双字母字体样式命令 (\bf,\it,...) 会在 LaTeX 中复活吗?
\documentclass{standalone}
\usepackage{varwidth}
\begin{document}
\begin{varwidth}{\linewidth}
\emph{line 1}
\emph{line 2}
\end{varwidth}
\end{document}
答案3
\/
最终这对您来说是一个好的解决方案吗?
将您的 MWE 更改为
\documentclass{standalone}
\usepackage{varwidth}
\begin{document}
\begin{varwidth}{\linewidth}
{\em line 1\/}
{\em line 2\/}
\end{varwidth}
\end{document}
否则,使用\textit
而不是\em
so 来自动添加斜体校正
\documentclass{standalone}
\usepackage{varwidth}
\begin{document}
\begin{varwidth}{\linewidth}
\textit{line 1}
\textit{line 2}
\end{varwidth}
\end{document}