Kerning for subscripts of sigma? The 2019 Stack Overflow Developer Survey Results Are InSubscript kerning for specific letters in XeLaTeXMargin kerning in Xe(La)TeX for TeXlive 2010: how to enable?Fix math mode kerning of “C”Turning off TeXnical enhancementsKerning of subscriptsPair kerning strategies in (pdf)LaTeXKerning super- and subscripts “semantically”Subscript kerning for specific letters in XeLaTeXMicrotype kerning won't work with quotationmarksKerning of HyphensIs there a LuaLaTeX solution to adjust superscript kerning on large delimiters?

Deal with toxic manager when you can't quit

Why doesn't UInt have a toDouble()?

Does HR tell a hiring manager about salary negotiations?

What is the most efficient way to store a numeric range?

How to display lines in a file like ls displays files in a directory?

Correct punctuation for showing a character's confusion

Inverse Relationship Between Precision and Recall

What do hard-Brexiteers want with respect to the Irish border?

For what reasons would an animal species NOT cross a *horizontal* land bridge?

Why can't devices on different VLANs, but on the same subnet, communicate?

What do I do when my TA workload is more than expected?

Why “相同意思的词” is called “同义词” instead of "同意词"?

Will it cause any balance problems to have PCs level up and gain the benefits of a long rest mid-fight?

Output the Arecibo Message

What is this business jet?

Ubuntu Server install with full GUI

Loose spokes after only a few rides

Did any laptop computers have a built-in 5 1/4 inch floppy drive?

Is it correct to say the Neural Networks are an alternative way of performing Maximum Likelihood Estimation? if not, why?

What could be the right powersource for 15 seconds lifespan disposable giant chainsaw?

Why does the nucleus not repel itself?

Match Roman Numerals

How do PCB vias affect signal quality?

Button changing its text & action. Good or terrible?



Kerning for subscripts of sigma?



The 2019 Stack Overflow Developer Survey Results Are InSubscript kerning for specific letters in XeLaTeXMargin kerning in Xe(La)TeX for TeXlive 2010: how to enable?Fix math mode kerning of “C”Turning off TeXnical enhancementsKerning of subscriptsPair kerning strategies in (pdf)LaTeXKerning super- and subscripts “semantically”Subscript kerning for specific letters in XeLaTeXMicrotype kerning won't work with quotationmarksKerning of HyphensIs there a LuaLaTeX solution to adjust superscript kerning on large delimiters?










3















Is there any way to reduce the distance inside σ₀ and between sigma and its subscript in general in the following setup automatically? That is, each time you type in sigma_0 (or sigma_1 etc.), you wish the actual output to be more consistent with sigma_!0 (or sigma_!1 etc.).



Input:



