
Я хотел бы иметь функцию для "письма". Под письмом я подразумеваю, что это линованная бумага, и текст выглядит выровненным, как если бы он был без функции "uline".
Более того, этот ulem
пакет не совсем то, что мне нужно, поскольку последняя строка всегда будет короткой (любая строка, в которой есть перенос строки).
Я больше думаю о чем-то вроде экзаменационного класса, о \fillwithlines
порядке.
У кого-нибудь есть идеи? Спасибо заранее!
\documentclass[fontsize=9pt,twoside, DIV=calc]{scrbook}
\usepackage[papersize={12.5cm,19cm},inner=10mm, outer=10mm, bottom=13mm, top=10mm, footskip=6mm]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[]{lipsum}
\usepackage{xcolor}
\xdefinecolor{notiz}{RGB}{239,227,157}
\usepackage{tabularx}
\usepackage{tikz}
\usepackage{tikzsymbols}
\usepackage{varwidth}
\usetikzlibrary{shapes}
\usetikzlibrary{decorations.pathmorphing}
\usepackage{ulem}
\newcommand{\post}[1]{
\small
\begin{center}
\begin{tikzpicture}[pencildraw/.style={ %
decorate,
decoration={random steps,segment length=2pt,amplitude=1pt}
} %
]
\node[ preaction={fill=black,opacity=.5,% zeilenabstand=2.8,
transform canvas={xshift=1mm,yshift=-1mm}},
pencildraw,draw,fill=notiz,text width=.8\textwidth,
inner sep=5mm] {\uline{#1}};
\end{tikzpicture}
\end{center}
\normalsize
}
\begin{document}
\post{\lipsum[1]}
\end{document}
решение1
Найдите подходящую линованную бумагу, напримерhttp://www.wordmstemplates.com/wp-content/uploads/2015/08/lined-paper-template-9898.jpg, загрузите изображение и используйте его в качестве \includegraphics
имени файла.
Разлинованное текстовое поле
Здесь я представляю \linedbox{<width>}{<content>}
, который не поддерживает разрыв страницы. Пользовательские параметры отображаются в верхней части MWE:
\addedleftmargin
левое поле разлинованного блока (в настоящее время 20pt);\addedrightmargin
правое поле линованного блока (в настоящее время 20pt);\scaledheight
масштабированная высота бумаги. Используется для приведения в соответствие интервала между линейками бумаги с размером шрифта (в настоящее время 6,98 дюйма);\scaledwidth
масштабированная ширина бумаги. Она должна быть как минимум такой же большой, как и самый широкий блок, который вы собираетесь сделать (ее значение повлияет на видимую ширину красной линии и размер левого поля) (в настоящее время\textwidth
);\naturalindent
естественный левый отступ масштабированной бумаги, обычно до точки справа от красной линии (в настоящее время 15% от\scaledwidth
).\topdiscard
количество нелинованной бумаги в верхней части масштабированного изображения, которое необходимо отбросить (в настоящее время 10% от\scaledheight
); и\topbottomgap
добавлен вертикальный зазор над и под разлинованным полем (в настоящее время 1 пт).
Вот МВЭ
\documentclass{article}
\usepackage{graphicx,stackengine,trimclip}
\usepackage{lipsum}
\def\addedleftmargin{20pt}% LEFT MARGIN OF RULED BOX
\def\addedrightmargin{20pt}% RIGHT MARGIN OF RULED BOX
\def\scaledheight{6.98in}% ADJUST FOR DIFFERENT FONT SIZES
\def\scaledwidth{\textwidth}% SHOULD BE SET AT LEAST AS WIDE AS WIDEST USAGE
\def\naturalindent{.15\dimexpr\scaledwidth\relax}% BASED ON PAPER'S RED LINE LOCATION
\def\topdiscard{.10\dimexpr\scaledheight\relax}% UNRULED TOP OF PAPER TO THROW AWAY
\def\topbottomgap{1pt}% GAP ADDED ABOVE/BELOW RULED BOX
\def\reducedindent{\dimexpr\naturalindent-\addedleftmargin\relax}% CALCULATED QUANTITY
\newcommand\linedbox[2]{\noindent\savestack\pagetext{\begin{minipage}[b]{%
\dimexpr#1-\naturalindent+\reducedindent-\addedrightmargin}%
\strut#2\strut
\end{minipage}%
}%
\addstackgap[\topbottomgap]{\stackinset{r}{\addedrightmargin}{t}{1pt}{\pagetext}%
{\clipbox{%
\reducedindent{}
\dimexpr\scaledheight-\topdiscard-\ht\pagetextcontent-\dp\pagetextcontent\relax{}
\dimexpr\scaledwidth-\dimexpr#1\relax-\reducedindent\relax{}
\topdiscard%
}%
{\includegraphics[height=\scaledheight,width=\scaledwidth]{lined-paper-template-9898}}}}%
}
\begin{document}
\lipsum[1]
{\centering\linedbox{4.3in}{\lipsum[1]Hi Mom!!}\par}
Or this: \linedbox{2in}{This is a test of the emergency broadcasting system.
This is only a test}
\end{document}
УНИВЕРСАЛЬНАЯ ЛИНОВАЯ БУМАГА
Обратите внимание, что geometry
поля и размеры \fontsize
необходимо изменить в соответствии с форматом бумаги.
\documentclass{article}
\usepackage[margin=1.2in]{geometry}
\usepackage{everypage}
\usepackage{graphicx}
\usepackage{lipsum}
% THESE ARE LaTeX DEFAULTS; CAN CHANGE IF NEEDED.
\def\PageTopMargin{1in}
\def\PageLeftMargin{1in}
\newcommand\everyxy[3]{%
\AddEverypageHook{\smash{\hspace*{\dimexpr-\PageLeftMargin-\hoffset+#1\relax}%
\raisebox{\dimexpr\PageTopMargin+\voffset-#2\relax}{#3}}}}
\everyxy{0in}{11in}{\includegraphics[height=\paperheight,width=\paperwidth]{lined-paper-template-9898}}
\begin{document}
\fontsize{15pt}{18.8pt}\selectfont
\lipsum[1-3]
Hi Mom!!
\end{document}