我正在使用 Tikzpicture 向我的文档添加一个图形,并将标题作为第二个节点内的文本框。
我的文本超出了页面宽度,或者变得杂乱,线条宽度不均匀。该怎么办?
我猜我的问题至少源于两个不同的原因:
- 文本框内的线条超出了页面的边界,见下面的示例。但是,当我将文本宽度从 30 厘米更改为 10 厘米时,文本框会完全移到右侧,并且会全部超出页面。因此,我使用 30 厘米(这可能是一个问题)来将文本的开头与左侧对齐。但是,现在:
- 如果我尝试使用换行符来修复它以打破长线,那么它们的宽度不再相等。
我知道我不应该使用断线器,但是我该怎么做呢?
例子:
\documentclass[10pt,a4paper]{moderncv}
\usepackage{tikz}
\setlength{\hintscolumnwidth}{2.2cm}
\begin{document}
\begin{tikzpicture}[]
\node [anchor=north east]
{\includegraphics[height=8cm]{SomePicture.png}};
\node [below=9cm, align=left,text width=30cm]
{
\footnotesize Yada yada, and some more text. This text has
two problems: 1. The lines
go beyond the borders of the page. 2. If I use \\ in order to
break \\ these \\ lines, then the line width is no longer
equal. \\
How do I sort these two problems out? \\
I should not use line breakers, I know, but then what should
I do instead?
};
\end{tikzpicture}
\end{document}
谢谢!
答案1
文字置于图形下方,宽度与图形宽度相等。
Pic
包含图形的节点的宽度是其西锚点和东锚点之间的距离。
为此,通过从 中\p1
减去 来计算某个点的坐标。可以从 Pic 节点的 x 坐标 ( ) 获得该节点的宽度。Pic.east
Pic.west
\x1
使用text width=\x1
换行符是自动完成的。
\documentclass[10pt,a4paper]{moderncv}
\firstname{FirstName}% needed for modercv
\familyname{LastName}% needed for modercv
\usepackage{tikz}
\usetikzlibrary{positioning}% added <<<<<<<<<<
\usetikzlibrary{calc}% added <<<<<<<<<<
\begin{document}
\begin{tikzpicture}
\node[inner sep=0pt] (Pic) {\includegraphics[height=8cm]{example-image-a.jpg}};
\path let \p1=($(Pic.east)-(Pic.west)$) in node[
below= 0.5cm of Pic.south,
anchor = north,
inner sep=0pt,
text width= \x1,
font =\footnotesize] {Yada yada, and some more text. This text has two problems: 1. The lines go beyond the borders of the page. 2. If I use in order to break these lines, then the line width is no longer equal. How do I sort these two problems out? I should not use line breakers, I know, but then what should I do instead? };
\end{tikzpicture}
\end{document}
示例中的“标题”位于图形的中心。可以使用它text width= \x1-<lenght>
来添加左右边距。