documentclassbook
usepackagefontspec
usepackage[american,british,french,norsk,german,ngerman]babel
usepackagemathtools
mathtoolssetmathic=true %%% See http://tex.stackexchange.com/a/3496/
usepackageamssymb
usepackageunicode-math
setmainfont[Ligatures=TeX]TeX Gyre Termes
setsansfontTeX Gyre Heros[Scale=0.88]
setmonofontTeX Gyre Cursor
setmathfont[Ligatures=TeX]TeX Gyre Termes Math
setmathfont[Ligatures=TeX,range=setminus]Asana Math
setmathfont[Ligatures=TeX,Extension=.otf,range="2A3E,BoldFont=XITSMath-Bold]XITSMath-Regular%%% The fat semicolon
usepackage[babel=true,verbose=errors]microtype
begindocument
[sigma_0 sigma_0]
[sigma_!0 sigma_!0]
enddocument


Output so far:



enter image description here



As you see, in the upper line the left zero seems to be more close to the right σ (which doesn't make any sense) than to the left one (which would make sense). The kerning in the lower line makes more sense.



I guess, this would be easier than Subscript kerning for specific letters in XeLaTeX, since we already have sigma as a macro and can redefine it.



For which letters in the subscript position the kerning should be improved (and how) is intentionally left unspecified; improving the kerning in sigma_<any single arabic digit or any single Latin small letter> would suffice as a start. Of course, for σ_mathrmT we might need less kerning (e.g., only -1mu rather than -3mu), and that's why capital Latin letters would need more work (and are not asked for in the first step).










share|improve this question
























  • Do you want to change the behaviour for sigma_<any single number>, or for sigma_<any single character>, or sigma_<anything>, or somthing else?

    – Phelype Oleinik
    2 hours ago











  • @PhelypeOleinik Question updated.

    – user49915
    1 hour ago















3















Is there any way to reduce the distance inside σ₀ and between sigma and its subscript in general in the following setup automatically? That is, each time you type in sigma_0 (or sigma_1 etc.), you wish the actual output to be more consistent with sigma_!0 (or sigma_!1 etc.).



Input:



documentclassbook
usepackagefontspec
usepackage[american,british,french,norsk,german,ngerman]babel
usepackagemathtools
mathtoolssetmathic=true %%% See http://tex.stackexchange.com/a/3496/
usepackageamssymb
usepackageunicode-math
setmainfont[Ligatures=TeX]TeX Gyre Termes
setsansfontTeX Gyre Heros[Scale=0.88]
setmonofontTeX Gyre Cursor
setmathfont[Ligatures=TeX]TeX Gyre Termes Math
setmathfont[Ligatures=TeX,range=setminus]Asana Math
setmathfont[Ligatures=TeX,Extension=.otf,range="2A3E,BoldFont=XITSMath-Bold]XITSMath-Regular%%% The fat semicolon
usepackage[babel=true,verbose=errors]microtype
begindocument
[sigma_0 sigma_0]
[sigma_!0 sigma_!0]
enddocument


Output so far:



enter image description here



As you see, in the upper line the left zero seems to be more close to the right σ (which doesn't make any sense) than to the left one (which would make sense). The kerning in the lower line makes more sense.



I guess, this would be easier than Subscript kerning for specific letters in XeLaTeX, since we already have sigma as a macro and can redefine it.



For which letters in the subscript position the kerning should be improved (and how) is intentionally left unspecified; improving the kerning in sigma_<any single arabic digit or any single Latin small letter> would suffice as a start. Of course, for σ_mathrmT we might need less kerning (e.g., only -1mu rather than -3mu), and that's why capital Latin letters would need more work (and are not asked for in the first step).










share|improve this question
























  • Do you want to change the behaviour for sigma_<any single number>, or for sigma_<any single character>, or sigma_<anything>, or somthing else?

    – Phelype Oleinik
    2 hours ago











  • @PhelypeOleinik Question updated.

    – user49915
    1 hour ago













3












3








3


1






Is there any way to reduce the distance inside σ₀ and between sigma and its subscript in general in the following setup automatically? That is, each time you type in sigma_0 (or sigma_1 etc.), you wish the actual output to be more consistent with sigma_!0 (or sigma_!1 etc.).



Input:



documentclassbook
usepackagefontspec
usepackage[american,british,french,norsk,german,ngerman]babel
usepackagemathtools
mathtoolssetmathic=true %%% See http://tex.stackexchange.com/a/3496/
usepackageamssymb
usepackageunicode-math
setmainfont[Ligatures=TeX]TeX Gyre Termes
setsansfontTeX Gyre Heros[Scale=0.88]
setmonofontTeX Gyre Cursor
setmathfont[Ligatures=TeX]TeX Gyre Termes Math
setmathfont[Ligatures=TeX,range=setminus]Asana Math
setmathfont[Ligatures=TeX,Extension=.otf,range="2A3E,BoldFont=XITSMath-Bold]XITSMath-Regular%%% The fat semicolon
usepackage[babel=true,verbose=errors]microtype
begindocument
[sigma_0 sigma_0]
[sigma_!0 sigma_!0]
enddocument


Output so far:



enter image description here



As you see, in the upper line the left zero seems to be more close to the right σ (which doesn't make any sense) than to the left one (which would make sense). The kerning in the lower line makes more sense.



I guess, this would be easier than Subscript kerning for specific letters in XeLaTeX, since we already have sigma as a macro and can redefine it.



For which letters in the subscript position the kerning should be improved (and how) is intentionally left unspecified; improving the kerning in sigma_<any single arabic digit or any single Latin small letter> would suffice as a start. Of course, for σ_mathrmT we might need less kerning (e.g., only -1mu rather than -3mu), and that's why capital Latin letters would need more work (and are not asked for in the first step).










share|improve this question
















Is there any way to reduce the distance inside σ₀ and between sigma and its subscript in general in the following setup automatically? That is, each time you type in sigma_0 (or sigma_1 etc.), you wish the actual output to be more consistent with sigma_!0 (or sigma_!1 etc.).



Input:



documentclassbook
usepackagefontspec
usepackage[american,british,french,norsk,german,ngerman]babel
usepackagemathtools
mathtoolssetmathic=true %%% See http://tex.stackexchange.com/a/3496/
usepackageamssymb
usepackageunicode-math
setmainfont[Ligatures=TeX]TeX Gyre Termes
setsansfontTeX Gyre Heros[Scale=0.88]
setmonofontTeX Gyre Cursor
setmathfont[Ligatures=TeX]TeX Gyre Termes Math
setmathfont[Ligatures=TeX,range=setminus]Asana Math
setmathfont[Ligatures=TeX,Extension=.otf,range="2A3E,BoldFont=XITSMath-Bold]XITSMath-Regular%%% The fat semicolon
usepackage[babel=true,verbose=errors]microtype
begindocument
[sigma_0 sigma_0]
[sigma_!0 sigma_!0]
enddocument


Output so far:



enter image description here



As you see, in the upper line the left zero seems to be more close to the right σ (which doesn't make any sense) than to the left one (which would make sense). The kerning in the lower line makes more sense.



I guess, this would be easier than Subscript kerning for specific letters in XeLaTeX, since we already have sigma as a macro and can redefine it.



For which letters in the subscript position the kerning should be improved (and how) is intentionally left unspecified; improving the kerning in sigma_<any single arabic digit or any single Latin small letter> would suffice as a start. Of course, for σ_mathrmT we might need less kerning (e.g., only -1mu rather than -3mu), and that's why capital Latin letters would need more work (and are not asked for in the first step).







xetex microtype kerning






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 6 mins ago







user49915

















asked 2 hours ago









user49915user49915

761122




761122












  • Do you want to change the behaviour for sigma_<any single number>, or for sigma_<any single character>, or sigma_<anything>, or somthing else?

    – Phelype Oleinik
    2 hours ago











  • @PhelypeOleinik Question updated.

    – user49915
    1 hour ago

















  • Do you want to change the behaviour for sigma_<any single number>, or for sigma_<any single character>, or sigma_<anything>, or somthing else?

    – Phelype Oleinik
    2 hours ago











  • @PhelypeOleinik Question updated.

    – user49915
    1 hour ago
















Do you want to change the behaviour for sigma_<any single number>, or for sigma_<any single character>, or sigma_<anything>, or somthing else?

– Phelype Oleinik
2 hours ago





Do you want to change the behaviour for sigma_<any single number>, or for sigma_<any single character>, or sigma_<anything>, or somthing else?

– Phelype Oleinik
2 hours ago













@PhelypeOleinik Question updated.

– user49915
1 hour ago





@PhelypeOleinik Question updated.

– user49915
1 hour ago










2 Answers
2






active

oldest

votes


















3














The following definition does it:



ExplSyntaxOn
cs_new_eq:NN __userxlixk_actual_sigma: sigma
RenewDocumentCommandsigma
__userxlixk_sigma:
cs_new_protected:Npn __userxlixk_sigma:

peek_catcode_remove:NTF c_math_subscript_token
__userxlixk_sigma_check_group:n
__userxlixk_actual_sigma:

cs_new_protected:Npn __userxlixk_sigma_check_group:n #1

tl_if_single_token:nTF #1
__userxlixk_actual_sigma: c_math_subscript_token ! #1
__userxlixk_actual_sigma: c_math_subscript_token #1

ExplSyntaxOff


I save the definition of sigma in __userxlixk_actual_sigma: then redefine sigma to check:



  1. if it is followed by a c_math_subscript_token: if it is not, then just print __userxlixk_actual_sigma: otherwise;


  2. grab what follows the subscript token as argument and check if the argument consists of a single token: if it does, apply a !, otherwise print normally.


Here's the output before and after the redefinition (I used LuaTeX and lua-visual-debug to show the negative kern):




enter image description here




Code:



documentclass[varwidth]standalone
usepackagelua-visual-debug
usepackageluatexbase
usepackageunravel
usepackagefontspec
usepackage[american,british,french,norsk,german,ngerman]babel
usepackagemathtools
mathtoolssetmathic=true %%% See http://tex.stackexchange.com/a/3496/
usepackageamssymb
usepackageunicode-math
setmainfont[Ligatures=TeX]TeX Gyre Termes
setsansfontTeX Gyre Heros[Scale=0.88]
setmonofontTeX Gyre Cursor
setmathfont[Ligatures=TeX]TeX Gyre Termes Math
setmathfont[Ligatures=TeX,range=setminus]Asana Math
setmathfont[Ligatures=TeX,Extension=.otf,range="2A3E,BoldFont=XITSMath-Bold]XITSMath-Regular%%% The fat semicolon
usepackage[babel=true,verbose=errors]microtype
begindocument
$sigma_abc sigma_0 sigma_0$

ExplSyntaxOn
cs_new_eq:NN __userxlixk_actual_sigma: sigma
RenewDocumentCommandsigma
__userxlixk_sigma:
cs_new_protected:Npn __userxlixk_sigma:

peek_catcode_remove:NTF c_math_subscript_token
__userxlixk_sigma_check_group:n
__userxlixk_actual_sigma:

cs_new_protected:Npn __userxlixk_sigma_check_group:n #1

tl_if_single_token:nTF #1
__userxlixk_actual_sigma: c_math_subscript_token ! #1
__userxlixk_actual_sigma: c_math_subscript_token #1

ExplSyntaxOff

$sigma_abc sigma_0 sigma_0$
enddocument


Note, however, that this code will work if you use sigma_a^b but not if you use sigma^b_a.






share|improve this answer























  • To make it work for both sigma_a^b and sigma^b_a you could use an e-type argument (“embellishments”).

    – Henri Menke
    52 mins ago











  • First, thanks! Second, could you adapt your code slightly such that it checks that the first subscript letter (or all subscript letters, it doesn't matter as of now) is small alphanumeric rather than checking that the whole subscript is single-token?

    – user49915
    42 mins ago



















3














I'd use the e argument type of xparse.



documentclassbook
usepackagefontspec
usepackage[american,british,french,norsk,german,ngerman]babel
usepackagemathtools
usepackageamssymb
usepackageunicode-math
usepackage[babel=true,verbose=errors]microtype

setmainfontTeX Gyre Termes
setsansfontTeX Gyre Heros[Scale=0.88]
setmonofontTeX Gyre Cursor
setmathfontTeX Gyre Termes Math
setmathfontAsana Math[
range=setminus,
]
setmathfontXITSMath-Regular[
Extension=.otf,
range="2A3E,
BoldFont=XITSMath-Bold,
]

%mathtoolssetmathic=true %%% See http://tex.stackexchange.com/a/3496/

AtBeginDocument%
letstandardsigmasigma
letsigmakernedsigma


NewDocumentCommandkernedsigmae_^%
standardsigma
IfValueT#1_!#1%
IfValueT#2^#2%


begindocument

[sigma_0 sigma_0^2 sigma^2_0]
[standardsigma_!0 standardsigma_!0^2 standardsigma^2_!0]

enddocument


enter image description here






share|improve this answer























  • First, thanks! Second, could you adapt your code slightly such that it checks that the first subscript letter (or all subscript letters, it doesn't matter as of now) is small alphanumeric? We don't really know whether it would produce a pleasant kerning for all other possible subscripts, would we?

    – user49915
    31 mins ago












  • @user49915 I'm not sure what could be the difference. One can quite easily exclude some symbols from being kerned.

    – egreg
    26 mins ago











  • I'm afraid that some sub/superscripts might need a little bit different kerning, e.g. sigma_top. There is no overlap, of course, but I'm feeling slightly uneasy about allowing for all possible subscripts to be moved left by 3mu.

    – user49915
    9 mins ago












Your Answer








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
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f484404%2fkerning-for-subscripts-of-sigma%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









3














The following definition does it:



ExplSyntaxOn
cs_new_eq:NN __userxlixk_actual_sigma: sigma
RenewDocumentCommandsigma
__userxlixk_sigma:
cs_new_protected:Npn __userxlixk_sigma:

peek_catcode_remove:NTF c_math_subscript_token
__userxlixk_sigma_check_group:n
__userxlixk_actual_sigma:

cs_new_protected:Npn __userxlixk_sigma_check_group:n #1

tl_if_single_token:nTF #1
__userxlixk_actual_sigma: c_math_subscript_token ! #1
__userxlixk_actual_sigma: c_math_subscript_token #1

ExplSyntaxOff


I save the definition of sigma in __userxlixk_actual_sigma: then redefine sigma to check:



  1. if it is followed by a c_math_subscript_token: if it is not, then just print __userxlixk_actual_sigma: otherwise;


  2. grab what follows the subscript token as argument and check if the argument consists of a single token: if it does, apply a !, otherwise print normally.


Here's the output before and after the redefinition (I used LuaTeX and lua-visual-debug to show the negative kern):




enter image description here




Code:



documentclass[varwidth]standalone
usepackagelua-visual-debug
usepackageluatexbase
usepackageunravel
usepackagefontspec
usepackage[american,british,french,norsk,german,ngerman]babel
usepackagemathtools
mathtoolssetmathic=true %%% See http://tex.stackexchange.com/a/3496/
usepackageamssymb
usepackageunicode-math
setmainfont[Ligatures=TeX]TeX Gyre Termes
setsansfontTeX Gyre Heros[Scale=0.88]
setmonofontTeX Gyre Cursor
setmathfont[Ligatures=TeX]TeX Gyre Termes Math
setmathfont[Ligatures=TeX,range=setminus]Asana Math
setmathfont[Ligatures=TeX,Extension=.otf,range="2A3E,BoldFont=XITSMath-Bold]XITSMath-Regular%%% The fat semicolon
usepackage[babel=true,verbose=errors]microtype
begindocument
$sigma_abc sigma_0 sigma_0$

ExplSyntaxOn
cs_new_eq:NN __userxlixk_actual_sigma: sigma
RenewDocumentCommandsigma
__userxlixk_sigma:
cs_new_protected:Npn __userxlixk_sigma:

peek_catcode_remove:NTF c_math_subscript_token
__userxlixk_sigma_check_group:n
__userxlixk_actual_sigma:

cs_new_protected:Npn __userxlixk_sigma_check_group:n #1

tl_if_single_token:nTF #1
__userxlixk_actual_sigma: c_math_subscript_token ! #1
__userxlixk_actual_sigma: c_math_subscript_token #1

ExplSyntaxOff

$sigma_abc sigma_0 sigma_0$
enddocument


Note, however, that this code will work if you use sigma_a^b but not if you use sigma^b_a.






share|improve this answer























  • To make it work for both sigma_a^b and sigma^b_a you could use an e-type argument (“embellishments”).

    – Henri Menke
    52 mins ago











  • First, thanks! Second, could you adapt your code slightly such that it checks that the first subscript letter (or all subscript letters, it doesn't matter as of now) is small alphanumeric rather than checking that the whole subscript is single-token?

    – user49915
    42 mins ago
















3














The following definition does it:



ExplSyntaxOn
cs_new_eq:NN __userxlixk_actual_sigma: sigma
RenewDocumentCommandsigma
__userxlixk_sigma:
cs_new_protected:Npn __userxlixk_sigma:

peek_catcode_remove:NTF c_math_subscript_token
__userxlixk_sigma_check_group:n
__userxlixk_actual_sigma:

cs_new_protected:Npn __userxlixk_sigma_check_group:n #1

tl_if_single_token:nTF #1
__userxlixk_actual_sigma: c_math_subscript_token ! #1
__userxlixk_actual_sigma: c_math_subscript_token #1

ExplSyntaxOff


I save the definition of sigma in __userxlixk_actual_sigma: then redefine sigma to check:



  1. if it is followed by a c_math_subscript_token: if it is not, then just print __userxlixk_actual_sigma: otherwise;


  2. grab what follows the subscript token as argument and check if the argument consists of a single token: if it does, apply a !, otherwise print normally.


Here's the output before and after the redefinition (I used LuaTeX and lua-visual-debug to show the negative kern):




enter image description here




Code:



documentclass[varwidth]standalone
usepackagelua-visual-debug
usepackageluatexbase
usepackageunravel
usepackagefontspec
usepackage[american,british,french,norsk,german,ngerman]babel
usepackagemathtools
mathtoolssetmathic=true %%% See http://tex.stackexchange.com/a/3496/
usepackageamssymb
usepackageunicode-math
setmainfont[Ligatures=TeX]TeX Gyre Termes
setsansfontTeX Gyre Heros[Scale=0.88]
setmonofontTeX Gyre Cursor
setmathfont[Ligatures=TeX]TeX Gyre Termes Math
setmathfont[Ligatures=TeX,range=setminus]Asana Math
setmathfont[Ligatures=TeX,Extension=.otf,range="2A3E,BoldFont=XITSMath-Bold]XITSMath-Regular%%% The fat semicolon
usepackage[babel=true,verbose=errors]microtype
begindocument
$sigma_abc sigma_0 sigma_0$

ExplSyntaxOn
cs_new_eq:NN __userxlixk_actual_sigma: sigma
RenewDocumentCommandsigma
__userxlixk_sigma:
cs_new_protected:Npn __userxlixk_sigma:

peek_catcode_remove:NTF c_math_subscript_token
__userxlixk_sigma_check_group:n
__userxlixk_actual_sigma:

cs_new_protected:Npn __userxlixk_sigma_check_group:n #1

tl_if_single_token:nTF #1
__userxlixk_actual_sigma: c_math_subscript_token ! #1
__userxlixk_actual_sigma: c_math_subscript_token #1

ExplSyntaxOff

$sigma_abc sigma_0 sigma_0$
enddocument


Note, however, that this code will work if you use sigma_a^b but not if you use sigma^b_a.






share|improve this answer























  • To make it work for both sigma_a^b and sigma^b_a you could use an e-type argument (“embellishments”).

    – Henri Menke
    52 mins ago











  • First, thanks! Second, could you adapt your code slightly such that it checks that the first subscript letter (or all subscript letters, it doesn't matter as of now) is small alphanumeric rather than checking that the whole subscript is single-token?

    – user49915
    42 mins ago














3












3








3







The following definition does it:



ExplSyntaxOn
cs_new_eq:NN __userxlixk_actual_sigma: sigma
RenewDocumentCommandsigma
__userxlixk_sigma:
cs_new_protected:Npn __userxlixk_sigma:

peek_catcode_remove:NTF c_math_subscript_token
__userxlixk_sigma_check_group:n
__userxlixk_actual_sigma:

cs_new_protected:Npn __userxlixk_sigma_check_group:n #1

tl_if_single_token:nTF #1
__userxlixk_actual_sigma: c_math_subscript_token ! #1
__userxlixk_actual_sigma: c_math_subscript_token #1

ExplSyntaxOff


I save the definition of sigma in __userxlixk_actual_sigma: then redefine sigma to check:



  1. if it is followed by a c_math_subscript_token: if it is not, then just print __userxlixk_actual_sigma: otherwise;


  2. grab what follows the subscript token as argument and check if the argument consists of a single token: if it does, apply a !, otherwise print normally.


Here's the output before and after the redefinition (I used LuaTeX and lua-visual-debug to show the negative kern):




enter image description here




Code:



documentclass[varwidth]standalone
usepackagelua-visual-debug
usepackageluatexbase
usepackageunravel
usepackagefontspec
usepackage[american,british,french,norsk,german,ngerman]babel
usepackagemathtools
mathtoolssetmathic=true %%% See http://tex.stackexchange.com/a/3496/
usepackageamssymb
usepackageunicode-math
setmainfont[Ligatures=TeX]TeX Gyre Termes
setsansfontTeX Gyre Heros[Scale=0.88]
setmonofontTeX Gyre Cursor
setmathfont[Ligatures=TeX]TeX Gyre Termes Math
setmathfont[Ligatures=TeX,range=setminus]Asana Math
setmathfont[Ligatures=TeX,Extension=.otf,range="2A3E,BoldFont=XITSMath-Bold]XITSMath-Regular%%% The fat semicolon
usepackage[babel=true,verbose=errors]microtype
begindocument
$sigma_abc sigma_0 sigma_0$

ExplSyntaxOn
cs_new_eq:NN __userxlixk_actual_sigma: sigma
RenewDocumentCommandsigma
__userxlixk_sigma:
cs_new_protected:Npn __userxlixk_sigma:

peek_catcode_remove:NTF c_math_subscript_token
__userxlixk_sigma_check_group:n
__userxlixk_actual_sigma:

cs_new_protected:Npn __userxlixk_sigma_check_group:n #1

tl_if_single_token:nTF #1
__userxlixk_actual_sigma: c_math_subscript_token ! #1
__userxlixk_actual_sigma: c_math_subscript_token #1

ExplSyntaxOff

$sigma_abc sigma_0 sigma_0$
enddocument


Note, however, that this code will work if you use sigma_a^b but not if you use sigma^b_a.






share|improve this answer













The following definition does it:



ExplSyntaxOn
cs_new_eq:NN __userxlixk_actual_sigma: sigma
RenewDocumentCommandsigma
__userxlixk_sigma:
cs_new_protected:Npn __userxlixk_sigma:

peek_catcode_remove:NTF c_math_subscript_token
__userxlixk_sigma_check_group:n
__userxlixk_actual_sigma:

cs_new_protected:Npn __userxlixk_sigma_check_group:n #1

tl_if_single_token:nTF #1
__userxlixk_actual_sigma: c_math_subscript_token ! #1
__userxlixk_actual_sigma: c_math_subscript_token #1

ExplSyntaxOff


I save the definition of sigma in __userxlixk_actual_sigma: then redefine sigma to check:



  1. if it is followed by a c_math_subscript_token: if it is not, then just print __userxlixk_actual_sigma: otherwise;


  2. grab what follows the subscript token as argument and check if the argument consists of a single token: if it does, apply a !, otherwise print normally.


Here's the output before and after the redefinition (I used LuaTeX and lua-visual-debug to show the negative kern):




enter image description here




Code:



documentclass[varwidth]standalone
usepackagelua-visual-debug
usepackageluatexbase
usepackageunravel
usepackagefontspec
usepackage[american,british,french,norsk,german,ngerman]babel
usepackagemathtools
mathtoolssetmathic=true %%% See http://tex.stackexchange.com/a/3496/
usepackageamssymb
usepackageunicode-math
setmainfont[Ligatures=TeX]TeX Gyre Termes
setsansfontTeX Gyre Heros[Scale=0.88]
setmonofontTeX Gyre Cursor
setmathfont[Ligatures=TeX]TeX Gyre Termes Math
setmathfont[Ligatures=TeX,range=setminus]Asana Math
setmathfont[Ligatures=TeX,Extension=.otf,range="2A3E,BoldFont=XITSMath-Bold]XITSMath-Regular%%% The fat semicolon
usepackage[babel=true,verbose=errors]microtype
begindocument
$sigma_abc sigma_0 sigma_0$

ExplSyntaxOn
cs_new_eq:NN __userxlixk_actual_sigma: sigma
RenewDocumentCommandsigma
__userxlixk_sigma:
cs_new_protected:Npn __userxlixk_sigma:

peek_catcode_remove:NTF c_math_subscript_token
__userxlixk_sigma_check_group:n
__userxlixk_actual_sigma:

cs_new_protected:Npn __userxlixk_sigma_check_group:n #1

tl_if_single_token:nTF #1
__userxlixk_actual_sigma: c_math_subscript_token ! #1
__userxlixk_actual_sigma: c_math_subscript_token #1

ExplSyntaxOff

$sigma_abc sigma_0 sigma_0$
enddocument


Note, however, that this code will work if you use sigma_a^b but not if you use sigma^b_a.







share|improve this answer












share|improve this answer



share|improve this answer










answered 53 mins ago









Phelype OleinikPhelype Oleinik

25k54690




25k54690












  • To make it work for both sigma_a^b and sigma^b_a you could use an e-type argument (“embellishments”).

    – Henri Menke
    52 mins ago











  • First, thanks! Second, could you adapt your code slightly such that it checks that the first subscript letter (or all subscript letters, it doesn't matter as of now) is small alphanumeric rather than checking that the whole subscript is single-token?

    – user49915
    42 mins ago


















  • To make it work for both sigma_a^b and sigma^b_a you could use an e-type argument (“embellishments”).

    – Henri Menke
    52 mins ago











  • First, thanks! Second, could you adapt your code slightly such that it checks that the first subscript letter (or all subscript letters, it doesn't matter as of now) is small alphanumeric rather than checking that the whole subscript is single-token?

    – user49915
    42 mins ago

















To make it work for both sigma_a^b and sigma^b_a you could use an e-type argument (“embellishments”).

– Henri Menke
52 mins ago





To make it work for both sigma_a^b and sigma^b_a you could use an e-type argument (“embellishments”).

– Henri Menke
52 mins ago













First, thanks! Second, could you adapt your code slightly such that it checks that the first subscript letter (or all subscript letters, it doesn't matter as of now) is small alphanumeric rather than checking that the whole subscript is single-token?

– user49915
42 mins ago






First, thanks! Second, could you adapt your code slightly such that it checks that the first subscript letter (or all subscript letters, it doesn't matter as of now) is small alphanumeric rather than checking that the whole subscript is single-token?

– user49915
42 mins ago












3














I'd use the e argument type of xparse.



documentclassbook
usepackagefontspec
usepackage[american,british,french,norsk,german,ngerman]babel
usepackagemathtools
usepackageamssymb
usepackageunicode-math
usepackage[babel=true,verbose=errors]microtype

setmainfontTeX Gyre Termes
setsansfontTeX Gyre Heros[Scale=0.88]
setmonofontTeX Gyre Cursor
setmathfontTeX Gyre Termes Math
setmathfontAsana Math[
range=setminus,
]
setmathfontXITSMath-Regular[
Extension=.otf,
range="2A3E,
BoldFont=XITSMath-Bold,
]

%mathtoolssetmathic=true %%% See http://tex.stackexchange.com/a/3496/

AtBeginDocument%
letstandardsigmasigma
letsigmakernedsigma


NewDocumentCommandkernedsigmae_^%
standardsigma
IfValueT#1_!#1%
IfValueT#2^#2%


begindocument

[sigma_0 sigma_0^2 sigma^2_0]
[standardsigma_!0 standardsigma_!0^2 standardsigma^2_!0]

enddocument


enter image description here






share|improve this answer























  • First, thanks! Second, could you adapt your code slightly such that it checks that the first subscript letter (or all subscript letters, it doesn't matter as of now) is small alphanumeric? We don't really know whether it would produce a pleasant kerning for all other possible subscripts, would we?

    – user49915
    31 mins ago












  • @user49915 I'm not sure what could be the difference. One can quite easily exclude some symbols from being kerned.

    – egreg
    26 mins ago











  • I'm afraid that some sub/superscripts might need a little bit different kerning, e.g. sigma_top. There is no overlap, of course, but I'm feeling slightly uneasy about allowing for all possible subscripts to be moved left by 3mu.

    – user49915
    9 mins ago
















3














I'd use the e argument type of xparse.



documentclassbook
usepackagefontspec
usepackage[american,british,french,norsk,german,ngerman]babel
usepackagemathtools
usepackageamssymb
usepackageunicode-math
usepackage[babel=true,verbose=errors]microtype

setmainfontTeX Gyre Termes
setsansfontTeX Gyre Heros[Scale=0.88]
setmonofontTeX Gyre Cursor
setmathfontTeX Gyre Termes Math
setmathfontAsana Math[
range=setminus,
]
setmathfontXITSMath-Regular[
Extension=.otf,
range="2A3E,
BoldFont=XITSMath-Bold,
]

%mathtoolssetmathic=true %%% See http://tex.stackexchange.com/a/3496/

AtBeginDocument%
letstandardsigmasigma
letsigmakernedsigma


NewDocumentCommandkernedsigmae_^%
standardsigma
IfValueT#1_!#1%
IfValueT#2^#2%


begindocument

[sigma_0 sigma_0^2 sigma^2_0]
[standardsigma_!0 standardsigma_!0^2 standardsigma^2_!0]

enddocument


enter image description here






share|improve this answer























  • First, thanks! Second, could you adapt your code slightly such that it checks that the first subscript letter (or all subscript letters, it doesn't matter as of now) is small alphanumeric? We don't really know whether it would produce a pleasant kerning for all other possible subscripts, would we?

    – user49915
    31 mins ago












  • @user49915 I'm not sure what could be the difference. One can quite easily exclude some symbols from being kerned.

    – egreg
    26 mins ago











  • I'm afraid that some sub/superscripts might need a little bit different kerning, e.g. sigma_top. There is no overlap, of course, but I'm feeling slightly uneasy about allowing for all possible subscripts to be moved left by 3mu.

    – user49915
    9 mins ago














3












3








3







I'd use the e argument type of xparse.



documentclassbook
usepackagefontspec
usepackage[american,british,french,norsk,german,ngerman]babel
usepackagemathtools
usepackageamssymb
usepackageunicode-math
usepackage[babel=true,verbose=errors]microtype

setmainfontTeX Gyre Termes
setsansfontTeX Gyre Heros[Scale=0.88]
setmonofontTeX Gyre Cursor
setmathfontTeX Gyre Termes Math
setmathfontAsana Math[
range=setminus,
]
setmathfontXITSMath-Regular[
Extension=.otf,
range="2A3E,
BoldFont=XITSMath-Bold,
]

%mathtoolssetmathic=true %%% See http://tex.stackexchange.com/a/3496/

AtBeginDocument%
letstandardsigmasigma
letsigmakernedsigma


NewDocumentCommandkernedsigmae_^%
standardsigma
IfValueT#1_!#1%
IfValueT#2^#2%


begindocument

[sigma_0 sigma_0^2 sigma^2_0]
[standardsigma_!0 standardsigma_!0^2 standardsigma^2_!0]

enddocument


enter image description here






share|improve this answer













I'd use the e argument type of xparse.



documentclassbook
usepackagefontspec
usepackage[american,british,french,norsk,german,ngerman]babel
usepackagemathtools
usepackageamssymb
usepackageunicode-math
usepackage[babel=true,verbose=errors]microtype

setmainfontTeX Gyre Termes
setsansfontTeX Gyre Heros[Scale=0.88]
setmonofontTeX Gyre Cursor
setmathfontTeX Gyre Termes Math
setmathfontAsana Math[
range=setminus,
]
setmathfontXITSMath-Regular[
Extension=.otf,
range="2A3E,
BoldFont=XITSMath-Bold,
]

%mathtoolssetmathic=true %%% See http://tex.stackexchange.com/a/3496/

AtBeginDocument%
letstandardsigmasigma
letsigmakernedsigma


NewDocumentCommandkernedsigmae_^%
standardsigma
IfValueT#1_!#1%
IfValueT#2^#2%


begindocument

[sigma_0 sigma_0^2 sigma^2_0]
[standardsigma_!0 standardsigma_!0^2 standardsigma^2_!0]

enddocument


enter image description here







share|improve this answer












share|improve this answer



share|improve this answer










answered 36 mins ago









egregegreg

733k8919313254




733k8919313254












  • First, thanks! Second, could you adapt your code slightly such that it checks that the first subscript letter (or all subscript letters, it doesn't matter as of now) is small alphanumeric? We don't really know whether it would produce a pleasant kerning for all other possible subscripts, would we?

    – user49915
    31 mins ago












  • @user49915 I'm not sure what could be the difference. One can quite easily exclude some symbols from being kerned.

    – egreg
    26 mins ago











  • I'm afraid that some sub/superscripts might need a little bit different kerning, e.g. sigma_top. There is no overlap, of course, but I'm feeling slightly uneasy about allowing for all possible subscripts to be moved left by 3mu.

    – user49915
    9 mins ago


















  • First, thanks! Second, could you adapt your code slightly such that it checks that the first subscript letter (or all subscript letters, it doesn't matter as of now) is small alphanumeric? We don't really know whether it would produce a pleasant kerning for all other possible subscripts, would we?

    – user49915
    31 mins ago












  • @user49915 I'm not sure what could be the difference. One can quite easily exclude some symbols from being kerned.

    – egreg
    26 mins ago











  • I'm afraid that some sub/superscripts might need a little bit different kerning, e.g. sigma_top. There is no overlap, of course, but I'm feeling slightly uneasy about allowing for all possible subscripts to be moved left by 3mu.

    – user49915
    9 mins ago

















First, thanks! Second, could you adapt your code slightly such that it checks that the first subscript letter (or all subscript letters, it doesn't matter as of now) is small alphanumeric? We don't really know whether it would produce a pleasant kerning for all other possible subscripts, would we?

– user49915
31 mins ago






First, thanks! Second, could you adapt your code slightly such that it checks that the first subscript letter (or all subscript letters, it doesn't matter as of now) is small alphanumeric? We don't really know whether it would produce a pleasant kerning for all other possible subscripts, would we?

– user49915
31 mins ago














@user49915 I'm not sure what could be the difference. One can quite easily exclude some symbols from being kerned.

– egreg
26 mins ago





@user49915 I'm not sure what could be the difference. One can quite easily exclude some symbols from being kerned.

– egreg
26 mins ago













I'm afraid that some sub/superscripts might need a little bit different kerning, e.g. sigma_top. There is no overlap, of course, but I'm feeling slightly uneasy about allowing for all possible subscripts to be moved left by 3mu.

– user49915
9 mins ago






I'm afraid that some sub/superscripts might need a little bit different kerning, e.g. sigma_top. There is no overlap, of course, but I'm feeling slightly uneasy about allowing for all possible subscripts to be moved left by 3mu.

– user49915
9 mins ago


















draft saved

draft discarded
















































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.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f484404%2fkerning-for-subscripts-of-sigma%23new-answer', 'question_page');

);

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







Popular posts from this blog

Isurus Índice Especies | Notas | Véxase tamén | Menú de navegación"A compendium of fossil marine animal genera (Chondrichthyes entry)"o orixinal"A review of the Tertiary fossil Cetacea (Mammalia) localities in wales port taf Museum Victoria"o orixinalThe Vertebrate Fauna of the Selma Formation of Alabama. Part VII. Part VIII. The Mosasaurs The Fishes50419737IDsh85068767Isurus2548834613242066569678159923NHMSYS00210535017845105743

Is 1 ppb equal to 1 μg/kg? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)How to determine the concentration after a dilution with Beer's law?What would be SMILES notation for a compound with delocalized bonding?Amount of substance of a molecule in a solute the same as amount of substance of constituent elements?Interpreting notation format 1.64E-02 from particulate emission dataWhat was the lithium concentration in 1940's 7-Up?Why are osmoles not considered SI units?Why is Ka constant when volume is increased?Should residual sodium be considered in measuring sodium content of sweat?Concentration of mercury in bodyConversion from a PPB value to µg/m3 of Isobutylene

What does “fit” mean in this sentence? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)How does 'jealousy' mean 'suspicion'?What does “not so say” mean?Does “somebody of my caliber” mean the speaker themselves?“accounting for high fasting blood glucose”- help about the meaningWhat does “cloaked by NDA” mean in this context?What does it mean by 'community ownership' in this context?What does “human corroborators” mean in this context?What does “everything but a fire” mean in this context?What does “run” mean here?What does “rabbited” mean/imply in this sentence?