1 = 线条样式,由于它是可选的,因此在 内指定[]。如果没有提供,则使用线条的默认样式(即黑线)。

1 = 线条样式,由于它是可选的,因此在 内指定[]。如果没有提供,则使用线条的默认样式(即黑线)。

LaTeX 对线的要求太严格(互质且 mag < 6)。有没有什么包可以让我在两点之间画一条线?

基本上

\line(a,b)(c,d)

或类似的东西

我费尽心思使用该fp包来计算线条的点,但现在我却无法画出我需要的线条?

我正在寻找一条使用单位长度和某种方式设置其粗细的平滑线。

答案1

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
\draw (-3,-3) grid (3,3);
\draw (-2,2) -- (2,-3);
\end{tikzpicture}
\end{document}

解释

  1. 定义一个画布。(-3,-3)是左下角, (3,3)是右上角。
  2. \draw (-2,2) -- (2,-3);(-2,2)从到画一条线(2,-3)
  3. pdflatex使用或xelatex或编译代码latex-dvips-ps2pdf
  4. 完毕。

如果不需要,您可以使用\tikz{\draw (-2,2) -- (2,-3);}或。\tikz\draw (-2,2) -- (2,-3);tikzpicture

使用以下内容更改单位,将其放在 或 之前的任何\tikz位置tikzpicture

\tikzset
{
    x=2cm,% default value is 1cm.
    y=3cm,% default value is 1cm.
}

最后一次尝试:

\documentclass{article}
\usepackage{tikz}
\begin{document}
I want to draw a red line of thickness 1 mm, one unit in horizontal direction must be equal to 1.1 cm, and
one unit in vertical direction must be equal to 1.2 cm. Here is the line,
 \tikz[x=1.1cm,y=1.2cm]{\draw[line width=1mm,red](-1,1)--(1,-1);}, is it nice?
\end{document}

在此处输入图片描述

答案2

嗯,如果不了解更多信息,很难确切知道您想要做什么。这取决于您想如何绘制线条?坐标的单位是什么?

使用tikz您可以轻松绘制线条。此处单位默认为厘米(如果未指定)。请注意,在上一个示例中,单位指定为英寸,因此使用了英寸。

在此处输入图片描述

下面定义的宏\Line有三个参数,第一个是可选的

  • 1 = 线条样式,由于它是可选的,因此在 内指定[]。如果没有提供,则使用线条的默认样式(即黑线)。

  • 2、#3 为(x,y)样式中的坐标

还有许多其他线条样式选项,您应该参考 TiKZ/PGF 手册。

参考:

代码:

