我有一个大型的 LaTeX 项目(我的论文),其中包含一个主 TeX 文件(main.tex
)和许多包含在其自己的子目录中的子文件。所有文件都与subfiles
包相互关联。
现在我想添加一个标题页,出现在编译后的 pdf 文件的第一页,并带有希伯来语文本:包含论文标题、作者姓名和机构名称。
该项目的大部分内容是用 进行编译的最佳方式pdfLatex
,因此我希望坚持使用这个,而不是改为XeLaTeX
。
我成功编译了一个.tex
包含希伯来语和英文字母的文件(titlepage.tex
)。
我希望titlepage.tex
首先出现,然后是所有系列的chapter0*.tex
文件。
现在问题来了——如何正确编译该项目?
我尝试将standalone
和import
包导入到main.tex
:
\usepackage[subpreambles=true]{standalone}
\usepackage{import}
titlepage.tex
然后立即调用\begin{document}
:\usepackage[subpreambles=true]{standalone} \usepackage{import} \begin{docment} \import{./}titlepage} \end{document}
但没有编译任何内容——文件存在大量错误standalone.sty
。
有什么帮助吗?
层次文件结构如下:
root folder
├main.tex
├titlepage.tex
└───figures
| │ figure01
│ │ figure02
│ │ figure03
└───subfiles
| │ chapter01
| │ chapter02
| │ chapter03
文件main.tex
结构:
\documentclass{tufte-book} % Tufte-book format
\usepackage[utf8]{inputenc}
\usepackage[english]{babel} % Bibliography
\usepackage{biblatex}
\addbibresource{references.bib}
\usepackage{subfiles} % Best loaded last in the preamble
%%% Document %%%
\begin{document}
\chapter{Chapter 1}
\subfile{subfiles/chapter01}
\chapter{Chapter 2}
\subfile{subfiles/chapter02}
\chapter{Chapter 3}
\subfile{subfiles/chapter03}
\end{document}
该chpater0*.tex
文件具有与 相同的文档序言main.tex
。
希伯来语文件,用作标题页:
\documentclass{article}
%\usepackage[subpreambles=true]{standalone}
%\usepackage{import}
\usepackage[utf8x]{inputenc} % utf8x for hebrew letters
\usepackage[english,hebrew]{babel}
\selectlanguage{hebrew}
\begin{document}
כיתוב בעברית.
\selectlanguage{english}
English text.
\end{document}
注意:我在 overleaf 中编译了该项目。
答案1
我也使用 Overleaf 处理多个子文件。我使用命令\documentclass[main.tex]{subfiles}
将主文件的前言导入子文件。此外,\selectlanguage
我认为应该在文档内部使用。
以下是受您的 MWE 启发的对我有用的示例:
main.tex
:
\documentclass{tufte-book} % Tufte-book format
\usepackage[utf8x]{inputenc}
\usepackage[main=english, hebrew]{babel}
\usepackage{subfiles} % Best loaded last in the preamble
\newcommand{\onlyinsubfile}[1]{#1}
\newcommand{\notinsubfile}[1]{}
%%% Document %%%
\begin{document}
\renewcommand{\onlyinsubfile}[1]{}
\renewcommand{\notinsubfile}[1]{#1}
\subfile{titlepage}
\chapter{Chapter 1}
\subfile{subfiles/chapter0}
\end{document}
titlepage.tex
\documentclass[main.tex]{subfiles}
\begin{document}
\selectlanguage{hebrew}
כיתוב בעברית.
\selectlanguage{english}
English text.
\end{document}
该函数\onlyinsubfile
可以\notinsubfile
在子文件中使用,并允许您根据尝试编译独立子文件还是整个文档来执行命令。
最后,对于管理带有希伯来语字符的 biblatex,请查看此答案使用 Biblatex 和 utf8x