RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 959410
Accepted
Sergey
Sergey
Asked:2020-03-21 17:18:51 +0000 UTC2020-03-21 17:18:51 +0000 UTC 2020-03-21 17:18:51 +0000 UTC

如何格式化特殊的文本块?

  • 772

我想在文档中放置“注意”、“警告”、提示等特殊块。大致是这样的:

特殊“注释”块的示例

在翻遍了一堆文献和论坛之后,我发现唯一的东西就是使用 awesomebox 包:

\usepackage{awesomebox}
. . . 
\notebox{Для получения дополнительной информации о настройке подключения к удаленному интерфейсу см. Руководств...}

这里有两个问题:

  1. awesomebox 包使用 fontawesome5 包,它位于巨大的包内(就 Ubuntu 安装程序而言)texlive-fonts-extra
  2. 事实证明,它的使用效果虽然与预期的相似,但并不完全是:

真棒盒子应用程序

“J”是怎么回事?它可以被更理智的东西代替吗?或者也许有一些更简单的方法?

latex
  • 2 2 个回答
  • 10 Views

2 个回答

  • Voted
  1. Best Answer
    Vladimir
    2020-04-17T05:37:34Z2020-04-17T05:37:34Z

    要选择左侧带有一些对象的文本块,您可以使用不同的方法。您可以使用两个相邻parbox的 -a,您可以在某种图形包(如tikz/pgf)中绘制整个内容,您甚至可以使用表格并将必要的标签和文本放在其单元格中。我试图以三种不同的方式解决这个问题(取得了不同的成功):

    1. parbox通过环境中的常规 LaTeX 工具picture(结果不是很好);

    2. 混合使用命令tikz和一些框 ( \fcolorbox);

    3. 使用tikz和包装tcolorbox。

    所有选项都设计为宏,第一个参数是标签(符号),第二个参数是带有消息的文本。颜色、字体大小/字段大小可以在很小的范围内变化。这取决于我,我明确设置了标签字段的大小,文本字段的大小是根据工作字段的全宽和标签的这个字段计算的(我使用了 package calc)。

    第一个选项。我想确保不需要外部依赖项。

    \documentclass{article}
    \usepackage[cp1251]{inputenc}
    \usepackage[russian,english]{babel}
    \usepackage{tikz}
    \usepackage{calc}
    \usepackage{lipsum}
    
    %  #1 - метка (символ, например, ! ? i)
    %  #2 - текст
    \newcommand{\boxA}[2]{%
        \medskip
        \noindent
        \color{gray!30!white}
        \fcolorbox{blue!30!white}{yellow!20!white}{%
        \color{black}
        \parbox[t][1.4cm]{1.4cm}{
            \begin{center}
                \setlength{\unitlength}{1mm}
                \begin{picture}(14,14)
                   \put(7.5,7.5){\color{red!70!black}\scalebox{2.5}{\circle*{14}}}%
                   \put(5,5){\color{white}\scalebox{3}{\texttt{#1}}}
                \end{picture}
            \end{center}
        }%
        \hspace{4mm}
        \parbox[t]{{\textwidth-2.2cm}}{#2}%
        }
        \color{black}
        \par
        \medskip
    }
    
    \begin{document}
    \lipsum[1][1-5]
    
    %\boxA{i}{\lipsum[2][1-6]}
    \boxA{!}{\lipsum[2][1-6]}
    %\boxA{\textsf{?}}{\lipsum[2][1-6]}
    \lipsum[3][1-4]
    \end{document}
    

    在示例中,注释掉了两个宏调用,以便在图片中占用更少的空间。在家里,评论可以被删除。

    事实上,在外部依赖项中,tikz由于 scale 命令,我最终得到了相同的包\scalebox。但是如果我没记错的话,这个命令是在不同的包中实现的(它在graphicx),你可以接受它(它也tikz隐式加载包xcolor,所以它也需要添加)。需要此命令 ( \scalebox) 是因为picture环境中有一个“圆形”(填充)形状,最大尺寸仅为 14 毫米。而且这个尺寸还不够(我的口味)。使用这种方法会有一些不愉快的时刻:1)我不知道如何自动将所需的符号准确地放置在圆的中心,所以我手动调整了它的位置 - 如果您充分更改符号的大小或字体样式,那么您将需要选择坐标(在命令中\put);2)由于某种原因,我不明白,当将两个 parbox 放在同一行时,其中一个包含文本,另一个只包含图形,parbox 被吹走并且它们不想与顶部边缘对齐。如果有人告诉你如何处理这些问题,那么这个选项也可以被认为是有效的。所以,我做它只是为了测试力量。

    然而,以防万一,我会写 - 在宏中,有时行尾有一个注释符号 - 那里需要它,它会抑制额外的空格。

    结果是这样的:

    第一个宏的结果

    第二种选择。可以诚实地将所有内容放在一张图片上而完全不用担心,但我们并不是在寻找简单的方法,因此\fcolorbox对于背景和框架,我们仍然使用第一个选项:-)。

    \documentclass{article}
    \usepackage[cp1251]{inputenc}
    \usepackage[russian,english]{babel}
    \usepackage{tikz}
    \usetikzlibrary{positioning}
    \usepackage{calc}
    \usepackage{lipsum}
    
    %  #1 - метка (символ, например, ! ? i)
    %  #2 - текст
    \newcommand{\boxB}[2]{%
        \medskip
        \noindent
        \color{gray!30!white}%
        \fcolorbox{blue!30!white}{yellow!20!white}{%
        \color{black}%
        \hspace{1mm}
            \tikz[terminal/.style={
             circle,minimum size=5mm,very thick,draw=red!50,top color=white,bottom color=red!20,font=\ttfamily
    %         ball color=red,circle,text=white, minimum size=5mm, font=\ttfamily
            }]
            {
                \node (Sign) at (0,0) [anchor=north west, terminal]{\scalebox{2}{#1}};
                \node (text) at (1,0.2) [anchor=north west, rectangle, text width = {\textwidth-2cm}, align=justify]{{#2}};
            }
        }
        \color{black}
        \medskip
    }
    
    \begin{document}
    \lipsum[1][1-5]
    
    %\boxB{i}{\lipsum[2][1-2]}
    \boxB{!}{\lipsum[2][1-6]}
    %\boxB{?}{\lipsum[2][1-6]}
    \lipsum[3][1-4]
    \end{document}
    

    这里的一切都简单得多(带有字段的位置),唯一的事情是我还没有决定哪个标签设计看起来更好。因此,我留下了两种样式 ( terminal/.style={ ...) - 您可以注释掉一行,取消注释另一行并查看不同的设计。在这里,结果证明标签和文本与顶部对齐。

    第二种选择

    以下是替代设计的样子:

    另一种选择

    实际上,tikz您可以在其中绘制各种复杂的对象,这些只是为了加快速度的示例。所有颜色都可以根据您的意愿定制。在这里可以轻松更改标签字体,它将tikz应对居中。

    嗯,第三个选项。老实说,我从包的官方文档书中偷走了设计风格tcolorbox,除非我稍微“用文件完成它”:那里考虑了一个更复杂的案例,我只是删除了所有多余的东西并在球上添加了一个字母。

    \documentclass{article}
    \usepackage[cp1251]{inputenc}
    \usepackage[russian,english]{babel}
    \usepackage{tikz}
    \usepackage{lipsum}
    \usepackage{tcolorbox}
    \usetikzlibrary{patterns}
    \tcbuselibrary{skins,breakable}
    
    %  #1 - метка (символ, например, ! ? i)
    %  #2 - текст
    \newcommand{\boxC}[2]{%
        \medskip
        \noindent
        \begin{tcolorbox}[enhanced,breakable,sharp corners,
            boxrule=0mm,top=0mm,bottom=0mm,left=1mm,right=1mm,
            leftrule=2cm,colupper=blue!25!black,
            frame style={pattern=crosshatch dots light steel blue},overlay={%
                \begin{tcbclipframe}
                    {\coordinate (X) at ([xshift=10mm]frame.west);}
                    \fill[shading=ball,ball color=red!50!white,opacity=0.9] (X) circle (6mm);
                    \draw (X) node[color=white,font=\ttfamily\Huge]{#1};
            \end{tcbclipframe}}]
            #2
        \end{tcolorbox}
        \medskip
    }
    
    
    
    \begin{document}
    \lipsum[1][1-5]
    
    %\boxC{i}{\lipsum[2][1-6]}
    \boxC{!}{\lipsum[2][1-6]}
    %\boxC{?}{\lipsum[2][1-6]}
    \lipsum[3][1-4]
    \end{document}
    

    在这里,我们有最复杂的外部设计版本。没错,标签位于块的中心(垂直),我还没有努力将它拉到顶部边缘。

    结果应该是这样的:

    第三个设计选项

    这里我只设置了左侧字段的大小(用于标签),它会计算文本字段本身。

    在所有选项中,您可以加载一些有趣的图片,而不是标签(左)。主要是将其设置为正确的大小(使其适合尺寸),然后以正确的方式编译它(如果pdf是光栅图像,则仅收集 throughpdflatex和矢量图像eps- through latex->dvips->ps2pdf)。

    类似的东西。

    • 3
  2. Sergey
    2020-03-22T11:28:23Z2020-03-22T11:28:23Z

    在 aleksandr barakin 的建议下,我使用了 bclogo 包。

    \documentclass{article}
    \usepackage[tikz]{bclogo}
    \usepackage{lipsum}
    \begin{document}
    \begin{bclogo}{Nice bclogo example}
    \lipsum[3]
    \end{bclogo}
    
    \begin{bclogo}[couleur = blue!30,couleurBord=red!50,logo=\bcoutil]{Nice 
    bclogo example}
    \lipsum[3]
    \end{bclogo}
    
    \begin{bclogo}[arrondi=0.1,epBarre=0,couleur = 
    green!30,couleurBord=orange!50,logo=\bcfeutricolore]{Nice bclogo example}
    \lipsum[3]
    \end{bclogo}
    \end{document}
    

    结果对我来说很好:

    在此处输入图像描述

    • 2

相关问题

  • 乳胶中的表格

  • 如何在中心使用西里尔编号的乳胶申请?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    根据浏览器窗口的大小调整背景图案的大小

    • 2 个回答
  • Marko Smith

    理解for循环的执行逻辑

    • 1 个回答
  • Marko Smith

    复制动态数组时出错(C++)

    • 1 个回答
  • Marko Smith

    Or and If,elif,else 构造[重复]

    • 1 个回答
  • Marko Smith

    如何构建支持 x64 的 APK

    • 1 个回答
  • Marko Smith

    如何使按钮的输入宽度?

    • 2 个回答
  • Marko Smith

    如何显示对象变量的名称?

    • 3 个回答
  • Marko Smith

    如何循环一个函数?

    • 1 个回答
  • Marko Smith

    LOWORD 宏有什么作用?

    • 2 个回答
  • Marko Smith

    从字符串的开头删除直到并包括一个字符

    • 2 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5