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?
Which acid/base does a strong base/acid react when added to a buffer solution?
What does it mean 'exit 1' for a job status after rclone sync
Could a dragon use its wings to swim?
What is the difference between 'contrib' and 'non-free' packages repositories?
Why do we say “un seul M” and not “une seule M” even though M is a “consonne”?
How to pronounce fünf in 45
Small nick on power cord from an electric alarm clock, and copper wiring exposed but intact
Finitely generated matrix groups whose eigenvalues are all algebraic
How can I separate the number from the unit in argument?
Creating a script with console commands
Would a grinding machine be a simple and workable propulsion system for an interplanetary spacecraft?
Free fall ellipse or parabola?
Fastest algorithm to decide whether a (always halting) TM accepts a general string
Why did early computer designers eschew integers?
Why did the Drakh emissary look so blurred in S04:E11 "Lines of Communication"?
Incomplete cube
Can Sri Krishna be called 'a person'?
What day is it again?
Is it reasonable to ask other researchers to send me their previous grant applications?
Is it possible to create a QR code using text?
The sum of any ten consecutive numbers from a fibonacci sequence is divisible by 11
Are British MPs missing the point, with these 'Indicative Votes'?
Car headlights in a world without electricity
An elegant way to define a sequence
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
3 hours ago
@marmot - That'll work forpt
as the unit, but forem
,mm
,km
, etc. :-)
– Mico
1 hour ago
@Mico Yes, I know. But it does answer the question.
– marmot
1 hour 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 3 hours ago
Bernard
175k776207
175k776207
asked 3 hours ago
R. NR. N
313214
313214
documentclassarticle defcmd#1pt#1 begindocument cmd12pt enddocument
– marmot
3 hours ago
@marmot - That'll work forpt
as the unit, but forem
,mm
,km
, etc. :-)
– Mico
1 hour ago
@Mico Yes, I know. But it does answer the question.
– marmot
1 hour ago
add a comment |
documentclassarticle defcmd#1pt#1 begindocument cmd12pt enddocument
– marmot
3 hours ago
@marmot - That'll work forpt
as the unit, but forem
,mm
,km
, etc. :-)
– Mico
1 hour ago
@Mico Yes, I know. But it does answer the question.
– marmot
1 hour ago
documentclassarticle defcmd#1pt#1 begindocument cmd12pt enddocument
– marmot
3 hours ago
documentclassarticle defcmd#1pt#1 begindocument cmd12pt enddocument
– marmot
3 hours ago
@marmot - That'll work for
pt
as the unit, but for em
, mm
, km
, etc. :-)– Mico
1 hour ago
@marmot - That'll work for
pt
as the unit, but for em
, mm
, km
, etc. :-)– Mico
1 hour ago
@Mico Yes, I know. But it does answer the question.
– marmot
1 hour ago
@Mico Yes, I know. But it does answer the question.
– marmot
1 hour ago
add a comment |
3 Answers
3
active
oldest
votes
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 |
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 |
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
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 1 hour ago
answered 2 hours ago
MicoMico
285k31388778
285k31388778
add a comment |
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
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 1 hour ago
egregegreg
731k8819293244
731k8819293244
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 1 hour 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
3 hours ago
@marmot - That'll work for
pt
as the unit, but forem
,mm
,km
, etc. :-)– Mico
1 hour ago
@Mico Yes, I know. But it does answer the question.
– marmot
1 hour ago