Pandoc 在草书之后从模板改变颜色

Pandoc 在草书之后从模板改变颜色

我正在使用 pandoc 将不同的文档转换为 pdf。我有一个模板要包含在标志中--include-in-header ~/path/to/template/pandoc_format_darkmode.tex -V geometry:a4paper -V geometry:margin=2cm -V fontsize=11pt --pdf-engine=xelatex

该模板用于重新着色文档,例如更改背景颜色、更改字体颜色以及章节和小节的格式。

模板如下:

xelatex
\usepackage[utf8]{inputenc}

\usepackage[ngerman]{babel}
\usepackage{ot-tableau}
\usepackage{easylist}
\usepackage{hanging}
\usepackage{hyperref}
\usepackage{titlesec}
\usepackage{geometry}
\usepackage{setspace}
\usepackage{blindtext}
\usepackage{tipa}
\usepackage{cgloss4e}
\usepackage{qtree}
\usepackage{enumerate}
\usepackage{longtable}
\usepackage{textgreek}
\usepackage{amssymb}
\usepackage{amsfonts}
%\usepackage{enumitem}
\usepackage{xcolor}

\color[RGB]{255,255,255}
\pagecolor[RGB]{61,61,61}


\setmainfont{DejaVu Sans}[
  ItalicFeatures={Color=olive},
  BoldFeatures={Color=orange},
  %NormalFeatures={Color=white},
]
% \setmainfont[Color=white]{DejaVu Sans}[
%   ItalicFeatures={Color=olive},
%   BoldFeatures={Color=orange},
% ]

\titleformat{\section}
{\color{teal}\normalfont\LARGE}
{\color{teal}\thesection}{1em}{}

\titleformat{\subsection}
{\color{cyan}\normalfont\Large}
{\color{cyan}\thesection}{1em}{}

\titleformat{\subsubsection}
{\color{pink}\normalfont\large}
{\color{pink}\thesection}{1em}{}

\hypersetup{
    colorlinks=true,
    linkcolor=blue,
    filecolor=magenta,
    urlcolor=cyan,
    pdftitle={Overleaf Example},
    pdfpagemode=FullScreen,
    }

\geometry{
 a4paper, % 21.0 x 29.7
 left=20mm,
 right=20mm,
 top=20mm,
 bottom=20mm
 }
\urlstyle{same}
\onehalfspace

问题如下:转换为 pdf 基本可行,但每次我在文档中使用斜体或粗体(无论从 markdown、html 还是 docx 转换),字体在恢复为正常字体时都会变黑。这当然很烦人,因为我现在有白色字体的段落,在粗体化一个单词后,字体就变成黑色,这是不应该的。

我猜这是我的字体的问题,但我还没有发现。

如果我更改\setmainfont{DejaVu Sans}[\setmainfont[Color=white]{DejaVu Sans}[(如模板代码的注释部分所示),则错误不存在。但是现在,我的所有部分和子部分标题都变成白色,这也不是我想要的结果,因为我希望它们具有特定的颜色(如我在模板中定义的)。

请帮忙,谢谢!

答案1

好吧,我解决了这个问题:我使用了命令

\let\emphasized\emph
\let\strong\textbf
\renewcommand{\emph}[1]{\textcolor{olive}{\emphasized{#1}}}
\renewcommand{\textbf}[1]{\textcolor{orange}{\strong{#1}}}

因为它们在斜体和粗体文本上色方面基本上做同样的工作,但它们不会像 pandoc 直接使用它们那样产生错误,也不会弄乱我定义的主字体\color{white}

相关内容