LINUX.ORG.RU

Разлиновать страницу в LateX

 


0

2

Здравствуйте!

Никак не могу найти информацию. Как можно разлиновать страницу на LaTeX, чтобы сделать, например, шаблон блокнота? У меня бумажный органайзер и несколько шаблонов в OpenWord разлинованных страниц. Можно ли сделать разлиновку на LaTeX`е в линейку и клеточку?

Самое простое — наверное, табличку нарисовать.

hibou ★★★★★
()
\documentclass[a4paper,12pt,oneside]{extarticle}
\usepackage{/home/eddy/ed}
\textwidth=175mm
\textheight=260mm
\oddsidemargin=-.4mm
\headsep=5mm

\topmargin=-1in
\unitlength=1mm

\def\VL{\line(0,1){15}}
\def\HL{\line(1,0){185}}
\def\Box#1#2{\makebox(#1,5){#2}}
\def\simpleGrad{\sl\small\noindent\hbox to 0pt{%
\vbox to 0pt{%
\noindent\begin{picture}(185,287)(5,0)
\linethickness{0.3mm}
\put(0,0){\framebox(185,287){}}
\put(0,0){\Box{7}{Лит.}}
\put(0, 15)\HL
\multiput(0, 5)(0, 5){2}{\line(1,0){65}}
\put(7, 0){\VL\Box{10}{Изм.}}
\put(17, 0){\VL\Box{23}{\No~докум.}}
\put(40, 0){\VL\Box{15}{Подп.}}
\put(55, 0){\VL\Box{10}{Дата}}
\put(65, 0){\VL\makebox(110,15){\large\sc\rightmark}}
\put(175, 0){\VL\makebox(10,10){\normalsize\thepage}}
\put(175,10){\line(1,0){10}}
\end{picture}
}}}

\makeatletter
\def\@oddhead{\simpleGrad}
\def\@oddfoot{}
\makeatother
\begin{document}
\noindent Страница 1, верх\hfill право
\section{Раздел 1}
\vfill
\noindent Страница 1, низ\hfill право
\newpage
Страница 2
\end{document}

Вот это получается. Как дальше сделать - сам догадаешься. Надо элементарно запилить два цикла и разлиновать.

anonymous
()
Ответ на: комментарий от roof

Набросал за десять минут такое:

\documentclass{article}
\usepackage{libertine}
\usepackage{tikz}
\usepackage{polyglossia}
\usepackage[top=5mm, bottom=5mm, left=5mm, right=5mm]{geometry}
\usetikzlibrary{shapes}
\setmainlanguage{russian}
\setotherlanguage[variant = us]{english}
\enablehyphenation
\begin{document}
\flushleft
\begin{tikzpicture}
\draw [step=5mm, , help lines] (0mm, 0mm) grid (205mm, 265mm);
\node [shape=rounded rectangle, draw, fill=white, 
minimum width=40mm, minimum height=10mm, align=left, 
inner sep=2mm, rounded rectangle arc length=180] 
at (180mm,255mm) {};
\node [shape=rounded rectangle, draw, fill=white, 
minimum width=120mm, minimum height=10mm, align=left, 
inner sep=2mm, rounded rectangle arc length=180] 
at (75mm,255mm) {};
\node [shape=rectangle, draw, fill=white, 
minimum width=15mm, minimum height=15mm, align=left, 
inner sep=2mm, rounded corners] 
at (190mm,10mm) {};
\end{tikzpicture}
\newpage
\begin{tikzpicture}
\draw [ystep=10mm, xstep=260mm, help lines] (0mm, 0mm) grid (205mm, 265mm);
\node [shape=rounded rectangle, draw, fill=white, 
minimum width=40mm, minimum height=10mm, align=left, 
inner sep=2mm, rounded rectangle arc length=180] 
at (180mm,255mm) {};
\node [shape=rounded rectangle, draw, fill=white, 
minimum width=120mm, minimum height=10mm, align=left, 
inner sep=2mm, rounded rectangle arc length=180] 
at (75mm,255mm) {};
\node [shape=rectangle, draw, fill=white, minimum width=15mm, 
minimum height=15mm, align=left, inner sep=2mm, 
rounded corners] at (190mm,10mm) {};
\end{tikzpicture}
\end{document}

Результат

Код ужасен, но подход понятен, надеюсь.

roof ★★
()
Последнее исправление: roof (всего исправлений: 1)
Ответ на: комментарий от anonymous

Смотря насколько шаблон сложный. Впрочем, причесал немного, убрал неаккуратный грид.

\documentclass[a4paper]{article}
\usepackage{libertine}
\usepackage{tikz}
\usepackage{polyglossia}
\usepackage[top=10mm, bottom=10mm, left=10mm, right=10mm]{geometry}
\pagestyle{empty}
\usetikzlibrary{shapes, math}
\setmainlanguage{russian}
\setotherlanguage[variant = us]{english}
\enablehyphenation
\begin{document}
\begin{tikzpicture}
  \foreach \x in {.5,1,...,18}{
    \draw [help lines] (\x,0) -- (\x,27);
  }
  \foreach \y in {.5,1,...,26.5}{
    \draw [help lines] (0,\y) -- ++(18.5, 0);
  }
  \tikzset{field/.style = {draw, fill=white, shape=rectangle, 
    rounded corners=3mm, minimum height=12mm, anchor=north west,}};
  \node [field, minimum width=12cm] at (.25, 26.85) {};
  \node [field, minimum width=3.5cm] at (14.5, 26.85) {};
  \node [field, minimum width=12mm] at (17.2, 13mm) {};
\end{tikzpicture}
\newpage
\begin{tikzpicture}
  \foreach \y in {1.5,2.5,...,24.5}{
    \draw [help lines] (0,\y) -- ++(18.5, 0);
  }
  \tikzset{field/.style = {draw, fill=white, shape=rectangle, 
    rounded corners=3mm, minimum height=12mm, anchor=north west,}};
  \node [field, minimum width=12cm] at (.25, 26.85) {};
  \node [field, minimum width=3.5cm] at (14.5, 26.85) {};
  \node [field, minimum width=12mm] at (17.2, 13mm) {};
\end{tikzpicture}
\end{document}

Результат мне нравится. Энивей, я в TeX начинающий, так что настаивать и спорить не буду.

roof ★★
()
Последнее исправление: roof (всего исправлений: 1)
Ответ на: комментарий от roof

Блин, ссылка на гуглдрайв затерла предыдущий вариант. ТС, учитывай это.

roof ★★
()

Тред не читал, сразу набросал решение:

\documentclass[a5paper]{article}
\usepackage{tikz}
\usepackage[
	left 	= 0.1cm,
	right 	= 0.0cm,
	top 	= 0.5cm,
	bottom 	= 0.0cm]{geometry}

\begin{document}
	\begin{tikzpicture}[scale=0.5]
		\draw [help lines] (0,0) grid (27,40);	
	\end{tikzpicture}
\end{document}

UPD: выше есть и поинтереснее шаблоны.

aquadon ★★★★★
()
Последнее исправление: aquadon (всего исправлений: 1)

А есть вариант с заполнением двух и более страниц в цикле? Если мне нужно сделать шаблон, например, с датами? Можно ли описать циклы и заполнить несколько страниц так чтобы в заголовке каждой была цифра от 1 до 5 или слово из массива?

knigolaz
() автор топика
Ответ на: комментарий от knigolaz

Такое ощущение, что ответы вы читать не стали. Мой вариант легко превращается в линейку, достаточно убрать цикл по \x и отрегулировать шаг по вкусу. Up: Сейчас вот посмотрел, оказывается, я его даже сделал. Вторая страница моего шаблона как раз в линейку.

roof ★★
()
Последнее исправление: roof (всего исправлений: 2)
Ответ на: комментарий от knigolaz

Если тебе немного надо, то циклы из латеховских пакетов сойдут. Но если нужно на каждой странице по 1-2 цикла, то лучше не пользоваться этим тормозиловом, а использовать теховские циклы:

    \loop
        % increment dummy counter
        \advance\tmp by 1
        % include the image
        \includegraphics[scale=0.6]{#1\number\tmp.pdf}
        % repeat the loop provided the counter is within specified bound
        \ifnum\tmp<#2
    \repeat

И вообще, читай дедушку Кнута! Без знаний теха ты в латехе только и сможешь что элементарную верстку выполнять в узких рамках имеющихся стилевых файлов.

// Да уже разблокируйте наконец 194.85.27.130!!! Сколько можно?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.