Fonts & Character Setsexpl3: changing the catcode such that _ is understood as subscript

Information and discussion about fonts and character sets (e.g. how to use language specific characters)
Post Reply
erwann
Posts: 75
Joined: Thu Aug 25, 2016 2:24 am

expl3: changing the catcode such that _ is understood as subscript

Post by erwann »

The example that follows says it all.

Code: Select all

Code, edit and compile here:
\documentclass{minimal}
\usepackage{expl3}
\usepackage{xparse}
\usepackage{amssymb}
\ExplSyntaxOn
\tl_set_rescan:Nnn
\tl_matrix_elem
{\char_set_catcode_math_subscriptn \_} %Wrong guess, apparently
{\ensuremath{A_{ij}}}
\NewDocumentCommand\matrixelem{}{\tl_matrix_elem}
\begin{document}
\ExplSyntaxOff
\matrixelem % Expect $A_{ij}$
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Console output:

Code: Select all

This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017) (preloaded format=pdflatex)
restricted \write18 enabled.
entering extended mode
(./tmpl_expr.tex
LaTeX2e <2017-04-15>
Babel <3.18> and hyphenation patterns for 84 language(s) loaded.
(/usr/local/texlive/2017/texmf-dist/tex/latex/base/minimal.cls
Document Class: minimal 2001/05/25 Standard LaTeX minimal class
) (/usr/local/texlive/2017/texmf-dist/tex/latex/l3kernel/expl3.sty
(/usr/local/texlive/2017/texmf-dist/tex/latex/l3kernel/expl3-code.tex)
(/usr/local/texlive/2017/texmf-dist/tex/latex/l3kernel/l3pdfmode.def))
(/usr/local/texlive/2017/texmf-dist/tex/latex/l3packages/xparse/xparse.sty)
(/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/amssymb.sty
(/usr/local/texlive/2017/texmf-dist/tex/latex/amsfonts/amsfonts.sty))
! Missing number, treated as zero.
<to be read again>
\protect
l.12 {\ensuremath{A_{ij}}}
?
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


*.log:

Code: Select all

This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017) (preloaded format=pdflatex 2018.4.25) 1 MAY 2018 17:24
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
**tmpl_expr.tex
(./tmpl_expr.tex
LaTeX2e <2017-04-15>
Babel <3.18> and hyphenation patterns for 84 language(s) loaded.
(/usr/local/texlive/2017/texmf-dist/tex/latex/base/minimal.cls
Document Class: minimal 2001/05/25 Standard LaTeX minimal class
) (/usr/local/texlive/2017/texmf-dist/tex/latex/l3kernel/expl3.sty
Package: expl3 2018/02/21 L3 programming layer (loader)
(/usr/local/texlive/2017/texmf-dist/tex/latex/l3kernel/expl3-code.tex
Package: expl3 2018/02/21 L3 programming layer (code)
\c_max_int=\count79
\l_tmpa_int=\count80
\l_tmpb_int=\count81
\g_tmpa_int=\count82
\g_tmpb_int=\count83
\g__intarray_font_int=\count84
\g__prg_map_int=\count85
\c_log_iow=\count86
\l_iow_line_count_int=\count87
\l__iow_line_target_int=\count88
\l__iow_one_indent_int=\count89
\l__iow_indent_int=\count90
\c_zero_dim=\dimen102
\c_max_dim=\dimen103
\l_tmpa_dim=\dimen104
\l_tmpb_dim=\dimen105
\g_tmpa_dim=\dimen106
\g_tmpb_dim=\dimen107
\c_zero_skip=\skip41
\c_max_skip=\skip42
\l_tmpa_skip=\skip43
\l_tmpb_skip=\skip44
\g_tmpa_skip=\skip45
\g_tmpb_skip=\skip46
\c_zero_muskip=\muskip10
\c_max_muskip=\muskip11
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
References: http://mirror.utexas.edu/ctan/macros/la ... /l3kernel/
x_86 / Linux Mint 18.3 / texlive 2015.20160320-1ubuntu0.1 / TeXworks 0.5r1361 (Debian)

Recommended reading 2024:

LaTeXguide.org • LaTeX-Cookbook.net • TikZ.org

NEW: TikZ book now 40% off at Amazon.com for a short time.

User avatar
cgnieder
Site Moderator
Posts: 2000
Joined: Sat Apr 16, 2011 7:27 pm

expl3: changing the catcode such that _ is understood as subscript

Post by cgnieder »

Why don't you just use LaTeX's \sb or expl3's \c_math_subscript_token?

Code: Select all

Code, edit and compile here:
\documentclass{article}
\usepackage{expl3}
\usepackage{xparse}
\usepackage{amssymb}
\ExplSyntaxOn
\tl_new:N \tl_matrix_elem_tl
\tl_set:Nn \tl_matrix_elem_tl { \ensuremath { A \sb {ij} } }
% or:
% \tl_set:Nn \tl_matrix_elem_tl { \ensuremath { A \c_math_subscript_token {ij} } }
\NewDocumentCommand \matrixelem {} { \tl_use:N \tl_matrix_elem_tl }
\begin{document}
\ExplSyntaxOff
\matrixelem % Expect $A_{ij}$
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
site moderator & package author
erwann
Posts: 75
Joined: Thu Aug 25, 2016 2:24 am

expl3: changing the catcode such that _ is understood as subscript

Post by erwann »

cgnieder wrote:Why don't you just use LaTeX's \sb or expl3's \c_math_subscript_token?
Too obvious for me to see it. Thanks!
x_86 / Linux Mint 18.3 / texlive 2015.20160320-1ubuntu0.1 / TeXworks 0.5r1361 (Debian)
Post Reply