07:00 - 21:0021:00 - 23:00

7:21 AM
@egreg there are things not implemented in L3 that are needed for some things, like changing the font to the verbatim font... Is it bad to put a \verbatim@font in the code?
@JosephWright so no interface to \fontcharwd?

@Skillmon Not at present, no

7:51 AM
@Skillmon We add interfaces as-and-when there is a use case: it's important to work out the details

@JosephWright say I want to know which is the widest character in a set of characters so that I can align them without needing a \halign around them.

@Skillmon At present, we've not really got anything in the release code for fonts: I guess we are talking a thin wrapper, so \char_wd:n or perhaps \font_char_wd:n, etc. Raise on LaTeX-L?
@Skillmon I'm looking for an example where the result is not the same as boxing up: I guess it's just an expandabliity thing

8:08 AM
@Skillmon Is adding such interfaces oneself an option?

8:25 AM
@FaheemMitha You can always create additional functions: probably best to use a 'safe' name, like skfont or something: font as a module name is team-reserved (oddly!)

@Skillmon That's not “programming in LaTeX2e”. I meant, for instance, using \@for or other specific 2e's programming tools.

9:05 AM
@egreg and if I use something like \@grabbox in an otherwise expl3 package?

@Skillmon I don't know about \@grabbox

@egreg from a L2 package I wrote of the same name (without the @).
@egreg ducksay (which is in itself not a serious package) uses it though most of its code is L3.
@FaheemMitha as there currently is no information on how the font interfaces in L3 would be (to my knowledge at least), I don't see a point in adding it oneself in a correct way.
\cs_new:Npn \__hexdump_char_wd:n #1
{
\tex_fontcharwd:D \tex_font:D #1
}
@FaheemMitha ^^^ is what I currently use.

@Skillmon I'd use an integer expression there ...

@JosephWright in interface3 I would, but as it is a package internal and I have complete control over its argument I don't.
@JosephWright and it could be declared as \cs_new_nopar:Npn

@Skillmon I wouldn't do that ...

9:14 AM
@JosephWright why not? A \par can't be part of a valid integer expression that should expand to a char code in a sensible way.

@JosephWright in view of interfaces and details you would perhaps enjoy the discussion about multiscript support in biblatex. After getting stale in 2016 it was reopened a few days ago. Designing expl3 interfaces is a piece of cake compared to this ;-) github.com/plk/biblatex/issues/416

@Skillmon As a matter of course, we've stuck to the the long functions: it's unlikely, but one could imagine some weird expression inside the argument ...
@UlrikeFischer I've been following :)

@JosephWright the weirdest I can think of is \__hexdump_char_wd:n { \tl_count:n { \par\par\par } }, and that's really nonsense to sensibly expand to a character code.

@Skillmon We can see you've not had the ... fun ... of being on the kernel team

@egreg oh, and for code golfing I did unconceivable evil things like \def\1#1{<expl3-code>}
@JosephWright you can invite me :)

9:39 AM
@JosephWright oh. enjoying it? ;-)

@JosephWright the Lua part is way more fun. :)

@UlrikeFischer :)
@PauloCereda Er, perhaps
@PauloCereda We need to start using \luadefto keep @MarcelKrüger happy ;)

@JosephWright ooh

Hey guys, I got this algorithm:
https://pastebin.com/9y07yFBJ
But there is a lot of unecessary white space before and after. Any idea of trying to remove this? There is a lot of space before the \section and the algorithm and the text afterawards
I am using \usepackage[ruled,vlined]{algorithm2e} as well. Might be good to declare

9:57 AM
@Skillmon I meant temporarily.

I've added what Mico said to my main file but it doesn't seem to work.
https://tex.stackexchange.com/questions/26057/squeezing-space-around-algorithm-construct

10:18 AM
The PGF/TikZ manual has:
> The principle idea is the following:
I think that should be "principal". Where should I report that typo?

@FaheemMitha Their GH page?

@PauloCereda You mean an issue?

@FaheemMitha yes, probably.

Seems overkill for a typo, but ok.

