WEBVTT captioned by sachac NOTE Introduction 00:00:00.140 --> 00:00:04.456 Okay. Good afternoon, morning or evening, 00:00:04.457 --> 00:00:06.519 whatever it is in your time zone. 00:00:06.520 --> 00:00:10.959 I'm Pedro Aranda and I'm going to be talking about 00:00:10.960 --> 00:00:12.959 what I've been doing 00:00:12.960 --> 00:00:16.999 with the latest backend in Org Mode 00:00:17.000 --> 00:00:24.719 and the different... Sorry... and the way it treats fonts. 00:00:24.720 --> 00:00:28.279 Just a couple of words before 00:00:28.280 --> 00:00:30.359 I am going to go through motivation, 00:00:30.360 --> 00:00:35.279 the evolution and get you an idea of what you can get 00:00:35.280 --> 00:00:38.079 from the feature branch that I have started 00:00:38.080 --> 00:00:41.399 and give a couple of demos. NOTE Motivation 00:00:41.400 --> 00:00:47.779 Actually, my motivation is I was using ox-latex currently 00:00:47.780 --> 00:00:51.439 and ox-beamer for as a foundation for my activities, 00:00:51.440 --> 00:00:54.399 mainly for lecture notes and lecture slides 00:00:54.400 --> 00:01:01.359 so I came from pure LaTeX and beamers 00:01:01.360 --> 00:01:04.519 and for me the real cool use case, 00:01:04.520 --> 00:01:05.959 or I would say this was 00:01:05.960 --> 00:01:07.959 the killer use case for me was 00:01:07.960 --> 00:01:09.239 I have a programming lecture, 00:01:09.240 --> 00:01:12.199 which is sort of a Python 101, 00:01:12.200 --> 00:01:14.199 and when I'm live in the lecture, 00:01:14.200 --> 00:01:18.279 I can go, and if the pupils ask me, I can modify code, 00:01:18.280 --> 00:01:21.079 show modified code and results on the fly, 00:01:21.080 --> 00:01:25.119 and that's something that really impresses the kids 00:01:25.120 --> 00:01:30.159 and makes them understand what we are talking about. 00:01:30.160 --> 00:01:34.399 From my pro... subjective point of view, in some, 00:01:34.400 --> 00:01:38.159 mainly in ox-beamer, some of the things that I was missing 00:01:38.160 --> 00:01:41.879 is that emojis would really break the monotony 00:01:41.880 --> 00:01:47.679 and I missed the support for emojis and stock Beamer themes. 00:01:47.680 --> 00:01:52.159 And some fonts I also found were suboptimal 00:01:52.160 --> 00:01:56.639 or difficult to adapt in case they need an adaptation. 00:01:56.640 --> 00:02:01.799 So, for example, people who need special fonts 00:02:01.800 --> 00:02:05.799 because of their special capabilities, 00:02:05.800 --> 00:02:11.159 it's difficult to get those fonts from the stock themes 00:02:11.160 --> 00:02:17.359 and from the stock font implementations you have there. 00:02:17.360 --> 00:02:21.479 So, requirements from the Emacs side to do this is none, 00:02:21.480 --> 00:02:24.999 because basically, okay, the only thing I want 00:02:25.000 --> 00:02:27.159 is to work on a vanilla Emacs, 00:02:27.160 --> 00:02:28.399 which is more or less recent, 00:02:28.400 --> 00:02:30.119 because yes, I'm a bit of a freak 00:02:30.120 --> 00:02:32.479 and I compile it every two, three... 00:02:32.480 --> 00:02:36.839 I get it from master and compile it every two, three days. 00:02:36.840 --> 00:02:40.599 And yahoo, I had to change to a new Mac, 00:02:40.600 --> 00:02:47.359 and I'm able now to get my vanilla Emacs within four. 00:02:47.360 --> 00:02:53.359 So that was a big accomplishment in these last days. NOTE Evolution 00:02:53.360 --> 00:02:55.119 What is the evolution? 00:02:55.120 --> 00:03:00.719 I mean my personal evolution and my take of ox-latex 00:03:00.720 --> 00:03:05.919 was I put everything in a in a LaTeX file 00:03:05.920 --> 00:03:09.959 and I input it through the LaTeX header, and that's it. 00:03:09.960 --> 00:03:12.319 But that was not very beginner-friendly, 00:03:12.320 --> 00:03:15.719 and once I had some people interested in this, 00:03:15.720 --> 00:03:19.159 "oh wow, I can modify the code on the fly 00:03:19.160 --> 00:03:21.119 and see the results on the fly," 00:03:21.120 --> 00:03:26.719 it was more difficult for them to give it a go. 00:03:26.720 --> 00:03:32.359 So I just... Because they, 00:03:32.360 --> 00:03:36.919 there are people who have not that big, 00:03:36.920 --> 00:03:41.159 that much experience with LaTeX 00:03:41.160 --> 00:03:44.919 and it can even be a bridge to introduce people into LaTeX. 00:03:44.920 --> 00:03:48.959 So, in any case, it was not very beginner-friendly 00:03:48.960 --> 00:03:52.799 and I had complaints on that. 00:03:52.800 --> 00:03:57.159 So, what I think was, we can do better. 00:03:57.160 --> 00:04:00.399 My first attempt was something that was completely neutral 00:04:00.400 --> 00:04:02.879 to Babel or Polyglossia. 00:04:02.880 --> 00:04:06.199 and it was made basically for font LaTeX 00:04:06.200 --> 00:04:08.839 although some of the things can... for lualatex 00:04:08.840 --> 00:04:14.279 and some of the things can also be used with xelatex. 00:04:14.280 --> 00:04:16.519 So overriding template fonts 00:04:16.520 --> 00:04:21.279 and taking into account fallback fonts 00:04:21.280 --> 00:04:23.839 was something that I learned 00:04:23.840 --> 00:04:27.959 when we started this conversation, 00:04:27.960 --> 00:04:29.839 and the only problem with this 00:04:29.840 --> 00:04:34.407 is that fallback fonts only work for lualatex 00:04:34.408 --> 00:04:36.307 because xelatex doesn't support them. 00:04:36.308 --> 00:04:40.540 Actually, fallback fonts is a lua feature. 00:04:40.541 --> 00:04:45.319 There was already something in the list 00:04:45.320 --> 00:04:48.399 regarding script detection which helped me a lot. 00:04:48.400 --> 00:04:52.399 So big recognition to Juan M. Macias for that, 00:04:52.400 --> 00:04:57.679 and for his publishing the algorithm or the script 00:04:57.680 --> 00:05:04.399 in the org mode mailing list. 00:05:04.400 --> 00:05:11.319 And then came my sort of little nightmare, 00:05:11.320 --> 00:05:14.174 which was when we started talking 00:05:14.175 --> 00:05:19.039 about internationalization or localization. 00:05:19.040 --> 00:05:21.599 Looking back, I have a very strange feeling 00:05:21.600 --> 00:05:22.919 about a blurring target there. 00:05:22.920 --> 00:05:29.679 Because the reality, being very, very frank, did I need it? 00:05:29.680 --> 00:05:34.919 Really no, because I just needed 00:05:34.920 --> 00:05:39.999 to add Spanish with Babel and that was it. 00:05:40.000 --> 00:05:43.199 Well actually for me it still is 00:05:43.200 --> 00:05:46.519 and you can put the British, German or Italian 00:05:46.520 --> 00:05:48.359 it continues to be true for me, 00:05:48.360 --> 00:05:51.839 so I had personally, I had little interest in doing that, 00:05:51.840 --> 00:05:55.319 but I took it as a challenge 00:05:55.320 --> 00:06:02.479 which has shown to be really tough. NOTE What do you get from the feature branch? 00:06:02.480 --> 00:06:04.955 What do you get from the feature branch? 00:06:04.956 --> 00:06:08.999 The feature branch adds font management for fontspec, 00:06:09.000 --> 00:06:10.839 which is not strictly needed 00:06:10.840 --> 00:06:14.919 when you are on Latin, Cyrillic, and Greek scripts 00:06:14.920 --> 00:06:18.579 as long as the fonts in your template support them. 00:06:18.580 --> 00:06:28.799 But again, it's a nice way to get better support here. 00:06:28.800 --> 00:06:33.039 You don't need it if you're happy with the fonts you get 00:06:33.040 --> 00:06:38.439 from the templates that you use both for Beamer 00:06:38.440 --> 00:06:40.359 and the document classes in LaTeX. 00:06:40.360 --> 00:06:43.639 If you don't want to use alternative fonts, 00:06:43.640 --> 00:06:47.999 you don't need it, but you would need it. 00:06:48.000 --> 00:06:50.639 Of course, if you don't want things like, 00:06:50.640 --> 00:06:55.719 for example, emojis or need emojis, 00:06:55.720 --> 00:06:59.359 you really don't need fallback fonts. 00:06:59.360 --> 00:07:05.319 So my idea is that the next thing that you can add 00:07:05.320 --> 00:07:07.319 is Babel and Polyglossia here 00:07:07.320 --> 00:07:13.079 for enhanced localization and multilingual documents there. 00:07:13.080 --> 00:07:17.799 And at the end, my vision was that the keywords involved 00:07:17.800 --> 00:07:19.799 would be language, the main language. 00:07:19.800 --> 00:07:23.039 And then a nice idea from Ihor 00:07:23.040 --> 00:07:27.199 was to put all the secondary languages there too. 00:07:27.200 --> 00:07:30.559 Then specify the LaTeX compiler. 00:07:30.560 --> 00:07:32.639 Then what I've added is a keyword 00:07:32.640 --> 00:07:34.279 which is `#+LATEX_MULTI_LANG:` 00:07:34.280 --> 00:07:37.879 which can be fontspec or babel or polyglossia 00:07:37.880 --> 00:07:40.319 for localized documents. 00:07:40.320 --> 00:07:45.359 By default, this thing is nil and when it is nil, 00:07:45.360 --> 00:07:51.719 you get the behavior from Org Mode 00:07:51.720 --> 00:07:56.559 that you already are used to if you don't want to switch. 00:07:56.560 --> 00:08:00.559 Jing Huang was there and I was really, 00:08:00.560 --> 00:08:03.479 was chirped into the conversation 00:08:03.480 --> 00:08:06.799 and really helpful and a big thanks to him 00:08:06.800 --> 00:08:10.974 because he also had an easy idea 00:08:10.975 --> 00:08:13.079 to support Chinese and Japanese documents, 00:08:13.080 --> 00:08:17.239 so that the only thing that you need is to add the language 00:08:17.240 --> 00:08:21.859 that you're going to write your document in. 00:08:21.860 --> 00:08:23.639 Very, very big thank you for that, 00:08:23.640 --> 00:08:25.399 because that was really a challenge 00:08:25.400 --> 00:08:29.279 not being able to decipher 00:08:29.280 --> 00:08:32.639 what I was what I was coding there 00:08:32.640 --> 00:08:34.439 in terms of: I have a document, 00:08:34.440 --> 00:08:37.519 I copy and paste it from some place, 00:08:37.520 --> 00:08:40.039 and from there, I get my answer, I get my PDF, 00:08:40.040 --> 00:08:47.279 and I compare whether it is correct or not. NOTE Behind the scenes: .dir-locals.el 00:08:47.280 --> 00:08:50.239 So what is behind the scenes? 00:08:50.240 --> 00:08:52.959 I've always suggested that in order 00:08:52.960 --> 00:08:55.239 to use the feature branch efficiently, 00:08:55.240 --> 00:08:59.919 you create a file with the default values 00:08:59.920 --> 00:09:02.439 you need for your variables, 00:09:02.440 --> 00:09:06.199 and that's this famous .dir-locals.el files. 00:09:06.200 --> 00:09:10.239 What I do is, I have a generic one 00:09:10.240 --> 00:09:12.079 in my home documents directory, 00:09:12.080 --> 00:09:16.599 and this is used for all the org documents 00:09:16.600 --> 00:09:20.559 that are in subdirectories from there. 00:09:20.560 --> 00:09:24.039 Why? Because normally you will not be 00:09:24.040 --> 00:09:26.599 changing your fonts that often, 00:09:26.600 --> 00:09:29.599 and if you need, you can always go 00:09:29.600 --> 00:09:33.479 and have your configuration locally. 00:09:33.480 --> 00:09:38.639 So it's this point where I'm collecting 00:09:38.640 --> 00:09:40.759 my font configuration and 00:09:40.760 --> 00:09:47.519 for me, this gives me a very, very nice quick start 00:09:47.520 --> 00:09:49.639 for new documents and presentations. 00:09:49.640 --> 00:09:54.239 And there you can even configure a lot of compiler 00:09:54.240 --> 00:09:56.839 and font language management too, 00:09:56.840 --> 00:10:00.919 so you have everything in a file. 00:10:00.920 --> 00:10:04.759 And the other nice thing for that 00:10:04.760 --> 00:10:08.479 is that you can also include that in a subdirectory. 00:10:08.480 --> 00:10:13.199 And if this subdirectory is something that you're sharing 00:10:13.200 --> 00:10:14.479 in a project with other people, 00:10:14.480 --> 00:10:17.759 you are already configuring the, say, 00:10:17.760 --> 00:10:23.559 quote, unquote, corporate look and feel for your documents 00:10:23.560 --> 00:10:26.079 in that project for everyone 00:10:26.080 --> 00:10:28.919 and no one else has to care about 00:10:28.920 --> 00:10:35.119 how this document has to be configured. 00:10:35.120 --> 00:10:38.679 One of the things that I really like in this approach 00:10:38.680 --> 00:10:40.439 is that it is a grow-as-you-go. 00:10:40.440 --> 00:10:44.079 So, for example, you can start with something like that, 00:10:44.080 --> 00:10:48.439 which is I have my fonts, my basic fonts for main, 00:10:48.440 --> 00:10:51.479 which is the serif font, for sans, 00:10:51.480 --> 00:10:54.079 which is the sans serif font, for maths, 00:10:54.080 --> 00:10:58.639 and for the mono, with some features like to make them scale. 00:10:58.640 --> 00:11:03.739 This is something that is provided by you 00:11:03.740 --> 00:11:05.359 through the fontspec package, 00:11:05.360 --> 00:11:08.959 and you're happy with it, and you work with it, 00:11:08.960 --> 00:11:11.919 and in a given moment, 00:11:11.920 --> 00:11:14.439 you go and you have your own problems 00:11:14.440 --> 00:11:15.779 or your own challenge, 00:11:15.780 --> 00:11:20.279 and you need to have, for example, emojis for one of the fonts, 00:11:20.280 --> 00:11:24.959 and what you do is, in this case, you just add the emojis 00:11:24.960 --> 00:11:31.239 as a fallback font in the font that where you want to replace this. 00:11:31.240 --> 00:11:37.339 This is what I'm doing right now for this presentation, and you will see... 00:11:37.340 --> 00:11:39.119 You can always, as I've said, 00:11:39.120 --> 00:11:42.359 you can always have your dir-locals, 00:11:42.360 --> 00:11:46.319 and you can copy that into a working directory 00:11:46.320 --> 00:11:49.439 which needs special adaptations or has special needs, 00:11:49.440 --> 00:11:54.119 and from there, you have that directory 00:11:54.120 --> 00:11:59.079 with your modified or customized dir-locals.el file. NOTE When fontspec is not enough 00:11:59.080 --> 00:12:05.439 So, fontspec is normally enough, 00:12:05.440 --> 00:12:09.379 but sometimes, you can't control all the fonts 00:12:09.380 --> 00:12:15.479 with fontspec only, and there you have a polyglot here 00:12:15.480 --> 00:12:19.319 and babel coming to your help. 00:12:19.320 --> 00:12:21.359 This may also be the case 00:12:21.360 --> 00:12:25.119 that you are working in an intended language, 00:12:25.120 --> 00:12:28.959 I don't know which, but an intended language, and you found, 00:12:28.960 --> 00:12:31.279 and you wanted to see how that was configured, 00:12:31.280 --> 00:12:34.999 and you found the latest example 00:12:35.000 --> 00:12:38.639 that used Babel or Polyglossia. 00:12:38.640 --> 00:12:42.559 The exporter provides you variables 00:12:42.560 --> 00:12:48.679 to configure both fontspec, Polyglossia and Babel. 00:12:48.680 --> 00:12:56.799 So just as an example of how I picture this is, 00:12:56.800 --> 00:12:59.359 uh, you find it in the Internet, 00:12:59.360 --> 00:13:01.679 something like that, uh, something like this, 00:13:01.680 --> 00:13:05.599 because you have your document and you need Thai. 00:13:05.600 --> 00:13:09.999 So, and I found an example in the internet 00:13:10.000 --> 00:13:13.359 that tells me that I'm going to be using Babel. 00:13:13.360 --> 00:13:15.079 Main is going to be English. 00:13:15.080 --> 00:13:20.339 And I'm also going to have Thai. 00:13:20.340 --> 00:13:23.840 And then they tell me that, for English, 00:13:23.841 --> 00:13:26.639 I'm going to be using Noto Serif for the main, 00:13:26.640 --> 00:13:30.082 for the main of the serif font, 00:13:30.083 --> 00:13:31.759 Noto Sans for the sans font, 00:13:31.760 --> 00:13:35.799 and then when I'm writing things in Thai, 00:13:35.800 --> 00:13:41.106 I'm going to be using Noto Serif Thai and Noto Sans Thai. 00:13:41.107 --> 00:13:42.399 That's what I see in the Internet. 00:13:42.400 --> 00:13:47.159 So what you can always do, what you would do in this case, 00:13:47.160 --> 00:13:54.279 is I'm going to get and map the font configurations 00:13:54.280 --> 00:13:59.239 from the latest into this variable. 00:13:59.240 --> 00:14:03.479 Things that you have to take into account here 00:14:03.480 --> 00:14:05.107 is, for example, the language. 00:14:05.108 --> 00:14:07.774 The language here is Thai. You have the language 00:14:07.775 --> 00:14:10.559 that you're intending this font for is Thai. 00:14:10.560 --> 00:14:16.319 So this appears here. In case you don't have any language, 00:14:16.320 --> 00:14:19.439 like in the first two lines, 00:14:19.440 --> 00:14:21.039 you just say that the language is nil, 00:14:21.040 --> 00:14:23.959 which is the language for the default language. 00:14:23.960 --> 00:14:26.799 The other thing is in my example, 00:14:26.800 --> 00:14:29.374 in this example that I found in the Internet, 00:14:29.375 --> 00:14:40.174 I have my properties for the fonts in this part in LaTeX, 00:14:40.175 --> 00:14:43.907 and I put them as properties here. 00:14:43.908 --> 00:14:53.519 That's the whole idea behind the feature branch. 00:14:53.520 --> 00:15:01.640 The babelprovide part is generated or is also integrated 00:15:01.641 --> 00:15:11.319 from the Org header, mainly from the language line. 00:15:11.320 --> 00:15:14.600 We have a variable in case you need to tweak it, 00:15:14.640 --> 00:15:21.079 but normally the defaults provided by Org are good enough. NOTE Rationale behind my take at LaTeX font management 00:15:21.080 --> 00:15:27.679 So what is the rationale behind my take at LaTeX font management? 00:15:27.680 --> 00:15:31.359 That's something that might be something very personal. 00:15:31.360 --> 00:15:33.759 When am I using fontspec? 00:15:33.760 --> 00:15:37.239 I'm using fontspec when I'm with Lua- or xelatex, 00:15:37.240 --> 00:15:40.279 and I want fonts that are different 00:15:40.280 --> 00:15:42.439 from those specified in the LaTeX class. 00:15:42.440 --> 00:15:49.279 That's point number one. I will also go for fontspec 00:15:49.280 --> 00:15:52.599 when I need to support scripts, 00:15:52.600 --> 00:15:54.559 but I'm missing in the fonts I use, 00:15:54.560 --> 00:15:59.479 and I can use fallback fonts for that. I have two. 00:15:59.480 --> 00:16:05.239 The only limitation I have here is the following: 00:16:05.240 --> 00:16:09.039 all languages must be left to right. 00:16:09.040 --> 00:16:12.799 And if you don't say anything at all, 00:16:12.800 --> 00:16:16.519 the LaTeX backend assumes that you want the dates, 00:16:16.520 --> 00:16:18.599 standard names for the abstract and so on 00:16:18.600 --> 00:16:21.039 in American English, if you're using them. 00:16:21.040 --> 00:16:24.759 In many cases, you're not using any sort of 00:16:24.760 --> 00:16:26.274 abstract, table of contents, and so on, 00:16:26.275 --> 00:16:27.879 and you don't need that. 00:16:27.880 --> 00:16:34.119 The important thing is maybe date management. 00:16:34.120 --> 00:16:36.199 If you need dates, headings 00:16:36.200 --> 00:16:40.359 or anything in any other language or locale, 00:16:40.360 --> 00:16:46.199 then yes, then you need to use Babel or Polyglossia. 00:16:46.200 --> 00:16:52.959 Choice, Depends. Can use polyglossia here, 00:16:52.960 --> 00:16:56.039 or you can use Babel, whatever you want. 00:16:56.040 --> 00:16:58.599 Also, in some cases, it will depend 00:16:58.600 --> 00:17:00.399 if you've been researching a bit 00:17:00.400 --> 00:17:02.439 of how this is done with pure LaTeX, 00:17:02.440 --> 00:17:05.639 it will be also depending on, uh, 00:17:05.640 --> 00:17:07.799 on the examples that you get. 00:17:07.800 --> 00:17:10.999 So, what can you, when you are using 00:17:11.000 --> 00:17:12.639 Babel or Polyglossia here, what do you have? 00:17:12.640 --> 00:17:16.919 You have your dates, your headings, and so on. 00:17:16.920 --> 00:17:20.999 You might need to control the text 00:17:21.000 --> 00:17:22.919 in the sense that what passage 00:17:22.920 --> 00:17:24.519 is written in what language. 00:17:24.520 --> 00:17:29.159 For example, for things like hyphenation 00:17:29.160 --> 00:17:37.119 and some ways of writing the hyphens in a 00:17:37.120 --> 00:17:42.519 and direct speech and things like that. 00:17:42.520 --> 00:17:45.519 And the other place where you need 00:17:45.520 --> 00:17:47.279 other Babel or Polyglossia here, 00:17:47.280 --> 00:17:50.439 and you will see that, because all examples 00:17:50.440 --> 00:17:53.319 that you can get for later, in this case, 00:17:53.320 --> 00:17:56.140 is when you have a language 00:17:56.141 --> 00:17:59.407 that uses right to left alignment 00:17:59.408 --> 00:18:06.439 like Arabic, Hebrew and others. 00:18:06.440 --> 00:18:14.479 So one note of, I would say, care is you always use the, 00:18:14.480 --> 00:18:16.639 if you use Unicode fonts 00:18:16.640 --> 00:18:19.719 that includes the scripts as you need, 00:18:19.720 --> 00:18:28.239 you will have done, that will be a great leap for you 00:18:28.240 --> 00:18:34.479 because that simplifies the configuration a lot. NOTE Demonstrations 00:18:34.480 --> 00:18:36.839 Now, a couple of demos. 00:18:36.840 --> 00:18:39.319 I don't know if you've noticed 00:18:39.320 --> 00:18:43.199 first demo is that I'm using 00:18:43.200 --> 00:18:47.519 fonts that are not the official fonts 00:18:47.520 --> 00:18:48.959 in this Beamer template, 00:18:48.960 --> 00:18:51.399 which is by the way Boadilla. 00:18:51.400 --> 00:18:53.959 This would be the first thing. 00:18:53.960 --> 00:18:56.599 So I've been using other fonts, 00:18:56.600 --> 00:19:01.679 and they are, at least from what I get in class, 00:19:01.680 --> 00:19:03.759 they are more readable than the official... 00:19:03.760 --> 00:19:06.279 than the default fonts in Polyglossia, 00:19:06.280 --> 00:19:12.239 that you get in Babel for the Boadilla theme. 00:19:12.240 --> 00:19:14.319 Another thing is what I've told you, 00:19:14.320 --> 00:19:18.959 I have my own things like emojis. 00:19:18.960 --> 00:19:22.799 Now, if you allow me for a second, 00:19:22.800 --> 00:19:26.999 I'm going to switch to the Emacs 00:19:27.000 --> 00:19:36.759 which is running behind the scenes to show you what. 00:19:36.760 --> 00:19:42.119 Okay, fine. So, this is the presentation. 00:19:42.120 --> 00:19:44.799 that I have here, and as you see, 00:19:44.800 --> 00:19:54.839 I'm using Lua LaTeX and just fontspec, 00:19:54.840 --> 00:19:59.440 given I don't know why I would need this, 00:19:59.480 --> 00:20:01.079 this is an English presentation, 00:20:01.080 --> 00:20:03.039 but just to show you what you can do, 00:20:03.040 --> 00:20:09.359 if I go back here, and I go to the beginning of the presentation, 00:20:09.360 --> 00:20:11.171 and now what... 00:20:11.172 --> 00:20:12.940 [Ihor]: I don't think you're showing anything 00:20:12.941 --> 00:20:18.479 [Pedro]: Oh, thank you. 00:20:18.480 --> 00:20:21.399 Okay, this is the presentation, right? 00:20:21.400 --> 00:20:23.540 So what I'm going to do is, I'm going to go back 00:20:23.541 --> 00:20:31.200 and I'm going to show the full screen. 00:20:31.201 --> 00:20:32.639 And in this full screen, 00:20:32.640 --> 00:20:34.759 you see the presentation on one side 00:20:34.760 --> 00:20:40.599 and you see Emacs on the other side. Oh, still nothing. 00:20:40.600 --> 00:20:44.319 Yeah, we're not seeing your screen at the moment, sorry. 00:20:44.320 --> 00:20:47.719 Oh, thank you. Thank you for that. 00:20:47.720 --> 00:20:52.879 Now it's starting to come. Okay. Yay! Fine. 00:20:52.880 --> 00:21:00.399 So this presentation, I've done it with Lua LaTeX, 00:21:00.400 --> 00:21:06.439 and what I add here is fontspec and English language. 00:21:06.440 --> 00:21:10.240 Just to show you, but with the same configuration, 00:21:10.280 --> 00:21:11.839 with the same fontspec configuration, 00:21:11.840 --> 00:21:20.473 but adding Polyglossia. 00:21:20.474 --> 00:21:23.159 I just have enough with adding Polyglossia 00:21:23.160 --> 00:21:28.799 with the Spanish language to get my dates correctly, 00:21:28.800 --> 00:21:32.559 and this is something... I'm going to see the date in English, 00:21:32.560 --> 00:21:46.719 and if I now go and recompile it, in a couple of seconds, 00:21:46.720 --> 00:21:48.999 you will see that the date is in Spanish. 00:21:49.000 --> 00:21:53.879 We are using the same... Which I can show, by the way. 00:21:53.880 --> 00:21:58.079 I see just by adding polyglossia here, 00:21:58.080 --> 00:22:02.339 I can get my dates in Spanish. 00:22:02.340 --> 00:22:09.559 What... I have included the dir-locals 00:22:09.560 --> 00:22:16.959 in these lines, but just to discuss it a bit more. 00:22:16.960 --> 00:22:19.439 I have it for all the presentations. 00:22:19.440 --> 00:22:24.319 I think it was here. No. For the demo, 00:22:24.320 --> 00:22:28.799 for the presentations I use for Emacs conferences, 00:22:28.800 --> 00:22:33.959 I have it, and it's something like this. 00:22:33.960 --> 00:22:37.359 Actually, you don't need a fallback 00:22:37.360 --> 00:22:40.107 for the main font here 00:22:40.108 --> 00:22:44.607 because the presentations are done with the sans font, 00:22:44.608 --> 00:22:46.559 so the only thing that I would really need 00:22:46.560 --> 00:22:48.199 would be something like this. 00:22:48.200 --> 00:22:53.919 This can be commented, and the same happens here 00:22:53.920 --> 00:22:57.474 with the mono. This can be also commented. NOTE Demo: Emoji 00:22:57.475 --> 00:23:00.399 The only thing where I would really need 00:23:00.400 --> 00:23:02.119 a fallback font is here, 00:23:02.120 --> 00:23:04.319 and what this is telling me is that 00:23:04.320 --> 00:23:07.079 you have a fallback for the emoji, 00:23:07.080 --> 00:23:09.799 for the emoji script, 00:23:09.800 --> 00:23:14.740 and you need to use the Apple Color Emoji font 00:23:14.741 --> 00:23:15.399 with a modifier, 00:23:15.400 --> 00:23:18.759 which in this case is that you need 00:23:18.760 --> 00:23:22.874 to have the Harfbuzz renderer. 00:23:22.875 --> 00:23:24.599 That's the only thing that you really need. 00:23:24.600 --> 00:23:26.679 Where do I get all these things from? 00:23:26.680 --> 00:23:29.039 All these things I get from the different parts 00:23:29.040 --> 00:23:33.179 and from different scripts in the Internet. NOTE Demo: Letter 00:23:33.180 --> 00:23:38.039 I also have a couple of other things to show. 00:23:38.040 --> 00:23:42.919 For example, first of all, I do not need this. 00:23:42.920 --> 00:23:44.749 This is a letter that I've been writing this morning 00:23:44.750 --> 00:23:55.640 and I'm not using the feature branches at all, 00:23:55.641 --> 00:23:58.119 because I just needed a sans font, 00:23:58.120 --> 00:24:02.119 and it's going to be a letter that I'm writing in 00:24:02.120 --> 00:24:06.119 with the sans font, and the only thing I need 00:24:06.120 --> 00:24:08.679 was Spanish polyglossia for the date. 00:24:08.680 --> 00:24:14.719 Anyhow, how did... What was my first thing that I did 00:24:14.720 --> 00:24:19.639 with the back end? Back in I think it was April, 00:24:19.640 --> 00:24:23.079 we had a... this comes from the mailing list, 00:24:23.080 --> 00:24:26.759 we had someone who had this problem right, 00:24:26.760 --> 00:24:29.559 and he wanted to add emojis, 00:24:29.560 --> 00:24:33.039 and he had problems with the verbatim font, 00:24:33.040 --> 00:24:35.279 and that's how everything got started. 00:24:35.280 --> 00:24:43.859 If you now go and I get my LaTeX for that running. 00:24:43.860 --> 00:24:50.559 Well, I actually, all my LaTeX is supported for that. 00:24:50.560 --> 00:24:58.119 And this was what I showed in one of the Emacs, Org Mode meetups. 00:24:58.120 --> 00:25:00.079 And there you see that we have the emojis. 00:25:00.080 --> 00:25:06.879 We had the fonts for the different things. We had maps. 00:25:06.880 --> 00:25:13.799 And you could even go and add scripts 00:25:13.800 --> 00:25:16.319 and little passages and different scripts. 00:25:16.320 --> 00:25:22.359 And this was done with the same principles that I want. 00:25:22.360 --> 00:25:25.439 I have my main font. I have the emojis. 00:25:25.440 --> 00:25:30.559 and I want, I have my son's phone and I have the emojis, 00:25:30.560 --> 00:25:32.959 the Han for Japanese and the Kana for Japanese, 00:25:32.960 --> 00:25:36.799 so that these characters here, 00:25:36.800 --> 00:25:40.679 both in the sons and in the serif passages 00:25:40.680 --> 00:25:44.399 are included correctly in the PDF. NOTE Demo: Side by side 00:25:44.400 --> 00:25:49.999 And a third thing of what you can do... 00:25:50.000 --> 00:25:53.439 I've also shown this, so this is more 00:25:53.440 --> 00:25:55.799 for people who have not seen it. 00:25:55.800 --> 00:26:01.399 This is a side-by-side passage of... 00:26:01.400 --> 00:26:04.919 well, actually, the beginning of the analysis by Xenophon 00:26:04.920 --> 00:26:12.919 both in in Greek and in German, with some comments. 00:26:12.920 --> 00:26:18.679 And if I go... This is done with Polyglossia. 00:26:18.680 --> 00:26:24.240 If I go once again and produce 00:26:24.241 --> 00:26:37.999 the PDF for this... Just a second... 00:26:38.000 --> 00:26:41.119 Come on. There you are. You get this. 00:26:41.120 --> 00:26:46.399 And there you see different fonts. 00:26:46.400 --> 00:26:48.239 Which fonts am I using for this? 00:26:48.240 --> 00:26:53.879 I'm using for the main font for me is FreeSerif. 00:26:53.880 --> 00:27:01.479 This listing is produced with DejaVu Sans Mono. 00:27:01.480 --> 00:27:12.899 And using Polyglossia here, I'm able to go and define 00:27:12.900 --> 00:27:15.799 the Greek polyton for the variant, 00:27:15.800 --> 00:27:18.799 for the serif variant with the Noto Serif font, 00:27:18.800 --> 00:27:26.199 just to differentiate it from the German text. 00:27:26.200 --> 00:27:30.279 And nice thing is that both in the German text 00:27:30.280 --> 00:27:37.359 you see for example here, and with the Greek text, 00:27:37.360 --> 00:27:40.879 everything is scaled to match 00:27:40.880 --> 00:27:44.119 the lower case of the main font, which is FreeSerif. 00:27:44.120 --> 00:27:45.879 So that everything looks 00:27:45.880 --> 00:27:49.359 extremely uniform and nice to read. 00:27:49.360 --> 00:27:53.759 So that's what you want to do. 00:27:53.760 --> 00:27:56.519 That's what you can do with this. 00:27:56.520 --> 00:28:12.599 Just a couple of final words on this. NOTE Thanks 00:28:12.600 --> 00:28:16.839 I want to thank once again Juan Manuel Macias and Jing Huang 00:28:16.840 --> 00:28:19.919 for what they have shared. 00:28:19.920 --> 00:28:24.079 And I also want to thank everybody 00:28:24.080 --> 00:28:26.479 for productive contributions to the discussion. 00:28:26.480 --> 00:28:32.159 I'm saying this because I think I need a longer rest 00:28:32.160 --> 00:28:37.039 and I'm going to be leaving 00:28:37.040 --> 00:28:39.607 the feature font untouched for a couple of months 00:28:39.608 --> 00:28:42.220 so that people can take... the feature branch 00:28:42.221 --> 00:28:43.519 untouched for a couple of months 00:28:43.520 --> 00:28:47.599 to see if people want to use it, and how they want to use it, 00:28:47.600 --> 00:28:49.919 and then maybe in the future, we can discuss 00:28:49.920 --> 00:28:52.559 if we want to integrate it or not, 00:28:52.560 --> 00:29:24.839 or if people need it and all that. Now questions, comments? 00:29:24.840 --> 00:29:39.240 [Ihor]: I think there was one question on Etherpad for... 00:29:39.241 --> 00:29:47.119 [Pedro]: Beautiful. I think that goes beyond fonts right. NOTE Q: What about video (mp4) support for ox-latex? 00:29:47.120 --> 00:29:52.839 Someone is asking what about how is about video 00:29:52.840 --> 00:29:56.319 mainly MP4 support on ox-latex. 00:29:56.320 --> 00:29:58.799 "I started the presentations with many videos. 00:29:58.800 --> 00:30:14.739 This is something that really pushed me back using ox-latex." 00:30:14.740 --> 00:30:18.799 What I would say to this is, I mean this goes beyond 00:30:18.800 --> 00:30:24.319 what we're discussing here with fonts. 00:30:24.320 --> 00:30:29.319 I would advise you to go and get the same 00:30:29.320 --> 00:30:35.239 or have the same thing that I did, 00:30:35.240 --> 00:30:42.279 which was, first of all, try to write it in LaTeX, 00:30:42.280 --> 00:30:49.599 and then, once you have the minimal working examples, 00:30:49.600 --> 00:30:53.159 you can get the LaTeX parts 00:30:53.160 --> 00:31:00.319 integrated into your own presentation. 00:31:00.320 --> 00:31:01.319 That's what I've been doing. 00:31:01.320 --> 00:31:04.519 By the way, I still do it, for example, not in this, 00:31:04.520 --> 00:31:06.079 but for my lectures, 00:31:06.080 --> 00:31:09.119 I have a lot of... I'm using a lot of ticks 00:31:09.120 --> 00:31:12.479 to do graphs and animated graphs. 00:31:12.480 --> 00:31:18.319 And that's `#+begin_export latex` `#+end_export` LaTeX. 00:31:18.320 --> 00:31:24.279 That's what I'm doing. 00:31:24.280 --> 00:31:27.274 [Ihor]: Videos are generally a bit tricky because you cannot... 00:31:27.275 --> 00:31:31.119 Not every viewer will play them. 00:31:31.120 --> 00:31:35.119 so I think there is something called pdfpc that can, 00:31:35.120 --> 00:31:37.399 this provides a LaTeX package 00:31:37.400 --> 00:31:39.079 where you can include videos, 00:31:39.080 --> 00:31:44.399 and then they can be played through that specific program. 00:31:44.400 --> 00:31:46.239 And JavaScript embedding, 00:31:46.240 --> 00:31:49.999 that can only be done through Acrobat Reader, 00:31:50.000 --> 00:31:54.519 which is like also finicky. Sure, yes. 00:31:54.520 --> 00:32:03.999 [Pedro]: As you said, there are many things that need to be changed. 00:32:04.000 --> 00:32:07.199 But I mean it's always a thing of taking it 00:32:07.200 --> 00:32:11.359 and trying to see what you can do 00:32:11.360 --> 00:32:13.319 and what the specifics are. 00:32:13.320 --> 00:32:17.079 Maybe this can be done with Acrobat 00:32:17.080 --> 00:32:23.959 and with a couple of extra packages and who knows. 00:32:23.960 --> 00:32:26.359 And you can always keep it as as LaTeX 00:32:26.360 --> 00:32:34.599 as fragments inside Org, I think. Any other questions?