How can I separate the number from the unit in argument? The Next CEO of Stack OverflowA macro that expands to the length of its argumentMeasuring the distance from text to the top of the pageHow to add a unit to a command argument?Extracting the basename from a filepath argumentWrapper for siunitx' SI macro to automatically split number and unitHow do I use an auxilliary file for my own commands?Is there an `ex` unit equivalent for the capital 'X' in LaTeXDuplicate and modify section hierarchyMultiple Choice Answer Key in exam package at the end of documentCan one use the Potrzebie unit system in (La)TeX?
Mathematica command that allows it to read my intentions
Is it okay to majorly distort historical facts while writing a fiction story?
How seriously should I take size and weight limits of hand luggage?
Compilation of a 2d array and a 1d array
Is the sample correlation always positively correlated with the sample variance?
Horror film about a man brought out of cryogenic suspension without a soul, around 1990
Traveling with my 5 year old daughter (as the father) without the mother from Germany to Mexico
Does int main() need a declaration on C++?
Find the majority element, which appears more than half the time
Man transported from Alternate World into ours by a Neutrino Detector
Shortening a title without changing its meaning
Ising model simulation
Is a linearly independent set whose span is dense a Schauder basis?
Why does freezing point matter when picking cooler ice packs?
Masking layers by a vector polygon layer in QGIS
Finitely generated matrix groups whose eigenvalues are all algebraic
Planeswalker Ability and Death Timing
Is it possible to make a 9x9 table fit within the default margins?
Small nick on power cord from an electric alarm clock, and copper wiring exposed but intact
Would a grinding machine be a simple and workable propulsion system for an interplanetary spacecraft?
Create custom note boxes
Is a distribution that is normal, but highly skewed, considered Gaussian?
Why doesn't Shulchan Aruch include the laws of destroying fruit trees?
Why can't we say "I have been having a dog"?
How can I separate the number from the unit in argument?
The Next CEO of Stack OverflowA macro that expands to the length of its argumentMeasuring the distance from text to the top of the pageHow to add a unit to a command argument?Extracting the basename from a filepath argumentWrapper for siunitx' SI macro to automatically split number and unitHow do I use an auxilliary file for my own commands?Is there an `ex` unit equivalent for the capital 'X' in LaTeXDuplicate and modify section hierarchyMultiple Choice Answer Key in exam package at the end of documentCan one use the Potrzebie unit system in (La)TeX?
Let us say that I have a function, in which I give a number plus a unit. I would like to get only the number, is it possible ?
Here is a MWE:
documentclassarticle
usepackage[utf8]inputenc
newcommandcmd[1]#1 % change here to capture only the number.
begindocument
cmd12pt % print 12pt while I would get only 12, in a generic case.
enddocument
macros lengths unit-of-measure
add a comment |
Let us say that I have a function, in which I give a number plus a unit. I would like to get only the number, is it possible ?
Here is a MWE:
documentclassarticle
usepackage[utf8]inputenc
newcommandcmd[1]#1 % change here to capture only the number.
begindocument
cmd12pt % print 12pt while I would get only 12, in a generic case.
enddocument
macros lengths unit-of-measure
documentclassarticle defcmd#1pt#1 begindocument cmd12pt enddocument
– marmot
5 hours ago
@marmot - That'll work forpt
as the unit, but forem
,mm
,km
, etc. :-)
– Mico
4 hours ago
@Mico Yes, I know. But it does answer the question.
– marmot
4 hours ago
add a comment |
Let us say that I have a function, in which I give a number plus a unit. I would like to get only the number, is it possible ?
Here is a MWE:
documentclassarticle
usepackage[utf8]inputenc
newcommandcmd[1]#1 % change here to capture only the number.
begindocument
cmd12pt % print 12pt while I would get only 12, in a generic case.
enddocument
macros lengths unit-of-measure
Let us say that I have a function, in which I give a number plus a unit. I would like to get only the number, is it possible ?
Here is a MWE:
documentclassarticle
usepackage[utf8]inputenc
newcommandcmd[1]#1 % change here to capture only the number.
begindocument
cmd12pt % print 12pt while I would get only 12, in a generic case.
enddocument
macros lengths unit-of-measure
macros lengths unit-of-measure
edited 5 hours ago
Bernard
175k776207
175k776207
asked 5 hours ago
R. NR. N
318214
318214
documentclassarticle defcmd#1pt#1 begindocument cmd12pt enddocument
– marmot
5 hours ago
@marmot - That'll work forpt
as the unit, but forem
,mm
,km
, etc. :-)
– Mico
4 hours ago
@Mico Yes, I know. But it does answer the question.
– marmot
4 hours ago
add a comment |
documentclassarticle defcmd#1pt#1 begindocument cmd12pt enddocument
– marmot
5 hours ago
@marmot - That'll work forpt
as the unit, but forem
,mm
,km
, etc. :-)
– Mico
4 hours ago
@Mico Yes, I know. But it does answer the question.
– marmot
4 hours ago
documentclassarticle defcmd#1pt#1 begindocument cmd12pt enddocument
– marmot
5 hours ago
documentclassarticle defcmd#1pt#1 begindocument cmd12pt enddocument
– marmot
5 hours ago
@marmot - That'll work for
pt
as the unit, but for em
, mm
, km
, etc. :-)– Mico
4 hours ago
@marmot - That'll work for
pt
as the unit, but for em
, mm
, km
, etc. :-)– Mico
4 hours ago
@Mico Yes, I know. But it does answer the question.
– marmot
4 hours ago
@Mico Yes, I know. But it does answer the question.
– marmot
4 hours ago
add a comment |
3 Answers
3
active
oldest
votes
Assuming the unit consists of two characters, you can do it in an expandable way:
documentclassarticle
usepackagexparse
ExplSyntaxOn
NewExpandableDocumentCommandgetnumberm
tl_range:nnn #1 1 -3 % from the first to the last but two character
ExplSyntaxOff
begindocument
getnumber12pt, $getnumber-47km$, getnumber+5.7in, getnumber3,14159CM
enddocument
add a comment |
Here's a LuaLaTeX-based solution. It sets up a LaTeX macro called cmd
-- a "wrapper" -- that invokes a Lua function that does all of the work. The Lua function expects its argument to consist of two parts: the first part is numeric, i.e., consists of the digits 0
thru 9
, plus possibly the characters ,
, .
, -
, and +
; the part second is alphabetic, i.e., uppercase and lowercase letters, plus possibly whitespace.
Per your typesetting objective, the function returns just the numeric, part. If the argument of cmd
does not start with a numeric component, the prefix part is discarded as well. E.g., the output of argXX55km
is 55
, and the output of cmdkm
is blank (empty).
% !TEX TS-program = lualatex
documentclassarticle
usepackageluacode % for 'luacode' environment
beginluacode
function get_num ( s )
tex.sprint ( ( s:gsub ( "([%d%.%,%-%+]*)([%a%s]*)" , "%1" ) ) )
end
endluacode
newcommandcmd[1]directluaget_num("#1") % "wrapper" macro
begindocument
cmd12pt, $cmd-47km$, cmd+5.7in, cmd3,14159CM
enddocument
add a comment |
pgf
does that without the need to invoke external programs and converts the units into points.
documentclassarticle
usepackagepgf
newcommandcmd[1]pgfmathparse#1pgfmathresult
begindocument
cmd12pt cmd1cm
enddocument
Note that if you're bugged by the .0
: this can easily be removed with pgfmathprintnumber[<your number format here>]pgfmathresult
if you choose a number format that you like.
add a comment |
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "85"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f482628%2fhow-can-i-separate-the-number-from-the-unit-in-argument%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
Assuming the unit consists of two characters, you can do it in an expandable way:
documentclassarticle
usepackagexparse
ExplSyntaxOn
NewExpandableDocumentCommandgetnumberm
tl_range:nnn #1 1 -3 % from the first to the last but two character
ExplSyntaxOff
begindocument
getnumber12pt, $getnumber-47km$, getnumber+5.7in, getnumber3,14159CM
enddocument
add a comment |
Assuming the unit consists of two characters, you can do it in an expandable way:
documentclassarticle
usepackagexparse
ExplSyntaxOn
NewExpandableDocumentCommandgetnumberm
tl_range:nnn #1 1 -3 % from the first to the last but two character
ExplSyntaxOff
begindocument
getnumber12pt, $getnumber-47km$, getnumber+5.7in, getnumber3,14159CM
enddocument
add a comment |
Assuming the unit consists of two characters, you can do it in an expandable way:
documentclassarticle
usepackagexparse
ExplSyntaxOn
NewExpandableDocumentCommandgetnumberm
tl_range:nnn #1 1 -3 % from the first to the last but two character
ExplSyntaxOff
begindocument
getnumber12pt, $getnumber-47km$, getnumber+5.7in, getnumber3,14159CM
enddocument
Assuming the unit consists of two characters, you can do it in an expandable way:
documentclassarticle
usepackagexparse
ExplSyntaxOn
NewExpandableDocumentCommandgetnumberm
tl_range:nnn #1 1 -3 % from the first to the last but two character
ExplSyntaxOff
begindocument
getnumber12pt, $getnumber-47km$, getnumber+5.7in, getnumber3,14159CM
enddocument
answered 4 hours ago
egregegreg
731k8819293245
731k8819293245
add a comment |
add a comment |
Here's a LuaLaTeX-based solution. It sets up a LaTeX macro called cmd
-- a "wrapper" -- that invokes a Lua function that does all of the work. The Lua function expects its argument to consist of two parts: the first part is numeric, i.e., consists of the digits 0
thru 9
, plus possibly the characters ,
, .
, -
, and +
; the part second is alphabetic, i.e., uppercase and lowercase letters, plus possibly whitespace.
Per your typesetting objective, the function returns just the numeric, part. If the argument of cmd
does not start with a numeric component, the prefix part is discarded as well. E.g., the output of argXX55km
is 55
, and the output of cmdkm
is blank (empty).
% !TEX TS-program = lualatex
documentclassarticle
usepackageluacode % for 'luacode' environment
beginluacode
function get_num ( s )
tex.sprint ( ( s:gsub ( "([%d%.%,%-%+]*)([%a%s]*)" , "%1" ) ) )
end
endluacode
newcommandcmd[1]directluaget_num("#1") % "wrapper" macro
begindocument
cmd12pt, $cmd-47km$, cmd+5.7in, cmd3,14159CM
enddocument
add a comment |
Here's a LuaLaTeX-based solution. It sets up a LaTeX macro called cmd
-- a "wrapper" -- that invokes a Lua function that does all of the work. The Lua function expects its argument to consist of two parts: the first part is numeric, i.e., consists of the digits 0
thru 9
, plus possibly the characters ,
, .
, -
, and +
; the part second is alphabetic, i.e., uppercase and lowercase letters, plus possibly whitespace.
Per your typesetting objective, the function returns just the numeric, part. If the argument of cmd
does not start with a numeric component, the prefix part is discarded as well. E.g., the output of argXX55km
is 55
, and the output of cmdkm
is blank (empty).
% !TEX TS-program = lualatex
documentclassarticle
usepackageluacode % for 'luacode' environment
beginluacode
function get_num ( s )
tex.sprint ( ( s:gsub ( "([%d%.%,%-%+]*)([%a%s]*)" , "%1" ) ) )
end
endluacode
newcommandcmd[1]directluaget_num("#1") % "wrapper" macro
begindocument
cmd12pt, $cmd-47km$, cmd+5.7in, cmd3,14159CM
enddocument
add a comment |
Here's a LuaLaTeX-based solution. It sets up a LaTeX macro called cmd
-- a "wrapper" -- that invokes a Lua function that does all of the work. The Lua function expects its argument to consist of two parts: the first part is numeric, i.e., consists of the digits 0
thru 9
, plus possibly the characters ,
, .
, -
, and +
; the part second is alphabetic, i.e., uppercase and lowercase letters, plus possibly whitespace.
Per your typesetting objective, the function returns just the numeric, part. If the argument of cmd
does not start with a numeric component, the prefix part is discarded as well. E.g., the output of argXX55km
is 55
, and the output of cmdkm
is blank (empty).
% !TEX TS-program = lualatex
documentclassarticle
usepackageluacode % for 'luacode' environment
beginluacode
function get_num ( s )
tex.sprint ( ( s:gsub ( "([%d%.%,%-%+]*)([%a%s]*)" , "%1" ) ) )
end
endluacode
newcommandcmd[1]directluaget_num("#1") % "wrapper" macro
begindocument
cmd12pt, $cmd-47km$, cmd+5.7in, cmd3,14159CM
enddocument
Here's a LuaLaTeX-based solution. It sets up a LaTeX macro called cmd
-- a "wrapper" -- that invokes a Lua function that does all of the work. The Lua function expects its argument to consist of two parts: the first part is numeric, i.e., consists of the digits 0
thru 9
, plus possibly the characters ,
, .
, -
, and +
; the part second is alphabetic, i.e., uppercase and lowercase letters, plus possibly whitespace.
Per your typesetting objective, the function returns just the numeric, part. If the argument of cmd
does not start with a numeric component, the prefix part is discarded as well. E.g., the output of argXX55km
is 55
, and the output of cmdkm
is blank (empty).
% !TEX TS-program = lualatex
documentclassarticle
usepackageluacode % for 'luacode' environment
beginluacode
function get_num ( s )
tex.sprint ( ( s:gsub ( "([%d%.%,%-%+]*)([%a%s]*)" , "%1" ) ) )
end
endluacode
newcommandcmd[1]directluaget_num("#1") % "wrapper" macro
begindocument
cmd12pt, $cmd-47km$, cmd+5.7in, cmd3,14159CM
enddocument
edited 4 hours ago
answered 4 hours ago
MicoMico
285k31388778
285k31388778
add a comment |
add a comment |
pgf
does that without the need to invoke external programs and converts the units into points.
documentclassarticle
usepackagepgf
newcommandcmd[1]pgfmathparse#1pgfmathresult
begindocument
cmd12pt cmd1cm
enddocument
Note that if you're bugged by the .0
: this can easily be removed with pgfmathprintnumber[<your number format here>]pgfmathresult
if you choose a number format that you like.
add a comment |
pgf
does that without the need to invoke external programs and converts the units into points.
documentclassarticle
usepackagepgf
newcommandcmd[1]pgfmathparse#1pgfmathresult
begindocument
cmd12pt cmd1cm
enddocument
Note that if you're bugged by the .0
: this can easily be removed with pgfmathprintnumber[<your number format here>]pgfmathresult
if you choose a number format that you like.
add a comment |
pgf
does that without the need to invoke external programs and converts the units into points.
documentclassarticle
usepackagepgf
newcommandcmd[1]pgfmathparse#1pgfmathresult
begindocument
cmd12pt cmd1cm
enddocument
Note that if you're bugged by the .0
: this can easily be removed with pgfmathprintnumber[<your number format here>]pgfmathresult
if you choose a number format that you like.
pgf
does that without the need to invoke external programs and converts the units into points.
documentclassarticle
usepackagepgf
newcommandcmd[1]pgfmathparse#1pgfmathresult
begindocument
cmd12pt cmd1cm
enddocument
Note that if you're bugged by the .0
: this can easily be removed with pgfmathprintnumber[<your number format here>]pgfmathresult
if you choose a number format that you like.
answered 4 hours ago
marmotmarmot
113k5145275
113k5145275
add a comment |
add a comment |
Thanks for contributing an answer to TeX - LaTeX Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f482628%2fhow-can-i-separate-the-number-from-the-unit-in-argument%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
documentclassarticle defcmd#1pt#1 begindocument cmd12pt enddocument
– marmot
5 hours ago
@marmot - That'll work for
pt
as the unit, but forem
,mm
,km
, etc. :-)– Mico
4 hours ago
@Mico Yes, I know. But it does answer the question.
– marmot
4 hours ago