10:20 AM
@HenriMenke Is an issue appropriate for a typo?

Poke Henri here, then. :)

@PauloCereda Uh, because I don't know what I should do?

@FaheemMitha perhaps a PR is even better, then Henri could simply merge without extra work. :)

@FaheemMitha is poking someone for typo appropriate? ;-) . You can also make a pull request.

@UlrikeFischer ooh poking

10:21 AM
@UlrikeFischer I don't know. You tell me. So a PR is best?

@UlrikeFischer /poke
@DavidCarlisle /poke
@JosephWright /poke

@PauloCereda You're a big help.

@FaheemMitha at least it's not polka

LOL

10:29 AM
ooh

Hey guys, no ideas regarding my issue?
This is really annoying lol

@sockevalley Did you ask a question on the site?

@sockevalley I normally don't follow external links. Better ask a question on the main site and add an example and the screenshots to the question.

@sockevalley The code you show above is really not enough to reproduce the problem. I think it would be best (and you'd probably have better answers) if you posted a question on the main site.

@sockevalley and in general regarding questions in the chat: tex.meta.stackexchange.com/a/7292/2388

10:38 AM
@sockevalley Although, from the picture it looks like you have a really bad page break and LaTeX stretched the space after the section title a tad too much. May be related to the [H] option (I'm only guessing, though).

I haven't asked on the site because I am pretty sure I am out of questions, at least if exchange questions are related to overflow questions.

The data provided is all the data I found necessary tbh. I reckon thought that some libraries may interfere that I haven't thought of.

I think it might be a float issue due to [H] option

@PauloCereda ouch

@DavidCarlisle sorry

@sockevalley [H] is a request to get a bad page break rather than move the float, so bad page breaks with large white space are expected if you use [H]
@sockevalley what do you mean by "out of questions" ? You have only ever asked 2 questions on tex.stackexchange tex.stackexchange.com/users/128906/sockevalley (admittedly that is two more than me)

@DavidCarlisle That moment when the only feature of your package is actually a bug.
2

10:53 AM
@yo' It's not my package, I deleted my package as a bad idea, it's just that the code took on a life of its own and was reborn.

11:10 AM
@sockevalley SE doesn't have question limits. There are people on these sites that have asked hundreds of questions. Though asking a lot of questions isn't actually encouraged, especially if you are not answering any questions.

@PauloCereda OK?

We have one user in particular who has made sort of a career of this. Both on U&L and SO.

@FaheemMitha Are you sure that asking a lot of questions is not encouraged?

@CarLaTeX I don't think it is. Why?
It's hard to ask a lot of questions without a drop in quality.
And if you just do that, and don't answer questions, it tends to annoy people over time.

@FaheemMitha A Q&A site can't work without questions, the quality problem is another topic
2

11:15 AM
I'm talking about the site, not in chat.
@CarLaTeX A lot of questions from one person, to be clear.
@CarLaTeX Well, the quality issue is a related one.

@FaheemMitha Peter Wilson does a great job

The person I have in mind has asked an amazing volume of questions. I'm told some of his questions are good - I wouldn't know.
We're talking about thousands of questions. But he's relatively rare.
Most people would rather ask their friends or something. It's less overhead.
@JosephWright He does a great job of what?

@FaheemMitha Is there someone who asked thousands of questions?

@CarLaTeX Yes, that chap on U&L I was talking about.

@FaheemMitha Wow, I didn't think there is someone who can do that

11:19 AM
Currently 1,484 questions on U&L.

@FaheemMitha I think they are one in a million

@JosephWright :)

@FaheemMitha it don't think that it makes much sense to build rules like "it's not encouraged ..." starting from some single, excessive case.

@UlrikeFischer There's no rule. And I'm talking about an excessive number of questions. But perhaps I shouldn't have said anything.
I can use \expanded to replace multiple instances of \expandafter, right? If I want a single token fully expanded, that is.

@FaheemMitha but you formulated a rule. You have one extreme case in your mind and generalised it. Go back and look.

11:31 AM
@UlrikeFischer I wrote:
> Though asking a lot of questions isn't actually encouraged, especially if you are not answering any questions.
That's a heuristic observation, not a rule.
I've never ever seen anyone in 8 years on SE say - please, ask more questions.

@FaheemMitha Not necessarily. \expandafter will expand \protected tokens, but \expanded will not. \expanded does almost the same as \edef

@DavidCarlisle question in the german group: how to compile the file 5%.tex ;-)

