How can I avoid escaping the # character as a command argument in a Tikz environment?
I am attempting to write a music related package where the user can enter chord names, that will be nicely printed:
% this prints out the C chord
somecommandC
However, a chord names can have sharps and flats and I want the UI to be as simple as possible. Basically, avoid the need for the user to have to escape the # character, so he can write just this:
somecommandC#
instead of this:
somecommandC#
In this answer, I read that this can be done with:
catcode`#=12
So this, indeed, works:
documentclassarticle
newcommandmycommand[1]
chord=#1
catcode`#=12
begindocument
mycommandG#
enddocument
And prints "chord=G#".
However, I am unable to make that trick work in the real situation, because all of this is actually embedded into a Tikz environment:
documentclassarticle
usepackagetikz
newenvironmentmyenv
newcommandmycommand[1]
draw(0,0) node chord=##1;
begintikzpicture
endtikzpicture
catcode`#=12
begindocument
beginmyenv
mycommandG#
endmyenv
enddocument
This MCVE produces lots of errors that I cannot understand:
ABD: EveryShipout initializing macros
(/usr/local/texlive/2017/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
! Use of @@mptopdf@@newabove doesn't match its definition.
l.136 @@mptopdf@@newabove csname n
ewcountendcsname scratchcounter
If you say, e.g., `defa1...', then you must always
put `1' after `a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.
! Extra endcsname.
l.136 ...opdf@@newabove csname newcountendcsname
...
Questions:
- Can this be fixed in some way? How?
- Or am I going the wrong way? Is there another path to achieve this goal?
tikz-pgf characters
add a comment |Â
I am attempting to write a music related package where the user can enter chord names, that will be nicely printed:
% this prints out the C chord
somecommandC
However, a chord names can have sharps and flats and I want the UI to be as simple as possible. Basically, avoid the need for the user to have to escape the # character, so he can write just this:
somecommandC#
instead of this:
somecommandC#
In this answer, I read that this can be done with:
catcode`#=12
So this, indeed, works:
documentclassarticle
newcommandmycommand[1]
chord=#1
catcode`#=12
begindocument
mycommandG#
enddocument
And prints "chord=G#".
However, I am unable to make that trick work in the real situation, because all of this is actually embedded into a Tikz environment:
documentclassarticle
usepackagetikz
newenvironmentmyenv
newcommandmycommand[1]
draw(0,0) node chord=##1;
begintikzpicture
endtikzpicture
catcode`#=12
begindocument
beginmyenv
mycommandG#
endmyenv
enddocument
This MCVE produces lots of errors that I cannot understand:
ABD: EveryShipout initializing macros
(/usr/local/texlive/2017/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
! Use of @@mptopdf@@newabove doesn't match its definition.
l.136 @@mptopdf@@newabove csname n
ewcountendcsname scratchcounter
If you say, e.g., `defa1...', then you must always
put `1' after `a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.
! Extra endcsname.
l.136 ...opdf@@newabove csname newcountendcsname
...
Questions:
- Can this be fixed in some way? How?
- Or am I going the wrong way? Is there another path to achieve this goal?
tikz-pgf characters
2
off topic: you are definingmycommandinside definition ofmyenv?!
â Sigur
2 days ago
2
off topic 2: do you knowsharp?
â Sigur
2 days ago
Q1: yes, because that command only makes sense inside the environment. Q2: no, thanks!
â kebs
2 days ago
#is U+0023 (#, number sign) which isn't really the same character as sharp U+266F (â¯, Sharp) are you sure that you just want to allow an unquoted#to typeset as itself?
â David Carlisle
2 days ago
@DavidCarlisle Thesharpcommand (that I didn't know) looks indeed nicer but kinda too small, compared to the default rendering of#(I mean in the readability sense, when seen from far away in a dark room). But I can consider these two options.
â kebs
yesterday
add a comment |Â
I am attempting to write a music related package where the user can enter chord names, that will be nicely printed:
% this prints out the C chord
somecommandC
However, a chord names can have sharps and flats and I want the UI to be as simple as possible. Basically, avoid the need for the user to have to escape the # character, so he can write just this:
somecommandC#
instead of this:
somecommandC#
In this answer, I read that this can be done with:
catcode`#=12
So this, indeed, works:
documentclassarticle
newcommandmycommand[1]
chord=#1
catcode`#=12
begindocument
mycommandG#
enddocument
And prints "chord=G#".
However, I am unable to make that trick work in the real situation, because all of this is actually embedded into a Tikz environment:
documentclassarticle
usepackagetikz
newenvironmentmyenv
newcommandmycommand[1]
draw(0,0) node chord=##1;
begintikzpicture
endtikzpicture
catcode`#=12
begindocument
beginmyenv
mycommandG#
endmyenv
enddocument
This MCVE produces lots of errors that I cannot understand:
ABD: EveryShipout initializing macros
(/usr/local/texlive/2017/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
! Use of @@mptopdf@@newabove doesn't match its definition.
l.136 @@mptopdf@@newabove csname n
ewcountendcsname scratchcounter
If you say, e.g., `defa1...', then you must always
put `1' after `a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.
! Extra endcsname.
l.136 ...opdf@@newabove csname newcountendcsname
...
Questions:
- Can this be fixed in some way? How?
- Or am I going the wrong way? Is there another path to achieve this goal?
tikz-pgf characters
I am attempting to write a music related package where the user can enter chord names, that will be nicely printed:
% this prints out the C chord
somecommandC
However, a chord names can have sharps and flats and I want the UI to be as simple as possible. Basically, avoid the need for the user to have to escape the # character, so he can write just this:
somecommandC#
instead of this:
somecommandC#
In this answer, I read that this can be done with:
catcode`#=12
So this, indeed, works:
documentclassarticle
newcommandmycommand[1]
chord=#1
catcode`#=12
begindocument
mycommandG#
enddocument
And prints "chord=G#".
However, I am unable to make that trick work in the real situation, because all of this is actually embedded into a Tikz environment:
documentclassarticle
usepackagetikz
newenvironmentmyenv
newcommandmycommand[1]
draw(0,0) node chord=##1;
begintikzpicture
endtikzpicture
catcode`#=12
begindocument
beginmyenv
mycommandG#
endmyenv
enddocument
This MCVE produces lots of errors that I cannot understand:
ABD: EveryShipout initializing macros
(/usr/local/texlive/2017/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
! Use of @@mptopdf@@newabove doesn't match its definition.
l.136 @@mptopdf@@newabove csname n
ewcountendcsname scratchcounter
If you say, e.g., `defa1...', then you must always
put `1' after `a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.
! Extra endcsname.
l.136 ...opdf@@newabove csname newcountendcsname
...
Questions:
- Can this be fixed in some way? How?
- Or am I going the wrong way? Is there another path to achieve this goal?
tikz-pgf characters
tikz-pgf characters
asked 2 days ago
kebs
493512
493512
2
off topic: you are definingmycommandinside definition ofmyenv?!
â Sigur
2 days ago
2
off topic 2: do you knowsharp?
â Sigur
2 days ago
Q1: yes, because that command only makes sense inside the environment. Q2: no, thanks!
â kebs
2 days ago
#is U+0023 (#, number sign) which isn't really the same character as sharp U+266F (â¯, Sharp) are you sure that you just want to allow an unquoted#to typeset as itself?
â David Carlisle
2 days ago
@DavidCarlisle Thesharpcommand (that I didn't know) looks indeed nicer but kinda too small, compared to the default rendering of#(I mean in the readability sense, when seen from far away in a dark room). But I can consider these two options.
â kebs
yesterday
add a comment |Â
2
off topic: you are definingmycommandinside definition ofmyenv?!
â Sigur
2 days ago
2
off topic 2: do you knowsharp?
â Sigur
2 days ago
Q1: yes, because that command only makes sense inside the environment. Q2: no, thanks!
â kebs
2 days ago
#is U+0023 (#, number sign) which isn't really the same character as sharp U+266F (â¯, Sharp) are you sure that you just want to allow an unquoted#to typeset as itself?
â David Carlisle
2 days ago
@DavidCarlisle Thesharpcommand (that I didn't know) looks indeed nicer but kinda too small, compared to the default rendering of#(I mean in the readability sense, when seen from far away in a dark room). But I can consider these two options.
â kebs
yesterday
2
2
off topic: you are defining
mycommand inside definition of myenv?!â Sigur
2 days ago
off topic: you are defining
mycommand inside definition of myenv?!â Sigur
2 days ago
2
2
off topic 2: do you know
sharp?â Sigur
2 days ago
off topic 2: do you know
sharp?â Sigur
2 days ago
Q1: yes, because that command only makes sense inside the environment. Q2: no, thanks!
â kebs
2 days ago
Q1: yes, because that command only makes sense inside the environment. Q2: no, thanks!
â kebs
2 days ago
# is U+0023 (#, number sign) which isn't really the same character as sharp U+266F (â¯, Sharp) are you sure that you just want to allow an unquoted # to typeset as itself?â David Carlisle
2 days ago
# is U+0023 (#, number sign) which isn't really the same character as sharp U+266F (â¯, Sharp) are you sure that you just want to allow an unquoted # to typeset as itself?â David Carlisle
2 days ago
@DavidCarlisle The
sharp command (that I didn't know) looks indeed nicer but kinda too small, compared to the default rendering of # (I mean in the readability sense, when seen from far away in a dark room). But I can consider these two options.â kebs
yesterday
@DavidCarlisle The
sharp command (that I didn't know) looks indeed nicer but kinda too small, compared to the default rendering of # (I mean in the readability sense, when seen from far away in a dark room). But I can consider these two options.â kebs
yesterday
add a comment |Â
2 Answers
2
active
oldest
votes
Delay the setting:
documentclassarticle
usepackagetikz
newenvironmentmyenv
%
newcommandmycommand[1]
%
draw(0,0) node chord=##1;
%
begintikzpicture
%
endtikzpicture%
AtBeginDocumentcatcode`#=12
begindocument
beginmyenv
mycommandG#
endmyenv
enddocument
It's a bad idea nonetheless. Use G# and your life will be better.
Thanks for your answer! But about your last sentence, sure, I understand your point, the idea is just to avoid putting barriers in front of any potential new Latex users. No basic user should have to worry about those reserved characters (except maybe "%").The UI should be as simple as possible.
â kebs
2 days ago
@kebs And potential errors as cryptical as possibleâ¦
â TeXnician
2 days ago
@Texnician ;-) could be !
â kebs
2 days ago
Thinking again about this: could you give some hints on why exactly this is a bad idea ? Maybe some example of a situation where this could break something ? Because the package user isn't expected to define new commands, where this trick could be an issue. But maybe I miss something?
â kebs
2 days ago
add a comment |Â
documentclassarticle
usepackagetikz
newcommandmycommand[1]
draw(0,0) node chord=#1;
newenvironmentmyenv
catcode`#=12
begintikzpicture
endtikzpicture
begindocument
beginmyenv
mycommandG#
endmyenv
enddocument

Thanks for answer. Was pretty much simple, indeed...
â kebs
2 days ago
@kebs try for examplefboxbeginmyenv...endmyenvor any other command#won't work again, so you need (in principle) to document all the places where the syntax will or will not work instead of having a simple rule to say use#(or bettersharp) everywhere.
â David Carlisle
2 days ago
@DavidCarlisle Good point. But at present, the use case for the environment is pretty much straight forward, it just draws some lines, so there is no use case I see where afboxwould be needed. But... who knows ? I will consider it anyway, thanks.
â kebs
2 days ago
add a comment |Â
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Delay the setting:
documentclassarticle
usepackagetikz
newenvironmentmyenv
%
newcommandmycommand[1]
%
draw(0,0) node chord=##1;
%
begintikzpicture
%
endtikzpicture%
AtBeginDocumentcatcode`#=12
begindocument
beginmyenv
mycommandG#
endmyenv
enddocument
It's a bad idea nonetheless. Use G# and your life will be better.
Thanks for your answer! But about your last sentence, sure, I understand your point, the idea is just to avoid putting barriers in front of any potential new Latex users. No basic user should have to worry about those reserved characters (except maybe "%").The UI should be as simple as possible.
â kebs
2 days ago
@kebs And potential errors as cryptical as possibleâ¦
â TeXnician
2 days ago
@Texnician ;-) could be !
â kebs
2 days ago
Thinking again about this: could you give some hints on why exactly this is a bad idea ? Maybe some example of a situation where this could break something ? Because the package user isn't expected to define new commands, where this trick could be an issue. But maybe I miss something?
â kebs
2 days ago
add a comment |Â
Delay the setting:
documentclassarticle
usepackagetikz
newenvironmentmyenv
%
newcommandmycommand[1]
%
draw(0,0) node chord=##1;
%
begintikzpicture
%
endtikzpicture%
AtBeginDocumentcatcode`#=12
begindocument
beginmyenv
mycommandG#
endmyenv
enddocument
It's a bad idea nonetheless. Use G# and your life will be better.
Thanks for your answer! But about your last sentence, sure, I understand your point, the idea is just to avoid putting barriers in front of any potential new Latex users. No basic user should have to worry about those reserved characters (except maybe "%").The UI should be as simple as possible.
â kebs
2 days ago
@kebs And potential errors as cryptical as possibleâ¦
â TeXnician
2 days ago
@Texnician ;-) could be !
â kebs
2 days ago
Thinking again about this: could you give some hints on why exactly this is a bad idea ? Maybe some example of a situation where this could break something ? Because the package user isn't expected to define new commands, where this trick could be an issue. But maybe I miss something?
â kebs
2 days ago
add a comment |Â
Delay the setting:
documentclassarticle
usepackagetikz
newenvironmentmyenv
%
newcommandmycommand[1]
%
draw(0,0) node chord=##1;
%
begintikzpicture
%
endtikzpicture%
AtBeginDocumentcatcode`#=12
begindocument
beginmyenv
mycommandG#
endmyenv
enddocument
It's a bad idea nonetheless. Use G# and your life will be better.
Delay the setting:
documentclassarticle
usepackagetikz
newenvironmentmyenv
%
newcommandmycommand[1]
%
draw(0,0) node chord=##1;
%
begintikzpicture
%
endtikzpicture%
AtBeginDocumentcatcode`#=12
begindocument
beginmyenv
mycommandG#
endmyenv
enddocument
It's a bad idea nonetheless. Use G# and your life will be better.
answered 2 days ago
egreg
708k8618823163
708k8618823163
Thanks for your answer! But about your last sentence, sure, I understand your point, the idea is just to avoid putting barriers in front of any potential new Latex users. No basic user should have to worry about those reserved characters (except maybe "%").The UI should be as simple as possible.
â kebs
2 days ago
@kebs And potential errors as cryptical as possibleâ¦
â TeXnician
2 days ago
@Texnician ;-) could be !
â kebs
2 days ago
Thinking again about this: could you give some hints on why exactly this is a bad idea ? Maybe some example of a situation where this could break something ? Because the package user isn't expected to define new commands, where this trick could be an issue. But maybe I miss something?
â kebs
2 days ago
add a comment |Â
Thanks for your answer! But about your last sentence, sure, I understand your point, the idea is just to avoid putting barriers in front of any potential new Latex users. No basic user should have to worry about those reserved characters (except maybe "%").The UI should be as simple as possible.
â kebs
2 days ago
@kebs And potential errors as cryptical as possibleâ¦
â TeXnician
2 days ago
@Texnician ;-) could be !
â kebs
2 days ago
Thinking again about this: could you give some hints on why exactly this is a bad idea ? Maybe some example of a situation where this could break something ? Because the package user isn't expected to define new commands, where this trick could be an issue. But maybe I miss something?
â kebs
2 days ago
Thanks for your answer! But about your last sentence, sure, I understand your point, the idea is just to avoid putting barriers in front of any potential new Latex users. No basic user should have to worry about those reserved characters (except maybe "%").The UI should be as simple as possible.
â kebs
2 days ago
Thanks for your answer! But about your last sentence, sure, I understand your point, the idea is just to avoid putting barriers in front of any potential new Latex users. No basic user should have to worry about those reserved characters (except maybe "%").The UI should be as simple as possible.
â kebs
2 days ago
@kebs And potential errors as cryptical as possibleâ¦
â TeXnician
2 days ago
@kebs And potential errors as cryptical as possibleâ¦
â TeXnician
2 days ago
@Texnician ;-) could be !
â kebs
2 days ago
@Texnician ;-) could be !
â kebs
2 days ago
Thinking again about this: could you give some hints on why exactly this is a bad idea ? Maybe some example of a situation where this could break something ? Because the package user isn't expected to define new commands, where this trick could be an issue. But maybe I miss something?
â kebs
2 days ago
Thinking again about this: could you give some hints on why exactly this is a bad idea ? Maybe some example of a situation where this could break something ? Because the package user isn't expected to define new commands, where this trick could be an issue. But maybe I miss something?
â kebs
2 days ago
add a comment |Â
documentclassarticle
usepackagetikz
newcommandmycommand[1]
draw(0,0) node chord=#1;
newenvironmentmyenv
catcode`#=12
begintikzpicture
endtikzpicture
begindocument
beginmyenv
mycommandG#
endmyenv
enddocument

Thanks for answer. Was pretty much simple, indeed...
â kebs
2 days ago
@kebs try for examplefboxbeginmyenv...endmyenvor any other command#won't work again, so you need (in principle) to document all the places where the syntax will or will not work instead of having a simple rule to say use#(or bettersharp) everywhere.
â David Carlisle
2 days ago
@DavidCarlisle Good point. But at present, the use case for the environment is pretty much straight forward, it just draws some lines, so there is no use case I see where afboxwould be needed. But... who knows ? I will consider it anyway, thanks.
â kebs
2 days ago
add a comment |Â
documentclassarticle
usepackagetikz
newcommandmycommand[1]
draw(0,0) node chord=#1;
newenvironmentmyenv
catcode`#=12
begintikzpicture
endtikzpicture
begindocument
beginmyenv
mycommandG#
endmyenv
enddocument