\documentclass{article}
\usepackage{tikz}
\newcommand*{\Line}[3][]{\tikz \draw[#1] #2 -- #3;}%
\begin{document}
    \Line{(0,0)}{(3,0)}%

    \Line[red, thick]{(0,0)}{(3,0)}%

    \Line[blue, thick, dotted]{(0,0)}{(1.00in,0in)}%
\end{document}

如果您想在同一个坐标系中绘制不同的线条,只需将它们放在一个tikzpicture环境中即可。请注意蓝色虚线从 3.2cm 处开始,紧接着黑线在 3.0cm 处结束的位置。

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\newcommand*{\Line}[3][]{\draw[#1] #2 -- #3;}%
\begin{document}
\begin{tikzpicture}
    \Line{(0,0)}{(3,0)}%

    \Line[red, thick]{(0,-0.5)}{(3,-0.5)}%

    \Line[blue, thick, dotted]{(3.2cm,0)}{(1.5in,0in)}%
\end{tikzpicture}
\end{document}

答案3

做这件事有很多种方法

1) 页面中的绝对位置。我的意思是,页面左南角的坐标为 (0,0),东北角的坐标为 (21,29.7) (a4paper)。我想从 (a,b) 到 (c,d) 画一条线。

1a)只需一次编译,您就可以使用 eso-pic 和 tikz

\documentclass[a4paper]{scrartcl}
\usepackage{tikz,lipsum,eso-pic} 
\makeatletter
\def\myline{\pgfutil@ifnextchar[{\my@line}{\my@line[]}}%
\def\my@line[#1](#2)(#3){%
\AddToShipoutPicture{%
\setlength{\unitlength}{1cm}% 
\begin{picture}(0,0)% 
\put(0,0){\tikz[overlay] \draw[#1] (#2) -- (#3) ;}%
\end{picture}}}%
\begin{document}  
\lipsum[1]
\myline[magenta,thick](0,0)(21,29.7)
\myline[magenta,thick](0,29.7)(21,0)  
\myline[blue,ultra thick](10,10)(15,20)   
\myline[blue,ultra thick](10,20)(15,5) 
\end{document} 

在此处输入图片描述

1b)有了两个编译,我们只需要 tikz

\documentclass[a4paper]{scrartcl}  
\usepackage{tikz,lipsum} 
\makeatletter
\def\myline{\pgfutil@ifnextchar[{\my@line}{\my@line[]}}%
\def\my@line[#1](#2)(#3){%
\tikz[overlay,remember picture]%
\draw[#1] ([shift={(#2)}] current page.south west) -- 
          ([shift={(#3)}] current page.south west);   
}
\begin{document}  
\myline[magenta,thick](0,0)(21,29.7)
\myline[magenta,thick](0,29.7)(21,0)  
\myline[blue,ultra thick](10,10)(15,20)   
\myline[blue,ultra thick](10,20)(15,5)   
\end{document} 

2)与一个编译相关​​的位置

\documentclass[a4paper]{scrartcl}
\usepackage{tikz} 
\makeatletter
\def\myline{\pgfutil@ifnextchar[{\my@line}{\my@line[]}}%
\def\my@line[#1](#2)(#3){%
\tikz[overlay] \draw[#1]  (#2)--(#3); 
}%

\begin{document}  

In visions\myline[red](0,0)(3,-4) of the dark night\\
I have dreamed of joy departed-\\
But a waking dream of life and light\\
Hath left me broken-hearted.\\

\bigskip
Ah! what is not a dream by day\\
To him whose eyes are cast \\
On things around him with a ray \\
Turned back upon the past? \\
\end{document} 

在此处输入图片描述

3)页面中定义的两点之间(两个编译)

\documentclass[a4paper]{scrartcl}
\usepackage{tikz} 
\makeatletter
\def\myline{\pgfutil@ifnextchar[{\my@line}{\my@line[]}}%
\def\my@line[#1](#2)(#3){%
\tikz[remember picture,overlay] \draw[#1]  (#2)--(#3); 
}%
\newcommand\mypoint[1] {%
\tikz[remember picture] \path coordinate (#1);}% 

\begin{document}  
\parindent=0pt
\mypoint{a}In visions of the dark night\\
I have dreamed of joy departed-\\
But a waking dream of life and light\\
Hath left me broken-hearted.\\ 

\bigskip
Ah! what is not a dream by day\\
To him whose eyes are cast \\
On things around him with a ray \\
Turned back upon the past? \mypoint{b} \\
\myline[red](a)(b)
\end{document} 

在此处输入图片描述

答案4

它不需要任何包,使用该命令可以从一点到一点\qbezier(a,b) ( (a+b)/2,(c+d)/2 ) (c,d)画一条线。 一般用于画曲线,特别是如果第二个参数是第一个和第三个参数的中点,曲线就变成了直线,例如:(a,b)(c,d)\qbezier

\documentclass{article}
\begin{document}
  %\setlength{\unitlength}{1mm}
  \begin{picture}(100,100)
    \qbezier(0,0)(40,40)(80,80)       %A line from (0,0) to (80,80) 
    \qbezier(0,0)(10,6)(100,60)       %2nd point doesn't have to be the midpoint.
    {\linethickness{2pt}\qbezier(0,100)(1,99)(100,0) }%Just need to satisfy the linear equation    
  \end{picture}
\end{document}

相关内容