@PhelypeOleinik I there is just one (expandable) token I want to full expand, I can precede it with \expanded to fully expand it, right?

@FaheemMitha \expanded{<token>}

@FaheemMitha Yes, but \expanded also needs braces around the argument. What Joseph said ^^^

11:38 AM
@JosephWright @PhelypeOleinik Ok, thank you. I'll give it a whirl.

@PhelypeOleinik I did ... sort of implement it :)

Are the braces necessary as a scope thing?

@JosephWright I know ;-)

@UlrikeFischer 5\csname @percentchar\endcsname.tex ?

@FaheemMitha No, it requires a balanced text

11:39 AM
Since the "scope" of \expandafter is the next token. Does \expanded expand everything following it in braces?

@FaheemMitha Same as for example \toks{...}: you have to have the braces

@DavidCarlisle that works.

@UlrikeFischer naturally: you got the suggestion from a reliable source:-)

@DavidCarlisle why does \string% not work?

@FaheemMitha If the scope you refer to is not the TeX-group-scope, then yes. The syntax for \expanded is the same as for \detokenize or \unexpanded.

11:41 AM
@FaheemMitha Yes, it's more-or-less like \edef

@FaheemMitha the feature of macro arguments that you can drop the brace if it is a single token is not shared by most primitives, so for example you can do \mbox X but \hbox X is a syntax error, you need \hbox{X}

@UlrikeFischer Because the % is ignored by TeX. \expandafter\@gobble\string\% would, though.

@UlrikeFischer because % is a comment character

@PhelypeOleinik I meant "scope" in the loose sense of the tokens that \expanded should be applied to, in this situation.
@JosephWright Ok.

@FaheemMitha Then yes, the braces delimit the scope

11:43 AM
@DavidCarlisle Yes, I see. Though I mostly don't drop the braces.

@UlrikeFischer anyway it all seems very improbable that the German newsgroup would need a filename as short as 5%.tex shouldn't it be filerepresentingafractionoffivehundrethsofsomequantitythatisleftimplicithere.tex ?
4
@PhelypeOleinik except that @ isn't a letter on the commandline

@DavidCarlisle Details ;-)
@DavidCarlisle I didn't know TeX's catcode settings applied to the command line... Interesting.

@PhelypeOleinik well you did, that's why 5%.tex doesn't work...

@DavidCarlisle I supposed (for no particular reason) it was with \input 5%.tex.

@PhelypeOleinik We could blame @UlrikeFischer for not supplying a proper MWE

11:59 AM
I see we have a second latex-dev user ...

@DavidCarlisle Although I should have known that, otherwise pdftex '\input some_file.tex' would have a rather odd behaviour...

@UlrikeFischer easy: mv 5%.tex 5percent.tex && pdflatex 5percent.tex

'mv' is not recognized as an internal or external command,
operable program or batch file.
@Skillmon ^

@DavidCarlisle choco install gnuwin32-coreutils.install
"These are the core utilities which are expected to exist on every operating system."
There must be a problem with your operating system ;)

@DavidPurton I use bash as my shell; I was emulating Ulrike:-)

12:03 PM
ooh
Fair enough
I still like the description of the package though :).

@DavidCarlisle worked fine:
\$ mv 5%.tex 5percent.tex

@Skillmon I use cygwin texlive as my normal (only) tex system
@UlrikeFischer you cheated by having mv installed, or using the git shell or some such

@DavidCarlisle I was emulating you ;-)

@UlrikeFischer unwise!

12:27 PM
@UlrikeFischer ooh

12:48 PM
@DavidCarlisle on my PC cygwin is added to the path and I can use mv in the Windows commandline (on my none-productive Windows)

@Skillmon I don't do that so it is easier to emulate Ulrike customers who don't have cygwin installed.