Thanks for answer. Was pretty much simple, indeed...
â kebs
2 days ago
@kebs try for examplefboxbeginmyenv...endmyenvor any other command#won't work again, so you need (in principle) to document all the places where the syntax will or will not work instead of having a simple rule to say use#(or bettersharp) everywhere.
â David Carlisle
2 days ago
@DavidCarlisle Good point. But at present, the use case for the environment is pretty much straight forward, it just draws some lines, so there is no use case I see where afboxwould be needed. But... who knows ? I will consider it anyway, thanks.
â kebs
2 days ago
add a comment |Â
documentclassarticle
usepackagetikz
newcommandmycommand[1]
draw(0,0) node chord=#1;
newenvironmentmyenv
catcode`#=12
begintikzpicture
endtikzpicture
begindocument
beginmyenv
mycommandG#
endmyenv
enddocument

documentclassarticle
usepackagetikz
newcommandmycommand[1]
draw(0,0) node chord=#1;
newenvironmentmyenv
catcode`#=12
begintikzpicture
endtikzpicture
begindocument
beginmyenv
mycommandG#
endmyenv
enddocument

answered 2 days ago
Ulrike Fischer
186k7290669
186k7290669
Thanks for answer. Was pretty much simple, indeed...
â kebs
2 days ago
@kebs try for examplefboxbeginmyenv...endmyenvor any other command#won't work again, so you need (in principle) to document all the places where the syntax will or will not work instead of having a simple rule to say use#(or bettersharp) everywhere.
â David Carlisle
2 days ago
@DavidCarlisle Good point. But at present, the use case for the environment is pretty much straight forward, it just draws some lines, so there is no use case I see where afboxwould be needed. But... who knows ? I will consider it anyway, thanks.
â kebs
2 days ago
add a comment |Â
Thanks for answer. Was pretty much simple, indeed...
â kebs
2 days ago
@kebs try for examplefboxbeginmyenv...endmyenvor any other command#won't work again, so you need (in principle) to document all the places where the syntax will or will not work instead of having a simple rule to say use#(or bettersharp) everywhere.
â David Carlisle
2 days ago
@DavidCarlisle Good point. But at present, the use case for the environment is pretty much straight forward, it just draws some lines, so there is no use case I see where afboxwould be needed. But... who knows ? I will consider it anyway, thanks.
â kebs
2 days ago
Thanks for answer. Was pretty much simple, indeed...
â kebs
2 days ago
Thanks for answer. Was pretty much simple, indeed...
â kebs
2 days ago
@kebs try for example
fboxbeginmyenv...endmyenv or any other command # won't work again, so you need (in principle) to document all the places where the syntax will or will not work instead of having a simple rule to say use # (or better sharp) everywhere.â David Carlisle
2 days ago
@kebs try for example
fboxbeginmyenv...endmyenv or any other command # won't work again, so you need (in principle) to document all the places where the syntax will or will not work instead of having a simple rule to say use # (or better sharp) everywhere.â David Carlisle
2 days ago
@DavidCarlisle Good point. But at present, the use case for the environment is pretty much straight forward, it just draws some lines, so there is no use case I see where a
fbox would be needed. But... who knows ? I will consider it anyway, thanks.â kebs
2 days ago
@DavidCarlisle Good point. But at present, the use case for the environment is pretty much straight forward, it just draws some lines, so there is no use case I see where a
fbox would be needed. But... who knows ? I will consider it anyway, thanks.â kebs
2 days ago
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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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%2f467562%2fhow-can-i-avoid-escaping-the-character-as-a-command-argument-in-a-tikz-environ%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
2
off topic: you are defining
mycommandinside definition ofmyenv?!â Sigur
2 days ago
2
off topic 2: do you know
sharp?â Sigur
2 days ago
Q1: yes, because that command only makes sense inside the environment. Q2: no, thanks!
â kebs
2 days ago
#is U+0023 (#, number sign) which isn't really the same character as sharp U+266F (â¯, Sharp) are you sure that you just want to allow an unquoted#to typeset as itself?â David Carlisle
2 days ago
@DavidCarlisle The
sharpcommand (that I didn't know) looks indeed nicer but kinda too small, compared to the default rendering of#(I mean in the readability sense, when seen from far away in a dark room). But I can consider these two options.â kebs
yesterday