如何在 XeLaTeX 中全局设置文本颜色

如何在 XeLaTeX 中全局设置文本颜色

使用 pdfLaTeX 时,我通常使用以下代码全局设置文档中所有文本的文本颜色:

\documentclass{scrreprt}
\usepackage{xcolor}
\begin{document}
\color{red}
\section{A section heading}
some test text
\end{document}

通过 pdfLaTeX 运行文档会产生红色文本。通过 XeLaTeX 运行会产生黑色文本。使用包color而不是xcolor没有区别。

我想全局设置文档中出现的所有文本的文本颜色,即标题、目录、所有普通文本、图形、方程式,如果可能的话,在 TikZ 节点中,所有内容。

答案1

这里有一种方法可以实现这一点,无论你是否使用 XeLaTeX,无论你是否使用 Komascript,它都可以工作。它通过重新定义 LaTeX 使用的默认颜色来工作。

\documentclass{report}
%\documentclass{scrreprt}

\usepackage{xcolor}

\makeatletter
\newcommand{\globalcolor}[1]{%
  \color{#1}\global\let\default@color\current@color
}
\makeatother

\AtBeginDocument{\globalcolor{red}}

\begin{document}

\section{A section heading}

some test text

\end{document}

答案2

既然您说您正在使用 XeLaTeX,那么您也可以在字体定义中定义颜色:

如果您这样做,为了更改颜色,您需要使用fontspec's\addfontfeature而不是常规的\color\textcolor命令。或者,您可以为其他颜色定义一个新的字体系列。

\documentclass{scrreprt}
\usepackage{xcolor}
\usepackage{fontspec}
\setmainfont[Color=red]{Linux Libertine O}
\setsansfont[Color=red]{Linux Biolinum O}
\setmonofont[Color=red]{Inconsolata}
% If you will be changing colours a lot, it's best to define a new font family
% for each colour that you will use; if you're just changing a few times, then
% \addfontfeature is fine
\newfontfamily\blueroman[Color=blue]{Linux Libertine O} 

\begin{document}
\chapter{A chapter}
\section{A section}
\texttt{Some mono text}

Some regular text.

{\addfontfeature{Color=blue} Some blue text without defining a new font family.}

{\blueroman Some blue text with a new font family command.}
\end{document}

答案3

\documentclass{scrreprt}
    
\usepackage{xcolor}
    
\AtBeginDocument{\color{red}}
    
\addtokomafont{sectioning}{\color{red}}
    
\begin{document}
    
\section{A section heading}

    some test text
    
\end{document}

答案4

正如 Alan Munn 所建议的,由于您使用的是 XeLaTeX,因此您可以使用fontspec的功能来设置字体的颜色。如果您希望所有文本都具有给定的颜色,您甚至可以在默认字体功能中进行设置:

\documentclass{scrreprt}
\usepackage{xcolor}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX,Color=red}
\setmainfont{Linux Libertine O}
\setsansfont{Linux Biolinum O}
\setmonofont{Inconsolata}

\begin{document}
\chapter{A chapter}
\section{A section}
\texttt{Some mono text}
Some regular text.
\end{document}

相关内容