使用 Babel 实现多语言标题页?

使用 Babel 实现多语言标题页?

我通常使用xelatex,但我更喜欢用 打印的文档的外观pdflatex。也就是说,我\polyglossia比更熟悉\babel。此外,我保留了 LaTeX 模板,以便将来更轻松地完成工作。

话虽如此,今天是空闲的一天,我想我会用俄语排版一些在线文章,以供娱乐和个人使用,并借此机会克恩一些用于排版俄语文档的模板,以备将来需要。

我遇到的问题是我的名字的拼写方式。我的名字在法律上是“Matthew”,但在除法律文件之外的所有文件上我都将其拼写为“Matþew”。因此,我遇到的问题是,{\th}不在T2A字体编码方案中。但是,我当然调用了T1T2A。我认为,这是一个需要在作者部分声明使用英语的问题,但我不知道如何做到这一点。

这是我的序言:

% pdflatex

\documentclass[letterpaper]{article}

    % ===MAIN PACKAGES===
    % - - - - - - - - - - - - - - - -

        \usepackage[T1,T2A]{fontenc}

        \usepackage[USenglish,main=russian]{babel}

            \addto\captionsUSenglish{%
                \renewcommand{\contentsname}%
                {Table of Contents}%
            }

        \usepackage{indentfirst}

%%%     \usepackage[utf8]{inputenc} % DEPROCATED IN NEWEST VERSIONS       %

%%%     \usepackage[pass]{geometry} % ALLOWS DECLARATION OF PAPER SIZE... %
                                    % IN SOME INSTANCES, WHERE NEEDED     %


    % ===SECONDARY PACKAGES===
    % - - - - - - - - - - - - - - - -

        \usepackage{xcolor}     % HIGHLIGHTING COLOURS

        \usepackage{soul}       % HIGHLIGHTING AND BETTER UNDERLINING 


    % ===TITLE===
    % - - - - - - - - - - - - - - - -

        \title{%
            Учимся говорить по-алтайски.    \\%
            %
            Урок № 1. Алфавит.%
        }


        \author{%
            ~Typeset by:    \\%
            %
            Mat{\th}ew T. Scarbrough%
        }

        \date{\today}

我怀疑主体并不重要,但事实是这样的:

\begin{document}

\pagenumbering{roman} % ===FRONTMATTER===


    % ===TITLE===
    % - - - - - - - - - - - - - - - -

        \maketitle


    % ===TABLE OF CONTENTS===
    % - - - - - - - - - - - - - - - -

        \tableofcontents
        \newpage


\pagenumbering{arabic} % ===MAINMATTER===


    % Body 1
    % - - - - - - - - - - - - - - - -

        \section{<Раздел>}

        \indent
        Съешь же ещё этих мягких французских булок да выпей чаю...


\end{document}

先感谢您!

编辑:我确实先加载\fontenc,它只是这里的代码,当我输入它时,我第二次声明了 fontenc,然后复制并粘贴它,然后更改它并且从未更新它,对不起。

答案1

这是一个有趣的问题。

首先,正如评论中所指出的,您需要更改 的语言\author,因为它是英文的。如果正确切换了语言,编码也会切换,这样您就可以毫无问题地使用\th(或者至少在现代版本的 LaTeX 中)。þ

问题在于,

\author{%
  \foreignlanguage{USenglish}{%
    Typeset by:\\
    Matþew Scarbrough}}

没有按预期工作。

article要了解原因,我们需要更深入地研究用于排版标题的宏。

您可能知道\author在 中定义latex.ltx

