Как создать такой рисунок:
Красным цветом обозначены только пояснения (под "серединой" я подразумевал середину рисунка, представляющую спираль) и ее не следует рисовать. Tikz подойдет лучше всего, так как я немного ее знаю (больше, чем другие программы, о которых я ничего не знаю) и хочу заменить спирали некоторыми собственными украшениями.
Текст здесь может показаться крупным, но на самом деле я планирую использовать стандартный шрифт.
Вот минимальный рабочий пример (без преамбулы LaTeX, поскольку я использую LyX):
\begin{tikzpicture}
\node[align=center]{text text text text \\ text text text text};
% To do: Place a picture here, whose middle is at equal distance between the top line of text and the bottom line and that has a "good-looking" distance from the text
% To do: Place the same picture with same distance requirements here; would be nice if it were mirrored, so I don't have to mirror it externally in a different program.
\end{tikzpicture}
EDIT (так как это было слишком много для комментария): Хорошо, изменение ответа дает следующее
\documentclass{article}
\usepackage{graphicx}
\newlength\decorwidth
\setlength\decorwidth{1cm}
\newcommand\TextDecor[2]{%
\par\smallskip\noindent%
\parbox[c]{\decorwidth}{\includegraphics[width=.5\decorwidth]{#1}\hfill}%
\parbox[c]{\dimexpr\textwidth-2\decorwidth\relax}{#2}%
\parbox[c]{\decorwidth}{\hfill\includegraphics[width=.5\decorwidth]{#1}}\par\smallskip%
}
\begin{document}
\TextDecor{ornament1}{ \begin{center}text text text text\\ text text text text\end{center}}
\end{document}
теперь это выглядит так. Красным цветом пояснено то, что я не успел сделать:
решение1
Вот одна из возможностей: я определил команду newcommand \TextDecor
с двумя обязательными аргументами: имя файла, содержащего декорацию и текст, который нужно декорировать, и один необязательный аргумент, управляющий разделением между декорацией и текстом (значение по умолчанию — 10pt
). Декорации включаются с помощью \includegraphics
из graphicx
пакета.
Идея состоит в том, чтобы использовать три \parbox
es с вертикальным выравниванием по центру: два для украшений и среднее для текста; ширина полей, содержащих украшения, контролируется длиной decorwidth
(изначально установленной как 2cm
); конечно, вы можете изменить определение \TextDecor
в соответствии со своими потребностями:
\documentclass{article}
\usepackage{graphicx}
\newlength\decorwidth
\setlength\decorwidth{1.5cm}
\newlength\decorsep
\newcommand\TextDecor[3][10pt]{%
\setlength\decorsep{#1}
\par\smallskip\noindent%
\parbox[c]{\decorwidth}{\includegraphics[width=\decorwidth]{#2}\hfill}%
\hspace{\decorsep}%
\parbox[c]{\dimexpr\textwidth-2\decorwidth-2\decorsep\relax}{#3}%
\hspace{\decorsep}%
\parbox[c]{\decorwidth}{\hfill\includegraphics[width=\decorwidth]{#2}}\par\smallskip%
}
\newcommand\Text{% some filler text for the example
Nam dui ligula, fringilla a, euismod sodales, sollicitudin vel, wisi. Morbi
auctor lorem non justo. Nam lacus libero, pretium at, lobortis vitae, ultricies et,
tellus. Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet magna,
vitae ornare odio metus a mi. Morbi ac orci et nisl hendrerit mollis.
}
\begin{document}
\Text
\TextDecor{ornament1}{\Text}
\Text
\TextDecor[30pt]{ornament2}{\Text}
\Text
\TextDecor[2pt]{ornament3}{\Text}
\Text
\end{document}
решение2
Вот предложение по использованию пакета mdframed
. Для иллюстрации украшений я использовала пакет pifont
.
Соответствующие части прокомментированы в коде. Остальные настройки задокументированы в руководстве.
Вместо использования шрифта или изображения вы также можете работать с TikZ, который загружается пакетом mdframed
.
\documentclass{article}
\usepackage{graphicx}
\usepackage[framemethod=tikz]{mdframed}
\usetikzlibrary{calc}
\usepackage{pifont}
\usepackage{kantlipsum}
\mdfdefinestyle{ornament}{%
topline=false,bottomline=false,
middlelinewidth=2cm, %width of the ornament
middlelinecolor=white,
innerleftmargin=.1cm,innerrightmargin=.1cm, %inner distance from ornament
nobreak,
singleextra={\path let \p1=(O), \p2=(P) in (\x1,.5*\y2) coordinate (Q);
\node at (Q) {\ornamentsetupI};
\node at (P|-Q) {\ornamentsetupI};}
}
\newcommand*\ornamentsetup[1]{\def\ornamentsetupI{#1}}
\newmdenv[style=ornament]{ornament}
\ornamentsetup{{\huge\ding{107}}}
\begin{document}
\begin{ornament}
\kant[1]\kant[1]\kant[1]
\kant[1]\kant[1]\kant[1]
\kant[1]\kant[1]\kant[1]
\end{ornament}
\end{document}