Date Редакция Категория comp Теги LaTeX / tikz

Иногда вместо настройки каждого объекта tikz проще применить глобальную настройку ко всему окружению tikzpicture. Например, если большинство кривых на рисунке должно изображаться жирными линиями, то проще изменить толщину линии по умолчанию (thin) на жирную (thick), чем устанавливать ее отдельно для каждого графического объекта. Вот как это делается.

Пусть исходный объект состоит из окружности и отрезка прямой:

\begin{tikzpicture}
  \draw (0,0) circle (1);
  \draw (-2,0) -- (2,0);
\end{tikzpicture}

settings1.png

Укажем, чтобы все линии в данном окружении tikzpicture по умолчанию были жирными. Из соображений наглядности мы задали даже не просто жирные (thick), а ультра-жирные (ultra thick) линии.

\begin{tikzpicture}[ultra thick]
  \draw (0,0) circle (1);
  \draw (-2,0) -- (2,0);
\end{tikzpicture}

settings2.png

Если нам понадобится указать другую толщину для некоторых линий, это можно сделать обычным способом. Например, пусть отрезок будет изображен тонкой (thin) линией:

\begin{tikzpicture}[ultra thick]
  \draw (0,0) circle (1);
  \draw [thin] (-2,0) -- (2,0);
\end{tikzpicture}

settings3.png

Еще одной полезной настройкой является масштабирование картинки. В следующем примере для обеих размерностей картинки 1 сантиметр исходного изображения преобразуется в 0.5 сантиметра нового изображения.

\begin{tikzpicture}[x=.5cm,y=.5cm]
  \draw (0,0) circle (1);
  \draw (-2,0) -- (2,0);
\end{tikzpicture}

settings4.png

Кроме того, окружение tikzpicture имеет параметр scale, позволяющий увеличивать или уменьшать чертеж в целом (в долях от текущего размера), а также параметры xscale, yscale, задающие масштабы отдельно по x и y. О других способах масштабирования написано тут.

Еще одним интересным объектом для настройки является блок scope. Этот блок -- своеобразная "картинка в картинке", которую можно двигать и изменять, оставаясь в пределах окружения tikzpicture или иначе -- "фигурные скобки", объединяющие несколько графических объектов.

Само по себе объединение в блок scope не приводит к изменению изображения. Код:

\begin{tikzpicture}
  \begin{scope}
  \draw (0,0) circle (1);
  \draw (-2,0) -- (2,0);
  \end{scope}
\end{tikzpicture}

даст уже знакомый по первой картинке результат. Мы просто указываем tikz, что окружность и отрезок теперь -- единый объект.

Сделаем линии этого объекта жирными:

\begin{tikzpicture}
  \begin{scope}[ultra thick]
  \draw (0,0) circle (1);
  \draw (-2,0) -- (2,0);
  \end{scope}
\end{tikzpicture}

Как видно, делается это также как и для изображения в целом. Аналогично к scope можно применять и другие глобальные настройки (точнее, сейчас это уже настройки блока).

Вот как выполняется перемещение изображений при помощи параметров xshift и yshift, а также их масштабирование без сохранения пропорций:

\begin{tikzpicture}   
  \begin{scope}
  \draw (0,0) circle (1);
  \draw (-2,0) -- (2,0);
  \end{scope}

  \begin{scope}[thick,xshift=4cm,yshift=0cm,x=.5cm,y=1cm]
  \draw (0,0) circle (1);
  \draw (-2,0) -- (2,0);
  \end{scope}

  \begin{scope}[very thick,xshift=0cm,yshift=-2.5cm,x=1cm,y=.5cm]
  \draw (0,0) circle (1);
  \draw (-2,0) -- (2,0);
  \end{scope}
\end{tikzpicture}

settings5.png



Комментарии

comments powered by Disqus