![如何强制“独立”代码片段的最小宽度](https://linux22.com/image/441719/%E5%A6%82%E4%BD%95%E5%BC%BA%E5%88%B6%E2%80%9C%E7%8B%AC%E7%AB%8B%E2%80%9D%E4%BB%A3%E7%A0%81%E7%89%87%E6%AE%B5%E7%9A%84%E6%9C%80%E5%B0%8F%E5%AE%BD%E5%BA%A6.png)
我的问题非常类似这个。但是,我的要求是最小宽度,而不是最小高度。
我需要用 LaTeX 创建公式的小片段。我使用 TexMaker 写出公式,然后将我拥有的所有内容导出到 PNG-s。
我需要一种方法来指定最终片段的最小宽度。因此,如果我的公式的长度超过了最小值,则宽度将设置为其长度。但是,如果所述长度不超过最小值,则 PNG 的宽度将设置为最小值。
答案1
粗略建议,30mm
是最小宽度参数,A
是文档的所需内容。更改0pt
为0.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}