考虑以下代码:
% DOCUMENT TYPE
\documentclass[12pt,a4paper]{article}
% PACKAGES
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[margin=10pt,font=footnotesize,labelfont=bf]{caption}
\usepackage{lipsum}
\usepackage{fancyhdr}
\usepackage{fancybox}
\usepackage{amsmath}
\usepackage{array}
\usepackage{makeidx}
\usepackage{graphicx}
\usepackage{floatrow}
\usepackage{subfigure}
\usepackage{enumitem}
\usepackage{appendix}
\usepackage{listings}
\usepackage{multicol}
\usepackage{sistyle}
\usepackage{color}
\usepackage{tikz}
\usepackage{lmodern}
\usepackage{multicol}
\usepackage{seqsplit}
\usepackage[listings,skins,theorems]{tcolorbox}
\usepackage{libertine}
\usepackage[export]{adjustbox}
\usepackage[normalem]{ulem}
\usepackage[top=1.25in, bottom=1.25in, left=1.25in, right=1.25in]{geometry}
\usepackage{calc}
\usetikzlibrary{calc}
\usepackage{hyperref}
% PRESENTATION
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\hypersetup{colorlinks, citecolor=blue, filecolor=blue, linkcolor=blue, urlcolor=blue}
% DOCUMENT BEGINNING
\begin{document}
\lipsum~{}
\begin{center}
\makebox[\textwidth]{
\begin{tikzpicture}
\draw[fill=blue,line] ($(current page.west)+(1cm, 0cm)$) rectangle ($(current page.east)+(-1cm, 2cm)$);
\end{tikzpicture}
}
\end{center}
\lipsum
\end{document}
% DOCUMENT END
输出结果如下:
我对 tikz 了解甚少。所以我想做的是:
- 画一个矩形,周围没有线(只有蓝色填充)
- 创建一个空白形状(见下文),与矩形的西北方向对齐,直至西南方向
- 东侧呈弧形
- 垂直于 1cm 弧度的透明度渐变
这是我想要获得的最终结果:
如何用 tikz 做到这一点?
答案1
一般来说,可以定义一个径向阴影并尝试在其上绘制一个矩形。
\documentclass[border=9,tikz]{standalone}
\usetikzlibrary{shadings}
\begin{document}
\pgfdeclareradialshading{arc}{\pgfqpoint{0bp}{0bp}}{%
color(0bp)=(white);
color(12bp)=(white);
color(13bp)=(blue);
color(50bp)=(blue)}
\tikz{
\draw[shading=arc](-20,-20)rectangle(20,20);
\draw[line width=9](0,7)rectangle(20,9);
}
一旦您认为矩形合适,请将 更改\draw
为\clip
。
\tikz{
\clip(0,7)rectangle(20,9);
\draw[shading=arc](-20,-20)rectangle(20,20);
}
\end{document}