📄 texutils.cpp
字号:
if (bib->month) { TexOutput(_T(" (")); TexOutput(bib->month); TexOutput(_T(")")); } if (bib->year || bib->month) TexOutput(_T(". ")); if (StringMatch(bib->type, _T("article"), false, true)) { if (bib->title) { TexOutput(bib->title); TexOutput(_T(". ")); } if (bib->journal) { OnMacro(ltIT, 1, true); OnArgument(ltIT, 1, true); TexOutput(bib->journal); OnArgument(ltIT, 1, false); OnMacro(ltIT, 1, false); } if (bib->volume) { TexOutput(_T(", ")); OnMacro(ltBF, 1, true); OnArgument(ltBF, 1, true); TexOutput(bib->volume); OnArgument(ltBF, 1, false); OnMacro(ltBF, 1, false); } if (bib->number) { TexOutput(_T("(")); TexOutput(bib->number); TexOutput(_T(")")); } if (bib->pages) { TexOutput(_T(", pages ")); TexOutput(bib->pages); } TexOutput(_T(".")); } else if (StringMatch(bib->type, _T("book"), false, true) || StringMatch(bib->type, _T("unpublished"), false, true) || StringMatch(bib->type, _T("manual"), false, true) || StringMatch(bib->type, _T("phdthesis"), false, true) || StringMatch(bib->type, _T("mastersthesis"), false, true) || StringMatch(bib->type, _T("misc"), false, true) || StringMatch(bib->type, _T("techreport"), false, true) || StringMatch(bib->type, _T("booklet"), false, true)) { if (bib->title || bib->booktitle) { OnMacro(ltIT, 1, true); OnArgument(ltIT, 1, true); TexOutput(bib->title ? bib->title : bib->booktitle); TexOutput(_T(". ")); OnArgument(ltIT, 1, false); OnMacro(ltIT, 1, false); } if (StringMatch(bib->type, _T("phdthesis"), false, true)) TexOutput(_T("PhD thesis. ")); if (StringMatch(bib->type, _T("techreport"), false, true)) TexOutput(_T("Technical report. ")); if (bib->editor) { TexOutput(_T("Ed. ")); TexOutput(bib->editor); TexOutput(_T(". ")); } if (bib->institution) { TexOutput(bib->institution); TexOutput(_T(". ")); } if (bib->organization) { TexOutput(bib->organization); TexOutput(_T(". ")); } if (bib->publisher) { TexOutput(bib->publisher); TexOutput(_T(". ")); } if (bib->address) { TexOutput(bib->address); TexOutput(_T(". ")); } } else if (StringMatch(bib->type, _T("inbook"), false, true) || StringMatch(bib->type, _T("inproceedings"), false, true) || StringMatch(bib->type, _T("incollection"), false, true) || StringMatch(bib->type, _T("conference"), false, true)) { if (bib->title) { TexOutput(bib->title); } if (bib->booktitle) { TexOutput(_T(", from ")); OnMacro(ltIT, 1, true); OnArgument(ltIT, 1, true); TexOutput(bib->booktitle); TexOutput(_T(".")); OnArgument(ltIT, 1, false); OnMacro(ltIT, 1, false); } if (bib->editor) { TexOutput(_T(", ed. ")); TexOutput(bib->editor); } if (bib->publisher) { TexOutput(_T(" ")); TexOutput(bib->publisher); } if (bib->address) { if (bib->publisher) TexOutput(_T(", ")); else TexOutput(_T(" ")); TexOutput(bib->address); } if (bib->publisher || bib->address) TexOutput(_T(".")); if (bib->volume) { TexOutput(_T(" ")); OnMacro(ltBF, 1, true); OnArgument(ltBF, 1, true); TexOutput(bib->volume); OnArgument(ltBF, 1, false); OnMacro(ltBF, 1, false); } if (bib->number) { if (bib->volume) { TexOutput(_T("(")); TexOutput(bib->number); TexOutput(_T(").")); } else { TexOutput(_T(" Number ")); TexOutput(bib->number); TexOutput(_T(".")); } } if (bib->chapter) { TexOutput(_T(" Chap. ")); TexOutput(bib->chapter); } if (bib->pages) { if (bib->chapter) TexOutput(_T(", pages ")); else TexOutput(_T(" Pages ")); TexOutput(bib->pages); TexOutput(_T(".")); } } OnArgument(ltNUMBEREDBIBITEM, 2, false); OnMacro(ltNUMBEREDBIBITEM, 2, false);}void OutputBib(void){ // Write the heading ForceTopicName(_T("bibliography")); FakeCurrentSection(ReferencesNameString); ForceTopicName(NULL); OnMacro(ltPAR, 0, true); OnMacro(ltPAR, 0, false); if ((convertMode == TEX_RTF) && !winHelp) { OnMacro(ltPAR, 0, true); OnMacro(ltPAR, 0, false); } wxStringListNode *node = CitationList.GetFirst(); while (node) { wxChar *citeKey = (wxChar *)node->GetData();// wxNode *texNode = TexReferences.Find(citeKey); TexRef *ref = (TexRef *)TexReferences.Get(citeKey); wxNode *bibNode = BibList.Find(citeKey); if (bibNode && ref) { BibEntry *entry = (BibEntry *)bibNode->GetData(); OutputBibItem(ref, entry); } node = node->GetNext(); }}static int citeCount = 1;void ResolveBibReferences(void){ if (CitationList.GetCount() > 0) OnInform(_T("Resolving bibliographic references...")); citeCount = 1; wxChar buf[200]; wxStringListNode *node = CitationList.GetFirst(); while (node) { Tex2RTFYield(); wxChar *citeKey = (wxChar *)node->GetData();// wxNode *texNode = TexReferences.Find(citeKey); TexRef *ref = (TexRef *)TexReferences.Get(citeKey); wxNode *bibNode = BibList.Find(citeKey); if (bibNode && ref) { // Unused Variable //BibEntry *entry = (BibEntry *)bibNode->GetData(); if (ref->sectionNumber) delete[] ref->sectionNumber; wxSnprintf(buf, sizeof(buf), _T("[%d]"), citeCount); ref->sectionNumber = copystring(buf); citeCount ++; } else { wxSnprintf(buf, sizeof(buf), _T("Warning: bib ref %s not resolved."), citeKey); OnInform(buf); } node = node->GetNext(); }}// Remember we need to resolve this citationvoid AddCitation(wxChar *citeKey){ if (!CitationList.Member(citeKey)) CitationList.Add(citeKey); if (!TexReferences.Get(citeKey)) { TexReferences.Put(citeKey, new TexRef(citeKey, _T("??"), NULL)); }}TexRef *FindReference(wxChar *key){ return (TexRef *)TexReferences.Get(key);}/* * Custom macro stuff * */bool StringTobool(const wxString& val){ wxString up(val); up.MakeUpper(); if (up.IsSameAs(_T("YES")) || up.IsSameAs(_T("TRUE")) || up.IsSameAs(_T("ON")) || up.IsSameAs(_T("OK")) | up.IsSameAs(_T("1"))) return true; return false;}void RegisterIntSetting (const wxString& s, int *number){ if (number) { long val; s.ToLong(&val); *number = (int)val; }}// Define a variable value from the .ini filewxChar *RegisterSetting(const wxString& settingName, const wxString& settingValue, bool interactive){ wxString settingValueStr( settingValue ); static wxChar errorCode[100]; wxStrcpy(errorCode, _T("OK")); if (StringMatch(settingName, _T("chapterName"), false, true)) { delete[] ChapterNameString; ChapterNameString = copystring(settingValue); } else if (StringMatch(settingName, _T("sectionName"), false, true)) { delete[] SectionNameString; SectionNameString = copystring(settingValue); } else if (StringMatch(settingName, _T("subsectionName"), false, true)) { delete[] SubsectionNameString; SubsectionNameString = copystring(settingValue); } else if (StringMatch(settingName, _T("subsubsectionName"), false, true)) { delete[] SubsubsectionNameString; SubsubsectionNameString = copystring(settingValue); } else if (StringMatch(settingName, _T("indexName"), false, true)) { delete[] IndexNameString; IndexNameString = copystring(settingValue); } else if (StringMatch(settingName, _T("contentsName"), false, true)) { delete[] ContentsNameString; ContentsNameString = copystring(settingValue); } else if (StringMatch(settingName, _T("glossaryName"), false, true)) { delete[] GlossaryNameString; GlossaryNameString = copystring(settingValue); } else if (StringMatch(settingName, _T("referencesName"), false, true)) { delete[] ReferencesNameString; ReferencesNameString = copystring(settingValue); } else if (StringMatch(settingName, _T("tablesName"), false, true)) { delete[] TablesNameString; TablesNameString = copystring(settingValue); } else if (StringMatch(settingName, _T("figuresName"), false, true)) { delete[] FiguresNameString; FiguresNameString = copystring(settingValue); } else if (StringMatch(settingName, _T("tableName"), false, true)) { delete[] TableNameString; TableNameString = copystring(settingValue); } else if (StringMatch(settingName, _T("figureName"), false, true)) { delete[] FigureNameString; FigureNameString = copystring(settingValue); } else if (StringMatch(settingName, _T("abstractName"), false, true)) { delete[] AbstractNameString; AbstractNameString = copystring(settingValue); } else if (StringMatch(settingName, _T("chapterFontSize"), false, true)) RegisterIntSetting(settingValueStr, &chapterFont); else if (StringMatch(settingName, _T("sectionFontSize"), false, true)) RegisterIntSetting(settingValueStr, §ionFont); else if (StringMatch(settingName, _T("subsectionFontSize"), false, true)) RegisterIntSetting(settingValueStr, &subsectionFont); else if (StringMatch(settingName, _T("titleFontSize"), false, true)) RegisterIntSetting(settingValueStr, &titleFont); else if (StringMatch(settingName, _T("authorFontSize"), false, true)) RegisterIntSetting(settingValueStr, &authorFont); else if (StringMatch(settingName, _T("ignoreInput"), false, true)) IgnorableInputFiles.Add(wxFileNameFromPath(settingValue)); else if (StringMatch(settingName, _T("mirrorMargins"), false, true)) mirrorMargins = StringTobool(settingValue); else if (StringMatch(settingName, _T("runTwice"), false, true)) runTwice = StringTobool(settingValue); else if (StringMatch(settingName, _T("isInteractive"), false, true)) isInteractive = StringTobool(settingValue); else if (StringMatch(settingName, _T("headerRule"), false, true)) headerRule = StringTobool(settingValue); else if (StringMatch(settingName, _T("footerRule"), false, true)) footerRule = StringTobool(settingValue); else if (StringMatch(settingName, _T("combineSubSections"), false, true)) combineSubSections = StringTobool(settingValue); else if (StringMatch(settingName, _T("listLabelIndent"), false, true)) RegisterIntSetting(settingValueStr, &labelIndentTab); else if (StringMatch(settingName, _T("listItemIndent"), false, true)) RegisterIntSetting(settingValueStr, &itemIndentTab); else if (StringMatch(settingName, _T("useUpButton"), false, true)) useUpButton = StringTobool(settingValue); else if (StringMatch(settingName, _T("useHeadingStyles"), false, true)) useHeadingStyles = StringTobool(settingValue); else if (StringMatch(settingName, _T("useWord"), false, true)) useWord = StringTobool(settingValue); else if (StringMatch(settingName, _T("contentsDepth"), false, true)) RegisterIntSetting(settingValueStr, &contentsDepth); else if (StringMatch(settingName, _T("generateHPJ"), false, true)) generateHPJ = StringTobool(settingValue); else if (StringMatch(settingName, _T("truncateFilenames"), false, true)) truncateFilenames = StringTobool(settingValue); else if (StringMatch(settingName, _T("winHelpVersion"), false, true)) RegisterIntSetting(settingValueStr, &winHelpVersion); else if (StringMatch(settingName, _T("winHelpContents"), false, true)) winHelpContents = StringTobool(settingValue); else if (StringMatch(settingName, _T("htmlIndex"), false, true)) htmlIndex = StringTobool(settingValue); else if (StringMatch(settingName, _T("htmlWorkshopFiles"), false, true)) htmlWorkshopFiles = StringTobool(settingValue); else if (StringMatch(settingName, _T("htmlFrameContents"), false, true)) htmlFrameContents = StringTobool(settingValue); else if (StringMatch(settingName, _T("htmlStylesheet"), false, true)) { if (htmlStylesheet) delete[] htmlStylesheet; htmlStylesheet = copystring(settingValue); } else if (StringMatch(settingName, _T("upperCaseNames"), false, true)) upperCaseNames = StringTobool(settingValue); else if (StringMatch(settingName, _T("ignoreBadRefs"), false, true)) ignoreBadRefs = StringTobool(settingValue); else if (StringMatch(settingName, _T("htmlFaceName"), false, true)) { delete[] htmlFaceName; htmlFaceName = copystring(settingValue); } else if (StringMatch(settingName, _T("winHelpTitle"), false, true)) { if (winHelpTitle) delete[] winHelpTitle; winHelpTitle = copystring(settingValue); } else if (StringMatch(settingName, _T("indexSubsections"), false, true)) indexSubsections = StringTobool(settingValue); else if (StringMatch(settingName, _T("compatibility"), false, true)) compatibilityMode = StringTobool(settingValue); else if (StringMatch(settingName, _T("defaultColumnWidth"), false, true)) { RegisterIntSetting(settingValueStr, &defaultTableColumnWidth); defaultTableColumnWidth = 20*defaultTableColumnWidth; } else if (StringMatch(settingName, _T("bitmapMethod"), false, true)) { if ((wxStrcmp(settingValue, _T("includepicture")) != 0) && (wxStrcmp(settingValue, _T("hex")) != 0) && (wxStrcmp(settingValue, _T("import")) != 0)) { if (interactive) OnError(_T("Unknown bitmapMethod")); wxStrcpy(errorCode, _T("Unknown bitmapMethod")); } else { delete[] bitmapMethod; bitmapMethod = copystring(settingValue); } } else if (StringMatch(settingName, _T("htmlBrowseButtons"), false, true)) { if (wxStrcmp(settingValue, _T("none")) == 0) htmlBrowseButtons = HTML_BUTTONS_NONE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -