TeXblog

 Typography with TeX and LaTeX

Archive for the 'TeX.SX' Category

Happy New Year!

Januar 1st, 2013 by Stefan Kottwitz

Happy New Year for all!

Fireworks

The animated GIF image shows fireworks displayed with TikZ written by Chris Hughes aka cmhughes on TeX.SE. Follow the link to see further fireworks effects.

The code is:

\documentclass[tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.pathmorphing,decorations.shapes}
 
\begin{document}
 
\foreach \radius in {1,2,...,20}
{
\begin{tikzpicture}
  % background rectangle
  \filldraw[black] (-3,-3) rectangle (5,3);
  % skyline
  \filldraw[black!80!blue](-3,-3)--(-3,-2)--(-2.5,-2)--(-2.5,-1)--(-2.25,-1)--(-2.25,-2)--(-2,-2)
                            --(-2,-1)--(-1.75,-0.75)--(-1.5,-1)
                            --(-1.5,-2)--(-1.1,-2)--(-1.1,0)--(-0.5,0)--(-0.5,-2)
                            --(0,-2)--(0,-1.5)--(1,-1.5)--(1.25,-0.5)--(1.5,-1.5)--(1.5,-2)
                            --(2,-2)--(2,0)--(2.5,0)--(2.5,-2)
                            --(3,-2)--(3,-1)--(4,-1)--(4,-2)--(5,-2)--(5,-3)--cycle;
  % moon- what a hack!
  \filldraw[white] (4,2.5) arc (90:-90:20pt);
  \filldraw[black] (3.8,2.5) arc (90:-90:20pt);
  % fireworks
  \pgfmathparse{100-(\radius-1)*10};
  % red firework
  \ifnum\radius<11
      \draw[decorate,decoration={crosses},red!\pgfmathresult!black] (0,0) circle (\radius ex);
  \fi
  % orange firework
  \pgfmathparse{100-(\radius-6)*10};
  \ifnum\radius>5
      \ifnum\radius<16
          \draw[decorate,decoration={crosses},orange!\pgfmathresult!black] (1,1) circle ( \radius ex-5ex);
      \fi
  \fi
  % yellow firework
  \pgfmathparse{100-(\radius-11)*10};
  \ifnum\radius>10
      \draw[decorate,decoration={crosses},yellow!\pgfmathresult!black] (2.5,1) circle (\radius ex-10ex);
  \fi
\end{tikzpicture}
}
\end{document}

The resulting PDF file can be cropped and converted using

pdfcrop myfile.pdf
convert -delay 20 -loop 0 -density 300 myfile-crop.pdf fireworks.gif

Category: TeX.SX, pgf/TikZ | No Comments »

Introducing “non-technical” people to LaTeX

Februar 16th, 2012 by Stefan Kottwitz

On TeX.SX, Primal Pappachan asked:

“How can I introduce a non-technical person to LaTeX?”

There are several answers, for helping learning LaTeX without being too complicated. Yiannis Lazarides gave some of the best suggestions:

  • Assist in the TeX installation and install a full distribution, to avoid frustration by installation difficulties later.
  • Provide a small template and a compilable document which roughly meets their requirements.
  • Assist with the first steps.
  • We are used to table of contents, lists and index - a new user though might be impressed how easy that is.
  • Explain the concepts of floats early - better show benefits than let a user run into unexpected problems with moving objects.

I would add:

  • Point the way to up-to-date LaTeX online resources.
  • Show how the mentioned Q&A site TeX.SX works, so he can ask for help or find existing solutions there.
  • Introduce him to a LaTeX discussion forum, such as LaTeX-Community.org. A web forum is easy to use and you can talk and discuss, in contrast to a Q&A site. Usenet might be a bit harder to introduce.
  • For best online support, explain the importance of code such as minimal working examples.

Visit the original question and answers on the site if you would like to read more.

Category: TeX and LaTeX, TeX.SX, LaTeX General | 1 Comment »

Can you use TeX for any kind of document, or is it overkill for simple ones

Januar 24th, 2012 by Stefan Kottwitz

Untypical for a Q&A site, there’s currently an exchange of views on TeX.SX:

As an expert, can you always use TeX for (nearly) any kind of document?
 

“Yes, you can:”

  • It’s easy if you are a routine user, you know the common packages.
  • Typing a letter, for example, is just like 20 TeX commands added to the text.
  • You get the best possible hyphenation and justification, and a professional consistent look - why to abandon it for a “simple” document.
  • After some time you’ve got a lot of documents to use as a template or as a start for a similar document.
  • Your, let’s say, 16 years old document still work today. Try documents made with a word processor 16 years ago - can you open it today with current software, without layout loss or change?
  • TeX users naturally have TeX installed. Some have a dislike for installing a huge wordprocessing software or suite such as Open/LibreOffice or MS Office - this is overkill for simple documents.

“No, you cannot:”

  • For typesetting music, TeX may not be the best choice. Though there’s MusiXTeX, Lilipond seems to be favored.
  • TeX should not be used for documents intended for quick onscreen use, such as manual pages which should be readable in a text console window. mandoc and Groff are recommended.

There are 16 answers until know. Perhaps you have a new important point to add? See the original answers with further points.

Category: TeX and LaTeX, TeX.SX, LaTeX General | No Comments »

LaTeX Workflow

Januar 18th, 2012 by Stefan Kottwitz

Agodemar posted a very nice diagram of the LaTeX workflow on TeX.SX:

LaTeX Workflow - compiler and application levels

A bigger version of the image and a link the full source code is shown in the topic Diagram / Infographic of TeX & friends.

Category: TeX.SX, pgf/TikZ, LaTeX General | No Comments »

Strategies for preambles

Januar 13th, 2012 by Stefan Kottwitz

Yesterday Seamus Bradley started a topic on TeX.SX:

    Best practice on organising your preamble

For large and highly customized documents, preambles can be lengthy. Should all packages be loaded before macros are defined? Or should packages and related definitions be close together? What about externalizing settings, and handling package dependencies?

Until now, there are two answers.

Yiannis Lazarides’ recommendations:

  • Consider developing your own class or package to hold your changes.
  • Have the packages and own related commands, near each other.
  • Divide the preamble into topics, such as typography, graphics, maths, sectioning etc.
  • Have the problematic package settings in their own packages or files.

Mico Loretan’s recommendations:

  • Put the entire preamble content into a .sty file. Besides separating the settings from the document content, it has the benefit that you don’t need to use \makeatletter and \makeatother there.
  • Check each loaded package if it’s really needed.
  • Check your definitions, if there’s a package which could replace them, simpler and perhaps better.
  • Use comments and whitespace liberally, to keep your preamble readable.
  • A complex preamble could have an overview, a guide like a small table of contents.
  • Divide the preamble into topics or tasks.
  • Packages, which are loaded without any options, could be loaded by a single \usepackage command, however it would be good to put each package on its own line then.

Justin Bailey’s advice:

  • For preambles that load a lot of packages or large packages, such as TikZ, you could create a format file, speeding up compilation.

Justin added a How-To for creating format files for TeX in six steps.

For reasons and explanation, have a look at the original topic.

Category: TeX.SX, LaTeX General | No Comments »

Happy New Year!

Januar 1st, 2012 by Stefan Kottwitz

Happy New Year, and the best wishes!

Fireworks

The image shows fireworks displayed with TikZ by percusse on TeX.SX. Follow the link to see further fireworks effects.

The code is:

\documentclass{article}
\usepackage{tikz}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\setlength\PreviewBorder{0pt}%
\usetikzlibrary{calc,decorations.pathmorphing}
%
\pgfdeclareradialshading{someshade}{\pgfpointorigin}{%
  color(0mm)=(pgftransparent!40);color(5mm)=(pgftransparent!50);%
  color(10mm)=(pgftransparent!70);color(2cm)=(pgftransparent!100)}
\pgfdeclareradialshading{somenodeshade}{\pgfpointorigin}{%
  color(0mm)=(pgftransparent!0);color(2mm)=(pgftransparent!5);%
  color(5mm)=(pgftransparent!95);color(20mm)=(pgftransparent!100)}
\pgfdeclareradialshading{invertshade}{\pgfpointorigin}{%
  color(0mm)=(pgftransparent!100);color(6mm)=(pgftransparent!95);%
  color(10mm)=(pgftransparent!60);color(2cm)=(pgftransparent!0)}
