我想知道如何更换乳胶中的部分字符串。具体来说,我给了一个测量(如3pt,10mm等),我想删除该测量的单位(所以3pt - > 3,10mm - > 10等)。 我想要一个命令来执行此操作的原因在于以下代码:
\newsavebox{\mybox}
\sbox{\mybox}{Hello World!}
\newlength{\myboxw}
\newlength{\myboxh}
\settowidth{\myboxw}{\usebox{\mybox}}
\settoheight{\myboxh}{\usebox{\mybox}}
\begin{picture}(\myboxw,\myboxh)
\end{picture}
基本上我创建了一个名为mybox的保存箱。我在mybox中插入“Hello World”字样。我创建了一个新的长度/宽度,称为myboxw / h。然后我获取mybox的宽度/高度,并将其存储在myboxw / h中。然后我建立了一个尺寸与myboxw / h相对应的图片环境。问题是myboxw返回的形式为“132.56pt”,而图片环境的输入必须是无量纲的:“\ begin {picture} {132.56,132.56}”。
所以,我需要一个命令来从字符串中去除测量单位。 谢谢。
答案 0 :(得分:1)
使用以下技巧:
{
\catcode`p=12 \catcode`t=12
\gdef\removedim#1pt{#1}
}
然后写:
\edef\myboxwnopt{\expandafter\removedim\the\myboxw}
\edef\myboxhnopt{\expandafter\removedim\the\myboxh}
\begin{picture}(\myboxwnopt,\myboxhnopt)
\end{picture}
答案 1 :(得分:1)
考虑https://www.ctan.org/pkg/xstring处的xstring
包。
答案 2 :(得分:0)
LaTeX内核 - latex.ltx
- 已经提供\strip@pt
,您可以使用它去除对长度的任何引用。另外,不需要为盒子的宽度和/或高度创建长度; \wd<box>
返回宽度,而\ht<box>
返回高度:
\documentclass{article}
\makeatletter
\let\stripdim\strip@pt % User interface for \strip@pt
\makeatother
\begin{document}
\newsavebox{\mybox}
\savebox{\mybox}{Hello World!}
\begin{picture}(\stripdim\wd\mybox,\stripdim\ht\mybox)
\put(0,0){Hello world}
\end{picture}
\end{document}