Zunächst einmal sollte man bei Verwendung von LuaLaTeX (oder XeLaTeX) *nicht* das Legacy-Font-Paket `tgtermes` verwenden, sondern auch die Grundschrift mit `fontspec`, also `\setmainfont` einstellen.
Dann ist zu beachten, dass ``` `` ``` und `''` für die Anführungszeichen spezielle TeX-Ligaturen sind. Diese funktionieren bei Verwendung von `fontspec` nur korrekt, wenn man sie aktiviert. Siehe dazu die `fontspec`-Anleitung. Man kann natürlich bei LuaLaTeX (oder XeLaTeX) auch einfach direkt die entsprechenden Unicode-Zeichen eingeben (im Beispiel unten zeige ich beides).
Dann sei grundsätzlich das Paket [`csquotes`](https://www.ctan.org/pkg/csquotes) empfohlen. Wenn man damit die Anführungen setzt, gibt es solche Probleme in der Regel nicht.
Außerdem sei darauf hingewiesen, dass man im Text besser nicht mit `\newline` hantieren, sondern mit sauberen Absätzen arbeiten sollte. Die Verwendung von `\newline` deutet fast immer auf schlechten Code-Stil oder sogar schlechte Typografie.
Nicht unerwähnt soll bleiben, dass das Laden von `color` zusätzlich zu `xcolor` sinnlos ist. Ebenso sollte man natürlich die Sprache einstellen, die man auch verwendet oder umgekehrt. Wenn also `british` ausgewählt ist, sollte man nicht Deutsch schreiben und umgekehrt.
Hier ein Beispiel, das funktioniert. Alles weitere ist bitte den Anleitungen der verwendeten Pakete zu entnehmen:
%!TeX LuaLaTeX
\documentclass[a4paper,12pt]{article}
\usepackage[german,main=british]{babel}
\usepackage{csquotes}
\newcommand*\openq{“}
\newcommand*\closeq{”}
\usepackage{fontspec}
\usepackage{ragged2e}
\setmainfont{TeXGyreTermes}[Ligatures=TeX]% Für LuaLaTeX und XeLaTeX NICHT das Legacy-Paket tgtermes verwenden!
\newfontfamily{\Termes}{TeXGyreTermes}[Ligatures=TeX]
\newfontfamily{\TermesB}{TeXGyreTermesBold}[Ligatures=TeX]
\newfontfamily{\TermesH}{TeXGyreHeros}[Ligatures=TeX]
\begin{document}
\RaggedRight
\subsection*{Start}
\Termes
Normal (TeXGyreTermes):
\Huge
\openq Correct is relativ.\closeq
``Correct is relative.''
\enquote*{Correct is relative.}
\normalsize
\TermesB
BOLD (TeXGyreTermesBold):
\selectlanguage{ngerman}
\Termes
Dieses Dokument soll mit \emph{\TermesH lualatex} kompiliert werden.
\end{document}
Wobei ich statt mit zig Fonts zu jonglieren, einfach einmal die Standard-Font-Befehle nutzen würde:
%!TeX LuaLaTeX
\documentclass[a4paper,12pt]{article}
\usepackage[german,main=british]{babel}
\usepackage{csquotes}
\newcommand*\openq{“}
\newcommand*\closeq{”}
\usepackage{fontspec}
\usepackage{ragged2e}
\setmainfont{TeXGyreTermes}[Ligatures=TeX]% Für LuaLaTeX und XeLaTeX NICHT das Legacy-Paket tgtermes verwenden!
\setsansfont{TeXGyreHeros}[Ligatures=TeX]
\begin{document}
\RaggedRight
\subsection*{Start}
Normal (TeXGyreTermes):
\Huge
\openq Correct is relativ.\closeq
``Correct is relative.''
\enquote*{Correct is relative.}
\bigskip
\normalsize
\bfseries
BOLD (TeXGyreTermesBold):
\selectlanguage{ngerman}
\normalfont
Dieses Dokument soll mit \textsf{\emph{lualatex}} kompiliert werden.
\end{document}
Zuviele Font-Befehle in einem Dokument und zu kleinteilige Auswahl zeugt oft ebenfalls von schlechtem Stil. Gerade LaTeX-Anfänger wollen da oft mehr Kontrolle als in Wirklichkeit gut ist. Die Font-Auswahl bei LaTeX ist (gerade auch mit `fontspec`) ein ausgeklügeltes Werkzeug. Da sollte man erst eingreifen, wenn etwas nicht automatisch funktioniert. Auch dann sollte man eher anstreben, die Einstellungen zu verbessern – wie beispielsweise mit Option `Ligatures=TeX` gezeigt – oder zu passenden Paketen – wie mit `csquotes` gezeigt – greifen. Merke: Weniger ist oft mehr.
Achja: Für ich Ich habe einen für die Verwendung von LuaLaTeX im Online Compiler korrekten *Magic Comment* eingesetzt. Zuvor ging das hier im Online-Compiler schief.