我正在使用包含多个注释环境的子文件(我将其用作文本的翻译版本和注释)。
例如:guitarteacher.txt
\documentclass[../resume]{subfiles}
\begin{document}
\begin{English}
Guitar teacher.
\leavevmode
\hrulefill
\small
\begin{annotate}
\begin{itemize}
\item Example annotation.
\end{itemize}
\normalsize
\leavevmode
\hrulefill
\end{annotate}
\end{English}
\begin{Swedish}
Gitarrlärare.
\leavevmode
\hrulefill
\small
\begin{annotate}
\begin{itemize}
\item Example annotation.
\end{itemize}
\normalsize
\leavevmode
\hrulefill
\end{annotate}
\end{Swedish}
\end{document}
当我将单个句子或单词导入带有子文件的文档时 - 例如:
\subfile{resume/guitarteacher.txt}
它在后面添加了一个换行符,我想将其删除,如下所示:
稀有吉他
, Privat, 2009 年等
有人告诉我,如果是简单文件,删除子文件内的所有空格可以解决这个问题,如下所示:
\documentclass[./resume.txt]{subfiles}\begin{document}Some text.\end{document}
但在这种情况下,我无法完全压缩文件,因为注释环境不起作用。我收到错误消息,如“抱歉,您的 Latex 代码由于某种原因无法编译”;“参数失控?”,“额外的 },或忘记了 \endgroup”,“您不能在垂直模式下使用 /”,以及“紧急停止”。
可能有某种方法可以安排换行符,这样我就不会收到这些错误,也不会在输出文件中出现换行符,但这不是一个好的长期解决方案。相反,是否可以修复子文件,使其不会添加换行符,除非在\begin{document}
和之间\end{document}
,或者在当前打开的任何注释命令(例如\begin{Swedish}
和)之间明确有一个换行符\end{Swedish}
?
修复这个软件包需要做什么?我应该自己编辑这个软件包吗?这是标准做法吗?这是否非常困难?
答案1
空行(段落)可能源自\end{document}
子文件后面的空行。由于给出的示例不完整,我无法确定,但如果您删除子文件末尾的空行,意外换行符可能会消失。
否则,\subfile
其行为与关于空格的行为类似\input
(至少从 1.4 版开始,2019/10/25)。这意味着以下内容。
为了抑制主文件和子文件内容之间的任何空格,您可以在三个地方使用注释符号:
% main.tex
\documentclass{article}
\usepackage{subfiles}
\begin{document}
text before% <<< HERE <<<
\subfile{sub}% <<< HERE <<<
text after
\end{document}
% sub.tex
\documentclass[main]{subfiles}
\begin{document}
contents of subfile% <<< HERE <<<
\end{document}
或者把所有内容写在同一行:
% main.tex
\documentclass{article}
\usepackage{subfiles}
\begin{document}
text before\subfile{sub}text after
\end{document}
% sub.tex
\documentclass[main]{subfiles}
\begin{document}
contents of subfile\end{document}