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?
How should I connect my cat5 cable to connectors having an orange-green line?
Cannot restore registry to default in Windows 10?
How can I separate the number from the unit in argument?
Traveling with my 5 year old daughter (as the father) without the mother from Germany to Mexico
Is there a rule of thumb for determining the amount one should accept for of a settlement offer?
Mathematica command that allows it to read my intentions
Car headlights in a world without electricity
Incomplete cube
Calculating discount not working
Shortening a title without changing its meaning
Man transported from Alternate World into ours by a Neutrino Detector
How to find if SQL server backup is encrypted with TDE without restoring the backup
Does the Idaho Potato Commission associate potato skins with healthy eating?
Gauss' Posthumous Publications?
What day is it again?
Is it possible to create a QR code using text?
Upgrading From a 9 Speed Sora Derailleur?
Finitely generated matrix groups whose eigenvalues are all algebraic
How to unfasten electrical subpanel attached with ramset
Raspberry pi 3 B with Ubuntu 18.04 server arm64: what pi version
What does this strange code stamp on my passport mean?
Why was Sir Cadogan fired?
Simplify trigonometric expression using trigonometric identities
Can this transistor (2n2222) take 6V on emitter-base? Am I reading datasheet incorrectly?
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
6 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 6 hours ago
Bernard
175k776207
175k776207
asked 6 hours ago
R. NR. N
318214
318214
documentclassarticle defcmd#1pt#1 begindocument cmd12pt enddocument
– marmot
6 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
6 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
6 hours ago
documentclassarticle defcmd#1pt#1 begindocument cmd12pt enddocument
– marmot
6 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
6 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