\pgfdeclarefading{fadeit}{\pgfuseshading{someshade}}
\pgfdeclarefading{fadein}{\pgfuseshading{invertshade}}
%
\begin{document}
\begin{tikzpicture}[projectile/.style={decorate,decoration={random steps,
  segment length=3pt,amplitude=0.5pt}}]
  \fill[black] (-4,-4) rectangle (6,5);
 
  \begin{scope}[xshift=0cm,yshift=-0.4cm,transparency group]
    \pgfsetfading{fadein}{\pgftransformshift{\pgfpointorigin}}
    \foreach \x in {0,6,..., 360}{\draw[blue!80!white,projectile,line width=1.1pt]
      (0,0) to [in=90] (10*rand+\x:rand*1mm+2cm);};
  \end{scope}
 
  \begin{scope}[xshift=2cm,yshift=1cm]
    \foreach \x in {0,8,..., 360}{\draw [yellow!5,thick,projectile] (0.7,0)
      to  (3*rand+\x :1mm*rand+2.2cm)  node[circle,inner sep=1mm,
      shade,shading=somenodeshade,opacity=0.1] {};}
    {\pgfsetfading{fadeit}{\pgftransformshift{\pgfpoint{2.5cm}{1cm}}}};
    \fill[white] (-3,-3) rectangle (3,3);
  \end{scope}
 
  \begin{scope}[xshift=3cm,yshift=-1cm]
    \foreach \x in {0,10,..., 360}{\def\r1{rand}\draw [yellow]
      ($(0,0)!abs{\r1}!(\x :5mm)$) to [in=90] ($(0,0)!abs{\r1}+0.2!(\x :8mm)$);}
    {\pgfsetfading{fadeit}{\pgftransformshift{\pgfpoint{3cm}{-1cm}}}};
    \fill[yellow,opacity=0.6] (-3,-3) rectangle (3,3);
  \end{scope}
 
  \begin{scope}[xshift=-1cm,yshift=1.5cm]
    \foreach \x in {0,12,..., 360}{\def\r2{rand}\draw [red,line width=0.5pt]
      ($(0,0)!abs{\r2}!(\x :3mm)$) -- ($(0,0)!abs{\r2}+0.1!(\x :7mm)$);}
    {\pgfsetfading{fadeit}{\pgftransformshift{\pgfpoint{-1cm}{1.5cm}}}};
    \fill[red,opacity=0.6] (-3,-3) rectangle (3,3);
  \end{scope}
\end{tikzpicture}
\end{document}

The image has been taken from the TeXworks PDF previewer, not all PDF viewers are capable of showing it in this quality. The example has been added to the TikZ example gallery.

Category: TeX.SX, pgf/TikZ | 1 Comment »

Merry Christmas!

Dezember 24th, 2011 by Stefan Kottwitz

Christmas tree

This Christmas tree has been created by Mikko Heiskanen with this code:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{scopes,svg.path,shapes.geometric,shadows}
\begin{document}
\begin{tikzpicture}[
  mystar/.style={star, minimum size=2cm, star point ratio=2.5, shade, thick,
    line join=round, color=yellow!80!black, draw=red!20!black,
    top color=yellow!80!white, bottom color=yellow!60!black},
  mytree/.style={scale=0.5, rotate=180, draw=green!60!black, thick,
    line join=round, inner color=green!60!yellow, outer color=green!50!black},
  myball/.style={shade, ball color=#1, circular drop shadow={
    shadow xshift=0pt, shadow yshift=-.5ex, fill=green!40!black}}
  ]
  {[mytree]
  \shadedraw svg "M355,430
    q90,10 105,-85 30,0 50,-30 20,30 50,30 50,-20 100,0 10,88 105,85
    -45,90 -205,25 Q400,520 355,430";
  \shadedraw svg "M380,325
    q83,10 105,-80 25,0 35,-30 20,25 40,30 20,-10 35,-25 20,20 40,25
    25,90 105,82 -15,50 -120,15 -30,-2 -60,12 -30,0 -52,-28
    C490,370 380,360 380,325";
  \shadedraw svg "M435,225
    q65,-8 90,-70 35,40 70,0 25,60 90,70 -30,52 -90,5 -36,48 -73,-3
    C520,254 445,265 435,225";
  \shadedraw svg "M470,139
    q50,5 90,-80 50,90 90,80 -30,30 -50,20 -40,45 -78,0
    Q500,170 470,139";
  }
  %\shadedraw svg[scale=0.5,rotate=180]
  %"M460,532 q50,-8 q77,-45 v-20 a20,13 0 1 1 48,0 v20 q30,40 77,45";
  %pgf/tikz doesn't like the arc operation, as stated in manual
 
  \node[mystar] at (-9.85,-1) {$\lambda$};
 
  \shade[myball=blue]   (-9.7,-2.2)   circle (.2cm);
  \shade[myball=red]    (-9.2,-3.8)   circle (.2cm);
  \shade[myball=green]  (-10.3,-4)    circle (.4cm);
  \shade[myball=yellow] (-8.95,-5.4)  circle (.4cm);
  \shade[myball=red]    (-10.7,-6.1)  circle (.4cm);
  \shade[myball=blue]   (-10.8,-5)    circle (.2cm);
  \shade[myball=yellow] (-9.5,-6.7)   circle (.2cm);
  \shade[myball=green]  (-8.3,-7.6)   circle (.4cm);
  \shade[myball=yellow] (-11.7,-7.6)  circle (.4cm);
  \shade[myball=blue]   (-10.5,-7.8)  circle (.2cm);
\end{tikzpicture}
\end{document}