\DeclareRobustCommand\author[1]{\gdef\@author{#1}}

因此只需在内部宏中\author{<author>}保存即可。到目前为止一切顺利。使用您的设置(默认)进行一些准备,然后调用进行标题的排版。定义为(在)<author>\@authornotitlepage\maketitle\@maketitle\@maketitlearticle.cls

\def\@maketitle{%
  \newpage
  \null
  \vskip 2em%
  \begin{center}%
  \let \footnote \thanks
    {\LARGE \@title \par}%
    \vskip 1.5em%
    {\large
      \lineskip .5em%
      \begin{tabular}[t]{c}%
        \@author
      \end{tabular}\par}%
    \vskip 1em%
    {\large \@date}%
  \end{center}%
  \par
  \vskip 1.5em}

这意味着作者(如中所示\@author)是在表格环境中排版的。

尤其

\author{%
  \foreignlanguage{USenglish}{%
    Typeset by:\\
    Matþew Scarbrough}}

将导致 LaTeX 排版

\begin{tabular}[t]{c}%
  \foreignlanguage{USenglish}{%
    Typeset by:\\
    Matþew Scarbrough}
\end{tabular}

或者安排得更具暗示性

\begin{tabular}[t]{c}%
  \foreignlanguage{USenglish}{Typeset by:\\
  Matþew Scarbrough}
\end{tabular}

事实上,\\在表格环境中会开始一个新行,而不是像人们预期的那样“仅仅”开始一个新行。由于每个单元格都属于自己的一个组,因此这会导致缺少右括号和左括号的问题。您可以使用以下命令验证第一“行”中的命令不会影响第二行

\author{%
  \color{red}This is red\\
  This isn't red
}

此外,如果你放弃\\

\author{%
  \foreignlanguage{USenglish}{Typeset by: Matþew Scarbrough}%
}

一个简单的解决方案就是\foreignlanguage为每一“行”单独发出\author

\documentclass[letterpaper]{article}
\usepackage[T1,T2A]{fontenc}
\usepackage[USenglish,main=russian]{babel}
\usepackage{xcolor}
\usepackage{indentfirst}

\addto\captionsUSenglish{%
  \renewcommand{\contentsname}{Table of Contents}%
}

\title{%
  Учимся говорить по-алтайски.\\
  Урок № 1. Алфавит.%
}

\author{%
  \foreignlanguage{USenglish}{Typeset by:}\\
  \foreignlanguage{USenglish}{Matþew Scarbrough}%
}

\begin{document}
\pagenumbering{roman}
\maketitle

\tableofcontents
\newpage

\pagenumbering{arabic}
\section{<Раздел>}
Съешь же ещё этих мягких французских булок да выпей чаю...
\end{document}

排版:Matþew Scarbrough

答案2

如果你加载fontenc babel

% pdflatex

\documentclass[letterpaper]{article}

    % ===MAIN PACKAGES===
    % - - - - - - - - - - - - - - - -

%%%     \usepackage[utf8]{inputenc} % DEPROCATED IN NEWEST VERSIONS       %

        \usepackage[T1,T2A]{fontenc}

%%%     \usepackage[pass]{geometry} % ALLOWS DECLARATION OF PAPER SIZE... %
                                    % IN SOME INSTANCES, WHERE NEEDED     %

        \usepackage[USenglish,main=russian]{babel}

            \addto\captionsUSenglish{%
                \renewcommand{\contentsname}%
                {Table of Contents}%
            }

        \usepackage{indentfirst}

    % ===SECONDARY PACKAGES===
    % - - - - - - - - - - - - - - - -

        \usepackage{xcolor}     % HIGHLIGHTING COLOURS

        \usepackage{soul}       % HIGHLIGHTING AND BETTER UNDERLINING 


    % ===TITLE===
    % - - - - - - - - - - - - - - - -

        \title{%
            Учимся говорить по-алтайски.    \\%
            %
            Урок № 1. Алфавит.%
        }


        \author{%
            ~Typeset by:    \\%
            %
            \selectlanguage{USenglish}Mat{\th}ew T. Scarbrough%
        }

        \date{\today}
        
\begin{document}

\pagenumbering{roman} % ===FRONTMATTER===


    % ===TITLE===
    % - - - - - - - - - - - - - - - -

        \maketitle


    % ===TABLE OF CONTENTS===
    % - - - - - - - - - - - - - - - -

        \tableofcontents
        \newpage


\pagenumbering{arabic} % ===MAINMATTER===


    % Body 1
    % - - - - - - - - - - - - - - - -

        \section{<Раздел>}

        \indent
        Съешь же ещё этих мягких французских булок да выпей чаю...


\end{document}

刺

相关内容