1:03 PM
@UlrikeFischer any Dutch-related news? :)

@PauloCereda no. Did I forget something?

@UlrikeFischer not at all, don't worry. :) I was wondering if our Dutch expert had some updated. :)

@UlrikeFischer if we are doing another hyperref update I should probably try to update xr-hyper to match xr

@PauloCereda no she only wrote that her friends said everything is ok.

@UlrikeFischer Yay, thank you!
@UlrikeFischer let me prepare a new arara release then.

1:07 PM
@DavidCarlisle ok, I could also look at the issue list, if there is anything easy to fix.

@PhelypeOleinik It does the same thing without the braces.
I could remove the braces if you want.

@FaheemMitha Oh... Then ignore my comment. I'm not at the computer now so I can't test it.

@PhelypeOleinik Ok. An analysis would be helpful.

1:23 PM
@DavidCarlisle what's the stupid version's name of mv?

@Skillmon ren I guess...

@FaheemMitha I'm in a meeting now. After my lunch (about 3 hours) I can give you a detailed explanation if you want, but in short it's what egreg said in the comment. The parser is looking for a - sign, but it doesn't find it because it is "hidden" in a macro. Later on it expands that macro and then tries to use that in an integer comparison.

@Skillmon move

@DavidCarlisle what a stupid inintuitive and obfuscating name.

@Skillmon LOL

1:34 PM
@Skillmon my thoughts exactly
@FaheemMitha \expanded{\foo} is exactly the same as \foo and fails for the same reason, the keyval parser doesn't expand the value so \expanded is not expanded.

@DavidCarlisle Only in TeX you can find things such as "\expanded is not expanded" :-)

@PhelypeOleinik yes although of course this is a very special case, normally you have much more common and clearer phrases like "\noexpand is expanded

Only in this chatroom would you find a joke about the complexities of Windows' move command squashed in between a discussion about \expanded and \noexpand
(Apart from the fact that I'm sure nobody else talks about \expanded and \noexpand)

@DavidPurton This sentence would make a nice subtitle for the community ads for the chatroom (@PauloCereda)

2:03 PM
@DavidPurton we could also mention the last test match

@DavidCarlisle Let's not, I think

@DavidCarlisle -- Would 5\string\\string%.tex work?

@DavidCarlisle You wouldn't guess what miktex does with lualatex 5\csname @percentchar\endcsname.tex
This is LuaTeX, Version 1.10.0 (MiKTeX 2.9.7140 NEXT)
restricted system commands enabled.
! I can't find file 5/csname'.
<*> 5/csname
@percentchar\endcsname.tex
(Press Enter to retry, or Control-Z to exit)

2:21 PM
@PhelypeOleinik Details are always helpful. :-)
@DavidCarlisle Yes, I got that. I should have realised it myself.
So it does actually expand \foo in this case, just not "at the right time"?
@egreg Thank you for the answer. Though
> don't blame me if something goes wrong.
isn't terribly confidence-inspiring.

@UlrikeFischer oh for ****
@barbarabeeton no, if \string can't turn a comment character into anything as it works on tokens and comment characters are not tokenised

@DavidCarlisle nice isn't it? But it is only with lualatex, pdflatex works fine.

2:40 PM
@UlrikeFischer bug report?

@DavidCarlisle I told the user who found it to make one. If he doesn't do it I will make one tomorrow.

@UlrikeFischer really we should not have users, they just generate issues.
3

3:30 PM
@FaheemMitha I filed a feature request to the package author.

@egreg I think I filed an issue, earlier.
However, I now cannot remember how I did it.
Possibly I sent him an email. How did you file the feaure request?

Hello,

how can I include parameter #2 in the following \z definition?