Further trees based using TikZ and pgfplots, using decorations and L-System fractals are here: Christmas trees with TikZ.

Category: TeX.SX, Events, pgf/TikZ | No Comments »

Bringing together TeX users online

Oktober 23rd, 2011 by Stefan Kottwitz

From Usenet to Web 2.0 and beyond - Presentation on TUG 2011

I attended the TeX Users Group Conference 2011 in Trivandrum, Kerala, India, from October 19 to October 21. On this meeting I made a presentation about TeX online communities, such as discussion groups, mailing lists and web forums. I introduced the TeX Q&A site tex.stackexchange.com and showed some of its features which make it a good choice for developing and sharing TeX contents, for building a TeX knowledge base besides just discussing. Finally I compared those systems.

Direct PDF download:

This presentation and text is free with cc-wiki license and attribution required, which means you are free to use, to share and to remix it, while mentioning the author’s name and if possible linking back to here.


Abstract:

Bringing together TeX users online - from Usenet to Web 2.0 and beyond

It all began with the Usenet, around 1980. The online discussion board comp.text.tex emerged, where TeX hackers gathered and still populate it today.

On the continuously developing Internet, TeX user groups created mailing lists, built home pages and software archives. Web forums turned up and lowered the barrier for beginners and occasional TeX users for getting support.

Today, TeX’s friends can also follow blogs, news feeds, and take part in vibrant question and answer sites.

In this talk we will look at present online TeX activities.


See also the TUG 2011 conference program.

Category: TeX User Group, TeX.SX, Events, Presentations, Online Ressources | No Comments »

10.000 Questions on TeX.SX

Oktober 3rd, 2011 by Stefan Kottwitz

Today the 10.000th question has been posted on TeX.SX:

Why do arguments to nested \tilde or \breve commands reappear when amsmath is used?

It deals with a bug found in amsmath when nested accents are used. A workaround and one working solution have been found, and it turned out that the bug is already on the todo list of AMS. Let’s hope that AMS makes that list available for the public, so we would know if we stumbled across a known bug which will be fixed soon or if it’s unknown.

Since today the TeX-SX Q&A site contains more than 10.000 questions and 18.000 answers of more than 6.900 registered users, only 132 questions are still unanswered. Yet - there are regular chat meetings where unanswered questions are being discussed, answered and sometimes closed, for example if the information in the question was insufficient and hasn’t been updated since a long time.

In July a TeX.SX community blog has been established, in about 20 blog posts by different authors you can read more about the site and its users.

Category: TeX.SX, Online Ressources | No Comments »

Closed root symbols

Oktober 2nd, 2011 by Stefan Kottwitz

handwritten closed square root
In LaTeX/Mathematics, Wikipedia writes:

Some people prefer writing the square root “closing” it over its content. This method arguably makes it more clear just what is in the scope of the root sign.

It shows a solution defining \sqrt in terms of the default one, which works well. However, Wikipedia continues:

Unfortunately this code won’t work if you want to use multiple roots: if you try to write \sqrt[b]{a} … you’ll just get a wrong output. In other words, you can redefine the square root this way only if you are not going to use multiple roots in the whole document.

handwritten roots
On TeX.SX Matthias posted the question, how to solve this for roots of arbitrary degree. I had a look into latex.ltx and decided to redefine the internet \r@@t macro, still similar to the Wikipedia solution:

\makeatletter
\let\oldr@@t\r@@t
\def\r@@t#1#2{%
\setbox0=\hbox{$\oldr@@t#1{#2\,}$}\dimen0=\ht0
\advance\dimen0-0.2\ht0
\setbox2=\hbox{\vrule height\ht0 depth -\dimen0}%
{\box0\lower0.4pt\box2}}
\LetLtxMacro{\oldsqrt}{\sqrt}
\renewcommand*{\sqrt}[2][]{\oldsqrt[#1]{#2}}
\makeatother

Now we get a closed root symbol for example also for cubic roots. However, roots without optional arguments, i.e. are not closed. Finally, this can be fixed by forcing \sqrt using the optional argument, if necessary just using a space because. An empty optional argument would cause wrong spacing.

\usepackage{letltxmacro}
\LetLtxMacro{\oldsqrt}{\sqrt}
\renewcommand*{\sqrt}[2][\ ]{\oldsqrt[#1]{#2}}

Here we did not use TeX’s \let command, but the letltxmacro package which works safer for LaTeX macros with optional arguments. See complete source example. Output:

Rlosed roots

Matthias wrote a suggestion for incorporating the solution on the Wikipedia discussion page.

This was originally discussed on TeX.SX: “Closed” (square) root symbol.

Category: TeX.SX, Fonts and Symbols, Mathematics | No Comments »