如何强制“独立”代码片段的最小宽度

如何强制“独立”代码片段的最小宽度

我的问题非常类似这个。但是,我的要求是最小宽度,而不是最小高度。
我需要用 LaTeX 创建公式的小片段。我使用 TexMaker 写出公式,然后将我拥有的所有内容导出到 PNG-s。
我需要一种方法来指定最终片段的最小宽度。因此,如果我的公式的长度超过了最小值,则宽度将设置为其长度。但是,如果所述长度不超过最小值,则 PNG 的宽度将设置为最小值。

答案1

粗略建议,30mm是最小宽度参数,A是文档的所需内容。更改0pt0.3pt以查看“不可见占位符”。

\documentclass[varwidth]{standalone}

\begin{document}
A\\[-\baselineskip]
\rule{30mm}{0pt}
\end{document}

\documentclass[varwidth]{standalone}
% or \documentclass[varwidth, margin=0.3pt]{standalone}

\begin{document}
$a^2+b^2 = c^2$\\[-\baselineskip]
\rule{30mm}{0pt}
\end{document}

在此处输入图片描述

答案2

这将测试 varwidth 的宽度,但如果其小于指定的最小值,则使用 minipage。

\documentclass[multi=snippet,class=article]{standalone}
\usepackage{varwidth}
\usepackage{environ}
\usepackage{amsmath}

\newsavebox{\snippetbox}

\NewEnviron{snippet}[1]{% #1 = minimum width
  \savebox{\snippetbox}{\begin{varwidth}{\textwidth}\BODY\end{varwidth}}%
  \ifdim\wd\snippetbox<#1\relax
    \begin{minipage}{#1}\BODY\end{minipage}%
  \else
    \unhbox\snippetbox
  \fi}

\begin{document}
\begin{snippet}{1in}
  $\displaystyle x=a$
\end{snippet}

\begin{snippet}{1in}% push limits
  $\displaystyle x=a+b+c+d+e+f+g+h$
\end{snippet}


\begin{snippet}{1in}
  \begin{equation} z=c \notag \end{equation}
\end{snippet}

\end{document}

相关内容