\def\z#1%
{%
\ifnum#1<6
\expandafter\z\expandafter{\the\numexpr#1+1}
#1 %
\else
#1 %
\fi
}
\z{3}

or in alternative \z definition

\def\z#1%
{%
\ifnum#1<6
\edef\zz
{%
\noexpand\z{\the\numexpr#1+1}
}
\zz
#1 %
\else
#1 %
\fi
}
\z{3}
Appending #2 to \z (with some changes made inside the definition itself to reflect additional parameter) breaks the definition and results in errors.

@bp2017 presumably there was an error in the changes you made, but if you don't show what they are, hard to guess.
@bp2017 what do you want it to do?

@egreg Yes, I wrote Andreas Matthias an email on 17th July on this topic.

@FaheemMitha I also added the suggested changes.

3:38 PM
@egreg Ah. So you think those changes are good? I tried it, and the error did go away.
But I've only a sketchy idea what is going on. I looked at the source, but TeX flow control is terrifying to read.

@bp2017 this for example puts #2 after every term in the list.
\def\z#1#2%
{%
\ifnum#1<6
\expandafter\z\expandafter{\the\numexpr#1+1}{#2}
\fi
#1#2 %
}
\z{3}{!}

\bye
so produces 6! 5! 4! 3!

@DavidCarlisle What happened to \zzz?

@PauloCereda optimised two of the z away

3:57 PM
@DavidCarlisle, thank you. Can we switch the parameters without errors being generated?
Make #2 as #1 and vice versa (this is where the problems begin).

@bp2017 as I say it's easier to debug code if you show code that errors rather than make people guess what you might have done wrong.

For example \expandafter{#1}{\the\numexpr#2+1}
or {#1}\expandafter{\the\numexpr#2+1}

@bp2017 well clearly you need to apply \expandafter to \the not #1 (you should use expl3 juggling arguments to make that work is the start of the whole project
@bp2017 just define \zinternal as above and then define \z by \def\z#1#2{\zinternal{#2}{#1}}

@DavidCarlisle, thank you very much.

4:42 PM
@FaheemMitha Actually egreg's answer covers all there is to it. The parser never sees the - because it's hidden in a macro (this happens just two or three expansions before the part of the log you show in your question). Then the trim space code is a bit reckless and expands \foo and strips the layer of braces. The code then checks that the argument is a valid integer, but the verification overlooks the fact that 1- is more than one token, and this goes to the \ifnum test and explodes :-)

@PhelypeOleinik Well, I'm very unclear why his proposed fix actually works. Though it seems to.
How would you fix it?
I tried reading the code, but it's very confusing to read. And completely uncommented. And quite long.
I think if someone wanted to write a language just to scare people, they couldn't do much better than TeX.

@FaheemMitha He just makes sure the argument is expanded before going to the internals of pdfpages. The layer of braces is still there, but some piece of code probably takes care of that (intentionally or otherwise).

@PhelypeOleinik So you think that fix would work reliably?
The "don't blame me" part left me a little doubtful.
BTW, you wrote:
> Then the trim space code is a bit reckless and expands \foo and strips the layer of braces.
I take it the "reckless" bit refers to the braces stripping?

@FaheemMitha Reliable is relative. For instance (my opinion may be biased but) l3fp's parser is very thorough, it stops you from doing a lot of wrong things with nice error messages. Yet \fp_eval:n{1+\csname} will break badly :-)
@FaheemMitha Both the expansion and brace stripping. If the code is supposed to trim spaces, it probably shouldn't do anything else other than that. If it does, odd things like this may happen

@PhelypeOleinik I don't know what l3fp is, but I take it that's some LaTeX 3 thing.
@PhelypeOleinik Hmm. Is that code quite old?
I'm not even sure if the development code is publicly available? But is there an alternative?

4:49 PM
@FaheemMitha LaTeX 3's floating point module. If you \usepackage{xfp} you can use \fpeval instead of \fp_eval:n.
@FaheemMitha I have no idea :-)
@FaheemMitha Not that I know of.

It would be nice if this kind of functionality was integrated into LaTeX proper.
@PhelypeOleinik But you don't see an obvious problem with that fix?
It would be quite annoying if it broke later. But the fix I'm currently using is very ugly, and I'd like to get rid of it.

Gödelsche Unvollständigkeitssatz.
@DavidCarlisle ooh zinternal

@FaheemMitha Well, \edef is... brutal. If you put anything that doesn't work by pure expansion (first example that comes to mind: \@ifnextchar) inside an \edef it will break. But then the argument is supposed to contain numbers only. Reliability relies on the user being sensible :-)

@PhelypeOleinik The pages argument?

@PhelypeOleinik well said. :)

4:53 PM
@FaheemMitha Yes. Actually answering your question: If you behave, I think egreg's fix will behave too

I promise not to feed the pages argument anything but numbers. Possibly including dashes and commas.

@PauloCereda :-)
@FaheemMitha And then babel activates one of them and boom :D
@FaheemMitha Maybe \protected@edef will be slightly safer.

BTW, it's weird, but there is a also a page argument, which contains the exact same code that egreg has. But I don't see it anywhere else.

@PhelypeOleinik exactly. :) Unless someone proves TeX to be of noetherian and Church-Rosser natures.

