
Я хотел бы сделать
echo "[this thing]"
Эта вещь
\documentclass{article}
\usepackage{rotating}
\usepackage{pdfpages}
\usepackage{verbatim}
\usepackage{amsmath, amsfonts, amssymb, textcomp, mathtools, xparse}
\usepackage[T4, OT1]{fontenc}
\usepackage{graphicx}
\graphicspath{{/Users/Masi/Dropbox/Physiology/images/}}
% Animations cannot be included here
% \addmediapath{ {/Users/Masi/Dropbox/Physiology/animations/} }
\usepackage{newunicodechar}
\usepackage{multirow}
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\DeclarePairedDelimiter{\norm}{\lVert}{\rVert}
\usepackage{color}
\usepackage{hyperref}
\usepackage{media9} % animations swf
\usepackage{Tabbing}
\usepackage{doi, natbib}
\hypersetup{
colorlinks=true,
linkcolor=blue,
citecolor=blue,
allcolors=blue
}
\usepackage[affil-it]{authblk}
\usepackage{import}
\usepackage{color}
\usepackage[normalem]{ulem}
\usepackage{titling} % Two titles in one document
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
%%%%%%%%%%%%%%%%%%%%%%%%%%% Question and Answer %%%%%%%%%%%%%%%%%
\usepackage[framemethod=tikz]{mdframed}
\mdfdefinestyle{ans}{
linecolor=cyan,
backgroundcolor=yellow!20,
frametitlebackgroundcolor=green!40,
frametitlerule=true
}
\newcounter{question}[section]%
\setcounter{question}{0}
\newenvironment{question}[1]{%
\refstepcounter{question}%
\begin{mdframed}[style=ans,frametitle={Question: #1}]
}{%
\end{mdframed}%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%% Smaller things
\newtheorem{case}{Case logic}
\mdfdefinestyle{que}{
linecolor=cyan,
backgroundcolor=cyan!20,
}
\surroundwithmdframed[style=que]{case}
\newtheorem{sidenote}{Sidenote}
\mdfdefinestyle{que}{
linecolor=cyan,
backgroundcolor=cyan!20,
}
\surroundwithmdframed[style=que]{sidenote}
\newtheorem{citation}{Citation}
\mdfdefinestyle{que}{
linecolor=cyan,
backgroundcolor=yellow!20,
}
\surroundwithmdframed[style=que]{citation}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newtheorem{theorem}{Theorem}
\newtheorem{proposition}[theorem]{Proposition}
\newenvironment{definition}[1][Definition]{\begin{trivlist}
\item[\hskip \labelsep {\bfseries #1}] \emph}{\end{trivlist}}
\providecommand{\keywords}[1]{\textbf{Keywords:} #1}
%%%%%%%%%%%%%%%%%%%%%%%%% Counter Section %%%%%%%%%%%%%%%%%%%%%%
\makeatletter
\def\@part[#1]#2{%
\ifnum \c@secnumdepth >\m@ne
\refstepcounter{part}%
\fi
\addcontentsline{toc}{part}{#1}%
{\parindent \z@ \raggedright
\interlinepenalty \@M
\normalfont
\LARGE \bfseries #2%
\markboth{}{}\par}%
\nobreak
\vskip 3ex
\@afterheading}
\@addtoreset{section}{part}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Как можно хорошо отобразить такой большой контент в файле Bash?
решение1
Использоватьздесь документ:
cat <<'EOF'
Data...
EOF
Примечание: лучше заключить слово heredoc ( EOF
), как указано выше, чтобы избежать расширения, если данные содержат что-то вроде $foo
или обратные косые черты, если, конечно, вы не хотите расширения. Примеры:
$ cat <<EOF
$SHLVL \\
EOF
дает что-то вроде:
3 \
пока
$ cat <<'EOF'
$SHLVL \\
EOF
дает:
$SHLVL \\
решение2
Ответ @vinc17 правильный, но неполный. Подход HEREDOC отличный, но его нельзя использовать наивно. Смотретьhttps://stackoverflow.com/a/11379627/763269чтобы узнать больше о вещах, о которых следует знать.
Встроенные пробелы и табуляции не сохраняются, как вы могли бы подумать в блоке HEREDOC. Маркер HEREDOC (обычно EOF
) должен быть заключен в одинарные кавычки, чтобы предотвратить расширение оболочки. Блок HEREDOC, содержащий другой блок HEREDOC (например, если вы генерируете скрипт), имеет много проблем. Всех этих проблем можно избежать, закодировав содержимое блока HEREDOC в base64 и расширив его.
решение3
Мой латекс не очень хорош, вы устанавливаете какие-либо переменные в тексте? В противном случае я бы поместил латекс в дополнительный файл шаблона и просто использовал бы cat для его печати. Это сделало бы его более удобным в обслуживании, если бы вы захотели заменить шаблон в один прекрасный день.