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?
Are British MPs missing the point, with these 'Indicative Votes'?
Small nick on power cord from an electric alarm clock, and copper wiring exposed but intact
Can Sri Krishna be called 'a person'?
Gauss' Posthumous Publications?
Could you use a laser beam as a modulated carrier wave for radio signal?
Compensation for working overtime on Saturdays
How do I secure a TV wall mount?
My ex-girlfriend uses my Apple ID to login to her iPad, do I have to give her my Apple ID password to reset it?
How to unfasten electrical subpanel attached with ramset
How do I keep Mac Emacs from trapping M-`?
Car headlights in a world without electricity
Salesforce opportunity stages
Creating a script with console commands
Why can't we say "I have been having a dog"?
Is it possible to make a 9x9 table fit within the default margins?
Is the offspring between a demon and a celestial possible? If so what is it called and is it in a book somewhere?
A hang glider, sudden unexpected lift to 25,000 feet altitude, what could do this?
Traveling with my 5 year old daughter (as the father) without the mother from Germany to Mexico
logical reads on global temp table, but not on session-level temp table
What did the word "leisure" mean in late 18th Century usage?
What steps are necessary to read a Modern SSD in Medieval Europe?
Calculate the Mean mean of two numbers
Can I cast Thunderwave and be at the center of its bottom face, but not be affected by it?
Do I need to write [sic] when including a quotation with a number less than 10 that isn't written out?
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
3 hours ago
@Mico Yes, I know. But it does answer the question.
– marmot
3 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
3 hours ago
@Mico Yes, I know. But it does answer the question.
– marmot
3 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
3 hours ago
@Mico Yes, I know. But it does answer the question.
– marmot
3 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
3 hours ago
@marmot - That'll work for
pt
as the unit, but for em
, mm
, km
, etc. :-)– Mico
3 hours ago
@Mico Yes, I know. But it does answer the question.
– marmot
3 hours ago
@Mico Yes, I know. But it does answer the question.
– marmot
3 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 3 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 3 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 3 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
3 hours ago
@Mico Yes, I know. But it does answer the question.
– marmot
3 hours ago