m (lualatex)
(texmf: bothering me)
 
(16 intermediate revisions by 2 users not shown)
Line 70: Line 70:
 
   \mathbb{R}^n\xrightarrow[\mathbf{J}_{f\circ g}\atop l\times n]{f\circ g}\mathbb{R}^l
 
   \mathbb{R}^n\xrightarrow[\mathbf{J}_{f\circ g}\atop l\times n]{f\circ g}\mathbb{R}^l
 
\end{gather}
 
\end{gather}
 +
 +
== Underline ==
 +
 +
<tt>\underline</tt> doesn't work great.
 +
 +
But <tt>\uline</tt> from the <tt>soul</tt> package does!
 +
 +
One can also use [https://alexwlchan.net/2017/latex-underlines/ axelwlchan's trick], but it doesn't work for sentences breaking over several lines:
 +
 +
<pre>
 +
\usepackage{contour}
 +
\usepackage[normalem]{ulem}
 +
 +
\renewcommand{\ULdepth}{1.8pt}
 +
\contourlength{0.8pt}
 +
 +
\newcommand{\myuline}[1]{%
 +
  \uline{\phantom{#1}}%
 +
  \llap{\contour{white}{#1}}%
 +
}
 +
</pre>
  
 
== International accents ==
 
== International accents ==
Line 266: Line 287:
  
 
<center><wz tip="Please!">[[File:pleasewrite10mum.jpeg|250px]]</wz></center>
 
<center><wz tip="Please!">[[File:pleasewrite10mum.jpeg|250px]]</wz></center>
 
There is also a <tt>SIUnits</tt> which is however deprecated [http://tex.stackexchange.com/questions/21936/differences-between-siunits-and-siunitx-packages]. Sometimes it comes in handy, for instance when you want to add non-numerical inputs (though siunitx should be able to allow that as well).
 
  
 
To write '''inverse unit''', use \per:
 
To write '''inverse unit''', use \per:
Line 291: Line 310:
  
 
(that would be giga-bits per seconds).
 
(that would be giga-bits per seconds).
 +
 +
It is also possible to empower the package with extra options, e.g.:
 +
 +
<pre>
 +
\usepackage[alsoload=astro]{siunitx}
 +
</pre>
 +
 +
to have parsec and lightyears, e.g., Proxima Centauri is $\SI{4.2465}{\lightyear}$ away.
 +
 +
There is also a <tt>SIUnits</tt> which is however deprecated [http://tex.stackexchange.com/questions/21936/differences-between-siunits-and-siunitx-packages]. Sometimes it came in handy, for instance to add non-numerical inputs (though siunitx should be able to allow that as well).
 +
 +
== Mathematical hacks ==
 +
 +
=== Small matrices ===
 +
 +
For small matrices, such as $\sigma_z=\left(\begin{smallmatrix}1&0\\0&-1\end{smallmatrix}\right)$, one can use
 +
 +
<pre>
 +
\left(\begin{smallmatrix}1&0\\0&-1\end{smallmatrix}\right)
 +
</pre>
  
 
== Symbols ==
 
== Symbols ==
  
To use <tt>\mathbb{1}</tt> produce the "identity" [[File:identity.jpg|16px|bottom]], use the package
+
To use <tt>\mathbb{1}</tt> produce the "identity" [[File:identity.jpg|16px|bottom]]:
 
<pre>
 
<pre>
 
\usepackage{bbold}
 
\usepackage{bbold}
 
</pre>
 
</pre>
 +
 +
To use ornaments, like [[File:fingerpoint.png|28px|bottom]] or [[File:suggestion.png|16px|bottom]]:
 +
 +
<pre>
 +
\usepackage[object=vectorian]{pgfornament}
 +
\newcommand{\selectedpub}{\pgfornament[anchor=south, width=.25cm]{152}}
 +
</pre>
 +
 +
(152 for the finger, 5 for the heart, etc.)
 +
 +
If desperate, you can try to [https://detexify.kirelabs.org/classify.html de{{TeX}}ify] your input.
  
 
== Bold letters ==
 
== Bold letters ==
Line 339: Line 389:
 
}
 
}
 
</pre>
 
</pre>
 +
 +
== Editing/Proofreading (copy-editing) ==
 +
 +
There are two ways to strike out text: (soul seems better)
 +
 +
<pre>
 +
\usepackage{soul}
 +
\st{This can't be!}
 +
</pre>
 +
 +
<pre>
 +
\usepackage[normalem]{ulem}
 +
\sout{This neither!}
 +
</pre>
 +
 +
In section titles, there might be problem of upcasing the color name, in which case add:
 +
<pre>
 +
\colorlet{RED}{red}
 +
</pre>
 +
 +
The use of <tt>\st</tt> might require <tt>\protect</tt>.
 +
 +
See also [[Blog:Hacks/Emacs_Proofing_LaTeX|Emacs proofing {{LaTeX}} (red and strike-throughs)]].
 +
 +
== Seamless for computation ==
 +
<center><wz tip="Seamless page; not to print but to scroll through. Here showing calculations for Stefan Lichtmannecker's two-level system in two cavities.">[[File:Screenshot_20230616_150740.png|thumb]]</wz></center>
 +
These options allow to have an infinite page large enough to work on without page interruptions nor limitations from the finite widths. As a result, it is convenient to have equations flushed left.
 +
 +
<pre>
 +
\documentclass[preview, leqno, border=1cm, fleqn]{standalone}
 +
\usepackage[total={20cm, 20cm}]{geometry}
 +
</pre>
 +
 +
There is apparently a bug with align that adds extra spacing for the 16th line!
  
 
== texmf ==
 
== texmf ==
Line 346: Line 430:
 
<pre>
 
<pre>
 
texhash /home/laussy/comp/texmf
 
texhash /home/laussy/comp/texmf
 +
</pre>
 +
 +
To check the destination is where it should:
 +
<pre>
 +
kpsewhich -var-value TEXMFLOCAL
 +
</pre>
 +
 +
One should have, for this, defined <tt>TEXMFHOME</tt> in <tt>texmf.cnf</tt>, itself potentially identifiable with
 +
 +
<pre>
 +
kpsewhich texmf.cnf
 +
</pre>
 +
 +
but which can, however, bring you to some dummy file. The option to use <tt>tlmgr</tt>[https://tex.stackexchange.com/questions/30494/how-to-make-latex-see-local-texmf-tree] may also not work. Simplest is to <tt>locate texmf.cnf</tt> and see if editing there the <tt>TEXMFHOME</tt> variable there. This worked for me (I also do not want texmf in my home).
 +
 +
To check that a local sty file is installed (is available):
 +
 +
<pre>
 +
kpsewhich laussy.sty
 
</pre>
 
</pre>
  
Line 363: Line 466:
 
</pre>
 
</pre>
  
but if you want the real proprietary font, you have to <wz tagtotip=microsoftagreement width=600px>commit your soul to some endt-user license agreement</wz><span id="microsoftagreement">[[File:Screenshot_20220718_110611.png|600px]]</span> which is however easily done through
+
or, for Calibri, the Carlito font which is almost identical (in particular, it has the same metrics):
 +
 
 +
<pre>
 +
\usepackage[sfdefault]{carlito}
 +
</pre>
 +
 
 +
but if you want the real proprietary fonts, you have to <wz tagtotip=microsoftagreement width=600px>commit your soul to some endt-user license agreement</wz><span id="microsoftagreement">[[File:Screenshot_20220718_110611.png|600px]]</span> which is however easily done through
  
 
<pre>
 
<pre>
Line 379: Line 488:
 
     BoldFont      =calibrib.ttf,
 
     BoldFont      =calibrib.ttf,
 
     ItalicFont    =calibrii.ttf]{calibri.ttf}
 
     ItalicFont    =calibrii.ttf]{calibri.ttf}
 +
</pre>
 +
 +
Compilation is either from the command line:
 +
 +
<pre>
 +
lualatex text.tex
 +
</pre>
 +
 +
or from [[Emacs]] with AucTeX's specification of the TeX-engine at the end of the file:
 +
 +
<pre>
 +
%%% Local Variables:
 +
%%% mode: latex
 +
%%% TeX-master: t
 +
%%% TeX-engine: luatex
 +
%%% End:
 
</pre>
 
</pre>
  
Line 396: Line 521:
 
== Links ==
 
== Links ==
  
=== On this Web ===
+
* [http://tug.ctan.org/info/symbols/comprehensive/symbols-a4.pdf The Comprehensive $\LaTeX$ Symbol List] of November 2015 (331 pages of glyphs).
 
+
* [https://tug.org/texshowcase/ Showcases 1] and [https://tex.stackexchange.com/questions/1319/showcase-of-beautiful-typography-done-in-tex-friends 2].
 
* [http://tex.stackexchange.com/questions/168169/options-for-supplementary-materials-in-preprint-version-revtex-arxiv Options for supplementary material on the arXiv].
 
* [http://tex.stackexchange.com/questions/168169/options-for-supplementary-materials-in-preprint-version-revtex-arxiv Options for supplementary material on the arXiv].
 
=== Elsewhere on the Internet ===
 
 
* [http://tug.ctan.org/info/symbols/comprehensive/symbols-a4.pdf The Comprehensive $\LaTeX$ Symbol List] of November 2015 (331 pages of glyphs).
 

Latest revision as of 03:00, 19 December 2024

TeXlion.png

Contents

$\mathrm{\TeX}$ and $\mathrm{\LaTeX}$

$\mathrm{\TeX}$ is one of the masterpieces of Don Knuth.

It is the uppercase version of $\tau\epsilon\chi$, a Greek word for Tech, which is how $\mathrm{\TeX}$ should be pronounced (!?).

At some point in the early 2000, I switched to $\mathrm{\LaTeX}$ for convenience, and almost exclusively use the latter now.

Equations

Alignment

Splitting equations within an aligned set can be done as followed~[1]:

\begin{align}
  a &= \begin{aligned}[t]
      &b + c + d +\\
      &c + e + f + g + h + i
       \end{aligned}\\
  k &= \begin{aligned}[t]
      &l + m + n\\
      &+ o + p + q
       \end{aligned}
\end{align}

\begin{align} a &= \begin{aligned}[t] &b + c + d +\\ &c + e + f + g + h + i \end{aligned}\\ k &= \begin{aligned}[t] &l + m + n\\ &+ o + p + q \end{aligned} \end{align}

To align equations as if in a table (?!), one can use [2] This is to integrate $\int x\sin(k\pi x)dx$ by parts.

\begin{align}
  u&=x  & v&=-\frac{1}{k\pi}\cos(k\pi x)\\
  u'&=1 & v'&=\sin(k\pi x)
\end{align}

\begin{align} u&=x & v&=-\frac{1}{k\pi}\cos(k\pi x)\\ u'&=1 & v'&=\sin(k\pi x) \end{align}

To gather equations (from the Wolverhampton Lectures on Physics on Mathematics):

\begin{gather}
  \mathbb{R}^n\xrightarrow[\mathbf{J}_g\atop m\times n]{g}\mathbb{R}^m\xrightarrow[\mathbf{J}_f\atop l\times m]{f}\mathbb{R}^l\\
  \mathbb{R}^n\xrightarrow[\mathbf{J}_{f\circ g}\atop l\times n]{f\circ g}\mathbb{R}^l
\end{gather}

\begin{gather} \mathbb{R}^n\xrightarrow[\mathbf{J}_g\atop m\times n]{g}\mathbb{R}^m\xrightarrow[\mathbf{J}_f\atop l\times m]{f}\mathbb{R}^l\\ \mathbb{R}^n\xrightarrow[\mathbf{J}_{f\circ g}\atop l\times n]{f\circ g}\mathbb{R}^l \end{gather}

Underline

\underline doesn't work great.

But \uline from the soul package does!

One can also use axelwlchan's trick, but it doesn't work for sentences breaking over several lines:

\usepackage{contour}
\usepackage[normalem]{ulem}

\renewcommand{\ULdepth}{1.8pt}
\contourlength{0.8pt}

\newcommand{\myuline}[1]{%
  \uline{\phantom{#1}}%
  \llap{\contour{white}{#1}}%
}

International accents

We try to write your name properly when we quote it. Here are the most common glyphs and the code needed to do so:

Intaccents.jpg

$?`$Does this work?

and a more comprehensive list of accentuated characters.

Fonts

See Will Robertson preambles to use different fontsets.

Shortcuts

Useful shortcuts, include:

  • \to instead of \rightarrow for $\to$ (also mapsto for $\mapsto$)
  • \gets instead of \leftarrow for $\gets$.
  • \implies instead of \Longrightarrow for $\implies$ (is there a shortcut for \Rightarrow which is the prettier $\Rightarrow$?)

Colors

Using the package

\usepackage[svgnames]{xcolor}

One can then use \textcolor{red}{this is red} or \color{red} to turn everything red (until next escape).

The predefined colors are:

black, blue, brown, cyan, darkgray, gray, green, lightgray, lime,
magenta, olive, orange, pink, purple, red, teal, violet, white, yellow.

but some of them are horrible! like this horrible #00ff00 pure green (so-called lime) (what it calls lime is even less visible). The svgnames gives access to about 150 additional, and pretty, colors. Use capitals letters. Here are the most useful with a short name:

  •       Aqua
  •       Blue
  •       Brown
  •       Crimson
  •       Cyan
  •       Fuchsia
  •       Gold
  •       Green
  •       Lime
  •       Magenta
  •       Navy
  •       Orchid
  •       Peru
  •       Pink
  •       Plum
  •       Purple
  •       Red
  •       Sienna
  •       Tan
  •       Teal
  •       Tomato
  •       Violet
  •       Wheat
  •       Yellow

And here are all of them.

Unicode

Unicode can be supported (at least to some extent) with

\usepackage[mathletters]{ucs}
\usepackage[utf8x]{inputenc}

It works at least for the Greek letters.

Formatting

  • Wrapping figures in text: [3]

Lists

  • To change spacing between items, put after \begin{itemize}:

\addtolength{\itemsep}{-0.5\baselineskip}

  • To change the starting value of an enumerate list (enumii if it's a sublist):

\begin{enumerate} \setcounter{enumi}{4} \item fifth element \end{enumerate}

  • To change the type of numbering:
\renewcommand{\theenumi}{\Roman{enumi}}
\renewcommand{\theenumi}{\roman{enumi}}
  • To change enumeration (with square brackets, parentheses, etc.): (see [4])
\usepackage{enumitem}% http://ctan.org/pkg/enumitem
\begin{document}
\begin{enumerate}[label={[\arabic*]}]
  \item First item
  \item Second item
  \item \ldots
  \item Last item
\end{enumerate}
\end{document}

Footnotes

There is a $\mathrm{\LaTeX}$ package, footmisc, that is useful for manipulating footnote formatting.

  • Spacing between footnotes:

%\footnotesep is the space between footnotes: \setlength{\footnotesep}{-0.5\baselineskip}

%\footins is the space between the text body and the footnotes: \setlength{\skip\footins}{1cm}

  • To use footnotes to feature reference-style annotations, that is, with no subscripts and with enclosing brackets [1], add in the preamble:
\makeatletter
\renewcommand{\@makefnmark}
%{\@textsuperscript{\textit{\tiny{\@thefnmark}}}}
{[\@thefnmark]}
\renewcommand\@makefntext[1]{%
    \parindent 1em
    \noindent
    [\@thefnmark]\enspace #1}
\makeatother

(I left, commented, the original definition of the footnote).

Geometry

\usepackage[a4paper, total={6in, 8in}]{geometry}

To use "infinite"-width page to accommodate single-line long formulas, use the package standalone:

\documentclass[border=1in]{standalone}
\usepackage{lipsum}
\begin{document}
    \begin{minipage}{66cm}
    \lipsum[1-150]
    \end{minipage}
\end{document}

This is, unfortunately, incompatible with the RevTeX package or amsmath tools in general. In this case one has to use geometry:

\documentclass[preview, border=1cm]{standalone}
\usepackage[total={50cm, 20cm}]{geometry}
\usepackage{amsmath}

\begin{document}

\begin{subequations}
  \begin{align}
    \sigma_1^{(1)}&=\sqrt{\frac{\gamma_a^4+2\gamma_a^3\Gamma+6\gamma_a^2\Gamma^2+2\gamma_a\Gamma^3+\Gamma ^4}{\gamma_a^2\Gamma^2(\gamma_a+\Gamma)^2}}\\
    ...
  \end{align}
\end{subequations}

\end{document}
Wide-LaTeX-formulas.jpg

Units

We use the siunitx package:

\usepackage{siunitx}

It'd take \SI{500}{\milli\second} to understand.

Please write \SI{10}{\micro\meter} and not 10$\mu\mathrm{m}$

Pleasewrite10mum.jpeg

To write inverse unit, use \per:

shows the PL emission of a \SI{3}{\micro\meter} wire, where one can
observe the splitting between the two first confined subbands, the
polarization splitting, and the crossing of the X and Y (labelled TE
and TM here) polarized lines around \SI{2.6}{\per\micro\meter},
whereas the value given by the formula above is
\SI{2.1}{\per\micro\meter}.
Permicrometer.png

The powers of ten can be counter-$\mathrm{\LaTeX}$-intuitive:

with a density of $\SI{e-3}{\per\square\micro\meter}$
Density-e-3mum-2.png

If you do not use SI units, then omit the slash:

repetition rate of SI{3}{gb/s}

(that would be giga-bits per seconds).

It is also possible to empower the package with extra options, e.g.:

\usepackage[alsoload=astro]{siunitx}

to have parsec and lightyears, e.g., Proxima Centauri is $\SI{4.2465}{\lightyear}$ away.

There is also a SIUnits which is however deprecated [7]. Sometimes it came in handy, for instance to add non-numerical inputs (though siunitx should be able to allow that as well).

Mathematical hacks

Small matrices

For small matrices, such as $\sigma_z=\left(\begin{smallmatrix}1&0\\0&-1\end{smallmatrix}\right)$, one can use

\left(\begin{smallmatrix}1&0\\0&-1\end{smallmatrix}\right)

Symbols

To use \mathbb{1} produce the "identity" Identity.jpg:

\usepackage{bbold}

To use ornaments, like Fingerpoint.png or Suggestion.png:

\usepackage[object=vectorian]{pgfornament}
\newcommand{\selectedpub}{\pgfornament[anchor=south, width=.25cm]{152}}

(152 for the finger, 5 for the heart, etc.)

If desperate, you can try to de$\mathrm{\TeX}$ify your input.

Bold letters

Greek letters can be typeset with the bm package

\usepackage{bm}

which produce $\bm{\alpha}$, $\bm{\beta}$, $\bm{\gamma}$ asAlpha-beta-gamma.jpg.

Line numbering

It's useful to number profusely manuscripts of which you are discussing every line. Package lineno does that.

\usepackage{lineno}
\linenumbers
Numbering-lines-TeX.png

It may have a hard time cohabiting with amsmath, however. It appears that if you include this monstrosity somewhere in your preamble, it'll perform well enough for line-dropping with your co-authors:

\newcommand*\patchAmsMathEnvironmentForLineno[1]{%
  \expandafter\let\csname old#1\expandafter\endcsname\csname #1\endcsname
  \expandafter\let\csname oldend#1\expandafter\endcsname\csname end#1\endcsname
  \renewenvironment{#1}%
     {\linenomath\csname old#1\endcsname}%
     {\csname oldend#1\endcsname\endlinenomath}}% 
\newcommand*\patchBothAmsMathEnvironmentsForLineno[1]{%
  \patchAmsMathEnvironmentForLineno{#1}%
  \patchAmsMathEnvironmentForLineno{#1*}}%
\AtBeginDocument{%
\patchBothAmsMathEnvironmentsForLineno{equation}%
\patchBothAmsMathEnvironmentsForLineno{align}%
\patchBothAmsMathEnvironmentsForLineno{flalign}%
\patchBothAmsMathEnvironmentsForLineno{alignat}%
\patchBothAmsMathEnvironmentsForLineno{gather}%
\patchBothAmsMathEnvironmentsForLineno{multline}%
}

Editing/Proofreading (copy-editing)

There are two ways to strike out text: (soul seems better)

\usepackage{soul}
\st{This can't be!}
\usepackage[normalem]{ulem}
\sout{This neither!}

In section titles, there might be problem of upcasing the color name, in which case add:

\colorlet{RED}{red}

The use of \st might require \protect.

See also Emacs proofing $\mathrm{\LaTeX}$ (red and strike-throughs).

Seamless for computation

Screenshot 20230616 150740.png

These options allow to have an infinite page large enough to work on without page interruptions nor limitations from the finite widths. As a result, it is convenient to have equations flushed left.

\documentclass[preview, leqno, border=1cm, fleqn]{standalone}
\usepackage[total={20cm, 20cm}]{geometry}

There is apparently a bug with align that adds extra spacing for the 16th line!

texmf

Local files (such as laussy.sty) are to be put in a local version of the texmf directory (texmf stands for $\mathrm{\TeX}$ and Metafont). This is to be declared to the system as follows:

texhash /home/laussy/comp/texmf

To check the destination is where it should:

kpsewhich -var-value TEXMFLOCAL

One should have, for this, defined TEXMFHOME in texmf.cnf, itself potentially identifiable with

kpsewhich texmf.cnf

but which can, however, bring you to some dummy file. The option to use tlmgr[8] may also not work. Simplest is to locate texmf.cnf and see if editing there the TEXMFHOME variable there. This worked for me (I also do not want texmf in my home).

To check that a local sty file is installed (is available):

kpsewhich laussy.sty

lualatex

To use fonts such as Arial or Colibri, one can use lualatex. This requires the installation of:

sudo apt install texlive-luatex

as well as the installation of the fonts themselves. Note that still within $\mathrm{\LaTeX}$, one can use the package helvet to use a look-alike free font (Nimbus Sans font):

\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}

or, for Calibri, the Carlito font which is almost identical (in particular, it has the same metrics):

\usepackage[sfdefault]{carlito}

but if you want the real proprietary fonts, you have to commit your soul to some endt-user license agreementScreenshot 20220718 110611.png which is however easily done through

sudo apt install ttf-mscorefonts-installer

If the fonts you want are not part of this, such as calibri, then you need to find it elsewhere (for instance, here), and then you can declare your choice of font as follows (un/comment as needed; you may have to declare the exact path to the files as shown below):

\usepackage{fontspec}
%\setmainfont{Arial}
%\setmainfont{calibri.ttf}
 \setmainfont[Path=/usr/local/share/fonts/c/,
     BoldItalicFont=calibriz.ttf,
     BoldFont      =calibrib.ttf,
     ItalicFont    =calibrii.ttf]{calibri.ttf}

Compilation is either from the command line:

lualatex text.tex

or from Emacs with AucTeX's specification of the TeX-engine at the end of the file:

%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% TeX-engine: luatex
%%% End:

Compilation

Use texfot to get rid of the flood of output generated by compilation and retain only the warnings:

texfot pdflatex Microcavities.tex

See also

  • BibTeX to manage references.
  • laussy.sty my personal $\mathrm{\TeX}$ definitions.

Links