@PhelypeOleinik I can tell you are trying to cheer me up. :-)
@PhelypeOleinik Do you think, as a LaTeX 3 user, that LaTeX 3 will make TeX code less terrifying?
It does at least look more structured. Most LaTeX 2 code looks like a plateful of spaghetti which has been well scrambled by a toddler.

4:56 PM
@PauloCereda TeX can be proven to be a lot of things :-)
@FaheemMitha I'm good at that :-)

@PhelypeOleinik indeed. :) But probably not those two. :)
(I tried and failed)

@FaheemMitha It does make. The best example is expansion control. You seldom need an \expandafter \exp_after:wN in the code.

@PhelypeOleinik Well, that's a relief.

@FaheemMitha but at the end of the day, you are responsible for the code you write.

@PauloCereda I'd prefer to blame someone else, following recent tradition.

5:00 PM
@FaheemMitha It is. Everything, from the name of the functions, how they treat the argument, how many times it is expanded, how many braces are stripped is controlled. If it's not, then it's probably a bug. It's really neat :-)

@PhelypeOleinik So an improvement over LaTeX 2, then?

@PauloCereda /whispering I have no idea what those are :|

@PhelypeOleinik /whispering do not worry, they are not important for us. :)

@FaheemMitha LaTeX2e is really good at what it does, and it does very different things than expl3. For now most of LaTeX3 is the expl3 code, which is the programming layer. Things to "pass tokens around in funny ways", manipulate data and so on. For instance, LaTeX3 still has very little typesetting support. It would probably be hard to use without 2e for now. Work is underway to change that

@PhelypeOleinik It might be good at what it does, but it's not exactly easy to understand. Though I'm not sure how much of an improvement LaTeX 3 will be.
Anyway, to go back to the topic at hand, do you reckon \protected@edef would be an improvement?

5:08 PM
@FaheemMitha I never said it was :-) But the expl3 kernel code is not much more friendly either, it's the interface that is. It's a bit easier to read because of the arg specs and more clear function names. But if you take a look at some of its internals the code will be rather hard to understand too. That's probably because both are TeX

@PhelypeOleinik Probably.

@FaheemMitha Might be, depending on the input. If I recall correctly, if babel activates a character (say, -), then \protected@edef{-} will not break, while \edef{-} will.

BTW, anyone here who is familiar with pgfkeys? \pgfkeys seems to get upset if I give it an optional argument, but then don't actually pass it.
But I could not find this documented anywhere. It would be nice if it just ignored it.
@PhelypeOleinik But not worse?

@FaheemMitha it would be also nice if you post actual code. :)

@PauloCereda I've got a sort of MWE. But I wouldn't bother if it was a known issue.

5:11 PM
@FaheemMitha but you bother others. :)

