我对 LaTeX 的了解足以制作出外观精美的文档。LaTeX 让不这样做变得更加困难。但我不懂高级 LaTeX、TeX、纯色 TeX、“@”或其他高级、神秘的编程技巧,我在一些 .sty 文件中见过这些技巧。
从 Root.tex 文件中,我想输入序言,然后输入许多叙述章节,全部都是 100% 文本(没有数学、表格或图形)
我是否可以创建一个相对简单的命令,其工作原理类似于 \input{filename},但可以逐字打印大多数特殊字符,同时仍使用连字符、对齐和微排版在段落模式下排版 .tex 和/或 .txt 文件?我想允许使用最少的代码轻松创建叙述章节,以便格式化偶尔出现的强调或插入文本。(然后我可以让任何人知道他们需要如何编写章节文件,所有这些都在几分钟内完成)
以下是我想要做的事情,对叙事作者很有用:
尽可能多的保留字符会直接打印,但字间距、换行符、段落间距、分页符和连字符等将会像往常一样全部由 LaTeX 自动化系统控制,并且不会\verbatim
利用 LaTeX 出色的排版功能。
这\newcommand
需要能够\input
将美观的商业小说章节排版为文本文件,其中可能包含杂散的保留符号、左引号、右引号以及其他常见的 Unicode 符号。
但是,/input{filename}
如果文本段落中包含文学句子中使用的零散保留符号,则使用 balks:[#$%^&_{}~\]
因此,很像\input{filename}
,我想创建一个可以写入的新命令,称为\incorporate{filename}
,\textinput{filename}、\intake{filename}、\inset{filename}、\ingest{filename}、\absorb{filename} \digest{filename}、\narate{filename} ...无论如何。
下面是我的 root.tex 文件的一个示例\incorporate{filename}
(它可能会给出如何使用它的想法)
% Novel_1_Root.tex %
% % % % % % %
\documentclass{book}
\input{LaTeX_Preamble.tex}
\begin{document}
%
\frontmatter
\input{./titlepage.tex}
\input{./copyrightpage.tex}
\input{./dedicationpage.tex}
\maketitle \tableofcontents{}
%
\mainmatter
\chapter{The Blue Hills}
\incorporate{./chapter01.txt}
%
\chapter{The Lazy Author}
\incorporate{./chapter02.txt}
%
\chapter{The Car Chase}
\incorporate{./chapter03.txt}
% etc . . .
%
\end{document}
目标是创造一种无需思考的方式来编写充满叙述的章节,并向非 LaTeX 用户解释如何使用文本文件编写\incorporate{filename}
没有一个逐字包能够像 LaTeX 在段落模式下那样处理“空格”和“返回”,具有微类型的文学品质,所以很直接,这对我来说不起作用。
答案1
我会这样做:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\newcommand\incorporate[1]{{%
\catcode`\$=12
\catcode`\&=12
\catcode`\_=12
\catcode`\^=12
\catcode`\#=12
\catcode`\%=12
\catcode`\~=12
\input{#1}}}
\begin{document}
\section{zzz}
\incorporate{zzz.txt}
\end{document}
使用输入文件
aaa & bbb is 5% of 4$ but_this_has_underscores
but a blank line is a ‘new para’ with quotes.
生产
在这里我保留了\
,{
,}
以及它们的乳胶含义,以便它们可以在文件中使用,您可以根据需要将它们包含在安全字符列表中,这样它们就会被排版为普通字符。
相反,您可能还想从安全列表中删除字符,例如,如果您删除~
,~
则会恢复为像普通乳胶中的非中断空格标记,而不是排版为~
。
允许或禁止单个命令将使其变得极为复杂和脆弱,因为\
必须始终是特殊的,然后提前查看以下字符是否是允许的命令,如果不是,则备份并插入自身作为数据。这不太可能以可预测或可理解的方式发挥作用。
正如评论中所述,您无法调用该命令\output
,因为这是一个 tex 原语,但由于该命令仅与输入有关,所以在这里似乎没有太多困难。