书写练习纸 - 点状字母

书写练习纸 - 点状字母

我想制作类似以下的写作练习纸。

如何制作这样的“虚线”字体?

我在这个论坛上看到的最接近的如何使用 pdflatex 将文本转换为路径?但我不知道是否\pscharpath可以修改/用于完成这项工作。或者也许有 TikZ 解决方案?

更新。我的计划是使用反复试验的方法定位水平线。或者,有没有其他方法可以自动获取小写字母和大写字母的正确高度?

答案1

这看起来与您想要的类似。宏是:

\setline{<scale factor>}{<text>}

测量文档字体中缩放的大写和小写 x 的高度来绘制线条。虚线效果来自\pdfliteral{q 1 Tr [1 4]0 d}#2\pdfliteral{Q}


pdf 命令记录在PDF 参考第 4 章

  • q保存图形状态
  • 1 Tr描摹字形的轮廓,而不是填充它
  • [1 4]0 d将描边样式设置为(几乎)以破折号开头的1虚线4
  • Q表示将图形状态恢复到原来的状态

编辑:显然,上述设置在某种程度上取决于查看器。给定的 Sumatra 设置给出的输出如下图所示。要使用 Adob​​e Reader(至少是我的版本)获得“相同”的输出,请将上面给出的行更改为:

\pdfliteral{q 1 Tr [.1 .4]0 d .1 w}#2\pdfliteral{Q}

我尝试了来自LaTeX 字体目录虽然大多数都有效,但有些却无效(特别是 Calligra...不知道为什么)。正如评论中提到的,如果你能找到合适的字体,那么这可能对你有用。下面是几个输出示例: 在此处输入图片描述 在此处输入图片描述

\documentclass{article}
\usepackage{graphicx}
\usepackage{dashrule}

\newsavebox\myboxX
\newsavebox\myboxx
\newdimen\heightX
\newdimen\heightx

\newcommand{\setline}[2]{%
    \savebox\myboxX{\scalebox{#1}{X}}%
    \savebox\myboxx{\scalebox{#1}{x}}%
    \heightX=\ht\myboxX
    \heightx=\ht\myboxx
    \noindent\ooalign{\rule[\heightX]{\textwidth}{.1pt}\cr
    \noindent\hdashrule[\heightx]{\textwidth}{.1pt}{1mm}\cr
    \noindent\rule{\textwidth}{.1pt}\cr
    \noindent\scalebox{#1}{#2}\scalebox{#1}{\pdfliteral{q 1 Tr [1 4]0 d}#2\pdfliteral{Q}}}%
    % For Adove, use this setting rather than the one above.
    %\noindent\scalebox{#1}{#2}\scalebox{#1}{\pdfliteral{q 1 Tr [.1 .4]0 d .1 w}#2\pdfliteral{Q}}}%
}

\begin{document}

\setline{5}{Abc}\vspace{1cm}
\setline{5}{De}\vspace{1cm}

\end{document}

相关内容