The standard pdfTeX engine is fully backward-compatible with Knuth’s TeX. As such, it remains an 8-bit system using specialist font metrics. In contrast, the engines XeTeX and LuaTeX are both Unicode-based and able to load standard system (OpenType) fonts. Internally, they differ in approach: the same outcomes are reached using very different philosophies. There are advantages to the user in each approach.
XeTeX
XeTeX is a Unicode TeX engine which can load system fonts directly using the HarfBuzz library, which is built in. To do this, the font primitive is extended. In order to support these major concepts, a range of TeX primitives are extended. For most LaTeX end users, these subtleties are transparent, with the LaTeX kernel and fontspec package providing interfaces.
Like Knuth’s TeX, it does not directly produce PDF output but rather works via an intermediate format, XDV (eXtended DVI). Unlike the classical DVI format produced by TeX, XDV files cannot be viewed directly, and are normally converted directly to PDF as part of the xetex run. (The conversion itself is carried out by xdvpdfmx.)
LuaTeX
LuaTeX consists of a TeX-like engine with a Lua interpreter “embedded” in it; the Lua interpreter has access to many of the data structures used for typesetting, so that the programmer may also interpolate chunks of Lua code into their (La)TeX macros, or as “call-backs” for use when the TeX-like engine does certain operations.
LuaTeX, like XeTeX, is a Unicode engine and is capable of loading system fonts. In contrast to XeTeX, the latter ability is not “built-in” to the engine itself, but is added using Lua code. This possibility to modify the behaviour of the engine at the “user” end makes it particularly powerful.
Whilst there are some (deliberate) differences between the behavior of LuaTeX and that of Knuth’s TeX (or pdfTeX), for most users, LuaTeX may be used as a drop-in replacement. For most LaTeX end users, the subtleties are transparent, with the LaTeX kernel and fontspec package providing interfaces.
There are questions on TeX.sX already about what the differences between LuaLaTeX and XeLaTeX are (Differences between LuaTeX, ConTeXt and XeTeX), what one should be keep in mind when going from XeLaTeX to LuaLaTeX (Considerations when migrating from XeTeX to LuaTeX?), and how they typically differ in their preambles (Frequently loaded packages: Differences between XeLaTeX and LuaLaTeX).
From the perspective of an end user, however, I've yet to see any reason for why one should switch from XeLaTeX to LuaLaTeX. That is, I have read facts like LuaLaTeX using the Lua scripting engine, but that is not relevant to an end user like me who has no idea what that entails.
Yet I've noticed that most of the cool kids here on TeX.sX seem to prefer LuaLaTeX over XeLaTex, and I'm curious what those reasons are, and more specifically, if they apply to "normal" end users like myself.
To give LuaLaTeX a try, I recompiled an old short handout of mine in LuaLaTex, and they mostly looked exactly the same. Where they differed, however, XeLaTeX clearly gave the better results. Below are some examples I found in my handout:
In the second and third word, LuaLaTeX adds more white space before the underlined italicized boldfaced characters. In my view, it adds too much. Notice, however, that it does not add any extra white space in the first word, where the character is not italicized.
In the second word, XeLaTeX handles the placement of the combining breve character well, but LuaLaTeX does not. This is potentially a worry, since I normally use a lot of combining characters in my documents (this being the only example in my handout).
If anything, I only see reasons to stick to XeLaTeX for the moment, but I am still curious if there are advantages to LuaLaTeX over XeLaTeX that could potentially override the disadvantages I've identified above.
In my personal opinion (i.e. from anecdotal situations I've encountered), lua(la)tex looks indeed a little less stable than xe(la)tex, in particular when it comes to some advanced font features (fontspec was after all developed for xe(la)tex first). It's somehow to be expected: xe(la)tex itself is older than lua(la)tex and can therefore expected to be a more mature in terms of bugs, etc.
The advantages I see of lua(la)tex though are:
- lua(la)tex has been choosen as the official successor of pdf(la)tex, so you can expect more development effort to go towards it now and in the future. For example, microtype supports much more features under lua(la)tex than it does under xe(la)tex,
-lua(la)tex opens up the internals of TeX to the Lua programming language. This might sound like some irrelevant technicality to the end user, but in reality it is not when you consider that this might enable advanced packages / features that are just not possible to implement otherwise, such as rivers detection and most other features of impnattypo.
-lua(la)tex doesn't rely on system-specific libraries, so in theory you're less prone to encounter platform-specific issues or differences in output.
-Another advantage of LuaTeX over XeTeX is that LuaTeX uses the PDF engine of pdfTeX, while XeTeX uses its own one. One consequence of this is, that all features of the PGF graphics package (on which TikZ builds) should be available also under LuaTeX, while some features are definitely not available under XeTeX.
Since I am a heavy user of tikz/pgf, here are some key points why I always prefer lualatex.
-pgfplots works best with lualatex. On a moderate size csv file, both pdflatex and xelatex wet their pants (run out of memory).
-TikZ graphdrawing library works only with lualatex. The layout algorithms are implemented in Lua; they are too complicated to be implemented in TeX.
-Access to Lua (though I wish it was python) means a lot if you are doing very non-standard things e.g. read only n lines from a csv before plotting it; replace 'X' with 'Y', write to file etc. These are non-standard use cases but they are better handled in Lua than using some latex package.
Probably it is safe to say that whatever you can do in XeLatex, you can do with lualatex but not the other way round (See comments below).
One good reason to switch to LuaTeX is the fact that XeTeX can't use the glyph names for glyphs in the Private Use Area of fonts. As a result, any glyph from the PUA will end up as garbled text if you try to copy it from the pdf output. This issue has been raised in Small-caps, old-style numbers, and some ligatures produce odd symbols in PDF copy text? and pdfglyphtounicode with XeTeX. I don't know if this is likely to be resolved, since the XeTeX maintainers apparently insist that fonts shouldn't use the PUA at all. But as long as there are many characters that haven't been included in Unicode yet, fonts need to add those extra characters in the PUA.
LuaTeX doesn't have this problem, it seems. LuaTeX does not, however, as seen in the OP's question, deal very well with many other aspects of font outputs ...
Adding in a comment on write streams, since they matter a lot for larger projects. In short, write streams are the amount of concurrent open files for writing (XXX)TeX can have, and varies a bit between different implementations. If you have used all your write slots, there are packages such as morewrites which uses one of the files as cache for opening more files, therefore slowing down matters since a lot of files of opened and closed.
In large works, such as books or theses, the limited amount of writes in Xe(La)TeX (16 write streams) requires the use of libraries such as morewrites to function properly (multiple glossaries, indices etc have a tendency to eat write streams). Lua(La)Tex has 256 write streams and therefore does not require extra overhead such as morewrites to handle large projects.
The largest issue with morewrites (i.e. under XeLaTeX) is the performance of your drive, since you have to open and close files constantly you get a large performance penalty (i.e. waiting for IO). If you are using a machine controlled by the department's IT division you might also have anti-virus and similar scanning all the file reads (!).
As an example my PhD-thesis (~400 pages with figures, tables, glossaries, and auto-generated content by external scripts) compiles from clean checkout in ~8 minutes with LuaLaTeX and ~24 minutes with XeLaTeX on my department laptop, all due to morewrites opening and closing files constantly and additional overhead from "forced" anti-virus programs. On my workstation at home the numbers are 90 seconds for LuaLaTeX vs 220 seconds for XeLaTeX with RAM-disk and scanning disabled for project directories.
As such, for me the implicit differences, such as write streams, are more important than the actual implementation differences between XeLaTeX and LuaLaTeX.
https://www.tug.org/~vieth/papers/context2010/context-paper.pdf
The TeX Frequently Asked Question List | The TeX FAQ
I’m interested in the differences and commonalities between the “new” (La)TeX processors:
LuaTeX,
XeTeX, and
ConTeXt.
Personally, I’ve only used XeTeX so far and without having the time to try out all three systems, I’m having a surprisingly hard time setting them off from one each other.
As I understand it, these systems are actually very different in some regards. So I’m explicitly asking for strengths and weaknesses in every-day use (whatever that is), rather than very special scenarios.
(I’ve already asked a similar question on Super User some time ago.)
Both LuaTeX and XeTeX are UTF-8 engines for processing TeX documents. This means that the input (.tex files) can contain characters that with pdfTeX are difficult to use directly. Both can also use system fonts, again in contrast to pdfTeX. However, the two are very different in approach.
XeTeX uses system-specific libraries to work. This means that it is very easy to use 'out of the box' for loading system fonts and other UTF-8 tasks. Indeed, it was written for this purpose: supporting languages, etc., that traditional TeX struggles with. This makes for an easy to use engine for end users, particularly if you use the fontspec package on LaTeX. However, because things are 'farmed out' to the OS, there is a trade-off in flexibility terms.
In contrast, LuaTeX has bigger aims. The idea is to add a scripting language (Lua) to TeX, and to open up the internals of TeX to this language. The result is that a lot is possible, but it has to be programmed in. There is growing LaTeX support for LuaTeX: fontspec v2 supports it, and new packages are being written to use more of the new features.
At the moment, I'd use XeTeX for UTF-8 and font support, unless I was after particular effects that only LuaTeX does well (Arabic typography is a particular challenge). The choice btween XeTeX and LuaTeX is 'tight': both have advantages depending on your exact requirements. (I'm on the LaTeX kernel team, so as a programmer I'm very keen on exploiting LuaTeX.)
ConTeXt is not an engine, and so is in a slightly different place here. ConTeXt is a format for TeX, like LaTeX, but is newer and much larger. ConTeXt Mark IV is a LuaTeX-only implementation. The people behind ConTeXt are very active in developing LuaTeX, and are using the new features to extend TeX and what ConTeXt can do. I've already pointed out that I'm working on LaTeX, so of course I'd like to see new features in LaTeX do the same. This is something I and the other members of the LaTeX project are working on.
XeTeX basically offers two improvements over the default LaTeX, and has one drawback.
The improvements are:
-XeTeX supports UTF-8 encoded input by default. In fact, this is the only supported encoding.
-XeTeX supports TrueType/OpenType fonts directly. This can be harnessed by the powerful fontspec package which makes loading and using installed fonts really easy.
-Font support goes much further than what most (even professional) editors support. For example, it easily allows access to special font features such as rare ligatures, glyph variants and old style (text style) numbers.
The drawback is:
-XeTeX does not (yet) support the full feature set of the microtype package, as pdfTeX does. However, the main feature, protrusion, works well.
Furthermore, XeTeX has PDF ouput only; no DVI or PS. I’m not sure if this can be counted as a drawback but YMMV.
Joseph Wright's answer sums up the differences very well, I just want to add that luatex is also a scripting language in its own right: when you run the luatex executable as texlua (or alternatively, run luatex --luaonly) it will behave as a lua script interpreter with a few library additions.
In this mode, no typesetting can be done, but that does not mean it is not useful. For example, as far as I know, this is the only script interpreter with a built-in kpathsea interface. None of the typesetting-related features are exposed, but the other lua functionality in luatex is available to scripts:
kpse, for file searching
fontloader, to investigate font files
mplib, for creating metapost graphics
epdf, to investigate pdf files (still experimental)
Also, some useful lua libraries from the internet have been added:
luamd5, for checksum calculations
luasocket, for network i/o
luafilesystem, for disk i/o
slnunicode, for unicode string processing
luazip, for zipfile input
lpeg, for writing parsers
This scripting capability of luatex is used for some of the scripts in TeXLive 2010, and hopefully this more scripts can be replaced in the future.
The choice is slightly wrong. First two are TeX engines while ConTeXt is a macro package and as such should be compared with LaTeX (in fact you can use both XeTeX and luatex in ConTeXt, although using luatex is definitely preferred). The best comparison of differences between LaTeX and ConTeXt can be found in the article by Berend de Boer LaTeX in proper ConTeXt. To put it in rather simplistic terms: ConTeXt attempts at giving cleaner interface to control typography of the document while retaining LaTeX's structure-oriented approach.
Each of them is variation/implementation of TeX. LuaTeX is really just like Knuth's original TeX system (with LaTeX) but is using Lua as its embedded scripting engine, which some find to be easier to handle and extend. I believe TeXLive is officially switching to use LuaTeX from now on.
XeTeX has especially useful font capabilities. It is essentially standard TeX but the ability to use OpenType and TrueType (instead of Type 1) fonts instead of the confusing setup in standard TeX. If you've ever had to install a font with standard TeX, or even make your own, you know it's a pain, even with fontinst.
ConTeXt is a different approach to TeX. ConTeXt is like LaTeX, but with different ideas of how thing should work. ConTeXt attempts to make things easier, especially typographical issues. Colors, figures, and changing document structure is more straightforward in this system.
Disclaimer: I am no expert on these systems. I personally use just standard LaTeX.
The TeX family tree: LaTeX, pdfTeX, XeTeX, LuaTeX and ConTeXt
The LaTeX story goes back all the way to 1977 when Donald Knuth first understood the need for a high quality typesetting program. It's a remarkable testament to the quality of LaTeX that the system he conceived back then is still the best tool for the job today, although many useful additions have been made in the decades since. In fact, LaTeX is one of these additions to the original system that Donald Knuth developed, which was called TeX.
To keep your street-cred in the LaTeX-world you've got write it with a capital T and X, and pronounce it like Lay-Tech. This is because the X in TeX is actually a capital Chi (χ) from Greek. Latex with a normal capitalisation and pronunciation is a type of rubber!
The original TeX
There are a large family of tools which are now derived from TeX, and it can look like a list of nonsense words on first sight: LaTeX, pdfTeX, XeLaTeX, LuaTeX, ConTeXt, and so on. The ancestor of all of these is of course the original TeX program by Knuth. This takes a document in plain text and transforms it into a beautifully typeset document. Knuth was quite particular about typesetting and the attention to detail in TeX is clear. An example TeX document might look something like this:
TeX{} is good at typesetting words like `fjord', `efficiency',
and `fiasco'. It is also good at typesetting math like,
$a^2 + b^2 = c^2$.
ye
The output of this after running it through the TeX program is:
Texsample.png
Notice how the combinations of letters 'fi', 'fj', and 'ff' in the example words run together in a pleasant way, and how the mathematics symbols are well spaced. On a larger scale, TeX does a very good job of breaking lines in the appropriate places to created well justified text, with hyphenations where appropriate.
Not only does it typeset text nicely, it also has a selection of commands, like ye and TeX in the example above. These can do simple things like change the font size, or change the way text is laid out, as well as much more powerful things like keeping a section count to cross reference your pages, or automatically building up a table of contents. The TeX program has about 300 commands built in, but other commands can be defined within it. Donald Knuth wrote another 600 or so useful commands from within TeX, in a package called Plain TeX which makes some common typesetting tasks easier.
LaTeX
The commands in TeX and Plain TeX are still quite basic and it isn't easy to do complicated things with them. To help with this, Leslie Lamport created LaTeX in the early 1980s to provide a higher level language to work in than TeX. LaTeX is a set of commands defined in terms of the underlying TeX commands, often at many many layers of abstraction. All of the commands you use in a LaTeX document are actually just complicated sets of TeX commands underneath, unless of course you use a TeX command directly! Concepts like packages (usepackage{...}), environments (egin{environment} ... end{environment}), and document classes (documentclass{...}) were all introduced by Leslie Lamport in LaTeX.
By creating a standardised package system for LaTeX, Leslie Lamport allowed the community to grow huge. There are now thousands upon thousands of LaTeX packages available to let you typeset anything from subfigures to knitting patterns. There are also many document classes available for different types of document, whether your are writing a book, a lab report or a CV. Many publishers and journals have their own custom document classes that style their documents how they want.
pdfTeX
The TeX program is remarkably stable for a piece of software over 20 years old; Knuth declared that it was feature complete in 1989, and only bug fixes have been made since. Of course, this has not stopped the significant and ongoing development of LaTeX, because that is written in TeX itself. In fact, the stability of TeX has allowed packages like LaTeX which have been built on top of it to thrive.
This isn't to say the underlying TeX program hasn't seen any advances in the last 20 years. Far from it in fact, it's just that improvements have been made alongside TeX, with the original TeX left stable. The most important improvement of the 1990s was the creation of pdfTeX by Hàn Thế Thành for his PhD thesis. The original TeX program outputs the typeset document into a custom format called DVI (DeVice Independent format), that can later be turned into a PostScript file for printing. However, the PDF format came along in 1993 and we can see today that it clearly won as the better format over PostScript. There are lots of features which make PDF better, such as hyperlinks between sections, a section of metadata that lets you see a table of contents in left hand side of your PDF viewer, and support for a wider and more modern range of image formats. pdfTeX is a modification of TeX which allows it to output to PDF directly and so take advantage of these extra features.
When you install a LaTeX distribution on your system today, it actually comes with two different programs: tex, and pdftex. It also comes with another two programs on top of these: latex and pdflatex, but these are actually just wrappers around tex and pdftex respectively. These first load the LaTeX packages before processing your document but are still TeX underneath. If you run latex or tex then you will get a DVI file which you can turn into a postscript file or a PDF, but if you run pdflatex you will get a PDF directly.
Mostly, pdftex and pdflatex are improvements over tex and latex, but there is one downside. The original TeX and DVI format have support for Encapsulated PostScript files (.eps) because these can easily be included in PostScript files (produced by converting .dvi files to Postscript via Dvips). However, pdftex cannot include EPS files, and you should instead use PDFs (which can be produced from EPS files with the command epstopdf which generally comes with LaTeX distributions). In exchange for this downside though, pdfTeX adds support for .png, .jpg and .pdf images, whereas the original TeX only supports .eps (via Dvips).
XeLaTeX and LuaTeX
So far we have seen that TeX has evolved in two different ways since its beginning: With the addition of easier to use commands on top of the original system (LaTeX), and with updates to the underlying program to support PDF output (pdfTeX). The story does not stop there however and there have been continuing efforts to modernize TeX. In 2004 Jonathon Kew created XeTeX, which is another modification of the underlying TeX engine, this time to support a wider range of characters beyond just plain English numbers and letters, and to include support for modern font formats. This makes writing in foreign languages much easier, and also lets you use fonts within LaTeX which were traditionally only available to your word processor.
LuaTeX is an attempt to extend the original TeX program with a more sensible programming language. While in principle you can do absolutely anything from within TeX, in practice it's a very clumsy programming language to work with, if it can even be called a programming language at all. Much of the internals of LaTeX is complicated and hard for outsiders to understand due to having to work only in TeX. LuaTeX is extended with the eponymous scripting language, Lua, which is a simple and stable language, ideal for writing complicated macros. As of 2012, it's still in active development and is its API is liable to change, but it still very usable.
ConTeXt
We've mentioned LaTeX as an extension to the commands available in TeX, but it's not the only package that has extended TeX in a significant way. ConTeXt is another system which was created in 1990 by Hans Hagen. LaTeX aims to separate the user from having to make decisions about typography and layout (you type section and emph but you don't worry about what these do - that's left to the document class or layout). On the other hand, ConTeXt aims to provide an easy interface to advanced typography features. Sadly I don't know as much about ConTeXt as I would like, so I can't elaborate much further, but if I ever get round to experimenting with it more I'll be sure to write up my findings.
As a final historical note, I should mention AMSTeX which was an extension to the Plain TeX macros and was used by the American Mathematical Society (AMS) from 1982 to 1985. Its legacy survives in AMS-LaTeX packages which are a staple of many LaTeX documents: usepackage{amsmath}.
The Future
What will the future hold for TeX and LaTeX? I don't know yet, but as Alan Kay once said:
The best way to predict the future is to invent it.
With ShareLaTeX we hope to improve TeX and LaTeX in a third direction, by bringing significant improvements to the LaTeX workflow. Despite being over 20 years old, LaTeX is still largely a command line program that must be used in an awkward cycle of writing, compiling and checking the output. Methods of collaboration tend to involve clunky email messages rather than the streamlined processes available for word processing like Google Documents.
In 2 or 3 years time I hope that people will reflect back on online services like ShareLaTeX and be able to say that they have improved the way we work with LaTeX.
Mixing right-to-left (RTL) and left-to-right (LTR) languages
You need to be careful when typesetting a mixture of right-to-left (RTL) scripts, such as Arabic or Hebrew, and left-to-right (LTR) scripts in the same document. Consider the following small Arabic document with an English word, using Amiri as the main font:
usepackage{polyglossia}
setdefaultlanguage{arabic}
setmainfont{Amiri}
egin{document}
ما هو differentiation
end{document}
setmainfont{Amiri}
setotherlanguage{english}
ewfontfamilyenglishfont{TeX Gyre Termes}
egin{document}
ما هو extenglish{differentiation}
setotherlanguage[numerals=western]{hindi}
setdefaultlanguage[numerals=hebrew]{hebrew}
polyglossia/example-arabic.tex at master · reutenauer/polyglossia · GitHub
bibliographies - Persian-bib with Polyglossia and Xepersian packages - TeX - LaTeX Stack Exchange
Latex Font Styles | Applied R Code
graphics - How to insert images with graphicx? - TeX - LaTeX Stack Exchange
Insert an image in LaTeX - Adding a figure or picture
LaTeX is a high-quality typesetting system; it includes features designed for the production of technical and scientific documentation. LaTeX is the de facto standard for the communication and publication of scientific documents.
Get LaTeX - Mac OS, Windows, Linux
Online LaTeX Equation Editor - LaTeX4technics
LaTeX Base | Online LaTeX Editor and Compiler
TeX, LaTex Viewer and Editor (just run in chrome)
Texmaker (free cross-platform latex editor) => light
TeXstudio => weight
9 Best LaTeX Editors for Linux [2020]
rtf2latex2e (LaTeX to RTF converter | SourceForge.net)
michal-h21/make4ht: Build system for tex4ht
Best way to convert tex to word in 2018? : LaTeX
Latex to HTML Converters – Small Dropbear
Latex to HTML Converters
I’ve been using LaTeX for many years, I should say quickly for the freaks out there that it doesn’t mean I’m into vinyl or other strangeness. LaTeX is a document processing system that creates good quality documents
from text source, no hamsters or chains involved at all.
The standard processors you get with LaTeX are good at converting the source into Postscript or PDF (Acrobat) documents and for most of the time this will do. However there are occasions when you want to have your document output in HTML. In this case you need to have a different processor.
This page is about the various types of LaTeX to HTML converters out there. It is not an exhaustive list but should help other people looking around for converters. The main problem with them all is they are not
maintained that well.
Hyperlatex
Hyperlatex is the converter I have used the most. It does most jobs quite well and you get reasonable results from it. My major gripes with it is that it is written in Lisp so I cannot extend it (I don’t know Lisp) and that it doesn’t do CSS that well.
Despite those shortcomings, Hyperlatex is a good start for document conversion. Unlike most program on this page, it is actively maintained and keeps up with HTML standards. For example there is work for
Hyperlatex output to be in XHTML.
TTH
TTH has put a lot of effort into the formula conversion. Most converters make an image for the formulas while TTH generates HTML for it, giving the formulas a more consistent look in the document rather than looking like they were “pasted in” later.
TTH has a funny license in that (roughly) it is free for non-commercial use only. Depending on where you are going to use it, this may be a problem. You can buy a commercial license of TTF too.
Heava
HeVeA is one converter I haven’t used, but will try out soon. It looks like it would get confused by some of my documents, especially anything with nested environments.
The program is written in a language called Objective Caml which I know even less about than Lisp. That means no way of extending it for me.
LaTeX2HTML
At first I thought this would be the converter for me. It looks like it converts it pages rather well and it is written in a programming language I understand (Perl).
The main problem with this program is that it has not been maintained for years. A consequence of that is the HTML rendering is a bit old and doesn’t keep up with the latest standards.
text4ht
Another one I’ve not tried yet. This one does look recently maintained and I will be trying it out.
LaTeXML
This converter takes LaTeX as an input and instead of having an output file format of DVI makes it XML. It is written in Perl and was developed with a particular focus on the mathematical equations. To get HTML you use a post-processor.
scarfboy/phplatex: Inline TeX in PHP pages
LaTeX Equations and Graphics in PHP | Linux Journal
How to generate professional-quality PDF files from PHP – Mike's Software Blog
LaTeX - Wikibooks, open books for an open world
Comprehensive TeX Archive Network (CTAN) CTAN: Package XePersian Multilingual typesetting on Overleaf using babel and fontspec - Overleaf, Онлайн редактор LaTeX
ویکی پرسش و پاسخ پارسیلاتک « پشتیبانی از لاتک فارسی
https://gitlab.com/persian-tex/
مس فروش
کانال آموزشی دکتر مس فروش (LaTeX،MATLAB و...)
(La)TeX has a very good knowledge of typesetting requirements and media.
article
class has the text width optimized for readability. Most browsers don't have this type of functionality, and with HTML/CSS you have to manually specify sizes.(La)TeX and HTML have different positioning systems.
hfill
doesn't really have a CSS equivalent unless you use tables.Cascading Style Sheets are cascading.
HTML documents are live and responsive.
You can't scroll sections of a typeset LaTeX, nor can you make extensive use of JavaScript to manipulate and live-update elements on the page.
CSS has @media
queries that let you provide different layouts for different target media (everything from screens and printers to screen readers and 3D glasses — anything that any client uses), as well as different viewport sizes.
HTML is most often written with the expectation that it will be used in a browser, so it is very common to take advantages of features like the navigator
object in JavaScript, "visited" link styling, etc. Nowadays, on mobile devices, you can even get access to hardware sensors such as an accelerometer or GPS.
Browsers get to make up their own features!
Using Notepad++ with MiKTeX on Windows - TeX - LaTeX Stack Exchange
LaTeX on Windows with MiKTeX and Notepad++ – Nimal's Weblog
Templates - Journals, CVs, Presentations, Reports and More - Overleaf, Online LaTeX Editor
TikZ package
PSTricks
smartdiagram
reotex
tim-st/latex-cheatsheet: Template for a compact LaTeX Cheatsheet I made some years ago.
Pgfplots package - Overleaf, Online LaTeX Editor
Drawing boxes around words
documentclass{article}
usepackage{tikz}
ewcommandmybox[2][]{ ikz[overlay]
ode[fill=blue!20,inner sep=2pt, anchor=text, rectangle, rounded corners=1mm,#1] {#2};phantom{#2}}
egin{document}
oindent
this is some text mybox[fill=blue!20]{box} text
this is some text box text
end{document}
usepackage{polyglossia}
setdefaultlanguage{arabic}
setmainfont{Amiri}
egin{document}
ما هو differentiation
end{document}
setmainfont{Amiri}
setotherlanguage{english}
ewfontfamilyenglishfont{TeX Gyre Termes}
egin{document}
ما هو extenglish{differentiation}
setdefaultlanguage[variant=poly]{greek}
setotherlanguage[numerals=western]{hindi}
numerals=western or devanagari
http://texdoc.net/texmf-dist/doc/latex/polyglossia/polyglossia.pdf
International language support - Overleaf, Online LaTeX Editor
Как в LaTeX оформить список литературы по ГОСТу? — Хабр Q&A
Russian - Overleaf, Online LaTeX Editor
Russian-Phd-LaTeX-Dissertation-Template: Примеры компиляции шаблона в разных режимах | Zenodo
LaTeX/Управление библиографией — Викиучебник
odomanov/biblatex-gost: Biblatex styles for Russian GOST 7.0.5-2008 bibliography standard
fonts - oday and language (babel, xepersian) - TeX - LaTeX Stack Exchange
documentclass[10pt,a4paper]{article}
usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
usepackage{xepersian}
settextfont{Yas}
egin{document}
این یک متن ساده است که با استفاده از لاتک نوشته شده است.
end{document}
برای نوشتن متن انگلیسی درون متن فارسی باید آن را داخل lr و یا داخل محیط latin قرار دهید. مثل:
lr{green energy}
یا
egin{latin}
green energy
end{latin}
تکسلایو که من نصب کردم همه تو پوشه share هست هیچ کدوم تو local نیستن
برای زبانی فارسی باید از بستهی XePersian در توزیع XeTeX استفاده کنی
ویرایش: کامپایلر ویرایشگر رو هم روی xelatex تنظیم کنید. در texstudio:
options/configure texstudio/ biuld/ defualt compiler
فونت فارسی رو هم با دستور
settextfont[Scale=1.1]{XB Yas}
setdigitfont{XB Yas}
اگه تکسلایو رو کامل نصب کرده باشید، فایل iftex.sty باید اینجا باشه (من ویرایش ۲۰۱۱ تکسلایو رو دارم):
/usr/local/texlive/2011/texmf-dist/tex/generic/iftex
درغیر اینصورت اضافش کنید
$ sudo apt-get install texlive-xetex texlive-lang-arabic
Arabic in latex - TeX - LaTeX Stack Exchange
Configuring LATEX for Xepersian and TexStudio • Mir Saman Tajbakhsh
documentclass[12pt]{article}
enewcommand{aselinestretch}{1.4}
usepackage{amsthm,amssymb,amsmath,graphicx}
usepackage{color}
usepackage[top=2cm, bottom=2cm, left=2.5cm, right=3cm]{geometry}
usepackage[pagebackref=false,colorlinks,linkcolor=blue,citecolor=magenta]{hyperref}
usepackage{xepersian}
settextfont[Scale=1]{XB Niloofar}
ewtheorem{Lemma}{Lemma}
ewtheorem{solution}{Solution}
egin{document}
setLTR
egin{latin}
egin{Lemma}
Let $G$ be a finite group.
end{Lemma}
end{latin}
egin{RTL}
حال اگر $G$ این ادمهی متن پارسی است. این ادمهی متن پارسی است. این ادمهی متن پارسی است. این ادمهی متن پارسی است. این ادمهی متن پارسی است. این ادمهی متن پارسی است. این ادمهی متن پارسی است. این ادمهی متن پارسی است. این ادمهی متن پارسی است. این ادمهی متن پارسی است. این ادمهی متن پارسی است. این ادمهی متن پارسی است.
end{RTL}
end{document}
documentclass{minimal}
usepackage{lscape}
egin{document}
egin{landscape}
landscape
end{landscape}
end{document}
TikZ picture positioning in landscape - TeX - LaTeX Stack Exchange
documentclass[a4paper, landscape]{article}
documentclass[10pt,a4paper]{article}
usepackage[all]{background}
usepackage{url}
usepackage{lipsum}
SetBgContents{url{http://tex.stackexchange.com/}}% Set contents
SetBgPosition{0.25cm,-5.0cm}% Select location
SetBgOpacity{1.0}% Select opacity
SetBgAngle{90.0}% Select rotation of logo
SetBgScale{2.0}% Select scale factor of logo
egin{document}
lipsum[1-7]
end{document}
Add some vertical text on the margin of document? - TeX - LaTeX Stack Exchange
minipage - framed or colored box with text and margin notes - TeX - LaTeX Stack Exchange
Generate a table of contents in LaTeX
Example 1
documentclass{memoir}
egin{document}
egin{vplace}[0.7]
This is some text to be centered vertically.
end{vplace}
end{document}
Example 2
egin{document}
opskip0pt
vspace*{fill}
text
vspace*{fill}
%
end{document}
Example 3
pagebreak
hspace{0pt}
vfill
Centered text.
vfill
hspace{0pt}
pagebreak
Documentclass
%Article
documentclass[9pt]{extarticle}
%Report
documentclass[14pt]{extreport}
Size text
Huge
huge
LARGE
Large
large
ormalsize (default)
small
footnotesize
scriptsize
iny
itemize
egin{itemize}
item[$ullet$] includegraphics{test.jpg} some text
item[$diamond$] includegraphics{test.jpg} some other
item[] includegraphics{test.jpg} some text
item[] includegraphics{test.jpg} some other
item[{includegraphics{imagename}}]
item[{includegraphics[scale=.5]{imagename}}]
end{itemize}
Measure
cm - a centimeter
em - the width of an m in the current font
ex - the height of an x in the current font
in - an inch
mm - a millimeter
pt - A point, is the default length unit. About 0.3515mm
Size
scale=.5
width=0.3cm, height=0.3cm
hrule
oindent
RLmulticolcolumns
(LR-RL)multicolcolumns
centering
justify
pagenumbering{gobble}
pagenumbering{arabic}
Spacing for between lines
usepackage{setspace}
doublespacing
onehalfspacing
egin{singlespace}
at the beginning of the text you want singlespaced, and
end{singlespace}
setstretch{1.25}
Figure
egin{Figure}
centering
includegraphics[width=linewidth]{foo}
captionof{figure}{my caption of the figure}
end{Figure}
Pagebreak
pagebreak[zero-to-four]
opagebreak[zero-to-four]
LaTeX Line and Page Breaking
start a new paragraph.
* start a new line but not a new paragraph.
- OK to hyphenate a word here.
cleardoublepage flush all material and start a new page, start new odd numbered page.
clearpage plush all material and start a new page.
hyphenation enter a sequence pf exceptional hyphenations.
linebreak allow to break the line here.
ewline request a new line.
ewpage request a new page.
olinebreak no line break should happen here.
opagebreak no page break should happen here.
pagebreak encourage page break.
CUED - LaTeX
LaTeX General Help
Changing the font size in LaTeX – texblog
عکس قبل از نوشته
documentclass{article}
usepackage{titlesec}
usepackage{tikz}
ewcommand* umb[1]{%
egin{tikzpicture}[baseline=-1.4ex]
ode[
rectangle,
rounded corners=2pt,
top color=black!15,
bottom color=black!90,
text=white,
inner ysep=0pt,
text height=3ex,
text depth=0.45ex]
{parbox{0.7cm}{ aggedlefthuge#1}};
end{tikzpicture}%
}
itleformat{section}
{ ormalfontLargefseriessffamily}{ umb{ hesection}}{1em}{}
egin{document}
section{A test section}
section{Another test section}
section*{An unnumbered section}
end{document}
Multilingual typesetting on Overleaf using polyglossia and fontspec - Overleaf, Online LaTeX Editor
xpatch - Why does this patch to multicol have no effect? - TeX - LaTeX Stack Exchange
Top (LaTeX2e unofficial reference manual (November 2018))
Top (LaTeX2e unofficial reference manual (November 2018))
wocolumn (LaTeX2e unofficial reference manual (November 2018))
Creating two columns in article, report or book – texblog
LaTeX - Wikibooks, open books for an open world
tikz pgf - How to add an image before section title - TeX - LaTeX Stack Exchange
graphics - Check for a valid file before using includegraphics - TeX - LaTeX Stack Exchange
Comparison of TeX editors - Wikipedia
LaTeX/Paragraph Formatting - Wikibooks, open books for an open world
Changing background color of text in Latex - TeX - LaTeX Stack Exchange
tikz pgf - Cool Text Highlighting in LaTeX - TeX - LaTeX Stack Exchange
https://www.overleaf.com/learn/latex/paragraph_formatting#Introduction
How to add caption for a TikZ picture? - TeX - LaTeX Stack Exchange
Quarterly filled circle symbol - TeX - LaTeX Stack Exchange
Floating minipages and other wizardry – LaTeX Ninja'ing and the Digital Humanities
Setting up TexMaker on Ubuntu "biblatex.sty not found." - TeX - LaTeX Stack Exchange
How to make this rectangle a node (TikZ)? - TeX - LaTeX Stack Exchange
LaTeX/PGF/TikZ - Wikibooks, open books for an open world
tikz pgf - How to put nodes or rectangles inside a node? - TeX - LaTeX Stack Exchange
tikz pgf - Stacking rectangles with unequal dimensions - TeX - LaTeX Stack Exchange
tikz pgf - how to draw squares, circles and triangles - TeX - LaTeX Stack Exchange
Comparison of text editors - Wikipedia
tikz pgf - How to increase the horizontal distance between nodes? - TeX - LaTeX Stack Exchange
Brackets and Parentheses - Overleaf, Online LaTeX Editor
How to Draw Curly Braces in TikZ - TikZBlog
How to Write a Text Along Path using TikZ: Speedometer Case - TikZBlog
LaTeX/PGF/TikZ - Wikibooks, open books for an open world
big list - LaTeX templates for writing a thesis - TeX - LaTeX Stack Exchange
GitHub - MartinThoma/LaTeX-examples: Examples for the usage of LaTeX