我只是收集了这里提供的所有精彩信息,并编写了一个小包,使之能够使用 Unicode 字符表示节、小节、小小节、段落、小段落和项目。我认为它使文本看起来整洁,并且可能对 RTL 用户非常有用。
\NeedsTeXFormat{LaTeX2e}
\ProvidesPakcage{usection}
{2011/02/07 Unicode characters instead of section, subsection, etc.}
\newcommand*{\toEolnCommand}[2]{%
\newcommand*{#1}{%
\begingroup%
\escapechar=`\\%
\catcode\endlinechar=\active%
\csname\string#1\endcsname%
}%
\begingroup%
\escapechar=`\\%
\lccode`\~=\endlinechar%
\lowercase{%
\expandafter\endgroup
\expandafter\newcommand\csname\string#1\endcsname##1~%
}{\endgroup#2\space}%
}
\toEolnCommand\toEolnSection{\section{#1}}
\toEolnCommand\toEolnSubsection{\subsection{#1}}
\toEolnCommand\toEolnSubsubsection{\subsubsection{#1}}
\toEolnCommand\toEolnParagraph{\paragraph{#1}}
\toEolnCommand\toEolnSubparagraph{\subparagraph{#1}}
\catcode"2022=\active \newcommand•{\item} % Bullet
\catcode"B6=\active \newcommandf¶{\@xparagraph} % ¶: U+00B6 PILCROW SIGN
\catcode"A7=\active \newcommand§{\@xsection} % §: U+00A7 SECTION SIGN
\newcommand\@xparagraph{%
\@ifnextchar ¶ {%
\expandafter
\toEolnSubparagraph
\@discardNextChar
}{%
\toEolnParagraph
}%
}
\newcommand\@xsection{%
\@ifnextchar§{% Two or more § were found.
\expandafter
\@sub@or@subsub@section
\@discardNextChar%
}{% Single § found.
\toEolnSection
}
}
\newcommand\@sub@or@subsub@section{
\@ifnextchar§{%
\expandafter
\toEolnSubsubsection
\@discardNextChar
}{%
\toEolnSubsection
}%
}
\newcommand\@discardNextChar#1{}
那么,(a)您认为我应该发布这个吗?如果是,(b)我应该怎么做?
编辑我纠正了我的问题,以使其对公众有用:(a)在考虑值得出版的包裹时应采用哪些标准?(b)应采取哪些步骤来实现这样的决定?
答案1
Martin 已经解释得很好了如何发布一个包。
我认为,一个可以让字符活跃起来并赋予它们意义的软件包是可行的。(实际上,我以前也想过写一些类似的东西。)但有一些棘手的事情需要考虑,我认为同时开始更改 LaTeX 标记会使问题变得混乱——如果您的软件包还更改了文本中的 •、¶、§,那么在我看来,这应该是可定制的。您提到它对 RTL 用户很有用,但我记得您正在 OpenOffice 中编辑 TeX 文件,我怀疑这有点不寻常。
我也不太确定这些“抓取到行尾”命令有多强大。(考虑一下\foo{¶ something}
。)但如果你只处理\section
等等,我想这不是什么大问题。
如果您只打算保留代码的相当具体的形式,我建议您暂时不要发布它,而要将其用于自己的工作。如果随着时间的推移它确实对您非常有用,那么我会考虑对其进行完善并将其提交给 CTAN。
答案2
对于 (a):为什么不呢,只要它对一些人有用,它就值得在 CTAN 服务器上占用高清空间
对于 (b):您应该执行以下步骤
.dtx
将其手动转换为文件(参见dtxtut
)或使用sty2dtx。- 将其置于LaTeX 项目公共许可证,即添加许可声明和您的版权。
- 添加一些用户文档,即描述该包的用途以及如何使用宏,以及一些可视化示例。您还应该记录代码并解释其实现方式,以便其他人(以及一段时间后的您)可以理解其工作原理。
- ZIP
.dtx
和.ins
生成的.sty
PDF 以及简短的README
压缩文件 放在一起。化解工具对此也非常有用。 - 上传至氯化三乙胺附带一些公告文字。
我通过这种方式发布了几个包。