在乳胶中创建处方集的布局

在乳胶中创建处方集的布局

我是 LaTeX 的初学者,我正在创建一个公式集,其中每个公式或公式都有一张带有几何解释的图片。

tikz我已经设法使用包和tikzpicture部分以及\draw和命令创建了我想要的图形元素\filldraw

我现在有一张图片,我想把方程式放在一边;为此我目前正在使用node,但我对结果并不满意,它真的很冗长并且(可能)语义错误;因为我需要一个新段落,而不是node

还有一些事情需要考虑:

  • 我会写一系列图片+方程式,然后再考虑它们的布局
  • 在我完成之前,我不知道最佳列数是多少,这可能取决于处方中最大的图片/文字

我想将每张图片+方程式分成一个单独的元素,就像HTML 中的<div>或一样。<span>

我的问题是:

  • 有这样一个Latex 中的元素用于单行图片+方程式?
  • 事后如何在乳胶中布局事物?

编辑:这是当前结果的一个工作示例

\documentclass{report}

\usepackage{geometry}
\usepackage{lipsum}
\usepackage{tikz}

\begin{document}
    \tikzstyle help lines=[color=gray,thin]
    %\tikzstyle help lines+=[color=blue!50,very thick]
    \begin{tikzpicture}[scale=2,cap=rect]
        % Local definitions
        \def\costhirty{0.8660256}
        % Colors
        \colorlet{anglecolor}{green!50!black}
        \colorlet{sincolor}{red}
        \colorlet{tancolor}{orange!80!black}
        \colorlet{coscolor}{blue}
        % Styles
        \tikzstyle{axes}=[]
        \tikzstyle{important line}=[very thick]
        \tikzstyle{information text}=[rounded corners,fill=red!10,inner sep=1ex]
        % The graphic
        \draw[style=help lines,step=0.5cm] (-1.4,-1.4) grid (1.4,1.4);
        \draw (0,0) circle (1cm);
        \begin{scope}[style=axes]
            \draw[->] (-1.5,0) -- (1.5,0) node[right] {$x$} coordinate(x axis);
            \draw[->] (0,-1.5) -- (0,1.5) node[above] {$y$} coordinate(y axis);
            \foreach \x/\xtext in {-1, -.5/-\frac{1}{2}, 1}
            \draw[xshift=\x cm] (0pt,1pt) -- (0pt,-1pt) node[below,fill=white] {$\xtext$};
            \foreach \y/\ytext in {-1, -.5/-\frac{1}{2}, .5/\frac{1}{2}, 1}
            \draw[yshift=\y cm] (1pt,0pt) -- (-1pt,0pt) node[left,fill=white] {$\ytext$};
        \end{scope}
        \filldraw[fill=green!20,draw=anglecolor] (0,0) -- (3mm,0pt) arc(0:30:3mm);
        \draw (15:2mm) node[anglecolor] {$\alpha$};
        \draw[style=important line,sincolor]
        (30:1cm) -- node[left=1pt,fill=white] {$\sin \alpha$} (30:1cm |- x axis);
        \draw[style=important line,coscolor]
        (30:1cm |- x axis) -- node[below=2pt,fill=white] {$\cos \alpha$} (0,0);
        \draw[style=important line,tancolor] (1,0) -- node[right=1pt,fill=white] {
            $\displaystyle \tan \alpha \color{black}=
            \frac{{\color{sincolor}\sin \alpha}}{\color{coscolor}\cos \alpha}$}
        (intersection of 0,0--30:1cm and 1,0--1,1) coordinate (t);
        \draw (0,0) -- (t);
        \draw[xshift=1.85cm]
        node[right,text width=6cm,style=information text]
        {
            The {\color{anglecolor} angle $\alpha$} is $30^\circ$ in the
            example ($\pi/6$ in radians). The {\color{sincolor}sine of
                $\alpha$}, which is the height of the red line, is
            \[
            {\color{sincolor} \sin \alpha} = 1/2.
            \]
            By the Theorem of Pythagoras ...
        };
    \end{tikzpicture}
    
    \begin{tikzpicture}[scale=2,cap=rect]
        % Local definitions
        \def\costhirty{0.8660256}
        % Colors
        \colorlet{anglecolor}{green!50!black}
        \colorlet{sincolor}{red}
        \colorlet{tancolor}{orange!80!black}
        \colorlet{coscolor}{blue}
        % Styles
        \tikzstyle{axes}=[]
        \tikzstyle{important line}=[very thick]
        \tikzstyle{information text}=[rounded corners,fill=red!10,inner sep=1ex]
        % The graphic
        \draw[style=help lines,step=0.5cm] (-1.4,-1.4) grid (1.4,1.4);
        \draw (0,0) circle (1cm);
        \begin{scope}[style=axes]
            \draw[->] (-1.5,0) -- (1.5,0) node[right] {$x$} coordinate(x axis);
            \draw[->] (0,-1.5) -- (0,1.5) node[above] {$y$} coordinate(y axis);
            \foreach \x/\xtext in {-1, -.5/-\frac{1}{2}, 1}
            \draw[xshift=\x cm] (0pt,1pt) -- (0pt,-1pt) node[below,fill=white] {$\xtext$};
            \foreach \y/\ytext in {-1, -.5/-\frac{1}{2}, .5/\frac{1}{2}, 1}
            \draw[yshift=\y cm] (1pt,0pt) -- (-1pt,0pt) node[left,fill=white] {$\ytext$};
        \end{scope}
        \filldraw[fill=green!20,draw=anglecolor] (0,0) -- (3mm,0pt) arc(0:30:3mm);
        \draw (15:2mm) node[anglecolor] {$\alpha$};
        \draw[style=important line,sincolor]
        (30:1cm) -- node[left=1pt,fill=white] {$\sin \alpha$} (30:1cm |- x axis);
        \draw[style=important line,coscolor]
        (30:1cm |- x axis) -- node[below=2pt,fill=white] {$\cos \alpha$} (0,0);
        \draw[style=important line,tancolor] (1,0) -- node[right=1pt,fill=white] {
            $\displaystyle \tan \alpha \color{black}=
            \frac{{\color{sincolor}\sin \alpha}}{\color{coscolor}\cos \alpha}$}
        (intersection of 0,0--30:1cm and 1,0--1,1) coordinate (t);
        \draw (0,0) -- (t);
        \draw[xshift=1.85cm]
        node[right,text width=6cm,style=information text]
        {
            The {\color{anglecolor} angle $\alpha$} is $30^\circ$ in the
            example ($\pi/6$ in radians). The {\color{sincolor}sine of
                $\alpha$}, which is the height of the red line, is
            \[
            {\color{sincolor} \sin \alpha} = 1/2.
            \]
            By the Theorem of Pythagoras ...
        };
    \end{tikzpicture}
    
    \begin{tikzpicture}[scale=2,cap=rect]
        % Local definitions
        \def\costhirty{0.8660256}
        % Colors
        \colorlet{anglecolor}{green!50!black}
        \colorlet{sincolor}{red}
        \colorlet{tancolor}{orange!80!black}
        \colorlet{coscolor}{blue}
        % Styles
        \tikzstyle{axes}=[]
        \tikzstyle{important line}=[very thick]
        \tikzstyle{information text}=[rounded corners,fill=red!10,inner sep=1ex]
        % The graphic
        \draw[style=help lines,step=0.5cm] (-1.4,-1.4) grid (1.4,1.4);
        \draw (0,0) circle (1cm);
        \begin{scope}[style=axes]
            \draw[->] (-1.5,0) -- (1.5,0) node[right] {$x$} coordinate(x axis);
            \draw[->] (0,-1.5) -- (0,1.5) node[above] {$y$} coordinate(y axis);
            \foreach \x/\xtext in {-1, -.5/-\frac{1}{2}, 1}
            \draw[xshift=\x cm] (0pt,1pt) -- (0pt,-1pt) node[below,fill=white] {$\xtext$};
            \foreach \y/\ytext in {-1, -.5/-\frac{1}{2}, .5/\frac{1}{2}, 1}
            \draw[yshift=\y cm] (1pt,0pt) -- (-1pt,0pt) node[left,fill=white] {$\ytext$};
        \end{scope}
        \filldraw[fill=green!20,draw=anglecolor] (0,0) -- (3mm,0pt) arc(0:30:3mm);
        \draw (15:2mm) node[anglecolor] {$\alpha$};
        \draw[style=important line,sincolor]
        (30:1cm) -- node[left=1pt,fill=white] {$\sin \alpha$} (30:1cm |- x axis);
        \draw[style=important line,coscolor]
        (30:1cm |- x axis) -- node[below=2pt,fill=white] {$\cos \alpha$} (0,0);
        \draw[style=important line,tancolor] (1,0) -- node[right=1pt,fill=white] {
            $\displaystyle \tan \alpha \color{black}=
            \frac{{\color{sincolor}\sin \alpha}}{\color{coscolor}\cos \alpha}$}
        (intersection of 0,0--30:1cm and 1,0--1,1) coordinate (t);
        \draw (0,0) -- (t);
        \draw[xshift=1.85cm]
        node[right,text width=6cm,style=information text]
        {
            The {\color{anglecolor} angle $\alpha$} is $30^\circ$ in the
            example ($\pi/6$ in radians). The {\color{sincolor}sine of
                $\alpha$}, which is the height of the red line, is
            \[
            {\color{sincolor} \sin \alpha} = 1/2.
            \]
            By the Theorem of Pythagoras ...
        };
    \end{tikzpicture}
    