So, something like:
\pgfkeys{/pdffile, default, #1}
where #1 is optional. And default just does some setup. Like
default/.style = ...

@FaheemMitha but it would be much easier to say if it is a known issue if you would give a complete example that one can simply try instead of a more or less vage descriptions and snippets.

It then errors out with a
I do not know the key '/pdffile/-NoValue-'
@UlrikeFischer I thought that "vague" description might be enough, if it was a known issue.
But I could post a question. Though I'd prefer it wasn't a dupe.
Though doing a search doesn't bring up anything.
Hang on, maybe I'm doing a bad search.

@FaheemMitha Hadrly. The difference between \edef and \protected@edef is that the former just expands everything (except \protected macros), while the latter redefines LaTeX's \protect to be (roughly) \noexpand, so something that is not supposed to expand in an \edef is preserved. Everything else is the same

@PhelypeOleinik Sounds mildly safer. \edef ignores \noexpand?
Or am I misunderstanding you?

5:21 PM
@FaheemMitha well no, not if it means that at the end you are spreading your description over 10 chat messages without any concrete code. LaTeX is large, tikz is large, pgfkeys is large. There a lots of ways to use and to use it wrong.

pgfkeys certainly seems to generate a lot of confusion.

@FaheemMitha asking questions without a clear test case generates more.
2

@FaheemMitha No, \noexpand works the same. Suppose you have \edef{\protect\foo}. \protect is normally \relax, so \edef{\protect\foo} will be \relax\expansion_of_foo. If \foo doesn't work by expansion then it breaks. Inside \protected@edef, \protect becomes \noexpand, so \protected@edef{\protect\foo} is just \foo. The definition of \protected@edef is around line 1000 of latex.ltx.

@PhelypeOleinik I'm not even clear what the difference between \relaxand \noexpand is. They both stop stuff from expanding.

@FaheemMitha no \relax does not do anything, hence its name.

5:28 PM
@DavidCarlisle My mistake. Though perhaps \nothing would have been a clearer name.

@FaheemMitha \relax does nothing, \noexpand turns the next token into a \relax.

@PhelypeOleinik So \relax does not relax at all... :(
@FaheemMitha but it's not a verb.

5:43 PM
@PauloCereda I think it's Knuth telling the programmer to \relax a bit before trying to figure out what went wrong

@PhelypeOleinik Let me find a nice line from a former professor of mine. His talk was amusing...

@PauloCereda Nice excuse to take a walk ;-)

@PhelypeOleinik and relax. :)
@PhelypeOleinik: on a more serious note: 10 phases?! DUDE

@PauloCereda I had no idea. Compiling some programs I noticed it did have more than one phase, but not 10 :|

@PhelypeOleinik Thank you for the clarification.
@PauloCereda Well, ok. \donothing.

5:56 PM
@FaheemMitha so if you do nothing you are relaxing, no?

@PauloCereda A couple years ago I was working with my former advisor on a technical report. We were simulating waste disposal in the sea, and there were a lot of simulated scenarios. The final report turned out to be some 2000 pages. I was responsible to make the graphics. The computer working by itself took 2 or 3 days to generate all the images from the results. It was a nice break for coffee :-)

@DavidCarlisle Well, you might be sipping an iced drink and listening to music while relaxing. And/or reading a novel.
(I don't really take vacations, but I like the idea.)

@FaheemMitha \relax by itself does nothing, but if TeX is doing something (scanning an integer, for instance), it tells TeX to stop what it's doing. Perhaps that's the reason for the name.

@FaheemMitha or you might be a non expandable command that does nothing itself but just by being there inhibits the expansion of other tokens.

@PhelypeOleinik Yes, I see. That makes sense.
@DavidCarlisle So, \expansionblock? :-)

6:00 PM
@PhelypeOleinik although it's not \relax that inhibits the scanning, any non-expandable token does that, it's just that \relax does nothing.

@DavidCarlisle so it's like writing a thesis

@FaheemMitha no not at all, \relax has no special code for suppressing expansion or scanning for integers, it is simply a non expandable command that does nothing.

@DavidCarlisle Just kidding.

@PauloCereda except that it exists

@DavidCarlisle Yes, that's a better description

6:02 PM
@DavidCarlisle oh

Jan 12 '16 at 12:15, by David Carlisle

@DavidCarlisle oh no

7:00 PM
@PauloCereda oh yes!

7:20 PM
Does the O{} argument (no spaces between braces) for \NewDocumentCommand pass an empty string by default? Though I don't think TeX actually has strings, so presumably some equivalent.

