编辑

编辑

我想用 tikz 创建一个标题页,因此我在标题内有一个节点,在换行符后有一个副标题。 问题现在,缩进出现了问题,如下图所示。两个文本应该从同一位置开始。

问题

可编译代码示例:

\documentclass[a5paper,11pt,twocolumn,parskip=half,parindent=none]{scrbook}
\usepackage[ngerman,german]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{lmodern}
\selectlanguage{german}
\usepackage{tikz}
\usepackage{color}
\usepackage{geometry}
\usepackage{graphicx}
\usepackage{helvet}
\definecolor{fsblue}{rgb}{0.17,0.24,0.31}
\definecolor{fsorange}{rgb}{1,0.44,0.0}
\renewcommand{\familydefault}{\sfdefault}
\geometry{top=25mm, left=15mm, right=12mm, bottom=20mm}
\begin{document}
\begin{tikzpicture}[remember picture,overlay,shift={(current page.south west)}]
\node [
  fill=fsorange,
  inner xsep=1em,
  minimum height=1cm,
  text width={\paperheight},
  anchor=north west,
  rotate=90
] at (current page.south west) {Text Text};
\node [
  fill=fsblue,
  inner xsep=1.5cm,
  minimum height=3cm,
  text width={\paperwidth-1cm},
  anchor=south west
] at (1cm,13cm) {\color{white}\bfseries\Huge B Text one\\\normalsize B Text two};
\end{tikzpicture}
\end{document}

答案1

这就是为什么这个问题没有通用的解决方案:

\documentclass{article}
\renewcommand{\familydefault}{\sfdefault}
\begin{document}

  \fbox{\Huge B}

  \fbox{B}

\end{document}

BB

这些框完美对齐。你正在尝试对齐它们的内容。但是,对于 TeX,一切是一个盒子。具体来说,aB只是一个具有特定尺寸的盒子。它不能考虑什么是里面盒子。它不关心盒子里面是什么。它只关心盒子的尺寸。

要对齐“B”,您必须补偿框内“B”左侧空间的差异。这取决于多种因素:字体、大小、字符。没有通用的方法来做到这一点。如果您希望这种情况看起来正确,您需要针对这种情况进行调整。

以下是使用相同字体的“X”的结果:

二十

如果您针对“B”进行了调整,那么您将需要对“X”进行完全不同的调整 - 甚至可能根本不需要进行调整。

所以也许您可以选择以“X”开头的标题......?

编辑

除了手动指定包含两个文本的节点的适当坐标外,您还可以通过以下方式将节点向左移动一点:

\node (a) {text 1};
\node (b) [anchor=north east] at ([xshift=-.5em]a.south east) {text 2};

或者

\node (b) [anchor=north east, xshift=-.5em] at (a.south east) {text 2};

或使用positioning library

\node (b) [anchor=north east, below left=0pt and .5em of a.south east] {text 2};

或类似的东西。

谢谢Sean Allred 的评论建议这个问题其重点是如何将节点‘推动’到位。

答案2

对于我的解决方案我添加了一个具有固定位置的附加节点。它仅适用于\normalsize\bfseries文本。代码如下:

\begin{tikzpicture}[remember picture,overlay,shift={(current page.south west)}]
\node [
  fill=fsorange,
  inner xsep=1em,
  minimum height=1cm,
  text width={\paperheight},
  anchor=north west,
  rotate=90
] at (current page.south west) {\color{white}\bfseries\@date};
\node [
  fill=fsblue,
  inner xsep=1.5cm,
  minimum height=3cm,
  font=\color{white}\bfseries\Huge,
  text width={\paperwidth-1cm},
  anchor=south west
] at (1cm,13cm) {\@titlehead};
\node [
  font=\color{white}\bfseries\normalsize,
  text width={\paperwidth-1cm},
  anchor=south west
] at (2.415cm,13.6cm) {\@subject};
\end{tikzpicture}

相关内容