\end{document}

在此处输入图片描述

答案1

首先,你需要找到你需要做的事情的正确抽象。本质上,你要创建一个包含图像或不包含图像的方程式数据库。

  1. 创建数据结构(clist 就可以)来保存这些值。
  2. 将记录添加到数据库。
  3. 映射 clist 并使用适当的函数呈现方程式。
    \documentclass{report}
        \usepackage{tikz}
        \ExplSyntaxOn
        \clist_new:N \l_my_formulary_clist
        
        \NewDocumentCommand\AddToEquationDB{m +m}
         {
           \cs_gset:cpn {#1}{#2}
           \clist_put_right:Nn \l_my_formulary_clist {\csname#1\endcsname}
         }
        

    
    \NewDocumentCommand\RenderEquations{ }
         {
           \clist_map_inline:Nn \l_my_formulary_clist {\[##1\]}
         }
        
        \ExplSyntaxOff
        
        \begin{document}
        \AddToEquationDB{quadratic} 
          {
            ax^2 + bx + c =0
          }
        \AddToEquationDB {linear}    
          {
            x = \frac{b}{a}
          }
        \AddToEquationDB{cubic}    
          {
            x^3 + 2x^2 + 10x = 20
          }
          
        
        \AddToEquationDB{pythagoras}{
        \begin{tikzpicture}[scale=2,cap=rect]
                % Local definitions
                \def\costhirty{0.8660256}
                % Colors
                \colorlet{anglecolor}{green!50!black}
                \colorlet{sincolor}{red}
                \colorlet{tancolor}{orange!80!black}
                \colorlet{coscolor}{blue}
                % Styles
                \tikzstyle{axes}=[]
                \tikzstyle{important line}=[very thick]
                \tikzstyle{information text}=[rounded corners,fill=red!10,inner sep=1ex]
                % The graphic
                \draw[style=help lines,step=0.5cm] (-1.4,-1.4) grid (1.4,1.4);
                \draw (0,0) circle (1cm);
                \begin{scope}[style=axes]
                    \draw[->] (-1.5,0) -- (1.5,0) node[right] {$x$} coordinate(x axis);
                    \draw[->] (0,-1.5) -- (0,1.5) node[above] {$y$} coordinate(y axis);
                    \foreach \x/\xtext in {-1, -.5/-\frac{1}{2}, 1}
                    \draw[xshift=\x cm] (0pt,1pt) -- (0pt,-1pt) node[below,fill=white] {$\xtext$};
                    \foreach \y/\ytext in {-1, -.5/-\frac{1}{2}, .5/\frac{1}{2}, 1}
                    \draw[yshift=\y cm] (1pt,0pt) -- (-1pt,0pt) node[left,fill=white] {$\ytext$};
                \end{scope}
                \filldraw[fill=green!20,draw=anglecolor] (0,0) -- (3mm,0pt) arc(0:30:3mm);
                \draw (15:2mm) node[anglecolor] {$\alpha$};
                \draw[style=important line,sincolor]
                (30:1cm) -- node[left=1pt,fill=white] {$\sin \alpha$} (30:1cm |- x axis);
                \draw[style=important line,coscolor]
                (30:1cm |- x axis) -- node[below=2pt,fill=white] {$\cos \alpha$} (0,0);
                \draw[style=important line,tancolor] (1,0) -- node[right=1pt,fill=white] {
                    $\displaystyle \tan \alpha \color{black}=
                    \frac{{\color{sincolor}\sin \alpha}}{\color{coscolor}\cos \alpha}$}
                (intersection of 0,0--30:1cm and 1,0--1,1) coordinate (t);
                \draw (0,0) -- (t);
                \draw[xshift=1.85cm]
                node[right,text width=6cm,style=information text]
                {
                    The {\color{anglecolor} angle $\alpha$} is $30^\circ$ in the
                    example ($\pi/6$ in radians). The {\color{sincolor}sine of
                        $\alpha$}, which is the height of the red line, is
                    \[
                    {\color{sincolor} \sin \alpha} = 1/2.
                    \]
                    By the Theorem of Pythagoras ...
                };
            \end{tikzpicture}
        }
        
        
        \RenderEquations
            
        \end{document}    

相关内容