@FaheemMitha well it passes nothing, just as if you had used the optional argument with no content like []

@DavidCarlisle I see.
Why doesn't o do that by default? No pun intended.
It passes a special marker, it seems.

@FaheemMitha because not using the argument is not the same thing as using the argument with no value.

@DavidCarlisle So, special no value marker?
And apparently not standard, either.

@FaheemMitha \caption[]{foo} puts an empty caption in the list of figures, \caption{foo} is the same as \caption[foo]{foo} and puts a caption with text foo in the list of figures.

7:25 PM
Does git and/or github or sourcetree constantly change files in the background? All my git repos are in Dropbox folders, and now Dropbox is constantly syncing git related files (heads, remotes, etc.) I've never noticed this behaviour before.

Some languages do have them.

@FaheemMitha ??

@DavidCarlisle It isn't a standard TeX "no value" marker. Assuming such a thing exists in the first place. Perhaps it doesn't.

@FaheemMitha tex has no standard concept of optional arguments so couldn't really have a standard no-value
@AlanMunn not as far as I know, although it doesn't usually preserve filedates so an update might cause some dropbox churn

@DavidCarlisle Oh. Right, I keep forgetting that it's stuff on top of stuff.
R has NA and Null, for example. Python has None.
Why doesn't TeX get one?
@AlanMunn Did you change any configuration stuff?

7:29 PM
@FaheemMitha Not that I'm aware of. And no recent updates either I don't think.

@FaheemMitha At a core level, that's just an empty balanced text, surely

@FaheemMitha TeX is a macro expansion language, what would it be, Null/None etc are friends of C null pointer and tex has nothing remotely like a C pointer

@DavidCarlisle It could just be a conventional marker thingy.
Like \relax.

@FaheemMitha why?

@AlanMunn That's odd.

7:31 PM
@FaheemMitha it would seem far more natural for a macro language written in tex to define any markers it needs

@DavidCarlisle Would be occasionally handy when you needed something signifying not a value.

@FaheemMitha why?

@DavidCarlisle Then everyone would be using a different marker.

@FaheemMitha There's no TeX core place where it makes sense: that's just like I said an empty balanced text

7:32 PM
@DavidCarlisle Well, it comes up occasionally. Other languages have it. \NewDocumentCommand has one.

^^^ All I see these days...

@FaheemMitha no anyone using the optional parameter system defined by xparse is using the same marker, and if you are using a completely different optional parameter system how would sharing one internal command for one specific aspect help at all?

@AlanMunn That's all automated activity? Does Dropbox keep any kind of logs of what it does?
@DavidCarlisle It would normally help communication across different subsystems.
At least, that's why languages have one, I suppose.

@FaheemMitha very unlikely.

Kind of like everyone using the same notation.

7:34 PM
@FaheemMitha everyone in python is using the same function call parser.
@FaheemMitha but using the same notation is exactly what tex is designed not to do. It has essentially no built in syntax, it is a macro definition language that lets you define syntax.

@DavidCarlisle Makes it more difficult when different pieces are trying to work together.
Lack of common conventions.

@FaheemMitha no

@FaheemMitha That more or less is the log. Although it just scrolls by. I don't think it's accessible elsewhere, at least not that I'm aware of.

@AlanMunn Personally, I wouldn't use Dropbox for backups, if that's what you're doing.
Seeing as you presumably don't have any control over it.

@FaheemMitha That's a separate problem. And Dropbox is very convenient.

7:39 PM
@FaheemMitha built in to tex there is no standard syntax, not even { .. } for grouping it would be very odd to have a standard command for "no value" without any shared definition of calling conventions or syntax or anything other than that one thing.

@DavidCarlisle It does have primitives.

@FaheemMitha I do know about tex primitives:-)

@DavidCarlisle I know you are.

Hmm. It seems that Dropbox has trouble with symbolic links and this can cause this. And I have symbolic links in my texmf folder. But it's strange I've never seen this until recently.

1 hour later…
8:48 PM
@AlanMunn is using hard links an alternative?

07:00 - 21:0021:00 - 23:00